Initial squash paperless_mail migrations

This commit is contained in:
Trenton H 2024-06-28 10:51:53 -07:00
parent a7d8b5c960
commit ae28b67ae4
2 changed files with 798 additions and 0 deletions

View File

@ -0,0 +1,477 @@
# Generated by Django 4.2.13 on 2024-06-28 17:46
import django.db.migrations.operations.special
import django.db.models.deletion
from django.db import migrations
from django.db import models
class Migration(migrations.Migration):
replaces = [
("paperless_mail", "0001_initial"),
("paperless_mail", "0002_auto_20201117_1334"),
("paperless_mail", "0003_auto_20201118_1940"),
("paperless_mail", "0004_mailrule_order"),
("paperless_mail", "0005_help_texts"),
("paperless_mail", "0006_auto_20210101_2340"),
("paperless_mail", "0007_auto_20210106_0138"),
("paperless_mail", "0008_auto_20210516_0940"),
("paperless_mail", "0009_mailrule_assign_tags"),
]
dependencies = [
("documents", "1002_auto_20201111_1105"),
("documents", "1011_auto_20210101_2340"),
]
operations = [
migrations.CreateModel(
name="MailAccount",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(max_length=256, unique=True)),
("imap_server", models.CharField(max_length=256)),
("imap_port", models.IntegerField(blank=True, null=True)),
(
"imap_security",
models.PositiveIntegerField(
choices=[
(1, "No encryption"),
(2, "Use SSL"),
(3, "Use STARTTLS"),
],
default=2,
),
),
("username", models.CharField(max_length=256)),
("password", models.CharField(max_length=256)),
],
),
migrations.CreateModel(
name="MailRule",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(max_length=256)),
("folder", models.CharField(default="INBOX", max_length=256)),
(
"filter_from",
models.CharField(blank=True, max_length=256, null=True),
),
(
"filter_subject",
models.CharField(blank=True, max_length=256, null=True),
),
(
"filter_body",
models.CharField(blank=True, max_length=256, null=True),
),
("maximum_age", models.PositiveIntegerField(default=30)),
(
"action",
models.PositiveIntegerField(
choices=[
(1, "Delete"),
(2, "Move to specified folder"),
(3, "Mark as read, don't process read mails"),
(4, "Flag the mail, don't process flagged mails"),
],
default=3,
help_text="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.",
),
),
(
"action_parameter",
models.CharField(
blank=True,
help_text="Additional parameter for the action selected above, i.e., the target folder of the move to folder action.",
max_length=256,
null=True,
),
),
(
"assign_title_from",
models.PositiveIntegerField(
choices=[
(1, "Use subject as title"),
(2, "Use attachment filename as title"),
],
default=1,
),
),
(
"assign_correspondent_from",
models.PositiveIntegerField(
choices=[
(1, "Do not assign a correspondent"),
(2, "Use mail address"),
(3, "Use name (or mail address if not available)"),
(4, "Use correspondent selected below"),
],
default=1,
),
),
(
"account",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="rules",
to="paperless_mail.mailaccount",
),
),
(
"assign_correspondent",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="documents.correspondent",
),
),
(
"assign_document_type",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="documents.documenttype",
),
),
(
"assign_tag",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="documents.tag",
),
),
],
),
migrations.RunPython(
code=django.db.migrations.operations.special.RunPython.noop,
reverse_code=django.db.migrations.operations.special.RunPython.noop,
),
migrations.AlterField(
model_name="mailaccount",
name="imap_port",
field=models.IntegerField(
blank=True,
help_text="This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections.",
null=True,
),
),
migrations.AlterField(
model_name="mailrule",
name="name",
field=models.CharField(max_length=256, unique=True),
),
migrations.AddField(
model_name="mailrule",
name="order",
field=models.IntegerField(default=0),
),
migrations.AlterField(
model_name="mailrule",
name="action",
field=models.PositiveIntegerField(
choices=[
(3, "Mark as read, don't process read mails"),
(4, "Flag the mail, don't process flagged mails"),
(2, "Move to specified folder"),
(1, "Delete"),
],
default=3,
),
),
migrations.AlterField(
model_name="mailrule",
name="maximum_age",
field=models.PositiveIntegerField(
default=30,
help_text="Specified in days.",
),
),
migrations.AlterModelOptions(
name="mailaccount",
options={
"verbose_name": "mail account",
"verbose_name_plural": "mail accounts",
},
),
migrations.AlterModelOptions(
name="mailrule",
options={"verbose_name": "mail rule", "verbose_name_plural": "mail rules"},
),
migrations.AlterField(
model_name="mailaccount",
name="imap_port",
field=models.IntegerField(
blank=True,
help_text="This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections.",
null=True,
verbose_name="IMAP port",
),
),
migrations.AlterField(
model_name="mailaccount",
name="imap_security",
field=models.PositiveIntegerField(
choices=[(1, "No encryption"), (2, "Use SSL"), (3, "Use STARTTLS")],
default=2,
verbose_name="IMAP security",
),
),
migrations.AlterField(
model_name="mailaccount",
name="imap_server",
field=models.CharField(max_length=256, verbose_name="IMAP server"),
),
migrations.AlterField(
model_name="mailaccount",
name="name",
field=models.CharField(max_length=256, unique=True, verbose_name="name"),
),
migrations.AlterField(
model_name="mailaccount",
name="password",
field=models.CharField(max_length=256, verbose_name="password"),
),
migrations.AlterField(
model_name="mailaccount",
name="username",
field=models.CharField(max_length=256, verbose_name="username"),
),
migrations.AlterField(
model_name="mailrule",
name="account",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="rules",
to="paperless_mail.mailaccount",
verbose_name="account",
),
),
migrations.AlterField(
model_name="mailrule",
name="action",
field=models.PositiveIntegerField(
choices=[
(3, "Mark as read, don't process read mails"),
(4, "Flag the mail, don't process flagged mails"),
(2, "Move to specified folder"),
(1, "Delete"),
],
default=3,
verbose_name="action",
),
),
migrations.AlterField(
model_name="mailrule",
name="action_parameter",
field=models.CharField(
blank=True,
help_text="Additional parameter for the action selected above, i.e., the target folder of the move to folder action.",
max_length=256,
null=True,
verbose_name="action parameter",
),
),
migrations.AlterField(
model_name="mailrule",
name="assign_correspondent",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="documents.correspondent",
verbose_name="assign this correspondent",
),
),
migrations.AlterField(
model_name="mailrule",
name="assign_correspondent_from",
field=models.PositiveIntegerField(
choices=[
(1, "Do not assign a correspondent"),
(2, "Use mail address"),
(3, "Use name (or mail address if not available)"),
(4, "Use correspondent selected below"),
],
default=1,
verbose_name="assign correspondent from",
),
),
migrations.AlterField(
model_name="mailrule",
name="assign_document_type",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="documents.documenttype",
verbose_name="assign this document type",
),
),
migrations.AlterField(
model_name="mailrule",
name="assign_tag",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="documents.tag",
verbose_name="assign this tag",
),
),
migrations.AlterField(
model_name="mailrule",
name="assign_title_from",
field=models.PositiveIntegerField(
choices=[
(1, "Use subject as title"),
(2, "Use attachment filename as title"),
],
default=1,
verbose_name="assign title from",
),
),
migrations.AlterField(
model_name="mailrule",
name="filter_body",
field=models.CharField(
blank=True,
max_length=256,
null=True,
verbose_name="filter body",
),
),
migrations.AlterField(
model_name="mailrule",
name="filter_from",
field=models.CharField(
blank=True,
max_length=256,
null=True,
verbose_name="filter from",
),
),
migrations.AlterField(
model_name="mailrule",
name="filter_subject",
field=models.CharField(
blank=True,
max_length=256,
null=True,
verbose_name="filter subject",
),
),
migrations.AlterField(
model_name="mailrule",
name="folder",
field=models.CharField(
default="INBOX",
max_length=256,
verbose_name="folder",
),
),
migrations.AlterField(
model_name="mailrule",
name="maximum_age",
field=models.PositiveIntegerField(
default=30,
help_text="Specified in days.",
verbose_name="maximum age",
),
),
migrations.AlterField(
model_name="mailrule",
name="name",
field=models.CharField(max_length=256, unique=True, verbose_name="name"),
),
migrations.AlterField(
model_name="mailrule",
name="order",
field=models.IntegerField(default=0, verbose_name="order"),
),
migrations.AddField(
model_name="mailrule",
name="attachment_type",
field=models.PositiveIntegerField(
choices=[
(1, "Only process attachments."),
(2, "Process all files, including 'inline' attachments."),
],
default=1,
help_text="Inline attachments include embedded images, so it's best to combine this option with a filename filter.",
verbose_name="attachment type",
),
),
migrations.AddField(
model_name="mailrule",
name="filter_attachment_filename",
field=models.CharField(
blank=True,
help_text="Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive.",
max_length=256,
null=True,
verbose_name="filter attachment filename",
),
),
migrations.AddField(
model_name="mailaccount",
name="character_set",
field=models.CharField(
default="UTF-8",
help_text="The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'.",
max_length=256,
verbose_name="character set",
),
),
migrations.AlterField(
model_name="mailrule",
name="action_parameter",
field=models.CharField(
blank=True,
help_text="Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots.",
max_length=256,
null=True,
verbose_name="action parameter",
),
),
migrations.AlterField(
model_name="mailrule",
name="folder",
field=models.CharField(
default="INBOX",
help_text="Subfolders must be separated by dots.",
max_length=256,
verbose_name="folder",
),
),
migrations.AddField(
model_name="mailrule",
name="assign_tags",
field=models.ManyToManyField(
blank=True,
related_name="mail_rules_multi",
to="documents.tag",
verbose_name="assign this tag",
),
),
]

View File

@ -0,0 +1,321 @@
# Generated by Django 4.2.13 on 2024-06-28 17:47
import django.db.models.deletion
import django.utils.timezone
from django.conf import settings
from django.db import migrations
from django.db import models
class Migration(migrations.Migration):
replaces = [
("paperless_mail", "0011_remove_mailrule_assign_tag"),
("paperless_mail", "0012_alter_mailrule_assign_tags"),
("paperless_mail", "0009_alter_mailrule_action_alter_mailrule_folder"),
("paperless_mail", "0013_merge_20220412_1051"),
("paperless_mail", "0014_alter_mailrule_action"),
("paperless_mail", "0015_alter_mailrule_action"),
("paperless_mail", "0016_mailrule_consumption_scope"),
("paperless_mail", "0017_mailaccount_owner_mailrule_owner"),
("paperless_mail", "0018_processedmail"),
("paperless_mail", "0019_mailrule_filter_to"),
("paperless_mail", "0020_mailaccount_is_token"),
("paperless_mail", "0021_alter_mailaccount_password"),
("paperless_mail", "0022_mailrule_assign_owner_from_rule_and_more"),
("paperless_mail", "0023_remove_mailrule_filter_attachment_filename_and_more"),
("paperless_mail", "0024_alter_mailrule_name_and_more"),
]
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
("paperless_mail", "0010_auto_20220311_1602"),
]
operations = [
migrations.RemoveField(
model_name="mailrule",
name="assign_tag",
),
migrations.AlterField(
model_name="mailrule",
name="assign_tags",
field=models.ManyToManyField(
blank=True,
to="documents.tag",
verbose_name="assign this tag",
),
),
migrations.AlterField(
model_name="mailrule",
name="action",
field=models.PositiveIntegerField(
choices=[
(1, "Mark as read, don't process read mails"),
(2, "Flag the mail, don't process flagged mails"),
(3, "Move to specified folder"),
(4, "Delete"),
],
default=3,
verbose_name="action",
),
),
migrations.AlterField(
model_name="mailrule",
name="folder",
field=models.CharField(
default="INBOX",
help_text="Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server.",
max_length=256,
verbose_name="folder",
),
),
migrations.AlterField(
model_name="mailrule",
name="action",
field=models.PositiveIntegerField(
choices=[
(1, "Delete"),
(2, "Move to specified folder"),
(3, "Mark as read, don't process read mails"),
(4, "Flag the mail, don't process flagged mails"),
],
default=3,
verbose_name="action",
),
),
migrations.AlterField(
model_name="mailrule",
name="action",
field=models.PositiveIntegerField(
choices=[
(1, "Delete"),
(2, "Move to specified folder"),
(3, "Mark as read, don't process read mails"),
(4, "Flag the mail, don't process flagged mails"),
(5, "Tag the mail with specified tag, don't process tagged mails"),
],
default=3,
verbose_name="action",
),
),
migrations.AddField(
model_name="mailrule",
name="consumption_scope",
field=models.PositiveIntegerField(
choices=[
(1, "Only process attachments."),
(
2,
"Process full Mail (with embedded attachments in file) as .eml",
),
(
3,
"Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents",
),
],
default=1,
verbose_name="consumption scope",
),
),
migrations.AddField(
model_name="mailaccount",
name="owner",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to=settings.AUTH_USER_MODEL,
verbose_name="owner",
),
),
migrations.AddField(
model_name="mailrule",
name="owner",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to=settings.AUTH_USER_MODEL,
verbose_name="owner",
),
),
migrations.CreateModel(
name="ProcessedMail",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"folder",
models.CharField(
editable=False,
max_length=256,
verbose_name="folder",
),
),
(
"uid",
models.CharField(
editable=False,
max_length=256,
verbose_name="uid",
),
),
(
"subject",
models.CharField(
editable=False,
max_length=256,
verbose_name="subject",
),
),
(
"received",
models.DateTimeField(editable=False, verbose_name="received"),
),
(
"processed",
models.DateTimeField(
default=django.utils.timezone.now,
editable=False,
verbose_name="processed",
),
),
(
"status",
models.CharField(
editable=False,
max_length=256,
verbose_name="status",
),
),
(
"error",
models.TextField(
blank=True,
editable=False,
null=True,
verbose_name="error",
),
),
(
"owner",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to=settings.AUTH_USER_MODEL,
verbose_name="owner",
),
),
(
"rule",
models.ForeignKey(
editable=False,
on_delete=django.db.models.deletion.CASCADE,
to="paperless_mail.mailrule",
),
),
],
options={
"abstract": False,
},
),
migrations.AddField(
model_name="mailrule",
name="filter_to",
field=models.CharField(
blank=True,
max_length=256,
null=True,
verbose_name="filter to",
),
),
migrations.AddField(
model_name="mailaccount",
name="is_token",
field=models.BooleanField(
default=False,
verbose_name="Is token authentication",
),
),
migrations.AlterField(
model_name="mailaccount",
name="password",
field=models.CharField(max_length=2048, verbose_name="password"),
),
migrations.AddField(
model_name="mailrule",
name="assign_owner_from_rule",
field=models.BooleanField(
default=True,
verbose_name="Assign the rule owner to documents",
),
),
migrations.AlterField(
model_name="mailrule",
name="assign_title_from",
field=models.PositiveIntegerField(
choices=[
(1, "Use subject as title"),
(2, "Use attachment filename as title"),
(3, "Do not assign title from rule"),
],
default=1,
verbose_name="assign title from",
),
),
migrations.RenameField(
model_name="mailrule",
old_name="filter_attachment_filename",
new_name="filter_attachment_filename_include",
),
migrations.AddField(
model_name="mailrule",
name="filter_attachment_filename_exclude",
field=models.CharField(
blank=True,
help_text="Do not consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive.",
max_length=256,
null=True,
verbose_name="filter attachment filename exclusive",
),
),
migrations.AlterField(
model_name="mailrule",
name="filter_attachment_filename_include",
field=models.CharField(
blank=True,
help_text="Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive.",
max_length=256,
null=True,
verbose_name="filter attachment filename inclusive",
),
),
migrations.AlterField(
model_name="mailrule",
name="name",
field=models.CharField(max_length=256, verbose_name="name"),
),
migrations.AddConstraint(
model_name="mailrule",
constraint=models.UniqueConstraint(
fields=("name", "owner"),
name="paperless_mail_mailrule_unique_name_owner",
),
),
migrations.AddConstraint(
model_name="mailrule",
constraint=models.UniqueConstraint(
condition=models.Q(("owner__isnull", True)),
fields=("name",),
name="paperless_mail_mailrule_name_unique",
),
),
]