Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/main/scala/bootstrap/liftweb/Boot.scala
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class Boot extends Loggable {
SmtpMailer.init

//Elasticsearch
//ElasticSearch.updateAllIndeces
ElasticSearch.updateAllIndeces

// where to search snippet
LiftRules.addToPackages("code")
Expand Down
51 changes: 27 additions & 24 deletions src/main/scala/code/config/Site.scala
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,12 @@ object Site extends Locs {
// Sobre el mARTadero
Menu.i("Sobre mARTadero") / "sobre-martadero" >> TopBarGroup,
Menu.i("Equipo Humano") / "equipo-humano" >> TopBarGroup
))
))

/* Menu Izquierdo */
/* Agenda */
// Agenda
val agenda = MenuLoc(Menu.i("Agenda") / "agenda" submenus(
val agenda = MenuLoc(Menu.i("Agenda") / "agenda" >> TemplateBox(() => Templates("events" :: Nil)) submenus(
// Agenda
Menu.i("Calendario de Actividades") / "calendario",
// Google Calendar
Expand Down Expand Up @@ -226,7 +226,7 @@ object Site extends Locs {
// Pi Producciones
Menu.i("Pi Producciones") / "pi-producciones" >> RightMenuGroup
)
))
))

val loginToken = MenuLoc(buildLoginTokenMenu)
val logout = MenuLoc(buildLogoutMenu)
Expand Down Expand Up @@ -278,13 +278,16 @@ object Site extends Locs {
Hidden

val backendEvents = MenuLoc(Menu.i("Eventos") / "backend" / "events" >> RequireLoggedIn >>
LeftMenuGroup submenus(
backendPendingEvents.menu,
backendApprovedEvents.menu,
backendEventAdd,
backendEventEdit))
LeftMenuGroup submenus(
backendPendingEvents.menu,
backendApprovedEvents.menu,
backendEventAdd,
backendEventEdit))

val frontendEvent = Menu.param[Event]("Evento", "Evento", Event.find, s => s.id.get.toString) / "event" / * >>
TemplateBox(() => Templates("event" :: Nil))

val frontendEvents = MenuLoc(Menu.i("Lista de Eventos") / "events" >> TemplateBox(() => Templates("events" :: Nil)))
// val frontendEvents = MenuLoc(Menu.i("Lista de Eventos") / "events" >> TemplateBox(() => Templates("events" :: Nil)))

val backendCallAdd = Menu.param[Call](
"Agregar convocatoria", "Agregar convocatoria",
Expand All @@ -305,7 +308,7 @@ object Site extends Locs {
val backendCalls = MenuLoc(Menu.i("Convocatorias ") / "backend" / "calls" >>
TemplateBox(() => Templates("backend" :: "calls" :: "index" :: Nil)) >>
User.HasRoleOrPermission(SuperAdmin, Convocatorias) >> LeftMenuGroup submenus(
backendCallAdd, backendCallEdit))
backendCallAdd, backendCallEdit))

val backendWidgetAdd = Menu.param[Widget](
"Agregar widget", "Agregar widget",
Expand Down Expand Up @@ -373,7 +376,7 @@ object Site extends Locs {
val backendRooms = MenuLoc(Menu.i("Salas") / "backend" / "rooms" >>
User.HasRolesOrPermissions(List(SuperAdmin), List(Salas, Ambientes)) >>
TemplateBox(() => Templates("backend" :: "rooms" :: "index" :: Nil)) submenus(
backendRoomAdd, backendRoomEdit))
backendRoomAdd, backendRoomEdit))

val backendEquipmentAdd = Menu.param[Equipment](
"Agregar equipo", "Agregar equipo",
Expand Down Expand Up @@ -677,28 +680,28 @@ object Site extends Locs {
User.HasRolesOrPermissions(List(SuperAdmin), List(Organizacion, Areas, Programas, AreasTransversales, Procesos,
LineasDeAccion, Principios, Servicios, EnfoquesTransversales)) >> LeftMenuGroup >>
PlaceHolder submenus(
backendAreas.menu,
backendPrograms.menu,
backendTransversableAreas.menu,
backendProcess.menu,
backendActionLines.menu,
backendTransversalApproaches.menu,
backendValues.menu,
backendServices.menu))
backendAreas.menu,
backendPrograms.menu,
backendTransversableAreas.menu,
backendProcess.menu,
backendActionLines.menu,
backendTransversalApproaches.menu,
backendValues.menu,
backendServices.menu))

val backendAmbientesModule = MenuLoc(Menu.i("Ambientes") / "backend" / "ambientes" >>
User.HasRolesOrPermissions(List(SuperAdmin), List(Ambientes, Salas, Accesorios)) >>
LeftMenuGroup >>
PlaceHolder submenus(
backendRooms.menu,
backendEquipments.menu))
backendRooms.menu,
backendEquipments.menu))

val backendRedesModule = MenuLoc(Menu.i("Redes ") / "backend" / "redes" >>
User.HasRolesOrPermissions(List(SuperAdmin), List(Redes, Espacios)) >>
LeftMenuGroup >>
PlaceHolder submenus(
backendNetworks.menu,
backendSpaces.menu))
backendNetworks.menu,
backendSpaces.menu))

val backendAparienciaModule = MenuLoc(Menu.i("Apariencia") / "backend" / "ui" >>
User.HasRolesOrPermissions(List(SuperAdmin), List(Apariencia, Widgets, Menus)) >>
Expand Down Expand Up @@ -745,7 +748,6 @@ object Site extends Locs {
backendAparienciaModule.menu,
backendPages.menu,
backendCalls.menu,
frontendEvents.menu,
Menu.i("Calendario") / "backend" / "calendario" >> User.HasRoleOrPermission(SuperAdmin, Calendario) >> LeftMenuGroup,
backendBlog.menu,
Menu.i("Error") / "error" >> Hidden,
Expand All @@ -754,6 +756,7 @@ object Site extends Locs {
who.menu,
areas.menu,
agenda.menu,
frontendEvent,
participa.menu,
espacios.menu,
espacio,
Expand Down
4 changes: 4 additions & 0 deletions src/main/scala/code/lib/ElasticSearch.scala
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,10 @@ object ElasticSearch extends Logger {

def updateAllIndeces() = {

Program.findAll.foreach(p => {
Program.updateElasticSearch(p)
})

Event.findAll.foreach(e => {
Event.updateElasticSearch(e)
})
Expand Down
118 changes: 115 additions & 3 deletions src/main/scala/code/model/event/Event.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package event
import code.config.{DefaultRoles, Site}
import code.lib.field._
import code.lib.js.Bootstrap
import code.model.event.Activity
import code.lib.{BaseModel, ElasticSearch, Helper, RogueMetaRecord}
import code.model.resource.Room
import net.liftweb.common.{Box, Full}
Expand All @@ -17,7 +18,7 @@ import net.liftweb.mongodb.record.field._
import net.liftweb.record.field._
import net.liftweb.util.Helpers._
import org.bson.types.ObjectId

import scala.collection.immutable.Stream.Empty
import scala.xml.{Elem, NodeSeq}
import net.liftweb.json.JsonDSL._

Expand Down Expand Up @@ -429,6 +430,14 @@ class Event private() extends MongoRecord[Event] with ObjectIdPk[Event] with Bas
}
}

object facebookPhoto extends FileField(this) {
override def optional_? = true
override def displayName = "Imagen para compartir en facebook"
override def toString = {
value.fileName.get
}
}

object residenciaNorte extends BsIntField(this, 0) {
override def displayName = "Residencias NORTE - Nº de personas. (Máximo 14)"
override def toForm = super.toForm.map(s => <div id="residenciaNorte_div">{s}</div>)
Expand Down Expand Up @@ -489,7 +498,7 @@ object Event extends Event with RogueMetaRecord[Event] {
name, eventKind, requirements, destinedTo, area, transversalArea, program, actionLines, process, values, country,
eventNumber, isOutstanding, organizer, handlers, collaborators, supports, transversalApproach,
description, hours, costInfo, quote,
image, isLogoEnabled, applicantType,
image, facebookPhoto, isLogoEnabled, applicantType,
activities, pressRoom, specificRequirements, residenciaNorte, residenciaSud, status, rooms)

def findLastEventsByUser(user: Box[User]): List[Event] = {
Expand All @@ -515,10 +524,113 @@ object Event extends Event with RogueMetaRecord[Event] {
.orderDesc(_.id).fetch(3)
}

def findLastFourEventsByFilter: List[Event] = {
Event.where(_.status eqs StatusType.Approved)
.andOpt(getAreaValue)(_.area eqs _.id.get)
.andOpt(getTransversalAreaValue)(_.transversalArea eqs _.id.get)
.andOpt(getProgramValue)(_.program eqs _.id.get)
.andOpt(getActionLineValue)(_.actionLines contains _.id.get)
.andOpt(getProcessValue)(_.process eqs _.id.get)
.andOpt(getMainValue)(_.values contains _.id.get)
.andOpt(getApproachValue)(_.transversalApproach eqs _.id.get)
.orderDesc(_.id).fetch(4)
}

def getActionLineValue: Option[ActionLine] = {
Helper.getParameter.headOption match {
case Some((p: String, v: String)) if(p == "lineaAccion") =>
ActionLine.where(_.name eqs v).fetch().headOption
case _ =>
None
}
}

def getApproachValue: Option[TransversalApproach] = {
Helper.getParameter.headOption match {
case Some((p: String, v: String)) if(p == "enfoque") =>
TransversalApproach.where(_.name eqs v).fetch().headOption
case _ =>
None
}
}

def getMainValue: Option[Value] = {
Helper.getParameter.headOption match {
case Some((p: String, v: String)) if(p == "principio") =>
Value.where(_.name eqs v).fetch().headOption
case _ =>
None
}
}

def getProcessValue: Option[Process] = {
Helper.getParameter.headOption match {
case Some((p: String, v: String)) if(p == "proceso") =>
Process.where(_.name eqs v).fetch().headOption
case _ =>
None
}
}

def getProgramValue: Option[Program] = {
Helper.getParameter.headOption match {
case Some((p: String, v: String)) if(p == "programa") =>
Program.where(_.name eqs v).fetch().headOption
case _ =>
None
}
}

def getAreaValue: Option[Area] = {
Helper.getParameter.headOption match {
case Some((p: String, v: String)) if(p == "area") =>
Area.where(_.name eqs v).fetch().headOption
case _ =>
None
}
}

def getTransversalAreaValue: Option[TransversalArea] = {
Helper.getParameter.headOption match {
case Some((p: String, v: String)) if(p == "areaT") =>
TransversalArea.where(_.name eqs v).fetch().headOption
case _ =>
None
}
}

def findAreas: List[Area] = {
Event.distinct(_.area).map(Area.find(_)).flatten
}

def findAreasTransversal: List[TransversalArea] = {
Event.distinct(_.transversalArea).map(TransversalArea.find(_)).flatten
}

def findApproach: List[TransversalApproach] = {
Event.distinct(_.transversalApproach).map(TransversalApproach.find(_)).flatten
}

def findValues: List[Value] = {
Event.values.get.distinct.map(Value.find(_)).flatten
}

def findProcess: List[Process] = {
Event.distinct(_.process).map(Process.find(_)).flatten
}

def findPrograms: List[Program] = {
Event.distinct(_.program).map(Program.find(_)).flatten
}

def findActionLines: List[ActionLine] = {
Event.actionLines.get.distinct.map(ActionLine.find(_)).flatten
}

def updateElasticSearch(event: Event) = {
ElasticSearch.mongoindexSave(
ElasticSearch.elasticSearchPath ++ List(s"event_${event.id.get}"),
("url" -> Site.frontendEvents.fullUrl) ~
("url" -> Site.frontendEvent.calcHref(event)) ~
("name" -> event.name.get) ~
("content" -> event.description.asHtml.text)
)
Expand Down
3 changes: 2 additions & 1 deletion src/main/scala/code/snippet/BlogSnippet.scala
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ object BlogSnippet extends ListSnippet[BlogPost] with PaginatorSnippet[BlogPost]
"data-name=process-name *" #> process.name.get &
"data-name=process-name [href]" #> s"${Site.blog.fullUrl}?proceso=${process.name.get}"
case _ =>
"data-name=transversalarea" #> NodeSeq.Empty
"data-name=process" #> NodeSeq.Empty
}
) &
(post.author.obj match {
Expand Down Expand Up @@ -226,6 +226,7 @@ object BlogSnippet extends ListSnippet[BlogPost] with PaginatorSnippet[BlogPost]
"data-name=title-module" #> title &
"data-name=posts" #> listPosts.map(post => {
"data-name=title *" #> post.name.get &
"data-name=title [href]" #> Site.entradaBlog.calcHref(post) &
"data-name=area *" #> post.area.obj.dmap("")(_.name.get) &
{
post.photo.valueBox match {
Expand Down
Loading