mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
110 lines
3.2 KiB
Python
110 lines
3.2 KiB
Python
from django import forms
|
|
from django.contrib import admin
|
|
from django.utils.translation import gettext_lazy as _
|
|
from paperless_mail.models import MailAccount
|
|
from paperless_mail.models import MailRule
|
|
|
|
|
|
class MailAccountAdminForm(forms.ModelForm):
|
|
|
|
"""Metadata classes used by Django admin to display the form."""
|
|
|
|
class Meta:
|
|
|
|
"""Metadata class used by Django admin to display the form."""
|
|
|
|
model = MailAccount
|
|
widgets = {
|
|
"password": forms.PasswordInput(),
|
|
}
|
|
fields = "__all__"
|
|
|
|
|
|
class MailAccountAdmin(admin.ModelAdmin):
|
|
|
|
list_display = ("name", "imap_server", "username")
|
|
|
|
fieldsets = [
|
|
(None, {"fields": ["name", "imap_server", "imap_port"]}),
|
|
(_("Authentication"), {"fields": ["imap_security", "username", "password"]}),
|
|
(_("Advanced settings"), {"fields": ["character_set"]}),
|
|
]
|
|
form = MailAccountAdminForm
|
|
|
|
|
|
class MailRuleAdmin(admin.ModelAdmin):
|
|
|
|
radio_fields = {
|
|
"attachment_type": admin.VERTICAL,
|
|
"action": admin.VERTICAL,
|
|
"assign_title_from": admin.VERTICAL,
|
|
"assign_correspondent_from": admin.VERTICAL,
|
|
}
|
|
|
|
fieldsets = (
|
|
(None, {"fields": ("name", "order", "account", "folder")}),
|
|
(
|
|
_("Filter"),
|
|
{
|
|
"description": _(
|
|
"Paperless will only process mails that match ALL of the "
|
|
"filters given below.",
|
|
),
|
|
"fields": (
|
|
"filter_from",
|
|
"filter_subject",
|
|
"filter_body",
|
|
"filter_attachment_filename",
|
|
"maximum_age",
|
|
"consumption_scope",
|
|
"attachment_type",
|
|
),
|
|
},
|
|
),
|
|
(
|
|
_("Actions"),
|
|
{
|
|
"description": _(
|
|
"The action applied to the mail. This action is only "
|
|
"performed when documents were consumed from the mail. "
|
|
"Mails without attachments will remain entirely untouched.",
|
|
),
|
|
"fields": ("action", "action_parameter"),
|
|
},
|
|
),
|
|
(
|
|
_("Metadata"),
|
|
{
|
|
"description": _(
|
|
"Assign metadata to documents consumed from this rule "
|
|
"automatically. If you do not assign tags, types or "
|
|
"correspondents here, paperless will still process all "
|
|
"matching rules that you have defined.",
|
|
),
|
|
"fields": (
|
|
"assign_title_from",
|
|
"assign_tags",
|
|
"assign_document_type",
|
|
"assign_correspondent_from",
|
|
"assign_correspondent",
|
|
),
|
|
},
|
|
),
|
|
)
|
|
|
|
list_filter = ("account",)
|
|
|
|
list_display = ("order", "name", "account", "folder", "action")
|
|
|
|
list_editable = ("order",)
|
|
|
|
list_display_links = ("name",)
|
|
|
|
sortable_by = []
|
|
|
|
ordering = ["order"]
|
|
|
|
|
|
admin.site.register(MailAccount, MailAccountAdmin)
|
|
admin.site.register(MailRule, MailRuleAdmin)
|