User projects/tasks
authorTomas Zeman <tzeman@volny.cz>
Tue, 01 May 2012 22:20:54 +0200
changeset 86 2616b8424462
parent 85 3ef84ec492fa
child 87 80b87b8de739
User projects/tasks
src/main/scala/fis/aaa/ui/UserSnippet.scala
src/main/scala/fis/pm/model/PmSchema.scala
src/main/webapp/templates-hidden/_resources.html
src/main/webapp/templates-hidden/_resources_cs.html
src/main/webapp/user/view.html
--- a/src/main/scala/fis/aaa/ui/UserSnippet.scala	Tue May 01 21:40:36 2012 +0200
+++ b/src/main/scala/fis/aaa/ui/UserSnippet.scala	Tue May 01 22:20:54 2012 +0200
@@ -20,6 +20,8 @@
 import fis.aaa.model._
 import fis.crm.model.{Contact, ContactCrud, CrmSchema}
 import fis.crm.ui.ContactTable
+import fis.pm.model.{AssignedProjects, AssignedTasks}
+import fis.pm.ui.{ProjectTable, TaskTable}
 import net.liftweb.common._
 import net.liftweb.http._
 import net.liftweb.http.js.JsCmds.RedirectTo
@@ -45,7 +47,8 @@
   private val viewPre = Menu.param[User]("user.view", l10n("User"), parse,
     encode) / prefix / * >> Title(c => i18n("User %s", c.linkName)) >>
     locTpl("user/view") >> Snippet("panel", panel) >>
-    Snippet("contacts", contacts.contacts) >> Hidden
+    Snippet("contacts", contacts.contacts) >>
+    Snippet("projects", projects) >> Snippet("tasks", tasks) >> Hidden
 
   private val editPre = Menu.param[User]("user.edit", l10n("Edit"), parse,
     encode) / prefix / * / EDIT >>
@@ -78,6 +81,12 @@
 
   private def panel: CssTr = "*" #> cur.map(UserPanel(_))
 
+  private def projects: CssTr = "*" #> cur.map { u =>
+    ProjectTable(AssignedProjects(u)) }
+
+  private def tasks: CssTr = "*" #> cur.map { u =>
+    TaskTable(AssignedTasks(u)) }
+
   object url {
     def view: User => Box[String] = (viewLoc.calcHref _) andThen (Box !! _)
   }
--- a/src/main/scala/fis/pm/model/PmSchema.scala	Tue May 01 21:40:36 2012 +0200
+++ b/src/main/scala/fis/pm/model/PmSchema.scala	Tue May 01 22:20:54 2012 +0200
@@ -15,7 +15,7 @@
  */
 package fis.pm.model
 
-import fis.aaa.model.AaaSchema
+import fis.aaa.model.{AaaSchema, User}
 import fis.base.model.{BaseSchema, Entity}
 import fis.cl.model.CodeListSchema
 import net.liftweb.squerylrecord.RecordTypeMode._
@@ -92,6 +92,18 @@
     from(PmSchema.projectCompany.right(c))(p => select(p) orderBy(p.name asc))
 }
 
+object AssignedTasks {
+  def apply(u: User): Iterable[Task] =
+    from(PmSchema.taskResponsible.left(u))(t =>
+      select(t) orderBy(t.deadline asc))
+}
+
+object AssignedProjects {
+  def apply(u: User): Iterable[Project] =
+    from(PmSchema.projectResponsible.left(u))(p =>
+      select(p) orderBy(p.name asc))
+}
+
 /* Many-to-many relations */
 
 import org.squeryl.KeyedEntity
--- a/src/main/webapp/templates-hidden/_resources.html	Tue May 01 21:40:36 2012 +0200
+++ b/src/main/webapp/templates-hidden/_resources.html	Tue May 01 22:20:54 2012 +0200
@@ -83,6 +83,8 @@
       User %s saved
       User %s deleted
   -->
+  <res name="user.projects-responsible" lang="en" default="true">Assigned projects</res>
+  <res name="user.tasks-responsible" lang="en" default="true">Assigned tasks</res>
   <!-- user fields -->
   <res name="user.name" lang="en" default="true">User name</res>
   <res name="user.note" lang="en" default="true">Note</res>
--- a/src/main/webapp/templates-hidden/_resources_cs.html	Tue May 01 21:40:36 2012 +0200
+++ b/src/main/webapp/templates-hidden/_resources_cs.html	Tue May 01 22:20:54 2012 +0200
@@ -78,6 +78,8 @@
   <res name="Really delete this user?" lang="cs">Skutečně smazat uživatele?</res>
   <res name="User %s saved." lang="cs">Uživatel %s byl uložen.</res>
   <res name="User %s deleted." lang="cs">Uživatel %s smazán.</res>
+  <res name="user.projects-responsible" lang="cs">Přidělené projekty</res>
+  <res name="user.tasks-responsible" lang="cs">Přidělené úkoly</res>
 
   <!-- user fields -->
   <res name="user.name" lang="cs">Uživatel</res>
--- a/src/main/webapp/user/view.html	Tue May 01 21:40:36 2012 +0200
+++ b/src/main/webapp/user/view.html	Tue May 01 22:20:54 2012 +0200
@@ -17,6 +17,18 @@
           <span class="lift:contacts"></span>
         </div>
       </div> <!-- /row -->
+      <div class="row section">
+        <div class="span12">
+          <h3><span class="lift:loc?locid=user.projects-responsible"></span></h3>
+          <span class="lift:projects"></span>
+        </div>
+      </div> <!-- /row -->
+      <div class="row section">
+        <div class="span12">
+          <h3><span class="lift:loc?locid=user.tasks-responsible"></span></h3>
+          <span class="lift:tasks"></span>
+        </div>
+      </div> <!-- /row -->
     </div>
   </body>
 </html>