Compare commits

...

13 Commits

Author SHA1 Message Date
shamoon
e4265d0594 Bump version to 2.10.2 2024-06-23 22:13:33 -07:00
shamoon
deda49c204 Merge branch 'dev' 2024-06-23 22:13:01 -07:00
github-actions[bot]
276abc1404 New Crowdin translations by GitHub Action (#7034)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-06-23 21:57:48 -07:00
shamoon
6defe24ae7 Fix: always update document modified property on bulk edit operations (#7079) 2024-06-23 12:11:24 -07:00
shamoon
6ed5d11758 Fix: correct frontend retrieval of trash delay setting (#7067) 2024-06-22 12:57:33 -07:00
Trenton H
9d34327a6d Resolves the casing warning in newer Docker versions 2024-06-22 11:30:06 -07:00
shamoon
63f164d099 Documentation: fix PAPERLESS_EMPTY_TRASH_DELAY name 2024-06-22 06:46:47 -07:00
shamoon
0f9710dc8f Fix: index fresh document data after update archive file (#7057) 2024-06-21 18:33:01 +00:00
shamoon
cccba47bd7 Fix: remove type attribute from object for Safari (#7056) 2024-06-21 11:22:18 -07:00
Trenton H
91585a1fa6 Prefer the metadata JSON file over the version JSON file (#7048) 2024-06-20 12:49:54 -07:00
shamoon
3bb6a32ab9 Update bug report note 2024-06-19 00:54:40 -07:00
shamoon
31f592453e Reset -dev version string 2024-06-18 21:23:34 -07:00
github-actions[bot]
56f5f93c48 Documentation: Add v2.10.1 changelog (#7029)
* Changelog v2.10.1 - GHA

* Update changelog.md

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-06-18 21:22:59 -07:00
21 changed files with 99 additions and 70 deletions

View File

@@ -9,7 +9,7 @@ body:
### ⚠️ Please remember: issues are for *bugs*
That is, something you believe affects every single user of Paperless-ngx, not just you. If you're not sure, start with one of the other options below.
Also, note that **Paperless-ngx does not perform OCR itself**, that is handled by other tools. Problems with OCR of specific files should likely be raised 'upstream', see https://github.com/ocrmypdf/OCRmyPDF/issues or https://github.com/tesseract-ocr/tesseract/issues
Also, note that **Paperless-ngx does not perform OCR or archive file creation itself**, those are handled by other tools. Problems with OCR or archive versions of specific files should likely be raised 'upstream', see https://github.com/ocrmypdf/OCRmyPDF/issues or https://github.com/tesseract-ocr/tesseract/issues
- type: markdown
attributes:
value: |

View File

@@ -21,7 +21,7 @@ RUN set -eux \
# Comments:
# - pipenv dependencies are not left in the final image
# - pipenv can't touch the final image somehow
FROM --platform=$BUILDPLATFORM docker.io/python:3.11-alpine as pipenv-base
FROM --platform=$BUILDPLATFORM docker.io/python:3.11-alpine AS pipenv-base
WORKDIR /usr/src/pipenv
@@ -37,7 +37,7 @@ RUN set -eux \
# Purpose: The final image
# Comments:
# - Don't leave anything extra in here
FROM docker.io/python:3.11-slim-bookworm as main-app
FROM docker.io/python:3.11-slim-bookworm AS main-app
LABEL org.opencontainers.image.authors="paperless-ngx team <hello@paperless-ngx.com>"
LABEL org.opencontainers.image.documentation="https://docs.paperless-ngx.com/"

View File

@@ -1,5 +1,11 @@
# Changelog
## paperless-ngx 2.10.1
### Bug Fixes
- Fix: dont require admin perms to view trash on frontend @shamoon ([#7028](https://github.com/paperless-ngx/paperless-ngx/pull/7028))
## paperless-ngx 2.10.0
### Features

View File

@@ -1366,7 +1366,7 @@ processing. This only has an effect if
## Trash
#### [`EMPTY_TRASH_DELAY=<num>`](#EMPTY_TRASH_DELAY) {#EMPTY_TRASH_DELAY}
#### [`PAPERLESS_EMPTY_TRASH_DELAY=<num>`](#PAPERLESS_EMPTY_TRASH_DELAY) {#PAPERLESS_EMPTY_TRASH_DELAY}
: Sets how long in days documents remain in the 'trash' before they are permanently deleted.

View File

@@ -481,7 +481,7 @@ as "System".
## Document Trash
When you first delete a document it is moved to the 'trash' until either it is explicitly deleted or it is automatically removed after a set amount of time has passed.
You can set how long documents remain in the trash before being automatically deleted with [`EMPTY_TRASH_DELAY`](configuration.md#EMPTY_TRASH_DELAY), which defaults
You can set how long documents remain in the trash before being automatically deleted with [`PAPERLESS_EMPTY_TRASH_DELAY`](configuration.md#PAPERLESS_EMPTY_TRASH_DELAY), which defaults
to 30 days. Until the file is actually deleted (e.g. the trash is emptied), all files and database content remains intact and can be restored at any point up until that time.
Additionally you may configure a directory where deleted files are moved to when they the trash is emptied with [`PAPERLESS_EMPTY_TRASH_DIR`](configuration.md#PAPERLESS_EMPTY_TRASH_DIR).

View File

@@ -364,7 +364,7 @@
</pdf-viewer>
</div>
} @else {
<object [data]="previewUrl | safeUrl" type="application/pdf" class="preview-sticky" width="100%"></object>
<object [data]="previewUrl | safeUrl" class="preview-sticky" width="100%"></object>
}
}
@case (ContentRenderType.Text) {

View File

@@ -63,7 +63,7 @@ export const SETTINGS_KEYS = {
'general-settings:document-editing:remove-inbox-tags',
SEARCH_DB_ONLY: 'general-settings:search:db-only',
SEARCH_FULL_TYPE: 'general-settings:search:more-link',
EMPTY_TRASH_DELAY: 'general-settings:trash:empty-trash-delay',
EMPTY_TRASH_DELAY: 'trash_delay',
}
export const SETTINGS: UiSetting[] = [

View File

@@ -5,7 +5,7 @@ export const environment = {
apiBaseUrl: document.baseURI + 'api/',
apiVersion: '5',
appTitle: 'Paperless-ngx',
version: '2.10.1',
version: '2.10.2',
webSocketHost: window.location.host,
webSocketProtocol: window.location.protocol == 'https:' ? 'wss:' : 'ws:',
webSocketBaseUrl: base_url.pathname + 'ws/',

View File

@@ -479,7 +479,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">198</context>
</context-group>
<target state="translated">يمكن إدارة جميع العلامات والمراسلين وأنواع الوثائق ومسارات التخزين باستخدام هذه الصفحات. ويمكن أيضا إنشاؤها من تعديل عرض المستند.</target>
<target state="translated">يمكن إدارة جميع الوسوم وجهات التراسل وأنواع المستندات ومسارات التخزين باستخدام هذه الصفحات. ويمكن إنشاؤها أيضاً من تعديل عرض المستند.</target>
</trans-unit>
<trans-unit id="7851939076947092983" datatype="html">
<source>Manage e-mail accounts and rules for automatically importing documents.</source>
@@ -1067,7 +1067,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">187</context>
</context-group>
<target state="translated">إزالة وسم أو وسوم البريد الوارد تلقائياً عند الحفظ</target>
<target state="translated">إزالة وسم (وسوم) صندوق الوارد تلقائياً عند الحفظ</target>
</trans-unit>
<trans-unit id="8508424367627989968" datatype="html">
<source>Bulk editing</source>
@@ -1243,7 +1243,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">243,245</context>
</context-group>
<target state="translated"> تنطبق الإعدادات على حساب المستخدم هذا للعناصر (قواعد البريد، إلخ) التي تم إنشاؤها عبر واجهة المستخدم </target>
<target state="translated"> تطبق الإعدادات لحساب المستخدم هذا للأشياء (الوسوم وقواعد البريد، إلخ) التي تم إنشاؤها عبر واجهة المستخدم </target>
</trans-unit>
<trans-unit id="4292903881380648974" datatype="html">
<source>Default Owner</source>
@@ -2879,7 +2879,7 @@
<context context-type="sourcefile">src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="translated">مراسلون</target>
<target state="translated">جهات التراسل</target>
</trans-unit>
<trans-unit id="7886570921510760899" datatype="html" approved="yes">
<source>Tags</source>
@@ -3683,7 +3683,7 @@
<context context-type="sourcefile">src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts</context>
<context context-type="linenumber">27</context>
</context-group>
<target state="translated">إنشاء مراسل جديد</target>
<target state="translated">إنشاء جهة تراسل جديدة</target>
</trans-unit>
<trans-unit id="2059822531169388684" datatype="html">
<source>Edit correspondent</source>
@@ -3691,7 +3691,7 @@
<context context-type="sourcefile">src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="translated">تعديل المراسل</target>
<target state="translated">تعديل جهة التراسل</target>
</trans-unit>
<trans-unit id="4894226280476434291" datatype="html">
<source>Data type</source>
@@ -4091,7 +4091,7 @@
<context context-type="sourcefile">src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html</context>
<context context-type="linenumber">38</context>
</context-group>
<target state="translated">تعيين مراسل من</target>
<target state="translated">تعيين جهة تراسل من</target>
</trans-unit>
<trans-unit id="4875491778188965469" datatype="html">
<source>Assign correspondent</source>
@@ -4103,7 +4103,7 @@
<context context-type="sourcefile">src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html</context>
<context context-type="linenumber">163</context>
</context-group>
<target state="translated">تعيين مراسل</target>
<target state="translated">تعيين جهة تراسل</target>
</trans-unit>
<trans-unit id="5232720756589450549" datatype="html">
<source>Assign owner from rule</source>
@@ -4227,7 +4227,7 @@
<context context-type="sourcefile">src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts</context>
<context context-type="linenumber">91</context>
</context-group>
<target state="translated">لا تعيّن مراسل</target>
<target state="translated">لا تعيّن جهة تراسل</target>
</trans-unit>
<trans-unit id="3567746385454588269" datatype="html">
<source>Use mail address</source>
@@ -4251,7 +4251,7 @@
<context context-type="sourcefile">src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts</context>
<context context-type="linenumber">103</context>
</context-group>
<target state="translated">استخدم المراسل المحدد أدناه</target>
<target state="translated">استخدم جهة التراسل المحددة أدناه</target>
</trans-unit>
<trans-unit id="3147349817770432927" datatype="html">
<source>Create new mail rule</source>
@@ -4355,7 +4355,7 @@
<context context-type="sourcefile">src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<target state="translated">إنشاء علامة جديدة</target>
<target state="translated">إنشاء وسم جديد</target>
</trans-unit>
<trans-unit id="5872175735754226507" datatype="html">
<source>Edit tag</source>
@@ -4363,7 +4363,7 @@
<context context-type="sourcefile">src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts</context>
<context context-type="linenumber">32</context>
</context-group>
<target state="translated">تعديل العلامة</target>
<target state="translated">تحرير الوسم</target>
</trans-unit>
<trans-unit id="4768749765465246664" datatype="html">
<source>Email</source>
@@ -5221,7 +5221,7 @@
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">15</context>
</context-group>
<target state="translated">إضافة علامة</target>
<target state="translated">إضافة وسم</target>
</trans-unit>
<trans-unit id="3392754525167799121" datatype="html">
<source>Remove tag</source>
@@ -5925,7 +5925,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
<context context-type="linenumber">275</context>
</context-group>
<target state="translated">تصفية حسب المراسل</target>
<target state="translated">تصفية حسب جهة التراسل</target>
</trans-unit>
<trans-unit id="78870852467682010" datatype="html">
<source>Filter by document type</source>
@@ -6340,7 +6340,7 @@
<context context-type="sourcefile">src/app/data/document.ts</context>
<context context-type="linenumber">89</context>
</context-group>
<target state="translated">مراسل</target>
<target state="translated">جهة التراسل</target>
</trans-unit>
<trans-unit id="5066119607229701477" datatype="html" approved="yes">
<source>Document type</source>
@@ -6904,7 +6904,7 @@
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.html</context>
<context context-type="linenumber">53</context>
</context-group>
<target state="translated">تصفية المراسلين</target>
<target state="translated">تصفية جهات التراسل</target>
</trans-unit>
<trans-unit id="2947613869920454977" datatype="html">
<source>Filter document types</source>
@@ -7090,7 +7090,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">434</context>
</context-group>
<target state="translated">تأكيد تعيين المراسل</target>
<target state="translated">تأكيد تعيين جهة التراسل</target>
</trans-unit>
<trans-unit id="6900893559485781849" datatype="html">
<source>This operation will assign the correspondent &quot;<x id="PH" equiv-text="correspondent.name"/>&quot; to <x id="PH_1" equiv-text="this.list.selected.size"/> selected document(s).</source>
@@ -7098,7 +7098,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">436</context>
</context-group>
<target state="translated">هذه العملية ستعين المراسل"<x id="PH" equiv-text="correspondent.name"/>" إلى <x id="PH_1" equiv-text="this.list.selected.size"/> مستند (مستندات) مختارة.</target>
<target state="translated">ستقوم هذه العملية بتعيين جهة التراسل "<x id="PH" equiv-text="correspondent.name"/>" للمستند (المستندات) المحددة <x id="PH_1" equiv-text="this.list.selected.size"/>.</target>
</trans-unit>
<trans-unit id="1257522660364398440" datatype="html">
<source>This operation will remove the correspondent from <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</source>
@@ -7106,7 +7106,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">438</context>
</context-group>
<target state="translated">هذه العملية ستزيل المراسل من <x id="PH" equiv-text="this.list.selected.size"/> مستند (مستندات) مختارة.</target>
<target state="translated">هذه العملية ستزيل جهة التراسل <x id="PH" equiv-text="this.list.selected.size"/> من المستند أو المستندات المحددة.</target>
</trans-unit>
<trans-unit id="5393409374423140648" datatype="html">
<source>Confirm document type assignment</source>
@@ -7370,7 +7370,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
<context context-type="linenumber">16</context>
</context-group>
<target state="translated">تبديل تصفية العلامة</target>
<target state="translated">تبديل لعامل تصفية الوسم</target>
</trans-unit>
<trans-unit id="4648526799630820486" datatype="html">
<source>Toggle correspondent filter</source>
@@ -7378,7 +7378,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
<context context-type="linenumber">38</context>
</context-group>
<target state="translated">تبديل تصفية المراسل</target>
<target state="translated">تبديل لعامل تصفية جهة التراسل</target>
</trans-unit>
<trans-unit id="5319701482646590642" datatype="html">
<source>Toggle document type filter</source>
@@ -8502,7 +8502,7 @@
<context context-type="sourcefile">src/app/components/manage/tag-list/tag-list.component.ts</context>
<context context-type="linenumber">36</context>
</context-group>
<target state="translated">علامة</target>
<target state="translated">الوسم</target>
</trans-unit>
<trans-unit id="4975748273657042999" datatype="html">
<source>tags</source>

View File

@@ -519,7 +519,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">230</context>
</context-group>
<target state="final">Überprüfen Sie die Einstellungen für diverse Verbesserung der Webanwendung und ändern Sie die Einstellungen für gespeicherte Ansichten.</target>
<target state="final">Überprüfen Sie die Einstellungen für diverse Anpassungen der Webanwendung und ändern Sie die Einstellungen für gespeicherte Ansichten.</target>
</trans-unit>
<trans-unit id="7172877665285340082" datatype="html" approved="yes">
<source>Thank you! 🙏</source>
@@ -2265,13 +2265,13 @@
</context-group>
<target state="final">Papierkorb</target>
</trans-unit>
<trans-unit id="3818027200170621545" datatype="html">
<trans-unit id="3818027200170621545" datatype="html" approved="yes">
<source>Manage trashed documents that are pending deletion.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="translated">Dokumente im Papierkorb verwalten, die noch nicht gelöscht wurden.</target>
<target state="final">Dokumente im Papierkorb verwalten, die noch nicht endgültig gelöscht wurden.</target>
</trans-unit>
<trans-unit id="3186604097120837257" datatype="html" approved="yes">
<source>Restore selected</source>

View File

@@ -2143,7 +2143,7 @@
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.html</context>
<context context-type="linenumber">109</context>
</context-group>
<target state="translated">{VAR_PLURAL, plural, =1 {En <x id="INTERPOLATION"/> oppgave} other {<x id="INTERPOLATION_1"/> totalt<x id="INTERPOLATION"/> oppgaver}}}"/&gt;</target>
<target state="translated">{VAR_PLURAL, plural, =1 {En <x id="INTERPOLATION"/> oppgave} other {<x id="INTERPOLATION_1"/> totalt <x id="INTERPOLATION"/> oppgaver}}</target>
</trans-unit>
<trans-unit id="1943508481059904274" datatype="html">
<source> (<x id="INTERPOLATION" equiv-text="{{selectedTasks.size}}"/> selected)</source>

View File

@@ -1119,7 +1119,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">212</context>
</context-group>
<target state="translated">Wyszukiwania całościowe wskazuje na</target>
<target state="translated">Wyszukiwania globalne wskazuje na</target>
</trans-unit>
<trans-unit id="6631288852577115923" datatype="html">
<source>Title and content search</source>
@@ -2263,7 +2263,7 @@
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">274</context>
</context-group>
<target state="needs-translation">Trash</target>
<target state="translated">Kosz</target>
</trans-unit>
<trans-unit id="3818027200170621545" datatype="html">
<source>Manage trashed documents that are pending deletion.</source>
@@ -2271,7 +2271,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">Manage trashed documents that are pending deletion.</target>
<target state="translated">Zarządzanie skasowanymi dokumentami, które oczekują na trwałe usunięcie.</target>
</trans-unit>
<trans-unit id="3186604097120837257" datatype="html">
<source>Restore selected</source>
@@ -2279,7 +2279,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="needs-translation">Restore selected</target>
<target state="translated">Przywróć zaznaczone</target>
</trans-unit>
<trans-unit id="8831459317888986184" datatype="html">
<source>Delete selected</source>
@@ -2287,7 +2287,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.html</context>
<context context-type="linenumber">14</context>
</context-group>
<target state="needs-translation">Delete selected</target>
<target state="translated">Usuń zaznaczone</target>
</trans-unit>
<trans-unit id="8597030111956627342" datatype="html">
<source>Empty trash</source>
@@ -2295,7 +2295,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.html</context>
<context context-type="linenumber">17</context>
</context-group>
<target state="needs-translation">Empty trash</target>
<target state="translated">Opróżnij kosz</target>
</trans-unit>
<trans-unit id="991066160113599649" datatype="html">
<source>Remaining</source>
@@ -2303,7 +2303,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.html</context>
<context context-type="linenumber">36</context>
</context-group>
<target state="needs-translation">Remaining</target>
<target state="translated">Pozostało</target>
</trans-unit>
<trans-unit id="7494361412465596264" datatype="html">
<source><x id="INTERPOLATION" equiv-text="{{ getDaysRemaining(document) }}"/> days</source>
@@ -2311,7 +2311,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.html</context>
<context context-type="linenumber">58</context>
</context-group>
<target state="needs-translation"><x id="INTERPOLATION" equiv-text="{{ getDaysRemaining(document) }}"/> days</target>
<target state="translated"><x id="INTERPOLATION" equiv-text="{{ getDaysRemaining(document) }}"/> dni</target>
</trans-unit>
<trans-unit id="6770769801335635194" datatype="html">
<source>Restore</source>
@@ -2323,7 +2323,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.html</context>
<context context-type="linenumber">73</context>
</context-group>
<target state="needs-translation">Restore</target>
<target state="translated">Przywróć</target>
</trans-unit>
<trans-unit id="2308646316372333720" datatype="html">
<source>{VAR_PLURAL, plural, =1 {One document in trash} other {<x id="INTERPOLATION"/> total documents in trash}}</source>
@@ -2331,7 +2331,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.html</context>
<context context-type="linenumber">89</context>
</context-group>
<target state="needs-translation">{VAR_PLURAL, plural, =1 {One document in trash} other {<x id="INTERPOLATION"/> total documents in trash}}</target>
<target state="translated">{VAR_PLURAL, plural, =1 {Jeden dokument w koszu} other {<x id="INTERPOLATION"/> łącznie dokumentów w koszu}}</target>
</trans-unit>
<trans-unit id="9021887951960049161" datatype="html" approved="yes">
<source>Confirm delete</source>
@@ -2359,7 +2359,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
<context context-type="linenumber">54</context>
</context-group>
<target state="needs-translation">This operation will permanently delete this document.</target>
<target state="translated">Ta operacja spowoduje trwałe usunięcie tego dokumentu.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html" approved="yes">
<source>This operation cannot be undone.</source>
@@ -2407,7 +2407,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
<context context-type="linenumber">63</context>
</context-group>
<target state="needs-translation">Document deleted</target>
<target state="translated">Dokument został usunięty</target>
</trans-unit>
<trans-unit id="7266264608936522311" datatype="html">
<source>This operation will permanently delete the selected documents.</source>
@@ -2415,7 +2415,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
<context context-type="linenumber">76</context>
</context-group>
<target state="needs-translation">This operation will permanently delete the selected documents.</target>
<target state="translated">Ta operacja spowoduje trwałe usunięcie wybranych dokumentów.</target>
</trans-unit>
<trans-unit id="6804051092296228130" datatype="html">
<source>This operation will permanently delete all documents in the trash.</source>
@@ -2423,7 +2423,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
<context context-type="linenumber">77</context>
</context-group>
<target state="needs-translation">This operation will permanently delete all documents in the trash.</target>
<target state="translated">Ta operacja spowoduje trwałe usunięcie wszystkich dokumentów z kosza.</target>
</trans-unit>
<trans-unit id="6996183233986182894" datatype="html">
<source>Document(s) deleted</source>
@@ -2431,7 +2431,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
<context context-type="linenumber">87</context>
</context-group>
<target state="needs-translation">Document(s) deleted</target>
<target state="translated">Dokument(y) zostały usunięte</target>
</trans-unit>
<trans-unit id="7534569062269274401" datatype="html">
<source>Document restored</source>
@@ -2439,7 +2439,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
<context context-type="linenumber">97</context>
</context-group>
<target state="needs-translation">Document restored</target>
<target state="translated">Dokument został przywrócony</target>
</trans-unit>
<trans-unit id="960063472770266304" datatype="html">
<source>Document(s) restored</source>
@@ -2447,7 +2447,7 @@
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
<context context-type="linenumber">106</context>
</context-group>
<target state="needs-translation">Document(s) restored</target>
<target state="translated">Dokument(y) zostały przywrócone</target>
</trans-unit>
<trans-unit id="8119815638230251386" datatype="html">
<source>Users &amp; Groups</source>
@@ -6672,7 +6672,7 @@
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">777</context>
</context-group>
<target state="needs-translation">Do you really want to move the document "<x id="PH" equiv-text="this.document.title"/>" to the trash?</target>
<target state="translated">Czy naprawdę chcesz przenieść dokument "<x id="PH" equiv-text="this.document.title"/>" do kosza?</target>
</trans-unit>
<trans-unit id="282586936710748252" datatype="html">
<source>Documents can be restored prior to permanent deletion.</source>
@@ -6684,7 +6684,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">714</context>
</context-group>
<target state="needs-translation">Documents can be restored prior to permanent deletion.</target>
<target state="translated">Dokumenty można przywrócić przed ich trwałym usunięciem.</target>
</trans-unit>
<trans-unit id="2048798344356757326" datatype="html">
<source>Move to trash</source>
@@ -6696,7 +6696,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">716</context>
</context-group>
<target state="needs-translation">Move to trash</target>
<target state="translated">Przenieś do kosza</target>
</trans-unit>
<trans-unit id="7295637485862454066" datatype="html">
<source>Error deleting document</source>
@@ -7210,7 +7210,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">713</context>
</context-group>
<target state="needs-translation">Move <x id="PH" equiv-text="this.list.selected.size"/> selected document(s) to the trash?</target>
<target state="translated">Przenieść <x id="PH" equiv-text="this.list.selected.size"/> wybrane dokumenty do kosza?</target>
</trans-unit>
<trans-unit id="8585195717323764335" datatype="html">
<source>This operation will permanently recreate the archive files for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</source>

View File

@@ -166,10 +166,7 @@ class Command(CryptMixin, BaseCommand):
)
return
if version_path.exists():
with version_path.open() as infile:
self.version = json.load(infile)["version"]
elif metadata_path.exists():
if metadata_path.exists():
with metadata_path.open() as infile:
data = json.load(infile)
self.version = data["version"]
@@ -179,6 +176,9 @@ class Command(CryptMixin, BaseCommand):
)
elif EXPORTER_CRYPTO_SETTINGS_NAME in data:
self.load_crypt_params(data)
elif version_path.exists():
with version_path.open() as infile:
self.version = json.load(infile)["version"]
if self.version and self.version != version.__full_version_str__:
self.stdout.write(

View File

@@ -418,7 +418,10 @@ def update_filename_and_move_files(sender, instance: Document, **kwargs):
move_archive = False
if not move_original and not move_archive:
# Don't do anything if filenames did not change.
# Just update modified. Also, don't save() here to prevent infinite recursion.
Document.objects.filter(pk=instance.pk).update(
modified=timezone.now(),
)
return
if move_original:

View File

@@ -285,6 +285,10 @@ def update_document_archive_file(document_id):
shutil.move(parser.get_archive_path(), document.archive_path)
shutil.move(thumbnail, document.thumbnail_path)
document.refresh_from_db()
logger.info(
f"Updating index for document {document_id} ({document.archive_checksum})",
)
with index.open_index_writer() as writer:
index.update_document(writer, document)

View File

@@ -573,7 +573,19 @@ class TestFileHandling(DirectoriesMixin, FileSystemAssertsMixin, TestCase):
@override_settings(FILENAME_FORMAT="{title}")
@mock.patch("documents.signals.handlers.Document.objects.filter")
def test_no_update_without_change(self, m):
@mock.patch("documents.signals.handlers.shutil.move")
def test_no_move_only_save(self, mock_move, mock_filter):
"""
GIVEN:
- A document with a filename
- The document is saved
- The filename is not changed
WHEN:
- The document is saved
THEN:
- The document modified date is updated
- The document is not moved
"""
with disable_auditlog():
doc = Document.objects.create(
title="document",
@@ -583,12 +595,16 @@ class TestFileHandling(DirectoriesMixin, FileSystemAssertsMixin, TestCase):
archive_checksum="B",
mime_type="application/pdf",
)
original_modified = doc.modified
Path(doc.source_path).touch()
Path(doc.archive_path).touch()
doc.save()
doc.refresh_from_db()
m.assert_not_called()
mock_filter.assert_called()
self.assertNotEqual(original_modified, doc.modified)
mock_move.assert_not_called()
class TestFileHandlingWithArchive(DirectoriesMixin, FileSystemAssertsMixin, TestCase):

View File

@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-19 11:07-0700\n"
"PO-Revision-Date: 2024-06-18 12:10\n"
"PO-Revision-Date: 2024-06-24 00:27\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"Language: ar_SA\n"
@@ -88,7 +88,7 @@ msgstr "علامة علبة الوارد"
#: documents/models.py:106
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "ضع علامة على هذه السمة كعلامة علبة الوارد: سيتم وضع علامة على جميع المستندات المستهلكة حديثا مع علامات صندوق الواردات."
msgstr "ضع علامة على هذه العلامة كعلامة علبة الوارد : سيتم وضع علامة على جميع المستندات المستهلكة حديثا مع علامات صندوق الواردات."
#: documents/models.py:112
msgid "tag"
@@ -140,7 +140,7 @@ msgstr "بيانات النص الخام من المستند. يستخدم هذ
#: documents/models.py:179
msgid "mime type"
msgstr "mime type"
msgstr "نوع الـ mime"
#: documents/models.py:189
msgid "checksum"
@@ -269,7 +269,7 @@ msgstr "بطاقات كبيرة"
#: documents/models.py:403
msgid "Title"
msgstr "عنوان"
msgstr "العنوان"
#: documents/models.py:404
msgid "Created"

View File

@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-19 11:07-0700\n"
"PO-Revision-Date: 2024-06-19 00:25\n"
"PO-Revision-Date: 2024-06-19 12:10\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"

View File

@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-19 11:07-0700\n"
"PO-Revision-Date: 2024-05-20 16:41\n"
"PO-Revision-Date: 2024-06-19 12:10\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"

View File

@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-19 11:07-0700\n"
"PO-Revision-Date: 2024-06-10 12:10\n"
"PO-Revision-Date: 2024-06-20 00:25\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"

View File

@@ -1,6 +1,6 @@
from typing import Final
__version__: Final[tuple[int, int, int]] = (2, 10, 1)
__version__: Final[tuple[int, int, int]] = (2, 10, 2)
# Version string like X.Y.Z
__full_version_str__: Final[str] = ".".join(map(str, __version__))
# Version string like X.Y