diff --git a/src/documents/checks.py b/src/documents/checks.py index 3e3ddb1fb..b6da5bfc9 100644 --- a/src/documents/checks.py +++ b/src/documents/checks.py @@ -2,6 +2,7 @@ import textwrap from django.conf import settings from django.core.checks import Error, register +from django.core.exceptions import FieldError from django.db.utils import OperationalError, ProgrammingError from documents.signals import document_consumer_declaration @@ -16,7 +17,7 @@ def changed_password_check(app_configs, **kwargs): try: encrypted_doc = Document.objects.filter( storage_type=Document.STORAGE_TYPE_GPG).first() - except (OperationalError, ProgrammingError): + except (OperationalError, ProgrammingError, FieldError): return [] # No documents table yet if encrypted_doc: diff --git a/src/documents/migrations/1008_auto_20201216_1736.py b/src/documents/migrations/1008_auto_20201216_1736.py new file mode 100644 index 000000000..d94f4767f --- /dev/null +++ b/src/documents/migrations/1008_auto_20201216_1736.py @@ -0,0 +1,34 @@ +# Generated by Django 3.1.4 on 2020-12-16 17:36 + +from django.db import migrations +import django.db.models.functions.text + + +class Migration(migrations.Migration): + + dependencies = [ + ('documents', '1007_savedview_savedviewfilterrule'), + ] + + operations = [ + migrations.AlterModelOptions( + name='correspondent', + options={'ordering': (django.db.models.functions.text.Lower('name'),)}, + ), + migrations.AlterModelOptions( + name='document', + options={'ordering': ('-created',)}, + ), + migrations.AlterModelOptions( + name='documenttype', + options={'ordering': (django.db.models.functions.text.Lower('name'),)}, + ), + migrations.AlterModelOptions( + name='savedview', + options={'ordering': (django.db.models.functions.text.Lower('name'),)}, + ), + migrations.AlterModelOptions( + name='tag', + options={'ordering': (django.db.models.functions.text.Lower('name'),)}, + ), + ] diff --git a/src/documents/models.py b/src/documents/models.py index 245bba6e9..02a293eeb 100755 --- a/src/documents/models.py +++ b/src/documents/models.py @@ -13,7 +13,6 @@ from django.contrib.auth.models import User from django.db import models from django.db.models.functions import Lower from django.utils import timezone -from django.utils.text import slugify from documents.file_handling import archive_name_from_filename from documents.parsers import get_default_file_extension @@ -80,9 +79,6 @@ class Correspondent(MatchingModel): # better safe than sorry. SAFE_REGEX = re.compile(r"^[\w\- ,.']+$") - class Meta: - ordering = ("name",) - class Tag(MatchingModel): @@ -206,7 +202,7 @@ class Document(models.Model): ) class Meta: - ordering = ("correspondent", "title") + ordering = ("-created",) def __str__(self): created = datetime.date.isoformat(self.created) diff --git a/src/documents/tests/test_api.py b/src/documents/tests/test_api.py index e0a64664f..49dddee87 100644 --- a/src/documents/tests/test_api.py +++ b/src/documents/tests/test_api.py @@ -169,15 +169,13 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): self.assertEqual(response.status_code, 200) results = response.data['results'] self.assertEqual(len(results), 2) - self.assertEqual(results[0]['id'], doc2.id) - self.assertEqual(results[1]['id'], doc3.id) + self.assertCountEqual([results[0]['id'], results[1]['id']], [doc2.id, doc3.id]) response = self.client.get("/api/documents/?tags__id__in={},{}".format(tag_inbox.id, tag_3.id)) self.assertEqual(response.status_code, 200) results = response.data['results'] self.assertEqual(len(results), 2) - self.assertEqual(results[0]['id'], doc1.id) - self.assertEqual(results[1]['id'], doc3.id) + self.assertCountEqual([results[0]['id'], results[1]['id']], [doc1.id, doc3.id]) response = self.client.get("/api/documents/?tags__id__all={},{}".format(tag_2.id, tag_3.id)) self.assertEqual(response.status_code, 200) @@ -199,8 +197,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): self.assertEqual(response.status_code, 200) results = response.data['results'] self.assertEqual(len(results), 2) - self.assertEqual(results[0]['id'], doc1.id) - self.assertEqual(results[1]['id'], doc2.id) + self.assertCountEqual([results[0]['id'], results[1]['id']], [doc1.id, doc2.id]) response = self.client.get("/api/documents/?tags__id__none={},{}".format(tag_3.id, tag_2.id)) self.assertEqual(response.status_code, 200)