]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Merge checks
authorshamoon <4887959+shamoon@users.noreply.github.com>
Tue, 8 Apr 2025 23:42:18 +0000 (16:42 -0700)
committershamoon <4887959+shamoon@users.noreply.github.com>
Tue, 8 Apr 2025 23:42:18 +0000 (16:42 -0700)
src/documents/__init__.py
src/documents/checks.py [deleted file]
src/documents/tests/test_checks.py
src/paperless/__init__.py
src/paperless/checks.py

index dd8c76d19419757ad059ac8155619e37005fd849..a9a2c5b3bb437bff74e283b62c894075e8c15331 100644 (file)
@@ -1,5 +1 @@
-# this is here so that django finds the checks.
-from documents.checks import changed_password_check
-from documents.checks import parser_check
-
-__all__ = ["changed_password_check", "parser_check"]
+__all__ = []
diff --git a/src/documents/checks.py b/src/documents/checks.py
deleted file mode 100644 (file)
index f0a5996..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-import textwrap
-
-from django.conf import settings
-from django.core.checks import Error
-from django.core.checks import Warning
-from django.core.checks import register
-from django.core.exceptions import FieldError
-from django.db.utils import OperationalError
-from django.db.utils import ProgrammingError
-
-from documents.signals import document_consumer_declaration
-from documents.templating.utils import convert_format_str_to_template_format
-
-
-@register()
-def changed_password_check(app_configs, **kwargs):
-    from paperless.db import GnuPG
-    from paperless.models import Document
-
-    try:
-        encrypted_doc = (
-            Document.objects.filter(
-                storage_type=Document.STORAGE_TYPE_GPG,
-            )
-            .only("pk", "storage_type")
-            .first()
-        )
-    except (OperationalError, ProgrammingError, FieldError):
-        return []  # No documents table yet
-
-    if encrypted_doc:
-        if not settings.PASSPHRASE:
-            return [
-                Error(
-                    "The database contains encrypted documents but no password is set.",
-                ),
-            ]
-
-        if not GnuPG.decrypted(encrypted_doc.source_file):
-            return [
-                Error(
-                    textwrap.dedent(
-                        """
-                The current password doesn't match the password of the
-                existing documents.
-
-                If you intend to change your password, you must first export
-                all of the old documents, start fresh with the new password
-                and then re-import them."
-                """,
-                    ),
-                ),
-            ]
-
-    return []
-
-
-@register()
-def parser_check(app_configs, **kwargs):
-    parsers = []
-    for response in document_consumer_declaration.send(None):
-        parsers.append(response[1])
-
-    if len(parsers) == 0:
-        return [
-            Error(
-                "No parsers found. This is a bug. The consumer won't be "
-                "able to consume any documents without parsers.",
-            ),
-        ]
-    else:
-        return []
-
-
-@register()
-def filename_format_check(app_configs, **kwargs):
-    if settings.FILENAME_FORMAT:
-        converted_format = convert_format_str_to_template_format(
-            settings.FILENAME_FORMAT,
-        )
-        if converted_format != settings.FILENAME_FORMAT:
-            return [
-                Warning(
-                    f"Filename format {settings.FILENAME_FORMAT} is using the old style, please update to use double curly brackets",
-                    hint=converted_format,
-                ),
-            ]
-    return []
index c10eaa0c262277d97f213e769fda7048214557d9..8f6ab795b3a294f9ae87eea170809ac07464813c 100644 (file)
@@ -6,10 +6,10 @@ from django.core.checks import Warning
 from django.test import TestCase
 from django.test import override_settings
 
-from documents.checks import changed_password_check
-from documents.checks import filename_format_check
-from documents.checks import parser_check
 from documents.tests.factories import DocumentFactory
+from paperless.checks import changed_password_check
+from paperless.checks import filename_format_check
+from paperless.checks import parser_check
 from paperless.models import Document
 
 
index ac832693507f997d172298f01491d678fc7f070d..a700b3aec2972901511ad8094e4ca8b4ae072a5b 100644 (file)
@@ -1,6 +1,8 @@
 from paperless.celery import app as celery_app
 from paperless.checks import audit_log_check
 from paperless.checks import binaries_check
+from paperless.checks import changed_password_check
+from paperless.checks import parser_check
 from paperless.checks import paths_check
 from paperless.checks import settings_values_check
 
@@ -8,6 +10,8 @@ __all__ = [
     "audit_log_check",
     "binaries_check",
     "celery_app",
+    "changed_password_check",
+    "parser_check",
     "paths_check",
     "settings_values_check",
 ]
index 150fcb201125d8d3b9a23e925e7728bd29725fa9..7aac6da0ec72f0c0ca012c55f20f39d74d69da2e 100644 (file)
@@ -3,12 +3,19 @@ import os
 import pwd
 import shutil
 import stat
+import textwrap
 
 from django.conf import settings
 from django.core.checks import Error
 from django.core.checks import Warning
 from django.core.checks import register
+from django.core.exceptions import FieldError
 from django.db import connections
+from django.db.utils import OperationalError
+from django.db.utils import ProgrammingError
+
+from documents.signals import document_consumer_declaration
+from documents.templating.utils import convert_format_str_to_template_format
 
 exists_message = "{} is set but doesn't exist."
 exists_hint = "Create a directory at {}"
@@ -212,3 +219,79 @@ def audit_log_check(app_configs, **kwargs):
         )
 
     return result
+
+
+@register()
+def changed_password_check(app_configs, **kwargs):
+    from paperless.db import GnuPG
+    from paperless.models import Document
+
+    try:
+        encrypted_doc = (
+            Document.objects.filter(
+                storage_type=Document.STORAGE_TYPE_GPG,
+            )
+            .only("pk", "storage_type")
+            .first()
+        )
+    except (OperationalError, ProgrammingError, FieldError):
+        return []  # No documents table yet
+
+    if encrypted_doc:
+        if not settings.PASSPHRASE:
+            return [
+                Error(
+                    "The database contains encrypted documents but no password is set.",
+                ),
+            ]
+
+        if not GnuPG.decrypted(encrypted_doc.source_file):
+            return [
+                Error(
+                    textwrap.dedent(
+                        """
+                The current password doesn't match the password of the
+                existing documents.
+
+                If you intend to change your password, you must first export
+                all of the old documents, start fresh with the new password
+                and then re-import them."
+                """,
+                    ),
+                ),
+            ]
+
+    return []
+
+
+@register()
+def parser_check(app_configs, **kwargs):
+    parsers = []
+    for response in document_consumer_declaration.send(None):
+        parsers.append(response[1])
+
+    if len(parsers) == 0:
+        return [
+            Error(
+                "No parsers found. This is a bug. The consumer won't be "
+                "able to consume any documents without parsers.",
+            ),
+        ]
+    else:
+        return []
+
+
+@register()
+def filename_format_check(app_configs, **kwargs):
+    if settings.FILENAME_FORMAT:
+        converted_format = convert_format_str_to_template_format(
+            settings.FILENAME_FORMAT,
+        )
+        if converted_format != settings.FILENAME_FORMAT:
+            return [
+                Warning(
+                    f"Filename format {settings.FILENAME_FORMAT} is using the old style, please update to use double curly brackets",
+                    hint=converted_format,
+                ),
+            ]
+    return []