mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-06 07:05:59 +00:00
Fix reprocessing to lookup the last used language
This commit is contained in:
parent
79c64f957d
commit
20fc9955ba
@ -22,6 +22,7 @@ import docspell.store.records.RAttachment
|
|||||||
import docspell.store.records.RAttachmentSource
|
import docspell.store.records.RAttachmentSource
|
||||||
import docspell.store.records.RCollective
|
import docspell.store.records.RCollective
|
||||||
import docspell.store.records.RItem
|
import docspell.store.records.RItem
|
||||||
|
import docspell.store.queries.QItem
|
||||||
|
|
||||||
object ReProcessItem {
|
object ReProcessItem {
|
||||||
type Args = ReProcessItemArgs
|
type Args = ReProcessItemArgs
|
||||||
@ -131,10 +132,13 @@ object ReProcessItem {
|
|||||||
|
|
||||||
def getLanguage[F[_]: Sync]: Task[F, Args, Language] =
|
def getLanguage[F[_]: Sync]: Task[F, Args, Language] =
|
||||||
Task { ctx =>
|
Task { ctx =>
|
||||||
(for {
|
val lang1 = OptionT(
|
||||||
coll <- OptionT(ctx.store.transact(RCollective.findByItem(ctx.args.itemId)))
|
ctx.store.transact(QItem.getItemLanguage(ctx.args.itemId)).map(_.headOption)
|
||||||
lang = coll.language
|
)
|
||||||
} yield lang).getOrElse(Language.German)
|
val lang2 = OptionT(ctx.store.transact(RCollective.findByItem(ctx.args.itemId)))
|
||||||
|
.map(_.language)
|
||||||
|
|
||||||
|
lang1.orElse(lang2).getOrElse(Language.German)
|
||||||
}
|
}
|
||||||
|
|
||||||
def isLastRetry[F[_]: Sync]: Task[F, Args, Boolean] =
|
def isLastRetry[F[_]: Sync]: Task[F, Args, Boolean] =
|
||||||
|
@ -714,4 +714,13 @@ object QItem {
|
|||||||
txt = texts.map(_._1).mkString(pageSep)
|
txt = texts.map(_._1).mkString(pageSep)
|
||||||
} yield TextAndTag(itemId, txt, tag)
|
} yield TextAndTag(itemId, txt, tag)
|
||||||
|
|
||||||
|
/** Gets the language of the first attachment of the given item. */
|
||||||
|
def getItemLanguage(itemId: Ident): ConnectionIO[List[Language]] =
|
||||||
|
Select(
|
||||||
|
select(m.language),
|
||||||
|
from(m)
|
||||||
|
.innerJoin(a, a.id === m.id)
|
||||||
|
.innerJoin(i, i.id === a.itemId),
|
||||||
|
i.id === itemId
|
||||||
|
).orderBy(a.position.asc).build.query[Language].to[List]
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user