Allow to give human readable summary to user tasks

This commit is contained in:
Eike Kettner
2021-03-27 22:06:44 +01:00
parent 63331b6399
commit c36073b852
16 changed files with 121 additions and 35 deletions

View File

@ -0,0 +1,2 @@
ALTER TABLE "periodic_task"
ADD COLUMN "summary" varchar(254);

View File

@ -0,0 +1,2 @@
ALTER TABLE `periodic_task`
ADD COLUMN `summary` varchar(254);

View File

@ -0,0 +1,2 @@
ALTER TABLE "periodic_task"
ADD COLUMN "summary" varchar(254);

View File

@ -85,6 +85,6 @@ object QUserTask {
)
def makeUserTask(r: RPeriodicTask): UserTask[String] =
UserTask(r.id, r.task, r.enabled, r.timer, r.args)
UserTask(r.id, r.task, r.enabled, r.timer, r.summary, r.args)
}

View File

@ -30,7 +30,8 @@ case class RPeriodicTask(
marked: Option[Timestamp],
timer: CalEvent,
nextrun: Timestamp,
created: Timestamp
created: Timestamp,
summary: Option[String]
) {
def toJob[F[_]: Sync]: F[RJob] =
@ -66,7 +67,8 @@ object RPeriodicTask {
subject: String,
submitter: Ident,
priority: Priority,
timer: CalEvent
timer: CalEvent,
summary: Option[String]
): F[RPeriodicTask] =
Ident
.randomId[F]
@ -91,7 +93,8 @@ object RPeriodicTask {
.map(_.toInstant)
.map(Timestamp.apply)
.getOrElse(Timestamp.Epoch),
now
now,
summary
)
}
)
@ -104,9 +107,20 @@ object RPeriodicTask {
subject: String,
submitter: Ident,
priority: Priority,
timer: CalEvent
timer: CalEvent,
summary: Option[String]
)(implicit E: Encoder[A]): F[RPeriodicTask] =
create[F](enabled, task, group, E(args).noSpaces, subject, submitter, priority, timer)
create[F](
enabled,
task,
group,
E(args).noSpaces,
subject,
submitter,
priority,
timer,
summary
)
final case class Table(alias: Option[String]) extends TableDef {
val tableName = "periodic_task"
@ -124,6 +138,7 @@ object RPeriodicTask {
val timer = Column[CalEvent]("timer", this)
val nextrun = Column[Timestamp]("nextrun", this)
val created = Column[Timestamp]("created", this)
val summary = Column[String]("summary", this)
val all = NonEmptyList.of[Column[_]](
id,
enabled,
@ -137,7 +152,8 @@ object RPeriodicTask {
marked,
timer,
nextrun,
created
created,
summary
)
}
@ -151,7 +167,7 @@ object RPeriodicTask {
T.all,
fr"${v.id},${v.enabled},${v.task},${v.group},${v.args}," ++
fr"${v.subject},${v.submitter},${v.priority},${v.worker}," ++
fr"${v.marked},${v.timer},${v.nextrun},${v.created}"
fr"${v.marked},${v.timer},${v.nextrun},${v.created},${v.summary}"
)
def update(v: RPeriodicTask): ConnectionIO[Int] =
@ -168,7 +184,8 @@ object RPeriodicTask {
T.worker.setTo(v.worker),
T.marked.setTo(v.marked),
T.timer.setTo(v.timer),
T.nextrun.setTo(v.nextrun)
T.nextrun.setTo(v.nextrun),
T.summary.setTo(v.summary)
)
)

View File

@ -16,6 +16,7 @@ case class UserTask[A](
name: Ident,
enabled: Boolean,
timer: CalEvent,
summary: Option[String],
args: A
) {
@ -47,7 +48,8 @@ object UserTask {
s"${account.user.id}: ${ut.name.id}",
account.user,
Priority.Low,
ut.timer
ut.timer,
ut.summary
)
.map(r => r.copy(id = ut.id))
}