And some more

This commit is contained in:
shamoon 2025-04-03 23:23:44 -07:00
parent 630d9e090a
commit 1a5988ccfb
No known key found for this signature in database
10 changed files with 54 additions and 82 deletions

View File

@ -740,6 +740,19 @@ class DocumentFilterSet(FilterSet):
mime_type = MimeTypeFilter()
# Backwards compatibility
created__date__gt = Filter(
field_name="created",
label="Created after",
lookup_expr="gt",
)
created__date__lt = Filter(
field_name="created",
label="Created before",
lookup_expr="lt",
)
class Meta:
model = Document
fields = {

View File

@ -1,7 +1,7 @@
# Generated by Django 5.1.7 on 2025-04-04 01:08
import datetime
import django
from django.db import migrations
from django.db import models
@ -17,7 +17,7 @@ class Migration(migrations.Migration):
name="created",
field=models.DateField(
db_index=True,
default=datetime.date(2025, 4, 4),
default=django.utils.timezone.now,
verbose_name="created",
),
),

View File

@ -214,7 +214,7 @@ class Document(SoftDeleteModel, ModelWithOwner):
created = models.DateField(
_("created"),
default=timezone.now().date(),
default=timezone.now,
db_index=True,
)

View File

@ -422,7 +422,7 @@ class OwnedObjectListSerializer(serializers.ListSerializer):
class CorrespondentSerializer(MatchingModelSerializer, OwnedObjectSerializer):
last_correspondence = serializers.DateTimeField(read_only=True, required=False)
last_correspondence = serializers.DateField(read_only=True, required=False)
class Meta:
model = Correspondent

View File

@ -4,7 +4,6 @@ from unittest import mock
from django.contrib.auth.models import Permission
from django.contrib.auth.models import User
from django.utils import timezone
from rest_framework import status
from rest_framework.test import APITestCase
@ -104,13 +103,13 @@ class TestApiObjects(DirectoriesMixin, APITestCase):
Document.objects.create(
mime_type="application/pdf",
correspondent=self.c1,
created=timezone.make_aware(datetime.datetime(2022, 1, 1)),
created=datetime.date(2022, 1, 1),
checksum="123",
)
Document.objects.create(
mime_type="application/pdf",
correspondent=self.c1,
created=timezone.make_aware(datetime.datetime(2022, 1, 2)),
created=datetime.date(2022, 1, 2),
checksum="456",
)

View File

@ -721,7 +721,7 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase):
d3.tags.add(t2)
d4 = Document.objects.create(
checksum="4",
created=timezone.make_aware(datetime.datetime(2020, 7, 13)),
created=datetime.date(2020, 7, 13),
content="test",
original_filename="doc4.pdf",
)

View File

@ -1,4 +1,5 @@
import shutil
from datetime import date
from pathlib import Path
from unittest import mock
@ -39,18 +40,24 @@ class TestBulkEdit(DirectoriesMixin, TestCase):
self.dt2 = DocumentType.objects.create(name="dt2")
self.t1 = Tag.objects.create(name="t1")
self.t2 = Tag.objects.create(name="t2")
self.doc1 = Document.objects.create(checksum="A", title="A")
self.doc1 = Document.objects.create(
checksum="A",
title="A",
created=date(2023, 1, 1),
)
self.doc2 = Document.objects.create(
checksum="B",
title="B",
correspondent=self.c1,
document_type=self.dt1,
created=date(2023, 1, 2),
)
self.doc3 = Document.objects.create(
checksum="C",
title="C",
correspondent=self.c2,
document_type=self.dt2,
created=date(2023, 1, 3),
)
self.doc4 = Document.objects.create(checksum="D", title="D")
self.doc5 = Document.objects.create(checksum="E", title="E")
@ -500,6 +507,7 @@ class TestPDFActions(DirectoriesMixin, TestCase):
filename=sample2,
mime_type="application/pdf",
page_count=8,
created=date(2023, 1, 2),
)
self.doc2.archive_filename = sample2_archive
self.doc2.save()
@ -528,6 +536,7 @@ class TestPDFActions(DirectoriesMixin, TestCase):
title="D",
filename=img_doc,
mime_type="image/jpeg",
created=date(2023, 1, 3),
)
self.img_doc.archive_filename = img_doc_archive
self.img_doc.save()

View File

@ -7,7 +7,6 @@ from pathlib import Path
from unittest import mock
from unittest.mock import MagicMock
from dateutil import tz
from django.conf import settings
from django.contrib.auth.models import Group
from django.contrib.auth.models import User
@ -919,7 +918,7 @@ class TestConsumerCreatedDate(DirectoriesMixin, GetConsumerMixin, TestCase):
self.assertEqual(
document.created,
datetime.datetime(1996, 2, 20, tzinfo=tz.gettz(settings.TIME_ZONE)),
datetime.date(1996, 2, 20),
)
@override_settings(FILENAME_DATE_ORDER="YMD")
@ -949,7 +948,7 @@ class TestConsumerCreatedDate(DirectoriesMixin, GetConsumerMixin, TestCase):
self.assertEqual(
document.created,
datetime.datetime(2022, 2, 1, tzinfo=tz.gettz(settings.TIME_ZONE)),
datetime.date(2022, 2, 1),
)
def test_consume_date_filename_date_use_content(self):
@ -979,7 +978,7 @@ class TestConsumerCreatedDate(DirectoriesMixin, GetConsumerMixin, TestCase):
self.assertEqual(
document.created,
datetime.datetime(1996, 2, 20, tzinfo=tz.gettz(settings.TIME_ZONE)),
datetime.date(1996, 2, 20),
)
@override_settings(
@ -1011,7 +1010,7 @@ class TestConsumerCreatedDate(DirectoriesMixin, GetConsumerMixin, TestCase):
self.assertEqual(
document.created,
datetime.datetime(1997, 2, 20, tzinfo=tz.gettz(settings.TIME_ZONE)),
datetime.date(1997, 2, 20),
)

View File

@ -1,12 +1,11 @@
import shutil
import tempfile
import zoneinfo
from datetime import date
from pathlib import Path
from unittest import mock
from django.test import TestCase
from django.test import override_settings
from django.utils import timezone
from documents.models import Correspondent
from documents.models import Document
@ -81,60 +80,15 @@ class TestDocument(TestCase):
doc = Document(
mime_type="application/pdf",
title="test",
created=timezone.datetime(2020, 12, 25, tzinfo=zoneinfo.ZoneInfo("UTC")),
created=date(2020, 12, 25),
)
self.assertEqual(doc.get_public_filename(), "2020-12-25 test.pdf")
@override_settings(
TIME_ZONE="Europe/Berlin",
)
def test_file_name_with_timezone(self):
# See https://docs.djangoproject.com/en/4.0/ref/utils/#django.utils.timezone.now
# The default for created is an aware datetime in UTC
# This does that, just manually, with a fixed date
local_create_date = timezone.datetime(
2020,
12,
25,
tzinfo=zoneinfo.ZoneInfo("Europe/Berlin"),
)
utc_create_date = local_create_date.astimezone(zoneinfo.ZoneInfo("UTC"))
doc = Document(
mime_type="application/pdf",
title="test",
created=utc_create_date,
)
# Ensure the create date would cause an off by 1 if not properly created above
self.assertEqual(utc_create_date.date().day, 24)
self.assertEqual(doc.get_public_filename(), "2020-12-25 test.pdf")
local_create_date = timezone.datetime(
2020,
1,
1,
tzinfo=zoneinfo.ZoneInfo("Europe/Berlin"),
)
utc_create_date = local_create_date.astimezone(zoneinfo.ZoneInfo("UTC"))
doc = Document(
mime_type="application/pdf",
title="test",
created=utc_create_date,
)
# Ensure the create date would cause an off by 1 in the year if not properly created above
self.assertEqual(utc_create_date.date().year, 2019)
self.assertEqual(doc.get_public_filename(), "2020-01-01 test.pdf")
def test_file_name_jpg(self):
doc = Document(
mime_type="image/jpeg",
title="test",
created=timezone.datetime(2020, 12, 25, tzinfo=zoneinfo.ZoneInfo("UTC")),
created=date(2020, 12, 25),
)
self.assertEqual(doc.get_public_filename(), "2020-12-25 test.jpg")
@ -142,7 +96,7 @@ class TestDocument(TestCase):
doc = Document(
mime_type="application/zip",
title="test",
created=timezone.datetime(2020, 12, 25, tzinfo=zoneinfo.ZoneInfo("UTC")),
created=date(2020, 12, 25),
)
self.assertEqual(doc.get_public_filename(), "2020-12-25 test.zip")
@ -150,6 +104,6 @@ class TestDocument(TestCase):
doc = Document(
mime_type="image/jpegasd",
title="test",
created=timezone.datetime(2020, 12, 25, tzinfo=zoneinfo.ZoneInfo("UTC")),
created=date(2020, 12, 25),
)
self.assertEqual(doc.get_public_filename(), "2020-12-25 test")

View File

@ -912,7 +912,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
def test_date(self):
doc = Document.objects.create(
title="does not matter",
created=timezone.make_aware(datetime.datetime(2020, 5, 21, 7, 36, 51, 153)),
created=datetime.date(2020, 5, 21),
mime_type="application/pdf",
pk=2,
checksum="2",
@ -930,7 +930,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
"""
doc = Document.objects.create(
title="does not matter",
created=timezone.make_aware(datetime.datetime(2020, 6, 25, 7, 36, 51, 153)),
created=datetime.date(2020, 6, 25),
mime_type="application/pdf",
pk=2,
checksum="2",
@ -951,7 +951,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
"""
doc = Document.objects.create(
title="does not matter",
created=timezone.make_aware(datetime.datetime(2020, 6, 25, 7, 36, 51, 153)),
created=datetime.date(2020, 6, 25),
mime_type="application/pdf",
pk=2,
checksum="2",
@ -979,7 +979,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
)
doc = Document.objects.create(
title="does not matter",
created=timezone.make_aware(datetime.datetime(2020, 6, 25, 7, 36, 51, 153)),
created=datetime.date(2020, 6, 25),
mime_type="application/pdf",
pk=2,
checksum="2",
@ -1007,7 +1007,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
"""
doc_a = Document.objects.create(
title="does not matter",
created=timezone.make_aware(datetime.datetime(2020, 6, 25, 7, 36, 51, 153)),
created=datetime.date(2020, 6, 25),
mime_type="application/pdf",
pk=2,
checksum="2",
@ -1019,7 +1019,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
)
doc_b = Document.objects.create(
title="does not matter",
created=timezone.make_aware(datetime.datetime(2020, 7, 25, 7, 36, 51, 153)),
created=datetime.date(2020, 7, 25),
mime_type="application/pdf",
pk=5,
checksum="abcde",
@ -1047,7 +1047,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
"""
doc_a = Document.objects.create(
title="does not matter",
created=timezone.make_aware(datetime.datetime(2020, 6, 25, 7, 36, 51, 153)),
created=datetime.date(2020, 6, 25),
mime_type="application/pdf",
pk=2,
checksum="2",
@ -1055,7 +1055,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
)
doc_b = Document.objects.create(
title="does not matter",
created=timezone.make_aware(datetime.datetime(2020, 7, 25, 7, 36, 51, 153)),
created=datetime.date(2020, 7, 25),
mime_type="application/pdf",
pk=5,
checksum="abcde",
@ -1074,9 +1074,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
def test_short_names_created(self):
doc = Document.objects.create(
title="The Title",
created=timezone.make_aware(
datetime.datetime(1989, 12, 21, 7, 36, 51, 153),
),
created=datetime.date(1989, 12, 2),
mime_type="application/pdf",
pk=2,
checksum="2",
@ -1236,7 +1234,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
doc_a = Document.objects.create(
title="Does Matter",
created=timezone.make_aware(datetime.datetime(2020, 6, 25, 7, 36, 51, 153)),
created=datetime.date(2020, 6, 25),
added=timezone.make_aware(datetime.datetime(2024, 10, 1, 7, 36, 51, 153)),
mime_type="application/pdf",
pk=2,
@ -1302,7 +1300,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
"""
doc_a = Document.objects.create(
title="Does Matter",
created=timezone.make_aware(datetime.datetime(2020, 6, 25, 7, 36, 51, 153)),
created=datetime.date(2020, 6, 25),
added=timezone.make_aware(datetime.datetime(2024, 10, 1, 7, 36, 51, 153)),
mime_type="application/pdf",
pk=2,
@ -1337,7 +1335,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
"""
doc_a = Document.objects.create(
title="Does Matter",
created=timezone.make_aware(datetime.datetime(2020, 6, 25, 7, 36, 51, 153)),
created=datetime.date(2020, 6, 25),
added=timezone.make_aware(datetime.datetime(2024, 10, 1, 7, 36, 51, 153)),
mime_type="application/pdf",
pk=2,
@ -1369,7 +1367,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
"""
doc_a = Document.objects.create(
title="Some Title",
created=timezone.make_aware(datetime.datetime(2020, 6, 25, 7, 36, 51, 153)),
created=datetime.date(2020, 6, 25),
added=timezone.make_aware(datetime.datetime(2024, 10, 1, 7, 36, 51, 153)),
mime_type="application/pdf",
pk=2,
@ -1474,7 +1472,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
"""
doc_a = Document.objects.create(
title="Some Title",
created=timezone.make_aware(datetime.datetime(2020, 6, 25, 7, 36, 51, 153)),
created=datetime.date(2020, 6, 25),
added=timezone.make_aware(datetime.datetime(2024, 10, 1, 7, 36, 51, 153)),
mime_type="application/pdf",
pk=2,
@ -1529,7 +1527,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase):
"""
doc = Document.objects.create(
title="Some Title! With @ Special # Characters",
created=timezone.make_aware(datetime.datetime(2020, 6, 25, 7, 36, 51, 153)),
created=datetime.date(2020, 6, 25),
added=timezone.make_aware(datetime.datetime(2024, 10, 1, 7, 36, 51, 153)),
mime_type="application/pdf",
pk=2,