Include links to items into mail template

This commit is contained in:
Eike Kettner
2020-04-22 21:53:25 +02:00
parent 52800a51d8
commit e1f9ae2629
9 changed files with 46 additions and 46 deletions

View File

@ -7,15 +7,26 @@ import docspell.common._
import docspell.store.queries.QItem
import docspell.joex.notify.YamuscaConverter._
case class MailContext(items: List[MailContext.ItemData], more: Boolean, account: AccountId)
case class MailContext(
items: List[MailContext.ItemData],
more: Boolean,
account: AccountId,
itemUri: Option[LenientUri]
)
object MailContext {
def from(items: Vector[QItem.ListItem], max: Int, account: AccountId): MailContext =
def from(
items: Vector[QItem.ListItem],
max: Int,
account: AccountId,
itemBaseUri: Option[LenientUri]
): MailContext =
MailContext(
items.take(max - 1).map(ItemData.apply).toList.sortBy(_.dueDate),
items.sizeCompare(max) >= 0,
account
account,
itemBaseUri
)
case class ItemData(
@ -35,7 +46,6 @@ object MailContext {
ValueConverter.deriveConverter[ItemData]
}
implicit val yamusca: ValueConverter[MailContext] =
ValueConverter.deriveConverter[MailContext]

View File

@ -9,12 +9,20 @@ object MailTemplate {
this is Docspell informing you about due items coming up.
{{#itemUri}}
{{#items}}
- [{{name}}]({{itemUri}}/{{id}}), due on *{{dueDate}}*
(received on {{date}} via {{source}})
{{/items}}
{{/itemUri}}
{{^itemUri}}
{{#items}}
- *{{name}}*, due on *{{dueDate}}*
(received on {{date}} via {{source}})
{{/items}}
{{/itemUri}}
{{#more}}
- ...
- (There are more due items, left out for brevity)
{{/more}}

View File

@ -83,8 +83,9 @@ object NotifyDueItemsTask {
args: Args,
items: Vector[QItem.ListItem]
): F[Mail[F]] = Sync[F].delay {
val templateCtx = MailContext.from(items, maxItems.toInt - 1, args.account)
val md = MailTemplate.render(templateCtx)
val templateCtx =
MailContext.from(items, maxItems.toInt, args.account, args.itemDetailUrl)
val md = MailTemplate.render(templateCtx)
val recp = args.recipients
.map(MailAddress.parse)
.map {