stumpylog
d5db659281
Fix: cache document/field on updated CustomFieldInstance rows, not just created ones
...
update_or_create() fetches an existing row via plain .get() before saving
it, so passing already-resolved document/field objects as lookup kwargs
never actually cached them on that row. Replaced with an explicit
get-or-build + assign + save so both paths get the cache.
Also: only build docs_by_id when there's something to add (a remove-only
call has no use for it), and resolve the removal pass's source documents
via select_related instead, so it doesn't force-load irrelevant documents.
Added tests for the update-path caching and the removal-path batching.
2026-08-26 15:01:28 -07:00
stumpylog
1910c3b542
Perf: batch CustomField/Document lookups in modify_custom_fields
...
modify_custom_fields looped documents x fields, re-.get()-ing the
CustomField queryset per iteration and Document.objects.get() per doc
for DOCUMENTLINK fields -- same shape as the earlier custom_fields
serializer N+1 (#13779 ), just nested one level deeper. Resolve both
into dicts once up front instead. Also pass the resolved objects
(not bare ids) to update_or_create so newly-created CustomFieldInstance
rows cache their field/document FK, avoiding a re-fetch when auditlog's
post_save receiver calls str(instance) (which touches .field.name).
docs_by_id defers `content` (the one field guaranteed both large and
unused by this function or its receivers) rather than using .only(),
since .only() would just turn the filename-generation signal's other
field access into a deferred-reload N+1.
2026-08-26 15:01:07 -07:00
shamoon and GitHub
e389298aab
Enhancement: merge documents as versions ( #13515 )
2026-08-19 07:20:14 -07:00
shamoon and GitHub
6f8e39c2e0
Fix: avoid unnecessary creating new PDF with pw removal workflow ( #12948 )
2026-06-07 20:30:08 +00:00
shamoon and GitHub
0a6e0db186
Fix: use chord.on_error before apply_async ( #12842 )
2026-05-24 14:42:11 -07:00
bd86dca57e
Fix: Password removal source file location ( #12830 )
...
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com >
2026-05-19 13:52:04 -07:00
Trenton H and GitHub
c3b353873b
use a few named tuples and data classes instead of so much unpacking ( #12709 )
2026-05-04 18:00:48 -07:00
Trenton H and GitHub
5010f37174
Fix: avoid unnecessary close_old_connections in Celery task dispatch ( #12701 )
2026-05-04 06:02:28 -07:00
Trenton H and GitHub
fbf4e32646
Chore: Converts all call sites and test asserts to use apply_async and headers ( #12591 )
2026-04-20 11:40:04 -07:00
aed9abe48c
Feature: Replace Whoosh with tantivy search backend ( #12471 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: Antoine Mérino <3023499+Merinorus@users.noreply.github.com >
2026-04-02 12:38:22 -07:00
shamoon
866c9fd858
Fix: correct merge bulk edit indentation
2026-03-15 23:50:54 -07:00
shamoon and GitHub
731448a8f9
Fixhancement: support version-specific edits ( #12233 )
2026-03-06 11:59:26 -08:00
shamoon and GitHub
ceee769e26
Feature: document file versions ( #12061 )
2026-02-26 16:46:54 +00:00
shamoon and GitHub
6192915be7
Fixhancement: improve ASN handling with PDF operations ( #11689 )
2026-02-06 21:14:02 +00:00
Sebastian Steinbeißer and GitHub
3b5ffbf9fa
Chore(mypy): Annotate None returns for typing improvements ( #11213 )
2026-02-02 08:44:12 -08:00
shamoon and GitHub
5b1e66be91
Feature: password removal action ( #11656 )
2026-01-08 21:36:11 +00:00
shamoon and GitHub
7604a0b583
Fix: prevent ASN collisions for merge operations ( #11634 )
2025-12-19 20:05:34 -08:00
4cff907ba0
Feature: Nested Tags ( #10833 )
...
---------
Co-authored-by: Trenton H <797416+stumpylog@users.noreply.github.com >
2025-09-17 21:41:39 +00:00
shamoon and GitHub
44b8c4881a
Fix: fix error when bulk adding empty doc link custom fields ( #10832 )
2025-09-11 13:19:23 -07:00
shamoon and GitHub
6d72ee795f
Feature: PDF editor ( #10318 )
2025-08-11 17:29:48 +00:00
shamoon and GitHub
6dea158de9
Fix: prevent self-linking when bulk edit doc link ( #9629 )
2025-04-14 07:12:50 -07:00
shamoon and GitHub
1e489a0666
Enhancement: add switch to allow merging non-PDFs with archive version ( #9305 )
2025-03-05 20:46:51 +00:00
Trenton H and GitHub
827fcba277
Chore: Reduce imports for a slight memory improvement ( #9217 )
2025-02-24 15:06:14 -08:00
Sebastian Steinbeißer and GitHub
e560fa3be0
Chore: Enable ruff FBT ( #8645 )
2025-02-07 09:12:03 -08:00
shamoon and GitHub
52ab07c673
Fix: deselect and trigger refresh for deleted documents from bulk operations with "delete originals" ( #8996 )
2025-02-07 00:47:50 +00:00
shamoon and GitHub
54e72d5b60
Fix: also ensure symmetric doc link removal on bulk edit ( #8963 )
2025-01-31 07:39:22 -08:00
shamoon and GitHub
5b8c9ef5fc
Fix: reflect doc links in bulk modify custom fields ( #8962 )
2025-01-30 10:55:05 -08:00
shamoon and GitHub
765bf1d11c
Fix: use hard delete when bulk editing custom fields ( #8740 )
2025-01-14 16:47:29 -08:00
shamoon and GitHub
e4f69dc945
Feature: bulk edit custom field values ( #8428 )
2024-12-09 17:35:49 +00:00
shamoon and GitHub
9c1561adfb
Change: change update content to handle archive disabled ( #8315 )
2024-11-20 20:01:13 +00:00
Sebastian Steinbeißer and GitHub
74d0c9fda5
Switch src/documents/bulk*.py from os.path to pathlib.Path ( #7862 )
...
Also:
* Ensure that the ruff PTH check remains enabled for these files and
all files added in the future.
* Add some type annotations.
2024-11-12 17:04:07 +00:00
shamoon and GitHub
28fdb170bf
Fix: handle uuid fields created under mariadb and Django 4 ( #8034 )
2024-10-28 13:54:16 +00:00
Trenton H and GitHub
e6f59472e4
Chore: Drop Python 3.9 support ( #7774 )
2024-09-26 12:22:24 -07:00
c92c3e224a
Feature: page count ( #7750 )
...
---------
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com >
2024-09-25 08:22:12 -07:00
shamoon and GitHub
a64d457c30
Enhancement: use request user as owner of split / merge docs ( #7112 )
2024-06-27 13:46:49 -07:00
shamoon and GitHub
f3cf608caa
Fix: use temp dir for split / merge ( #7105 )
2024-06-26 10:46:59 -07:00
Dominik Bruhn and shamoon
d1ac15baa9
Enhancement: support delete originals after split / merge ( #6935 )
...
---------
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com >
2024-06-08 11:29:03 -07:00
shamoon and GitHub
d558367642
Change: rename redo OCR to reprocess ( #6866 )
2024-05-31 18:41:52 +00:00
shamoon and GitHub
3e62f13f96
Enhancement: delete pages PDF action ( #6772 )
2024-05-22 23:01:15 +00:00
Trenton H and GitHub
622f624132
Chore: Change the code formatter to Ruff ( #6756 )
...
* Changing the formatting to ruff-format
* Replaces references to black to ruff or ruff format, removes black from dependencies
2024-05-18 02:26:50 +00:00
shamoon and GitHub
caec0ed4d1
Fix: allow bulk edit with existing fields ( #6625 )
2024-05-07 14:26:07 -07:00
Trenton H and GitHub
7be7185418
Handcrafts SQL queries a little more to reduce the query count and/or the amount of returned data ( #6489 )
2024-04-30 07:37:09 -07:00
shamoon and GitHub
63e1f9f5d3
Feature: custom fields filtering & bulk editing ( #6484 )
2024-04-26 15:10:03 -07:00
Trenton H and GitHub
ae2b302962
Fix: Rotation fails due to celery chord ( #6306 )
...
Use Celery immutable signature so it does not take the result of the header task
2024-04-06 23:26:48 +00:00
shamoon and GitHub
4af8070450
Feature: PDF actions - merge, split & rotate ( #6094 )
2024-03-25 18:41:24 -07:00
shamoon and GitHub
454098630b
Enhancement: mergeable bulk edit permissions ( #5508 )
2024-02-01 19:56:57 +00:00
Trenton H
6f163111ce
Upgrades black to v23, upgrades ruff
2023-04-26 09:35:27 -07:00
Trenton H
3bcbd05252
Fixes ruff not running isort against the codebase
2023-04-26 09:35:27 -07:00
Jonas Winkler
c87ca25f22
fix database locked error
2023-03-03 23:30:12 +01:00
Michael Shamoon
737f00df3a
Fix bulk setting null owner / permissions
2022-12-14 00:47:54 -08:00