From 6e371ac5ac2227a6bdef5e15483f5b478ba78c4d Mon Sep 17 00:00:00 2001 From: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Sat, 2 Dec 2023 08:26:19 -0800 Subject: [PATCH] Enhancement: Allow excluding mail attachments by name (#4691) * Adds new filtering to exclude attachments from processing * Frontend use include / exclude mail rule filename filters --------- Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com> --- src-ui/messages.xlf | 42 ++++++---- .../mail-rule-edit-dialog.component.html | 3 +- .../mail-rule-edit-dialog.component.ts | 3 +- src-ui/src/app/data/paperless-mail-rule.ts | 4 +- .../services/rest/mail-rule.service.spec.ts | 9 ++- src/documents/tests/test_api.py | 2 +- .../tests/test_consumption_templates.py | 2 +- src/paperless_mail/admin.py | 3 +- src/paperless_mail/mail.py | 21 ++++- ...ule_filter_attachment_filename_and_more.py | 29 +++++++ src/paperless_mail/models.py | 16 +++- src/paperless_mail/serialisers.py | 3 +- src/paperless_mail/tests/test_api.py | 16 ++-- src/paperless_mail/tests/test_mail.py | 81 ++++++++++++++++--- 14 files changed, 189 insertions(+), 45 deletions(-) create mode 100644 src/paperless_mail/migrations/0023_remove_mailrule_filter_attachment_filename_and_more.py diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf index f80457c42..f101ae0f3 100644 --- a/src-ui/messages.xlf +++ b/src-ui/messages.xlf @@ -1315,7 +1315,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 42 + 43 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -2520,7 +2520,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 @@ -2531,7 +2531,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 34 + 35 @@ -2570,7 +2570,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 40 + 41 src/app/components/common/toasts/toasts.component.html @@ -2605,7 +2605,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 41 + 42 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -3016,8 +3016,8 @@ 23 - - Filter attachment filename + + Filter attachment filename includes src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 24 @@ -3030,53 +3030,67 @@ 24 + + Filter attachment filename excluding + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 25 + + + + Do not consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 25 + + Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assignments specified here will supersede any consumption templates. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 29 + 30 Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 33 + 34 Assign owner from rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 35 + 36 diff --git a/src-ui/src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html b/src-ui/src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html index afbcc5c8d..5c335fdaa 100644 --- a/src-ui/src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html +++ b/src-ui/src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html @@ -21,7 +21,8 @@ - + +
diff --git a/src-ui/src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts b/src-ui/src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts index 1de036847..2d9469f9e 100644 --- a/src-ui/src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts +++ b/src-ui/src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts @@ -158,7 +158,8 @@ export class MailRuleEditDialogComponent extends EditDialogComponent