mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-02 21:42:52 +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.RCollective
|
||||
import docspell.store.records.RItem
|
||||
import docspell.store.queries.QItem
|
||||
|
||||
object ReProcessItem {
|
||||
type Args = ReProcessItemArgs
|
||||
@ -131,10 +132,13 @@ object ReProcessItem {
|
||||
|
||||
def getLanguage[F[_]: Sync]: Task[F, Args, Language] =
|
||||
Task { ctx =>
|
||||
(for {
|
||||
coll <- OptionT(ctx.store.transact(RCollective.findByItem(ctx.args.itemId)))
|
||||
lang = coll.language
|
||||
} yield lang).getOrElse(Language.German)
|
||||
val lang1 = OptionT(
|
||||
ctx.store.transact(QItem.getItemLanguage(ctx.args.itemId)).map(_.headOption)
|
||||
)
|
||||
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] =
|
||||
|
@ -714,4 +714,13 @@ object QItem {
|
||||
txt = texts.map(_._1).mkString(pageSep)
|
||||
} 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