mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-11-23 23:49:08 -06:00
Merge branch 'dev' into feature-ai
This commit is contained in:
@@ -32,6 +32,8 @@ from guardian.shortcuts import remove_perm
|
||||
from documents import matching
|
||||
from documents.caching import clear_document_caches
|
||||
from documents.caching import invalidate_llm_suggestions_cache
|
||||
from documents.data_models import ConsumableDocument
|
||||
from documents.data_models import DocumentSource
|
||||
from documents.file_handling import create_source_path_directory
|
||||
from documents.file_handling import delete_empty_directories
|
||||
from documents.file_handling import generate_unique_filename
|
||||
@@ -57,7 +59,6 @@ from paperless.config import AIConfig
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from documents.classifier import DocumentClassifier
|
||||
from documents.data_models import ConsumableDocument
|
||||
from documents.data_models import DocumentMetadataOverrides
|
||||
|
||||
logger = logging.getLogger("paperless.handlers")
|
||||
@@ -1174,8 +1175,21 @@ def run_workflows(
|
||||
)
|
||||
try:
|
||||
attachments = []
|
||||
if action.email.include_document and original_file:
|
||||
attachments = [document]
|
||||
if action.email.include_document:
|
||||
if trigger_type in [
|
||||
WorkflowTrigger.WorkflowTriggerType.DOCUMENT_UPDATED,
|
||||
WorkflowTrigger.WorkflowTriggerType.SCHEDULED,
|
||||
]:
|
||||
# Updated and scheduled can pass the document directly
|
||||
attachments = [document]
|
||||
elif original_file:
|
||||
# For consumed and added document is not yet saved, so pass the original file
|
||||
attachments = [
|
||||
ConsumableDocument(
|
||||
source=DocumentSource.ApiUpload,
|
||||
original_file=original_file,
|
||||
),
|
||||
]
|
||||
n_messages = send_email(
|
||||
subject=subject,
|
||||
body=body,
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-10-28 18:06+0000\n"
|
||||
"PO-Revision-Date: 2025-10-28 18:07\n"
|
||||
"PO-Revision-Date: 2025-11-03 17:49\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: German\n"
|
||||
"Language: de_DE\n"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-10-28 18:06+0000\n"
|
||||
"PO-Revision-Date: 2025-10-28 18:08\n"
|
||||
"PO-Revision-Date: 2025-10-30 23:37\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Portuguese, Brazilian\n"
|
||||
"Language: pt_BR\n"
|
||||
@@ -47,7 +47,7 @@ msgstr "{name!r} não é um campo personalizado válido."
|
||||
|
||||
#: documents/filters.py:558
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} não suporta a consulta expr {expr!r}."
|
||||
msgstr "{data_type} Não suporta a consulta expr {expr!r}."
|
||||
|
||||
#: documents/filters.py:666 documents/models.py:135
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
@@ -450,7 +450,7 @@ msgstr "pesquisa de texto completo"
|
||||
|
||||
#: documents/models.py:526
|
||||
msgid "more like this"
|
||||
msgstr "Mais como este"
|
||||
msgstr "mais como este"
|
||||
|
||||
#: documents/models.py:527
|
||||
msgid "has tags in"
|
||||
@@ -859,11 +859,11 @@ msgstr "Possui estas etiquetas"
|
||||
|
||||
#: documents/models.py:1072
|
||||
msgid "has all of these tag(s)"
|
||||
msgstr ""
|
||||
msgstr "possui toda(s) esta(s) etiqueta(s)"
|
||||
|
||||
#: documents/models.py:1079
|
||||
msgid "does not have these tag(s)"
|
||||
msgstr ""
|
||||
msgstr "não possui esta(s) etiqueta(s)"
|
||||
|
||||
#: documents/models.py:1087
|
||||
msgid "has this document type"
|
||||
@@ -871,7 +871,7 @@ msgstr "Possui este tipo de documento"
|
||||
|
||||
#: documents/models.py:1094
|
||||
msgid "does not have these document type(s)"
|
||||
msgstr ""
|
||||
msgstr "não possui este(s) tipo(s) de documento"
|
||||
|
||||
#: documents/models.py:1102
|
||||
msgid "has this correspondent"
|
||||
@@ -879,7 +879,7 @@ msgstr "Possui este correspondente"
|
||||
|
||||
#: documents/models.py:1109
|
||||
msgid "does not have these correspondent(s)"
|
||||
msgstr ""
|
||||
msgstr "não possui este(s) correspondente(s)"
|
||||
|
||||
#: documents/models.py:1117
|
||||
msgid "has this storage path"
|
||||
@@ -887,15 +887,15 @@ msgstr "possui este caminho de armazenamento"
|
||||
|
||||
#: documents/models.py:1124
|
||||
msgid "does not have these storage path(s)"
|
||||
msgstr ""
|
||||
msgstr "não possui este(s) caminho(s) de armazenamento"
|
||||
|
||||
#: documents/models.py:1128
|
||||
msgid "filter custom field query"
|
||||
msgstr ""
|
||||
msgstr "Filtrar consulta de campo personalizado"
|
||||
|
||||
#: documents/models.py:1131
|
||||
msgid "JSON-encoded custom field query expression."
|
||||
msgstr ""
|
||||
msgstr "Expressão de consulta de campo personalizado codificada em JSON."
|
||||
|
||||
#: documents/models.py:1135
|
||||
msgid "schedule offset days"
|
||||
@@ -1270,7 +1270,7 @@ msgstr "Olá de %(site_name)s!"
|
||||
#, python-format
|
||||
msgid "Thank you for using %(site_name)s!\n"
|
||||
"%(site_domain)s"
|
||||
msgstr "Obrigado por usar %(site_name)s!\n"
|
||||
msgstr "Obrigado por usar %(site_name)s!\n"
|
||||
"%(site_domain)s"
|
||||
|
||||
#: documents/templates/account/login.html:5
|
||||
@@ -1313,7 +1313,7 @@ msgstr "ou conecte-se com"
|
||||
|
||||
#: documents/templates/account/password_reset.html:5
|
||||
msgid "Paperless-ngx reset password request"
|
||||
msgstr "Redefinição de senha Paperless-ngx"
|
||||
msgstr "Solicitação de redefinição de senha Paperless-ngx"
|
||||
|
||||
#: documents/templates/account/password_reset.html:9
|
||||
msgid "Enter your email address below, and we'll email instructions for setting a new one."
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-10-28 18:06+0000\n"
|
||||
"PO-Revision-Date: 2025-10-28 18:08\n"
|
||||
"PO-Revision-Date: 2025-11-01 20:24\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Russian\n"
|
||||
"Language: ru_RU\n"
|
||||
@@ -758,7 +758,7 @@ msgstr "Выбрать"
|
||||
|
||||
#: documents/models.py:795
|
||||
msgid "Long Text"
|
||||
msgstr ""
|
||||
msgstr "Длинный текст"
|
||||
|
||||
#: documents/models.py:807
|
||||
msgid "data type"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-10-28 18:06+0000\n"
|
||||
"PO-Revision-Date: 2025-10-28 18:08\n"
|
||||
"PO-Revision-Date: 2025-10-30 23:37\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Thai\n"
|
||||
"Language: th_TH\n"
|
||||
@@ -942,7 +942,7 @@ msgstr ""
|
||||
|
||||
#: documents/models.py:1187
|
||||
msgid "email subject"
|
||||
msgstr ""
|
||||
msgstr "หัวเรื่องของอีเมล"
|
||||
|
||||
#: documents/models.py:1191
|
||||
msgid "The subject of the email, can include some placeholders, see documentation."
|
||||
@@ -950,7 +950,7 @@ msgstr ""
|
||||
|
||||
#: documents/models.py:1197
|
||||
msgid "email body"
|
||||
msgstr ""
|
||||
msgstr "เนื้อหาอีเมล"
|
||||
|
||||
#: documents/models.py:1200
|
||||
msgid "The body (message) of the email, can include some placeholders, see documentation."
|
||||
@@ -958,7 +958,7 @@ msgstr ""
|
||||
|
||||
#: documents/models.py:1206
|
||||
msgid "emails to"
|
||||
msgstr ""
|
||||
msgstr "อีเมล์ถึง"
|
||||
|
||||
#: documents/models.py:1209
|
||||
msgid "The destination email addresses, comma separated."
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from typing import Final
|
||||
|
||||
__version__: Final[tuple[int, int, int]] = (2, 19, 3)
|
||||
__version__: Final[tuple[int, int, int]] = (2, 19, 4)
|
||||
# Version string like X.Y.Z
|
||||
__full_version_str__: Final[str] = ".".join(map(str, __version__))
|
||||
# Version string like X.Y
|
||||
|
||||
Reference in New Issue
Block a user