src/main/scala/fis/pm/model/Task.scala
changeset 103 6a2a19785cd8
parent 101 b6a00fd29998
equal deleted inserted replaced
102:c92afc825464 103:6a2a19785cd8
    20 import fis.db.PgsqlSequencer
    20 import fis.db.PgsqlSequencer
    21 import fis.cl.model._
    21 import fis.cl.model._
    22 import net.liftweb.common._
    22 import net.liftweb.common._
    23 import net.liftweb.record.{LifecycleCallbacks, MetaRecord, Record}
    23 import net.liftweb.record.{LifecycleCallbacks, MetaRecord, Record}
    24 import net.liftweb.record.field._
    24 import net.liftweb.record.field._
       
    25 import net.liftweb.squerylrecord.RecordTypeMode._
    25 import net.liftweb.util._
    26 import net.liftweb.util._
    26 import net.tz.lift.model._
    27 import net.tz.lift.model._
    27 import net.tz.lift.model.{FieldLabel => FL}
    28 import net.tz.lift.model.{FieldLabel => FL}
    28 import org.squeryl.annotations.Column
    29 import org.squeryl.annotations.Column
       
    30 import org.squeryl.dsl.QueryDsl
       
    31 import org.squeryl.dsl.ast.LogicalBoolean
    29 import scala.xml.Text
    32 import scala.xml.Text
    30 
    33 
    31 class Task private() extends Record[Task] with Entity[Task] {
    34 class Task private() extends Record[Task] with Entity[Task] {
    32   def meta = Task
    35   def meta = Task
    33 
    36 
    48   def number = (numFld.year, numFld.get)
    51   def number = (numFld.year, numFld.get)
    49   def numberStr = numFld.toString
    52   def numberStr = numFld.toString
    50 
    53 
    51   def state: TaskState =
    54   def state: TaskState =
    52     stateFld.item.map { TaskState(_) } openOr EmptyTaskState
    55     stateFld.item.map { TaskState(_) } openOr EmptyTaskState
       
    56 
       
    57   def delayed = !state.complete &&
       
    58     deadline.date.plusDays(1).isBefore(null) // null means now
    53 }
    59 }
    54 
    60 
    55 object Task extends Task with MetaRecord[Task] with SimpleInjector {
    61 object Task extends Task with MetaRecord[Task] with SimpleInjector {
    56   object users extends Inject[Iterable[User]](() => Nil)
    62   object users extends Inject[Iterable[User]](() => Nil)
    57 }
    63 }
    69   def complete = false
    75   def complete = false
    70 }
    76 }
    71 object TaskState {
    77 object TaskState {
    72   def apply(i: CodeListItem): TaskState =
    78   def apply(i: CodeListItem): TaskState =
    73     TaskStateItem(i.id, i.i1.get, i.i1.get == 100)
    79     TaskStateItem(i.id, i.i1.get, i.i1.get == 100)
       
    80 
       
    81   def unfinishedClause[T](i: CodeListItem)(implicit dsl: QueryDsl):
       
    82     LogicalBoolean = (i.i1 <> 100)
    74 }
    83 }
    75 
    84 
    76 private[model] class TaskNumber(t: Task) extends IntField[Task](t) with
    85 private[model] class TaskNumber(t: Task) extends IntField[Task](t) with
    77   LifecycleCallbacks with FL {
    86   LifecycleCallbacks with FL {
    78 
    87