mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-07-20 17:44:56 -05:00
Compare commits
No commits in common. "6b248ef1406305d3c5cef66f5e98cbbb3409a59c" and "a9085c65c59ebe2823a6081fd0c5d2267feb4644" have entirely different histories.
6b248ef140
...
a9085c65c5
@ -18,11 +18,7 @@ from django.core.validators import MaxLengthValidator
|
|||||||
from django.core.validators import RegexValidator
|
from django.core.validators import RegexValidator
|
||||||
from django.core.validators import integer_validator
|
from django.core.validators import integer_validator
|
||||||
from django.utils.crypto import get_random_string
|
from django.utils.crypto import get_random_string
|
||||||
from django.utils.dateparse import parse_datetime
|
|
||||||
from django.utils.text import slugify
|
from django.utils.text import slugify
|
||||||
from django.utils.timezone import get_current_timezone
|
|
||||||
from django.utils.timezone import is_naive
|
|
||||||
from django.utils.timezone import make_aware
|
|
||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext as _
|
||||||
from drf_spectacular.utils import extend_schema_field
|
from drf_spectacular.utils import extend_schema_field
|
||||||
from drf_spectacular.utils import extend_schema_serializer
|
from drf_spectacular.utils import extend_schema_serializer
|
||||||
@ -976,11 +972,11 @@ class DocumentSerializer(
|
|||||||
and ":" in data["created"]
|
and ":" in data["created"]
|
||||||
):
|
):
|
||||||
# Handle old format of isoformat datetime string
|
# Handle old format of isoformat datetime string
|
||||||
parsed = parse_datetime(data["created"])
|
try:
|
||||||
if parsed:
|
data["created"] = datetime.fromisoformat(data["created"]).date()
|
||||||
if is_naive(parsed):
|
except ValueError: # pragma: no cover
|
||||||
parsed = make_aware(parsed, get_current_timezone())
|
# Just pass, validation will catch it
|
||||||
data["created"] = parsed.astimezone().date()
|
pass
|
||||||
return super().to_internal_value(data)
|
return super().to_internal_value(data)
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
|
@ -203,27 +203,6 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
|||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
self.assertEqual(response.data["created"], "2023-01-01")
|
self.assertEqual(response.data["created"], "2023-01-01")
|
||||||
|
|
||||||
# legacy datetime format
|
|
||||||
response = self.client.patch(
|
|
||||||
f"/api/documents/{doc.pk}/",
|
|
||||||
{"created": "2023-02-01T23:00:00Z"},
|
|
||||||
format="json",
|
|
||||||
)
|
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
||||||
doc.refresh_from_db()
|
|
||||||
self.assertEqual(doc.created, date(2023, 2, 1))
|
|
||||||
|
|
||||||
# naive datetime
|
|
||||||
response = self.client.patch(
|
|
||||||
f"/api/documents/{doc.pk}/",
|
|
||||||
{"created": "2023-06-28T23:00:00"},
|
|
||||||
format="json",
|
|
||||||
)
|
|
||||||
|
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
||||||
doc.refresh_from_db()
|
|
||||||
self.assertEqual(doc.created, date(2023, 6, 28))
|
|
||||||
|
|
||||||
def test_document_update_legacy_created_format(self):
|
def test_document_update_legacy_created_format(self):
|
||||||
"""
|
"""
|
||||||
GIVEN:
|
GIVEN:
|
||||||
|
@ -2,7 +2,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-29 04:39+0000\n"
|
"POT-Creation-Date: 2025-06-19 18:51+0000\n"
|
||||||
"PO-Revision-Date: 2022-02-17 04:17\n"
|
"PO-Revision-Date: 2022-02-17 04:17\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: English\n"
|
"Language-Team: English\n"
|
||||||
@ -1176,21 +1176,21 @@ msgstr ""
|
|||||||
msgid "workflow runs"
|
msgid "workflow runs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:139
|
#: documents/serialisers.py:135
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Invalid regular expression: %(error)s"
|
msgid "Invalid regular expression: %(error)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:565
|
#: documents/serialisers.py:561
|
||||||
msgid "Invalid color."
|
msgid "Invalid color."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:1649
|
#: documents/serialisers.py:1645
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "File type %(type)s not supported"
|
msgid "File type %(type)s not supported"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:1743
|
#: documents/serialisers.py:1739
|
||||||
msgid "Invalid variable detected."
|
msgid "Invalid variable detected."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user