Merge branch 'dev' into feature-ai

This commit is contained in:
shamoon
2025-07-08 14:19:26 -07:00
26 changed files with 246 additions and 247 deletions

View File

@@ -304,7 +304,7 @@ class BarcodePlugin(ConsumeTaskPlugin):
)
x, y = page.size
page = page.resize(
(int(round(x * factor)), (int(round(y * factor)))),
(round(x * factor), (round(y * factor))),
)
# Detect barcodes

View File

@@ -44,7 +44,7 @@ def move_documents_and_create_thumbnails(apps, schema_editor):
exist_ok=True,
)
documents: list[str] = os.listdir(Path(settings.MEDIA_ROOT) / "documents")
documents: list[str] = os.listdir(Path(settings.MEDIA_ROOT) / "documents") # noqa: PTH208
if set(documents) == {"originals", "thumbnails"}:
return

View File

@@ -70,7 +70,7 @@ def _convert_thumbnails_to_webp(apps, schema_editor):
(existing_thumbnail, converted_thumbnail),
)
if len(work_packages):
if work_packages:
logger.info(
"\n\n"
" This is a one-time only migration to convert thumbnails for all of your\n"

View File

@@ -130,7 +130,7 @@ def _convert_encrypted_thumbnails_to_webp(apps, schema_editor) -> None:
(existing_thumbnail, converted_thumbnail, passphrase),
)
if len(work_packages):
if work_packages:
logger.info(
"\n\n"
" This is a one-time only migration to convert thumbnails for all of your\n"

View File

@@ -1750,7 +1750,7 @@ class StoragePathSerializer(MatchingModelSerializer, OwnedObjectSerializer):
using it require a rename/move
"""
doc_ids = [doc.id for doc in instance.documents.all()]
if len(doc_ids):
if doc_ids:
bulk_edit.bulk_update_documents.delay(doc_ids)
return super().update(instance, validated_data)

View File

@@ -409,11 +409,9 @@ def check_scheduled_workflows():
Check and run all enabled scheduled workflows.
Scheduled triggers are evaluated based on a target date field (e.g. added, created, modified, or a custom date field),
combined with a day offset.
The offset is mathematically negated resulting in the following behavior:
- Positive offsets mean the workflow should trigger BEFORE the specified date (e.g., offset = +7 → trigger 7 days before)
- Negative offsets mean the workflow should trigger AFTER the specified date (e.g., offset = -7 → trigger 7 days after)
combined with a day offset:
- Positive offsets mean the workflow should trigger AFTER the specified date (e.g., offset = +7 → trigger 7 days after)
- Negative offsets mean the workflow should trigger BEFORE the specified date (e.g., offset = -7 → trigger 7 days before)
Once a document satisfies this condition, and recurring/non-recurring constraints are met, the workflow is run.
"""

View File

@@ -2265,7 +2265,7 @@ class StoragePathViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin):
# perform the deletion so renaming/moving can happen
response = super().destroy(request, *args, **kwargs)
if len(doc_ids):
if doc_ids:
bulk_edit.bulk_update_documents.delay(doc_ids)
return response

View File

@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-01 05:58+0000\n"
"POT-Creation-Date: 2025-07-08 16:30+0000\n"
"PO-Revision-Date: 2022-02-17 04:17\n"
"Last-Translator: \n"
"Language-Team: English\n"
@@ -1645,143 +1645,143 @@ msgstr ""
msgid "paperless application settings"
msgstr ""
#: paperless/settings.py:763
#: paperless/settings.py:762
msgid "English (US)"
msgstr ""
#: paperless/settings.py:764
#: paperless/settings.py:763
msgid "Arabic"
msgstr ""
#: paperless/settings.py:765
#: paperless/settings.py:764
msgid "Afrikaans"
msgstr ""
#: paperless/settings.py:766
#: paperless/settings.py:765
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:767
#: paperless/settings.py:766
msgid "Bulgarian"
msgstr ""
#: paperless/settings.py:768
#: paperless/settings.py:767
msgid "Catalan"
msgstr ""
#: paperless/settings.py:769
#: paperless/settings.py:768
msgid "Czech"
msgstr ""
#: paperless/settings.py:770
#: paperless/settings.py:769
msgid "Danish"
msgstr ""
#: paperless/settings.py:771
#: paperless/settings.py:770
msgid "German"
msgstr ""
#: paperless/settings.py:772
#: paperless/settings.py:771
msgid "Greek"
msgstr ""
#: paperless/settings.py:773
#: paperless/settings.py:772
msgid "English (GB)"
msgstr ""
#: paperless/settings.py:774
#: paperless/settings.py:773
msgid "Spanish"
msgstr ""
#: paperless/settings.py:775
#: paperless/settings.py:774
msgid "Persian"
msgstr ""
#: paperless/settings.py:776
#: paperless/settings.py:775
msgid "Finnish"
msgstr ""
#: paperless/settings.py:777
#: paperless/settings.py:776
msgid "French"
msgstr ""
#: paperless/settings.py:778
#: paperless/settings.py:777
msgid "Hungarian"
msgstr ""
#: paperless/settings.py:779
#: paperless/settings.py:778
msgid "Italian"
msgstr ""
#: paperless/settings.py:780
#: paperless/settings.py:779
msgid "Japanese"
msgstr ""
#: paperless/settings.py:781
#: paperless/settings.py:780
msgid "Korean"
msgstr ""
#: paperless/settings.py:782
#: paperless/settings.py:781
msgid "Luxembourgish"
msgstr ""
#: paperless/settings.py:783
#: paperless/settings.py:782
msgid "Norwegian"
msgstr ""
#: paperless/settings.py:784
#: paperless/settings.py:783
msgid "Dutch"
msgstr ""
#: paperless/settings.py:785
#: paperless/settings.py:784
msgid "Polish"
msgstr ""
#: paperless/settings.py:786
#: paperless/settings.py:785
msgid "Portuguese (Brazil)"
msgstr ""
#: paperless/settings.py:787
#: paperless/settings.py:786
msgid "Portuguese"
msgstr ""
#: paperless/settings.py:788
#: paperless/settings.py:787
msgid "Romanian"
msgstr ""
#: paperless/settings.py:789
#: paperless/settings.py:788
msgid "Russian"
msgstr ""
#: paperless/settings.py:790
#: paperless/settings.py:789
msgid "Slovak"
msgstr ""
#: paperless/settings.py:791
#: paperless/settings.py:790
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:792
#: paperless/settings.py:791
msgid "Serbian"
msgstr ""
#: paperless/settings.py:793
#: paperless/settings.py:792
msgid "Swedish"
msgstr ""
#: paperless/settings.py:794
#: paperless/settings.py:793
msgid "Turkish"
msgstr ""
#: paperless/settings.py:795
#: paperless/settings.py:794
msgid "Ukrainian"
msgstr ""
#: paperless/settings.py:796
#: paperless/settings.py:795
msgid "Chinese Simplified"
msgstr ""
#: paperless/settings.py:797
#: paperless/settings.py:796
msgid "Chinese Traditional"
msgstr ""

View File

@@ -14,7 +14,6 @@ from urllib.parse import urlparse
from celery.schedules import crontab
from compression_middleware.middleware import CompressionMiddleware
from concurrent_log_handler.queue import setup_logging_queues
from dateparser.languages.loader import LocaleDataLoader
from django.utils.translation import gettext_lazy as _
from dotenv import load_dotenv
@@ -843,8 +842,6 @@ USE_TZ = True
# Logging #
###############################################################################
setup_logging_queues()
LOGGING_DIR.mkdir(parents=True, exist_ok=True)
LOGROTATE_MAX_SIZE = os.getenv("PAPERLESS_LOGROTATE_MAX_SIZE", 1024 * 1024)
@@ -954,7 +951,7 @@ def _parse_cachalot_settings():
ttl = __get_int("PAPERLESS_READ_CACHE_TTL", 3600)
ttl = min(ttl, 31536000) if ttl > 0 else 3600
_, redis_url = _parse_redis_url(
os.getenv("PAPERLESS_READ_CACHE_REDIS_URL", None),
os.getenv("PAPERLESS_READ_CACHE_REDIS_URL", _CHANNELS_REDIS_URL),
)
result = {
"CACHALOT_CACHE": "read-cache",

View File

@@ -29,7 +29,7 @@ from imap_tools import MailBoxUnencrypted
from imap_tools import MailMessage
from imap_tools import MailMessageFlags
from imap_tools import errors
from imap_tools.mailbox import MailBoxTls
from imap_tools.mailbox import MailBoxStartTls
from imap_tools.query import LogicOperator
from documents.data_models import ConsumableDocument
@@ -400,7 +400,7 @@ def make_criterias(rule: MailRule, *, supports_gmail_labels: bool):
supports_gmail_labels=supports_gmail_labels,
).get_criteria()
if isinstance(rule_query, dict):
if len(rule_query) or len(criterias):
if len(rule_query) or criterias:
return AND(**rule_query, **criterias)
else:
return "ALL"
@@ -419,7 +419,7 @@ def get_mailbox(server, port, security) -> MailBox:
if security == MailAccount.ImapSecurity.NONE:
mailbox = MailBoxUnencrypted(server, port)
elif security == MailAccount.ImapSecurity.STARTTLS:
mailbox = MailBoxTls(server, port, ssl_context=ssl_context)
mailbox = MailBoxStartTls(server, port, ssl_context=ssl_context)
elif security == MailAccount.ImapSecurity.SSL:
mailbox = MailBox(server, port, ssl_context=ssl_context)
else: