mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
Fix note sorting, testing, bump search index version
This commit is contained in:
parent
10f9b91c44
commit
df203311fe
@ -80,7 +80,7 @@ django_checks() {
|
||||
|
||||
search_index() {
|
||||
|
||||
local -r index_version=4
|
||||
local -r index_version=5
|
||||
local -r index_version_file=${DATA_DIR}/.index_version
|
||||
|
||||
if [[ (! -f "${index_version_file}") || $(<"${index_version_file}") != "$index_version" ]]; then
|
||||
|
@ -54,6 +54,7 @@ def get_schema():
|
||||
path_id=NUMERIC(),
|
||||
has_path=BOOLEAN(),
|
||||
notes=TEXT(),
|
||||
num_notes=NUMERIC(sortable=True, signed=False),
|
||||
owner=TEXT(),
|
||||
owner_id=NUMERIC(),
|
||||
has_owner=BOOLEAN(),
|
||||
@ -138,6 +139,7 @@ def update_document(writer: AsyncWriter, doc: Document):
|
||||
path_id=doc.storage_path.id if doc.storage_path else None,
|
||||
has_path=doc.storage_path is not None,
|
||||
notes=notes,
|
||||
num_notes=len(notes),
|
||||
owner=doc.owner.username if doc.owner else None,
|
||||
owner_id=doc.owner.id if doc.owner else None,
|
||||
has_owner=doc.owner is not None,
|
||||
@ -266,6 +268,7 @@ class DelayedQuery:
|
||||
"correspondent__name": "correspondent",
|
||||
"document_type__name": "type",
|
||||
"archive_serial_number": "asn",
|
||||
"num_notes": "num_notes",
|
||||
}
|
||||
|
||||
if field.startswith("-"):
|
||||
|
@ -1150,6 +1150,8 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
||||
self.assertEqual(r.data["count"], 4)
|
||||
|
||||
def test_search_sorting(self):
|
||||
u1 = User.objects.create_user("user1")
|
||||
u2 = User.objects.create_user("user2")
|
||||
c1 = Correspondent.objects.create(name="corres Ax")
|
||||
c2 = Correspondent.objects.create(name="corres Cx")
|
||||
c3 = Correspondent.objects.create(name="corres Bx")
|
||||
@ -1159,6 +1161,7 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
||||
content="test",
|
||||
archive_serial_number=2,
|
||||
title="3",
|
||||
owner=u1,
|
||||
)
|
||||
d2 = Document.objects.create(
|
||||
checksum="2",
|
||||
@ -1166,6 +1169,7 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
||||
content="test",
|
||||
archive_serial_number=3,
|
||||
title="2",
|
||||
owner=u2,
|
||||
)
|
||||
d3 = Document.objects.create(
|
||||
checksum="3",
|
||||
@ -1174,6 +1178,21 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
||||
archive_serial_number=1,
|
||||
title="1",
|
||||
)
|
||||
Note.objects.create(
|
||||
note="This is a note.",
|
||||
document=d1,
|
||||
user=u1,
|
||||
)
|
||||
Note.objects.create(
|
||||
note="This is a note.",
|
||||
document=d1,
|
||||
user=u1,
|
||||
)
|
||||
Note.objects.create(
|
||||
note="This is a note.",
|
||||
document=d3,
|
||||
user=u1,
|
||||
)
|
||||
|
||||
with AsyncWriter(index.open_index()) as writer:
|
||||
for doc in Document.objects.all():
|
||||
@ -1202,6 +1221,14 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
||||
search_query("&ordering=-correspondent__name"),
|
||||
[d2.id, d3.id, d1.id],
|
||||
)
|
||||
self.assertListEqual(
|
||||
search_query("&ordering=num_notes"),
|
||||
[d2.id, d3.id, d1.id],
|
||||
)
|
||||
self.assertListEqual(
|
||||
search_query("&ordering=-num_notes"),
|
||||
[d1.id, d3.id, d2.id],
|
||||
)
|
||||
|
||||
def test_statistics(self):
|
||||
doc1 = Document.objects.create(
|
||||
|
Loading…
x
Reference in New Issue
Block a user