diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c632a1a..2da9f62 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,7 +13,6 @@ repos: hooks: - id: flake8 args: ["--max-line-length=88", "--extend-ignore=E203"] - exclude: "migrations/" - repo: https://github.com/Riverside-Healthcare/djLint rev: v1.23.3 hooks: diff --git a/nummi/main/migrations/0001_v1.py b/nummi/main/migrations/0001_v1.py new file mode 100644 index 0000000..15c3f26 --- /dev/null +++ b/nummi/main/migrations/0001_v1.py @@ -0,0 +1,760 @@ +# Generated by Django 4.1.4 on 2023-04-20 15:32 + +import datetime +import re +import uuid + +import django.contrib.postgres.operations +import django.core.validators +import django.db.models.deletion +import main.utils +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + replaces = [("main", "0001_squashed_0028_alter_account_icon_alter_category_icon")] + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name="Category", + fields=[ + ( + "id", + models.UUIDField( + default=uuid.uuid4, + editable=False, + primary_key=True, + serialize=False, + ), + ), + ( + "name", + models.CharField( + default="Catégorie", max_length=64, verbose_name="Nom" + ), + ), + ( + "icon", + models.CharField( + default="folder", max_length=64, verbose_name="Icône" + ), + ), + ("budget", models.BooleanField(default=True, verbose_name="Budget")), + ], + options={ + "ordering": ["name"], + "verbose_name": "Catégorie", + "verbose_name_plural": "Catégories", + }, + ), + migrations.CreateModel( + name="Transaction", + fields=[ + ( + "id", + models.UUIDField( + default=uuid.uuid4, + editable=False, + primary_key=True, + serialize=False, + ), + ), + ( + "name", + models.CharField( + default="Transaction", max_length=256, verbose_name="Nom" + ), + ), + ( + "description", + models.TextField(blank=True, null=True, verbose_name="Description"), + ), + ( + "value", + models.DecimalField( + decimal_places=2, + default=0, + max_digits=12, + verbose_name="Valeur", + ), + ), + ( + "date", + models.DateField(default=datetime.date.today, verbose_name="Date"), + ), + ( + "trader", + models.CharField( + blank=True, max_length=128, null=True, verbose_name="Commerçant" + ), + ), + ( + "category", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="main.category", + verbose_name="Catégorie", + ), + ), + ( + "real_date", + models.DateField(blank=True, null=True, verbose_name="Date réelle"), + ), + ( + "payment", + models.CharField( + blank=True, max_length=128, null=True, verbose_name="Paiement" + ), + ), + ], + options={ + "ordering": ["-date"], + "verbose_name": "Transaction", + "verbose_name_plural": "Transactions", + }, + ), + migrations.CreateModel( + name="Invoice", + fields=[ + ( + "id", + models.UUIDField( + default=uuid.uuid4, + editable=False, + primary_key=True, + serialize=False, + ), + ), + ( + "name", + models.CharField( + default="Facture", max_length=256, verbose_name="Nom" + ), + ), + ( + "file", + models.FileField( + max_length=128, + upload_to="invoices/", + validators=[ + django.core.validators.FileExtensionValidator(["pdf"]) + ], + verbose_name="Fichier", + ), + ), + ( + "transaction", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="main.transaction", + ), + ), + ], + options={ + "verbose_name": "Facture", + "verbose_name_plural": "Factures", + }, + ), + migrations.CreateModel( + name="Snapshot", + fields=[ + ( + "id", + models.UUIDField( + default=uuid.uuid4, + editable=False, + primary_key=True, + serialize=False, + ), + ), + ( + "date", + models.DateField( + default=datetime.date.today, unique=True, verbose_name="Date" + ), + ), + ( + "value", + models.DecimalField( + decimal_places=2, + default=0, + max_digits=12, + verbose_name="Valeur", + ), + ), + ( + "diff", + models.DecimalField( + blank=True, + decimal_places=2, + editable=False, + max_digits=12, + null=True, + ), + ), + ( + "previous", + models.OneToOneField( + blank=True, + editable=False, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="main.snapshot", + ), + ), + ( + "file", + models.FileField( + blank=True, + max_length=128, + null=True, + upload_to="snapshots/", + validators=[ + django.core.validators.FileExtensionValidator(["pdf"]) + ], + verbose_name="Fichier", + ), + ), + ], + options={ + "ordering": ["-date"], + "verbose_name": "Relevé", + "verbose_name_plural": "Relevés", + }, + ), + django.contrib.postgres.operations.TrigramExtension(), + django.contrib.postgres.operations.UnaccentExtension(), + migrations.AlterField( + model_name="invoice", + name="file", + field=models.FileField( + max_length=128, + upload_to=main.utils.get_path, + validators=[django.core.validators.FileExtensionValidator(["pdf"])], + verbose_name="Fichier", + ), + ), + migrations.AlterField( + model_name="invoice", + name="transaction", + field=models.ForeignKey( + editable=False, + on_delete=django.db.models.deletion.CASCADE, + to="main.transaction", + ), + ), + migrations.AlterField( + model_name="snapshot", + name="file", + field=models.FileField( + blank=True, + default="", + max_length=256, + upload_to=main.utils.get_path, + validators=[django.core.validators.FileExtensionValidator(["pdf"])], + verbose_name="Fichier", + ), + ), + migrations.AddField( + model_name="category", + name="user", + field=models.ForeignKey( + editable=False, + on_delete=django.db.models.deletion.CASCADE, + to=settings.AUTH_USER_MODEL, + verbose_name="Utilisateur", + ), + ), + migrations.AddField( + model_name="invoice", + name="user", + field=models.ForeignKey( + editable=False, + on_delete=django.db.models.deletion.CASCADE, + to=settings.AUTH_USER_MODEL, + verbose_name="Utilisateur", + ), + ), + migrations.AddField( + model_name="snapshot", + name="user", + field=models.ForeignKey( + editable=False, + on_delete=django.db.models.deletion.CASCADE, + to=settings.AUTH_USER_MODEL, + verbose_name="Utilisateur", + ), + ), + migrations.AlterField( + model_name="snapshot", + name="date", + field=models.DateField(default=datetime.date.today, verbose_name="Date"), + ), + migrations.CreateModel( + name="Account", + fields=[ + ( + "id", + models.UUIDField( + default=uuid.uuid4, + editable=False, + primary_key=True, + serialize=False, + ), + ), + ( + "name", + models.CharField( + default="Account", max_length=64, verbose_name="Name" + ), + ), + ( + "user", + models.ForeignKey( + editable=False, + on_delete=django.db.models.deletion.CASCADE, + to=settings.AUTH_USER_MODEL, + verbose_name="User", + ), + ), + ("default", models.BooleanField(default=False, verbose_name="Default")), + ( + "icon", + models.SlugField( + default="bank", max_length=24, verbose_name="Icon" + ), + ), + ], + options={ + "verbose_name": "Account", + "verbose_name_plural": "Accounts", + "ordering": ["-default", "name"], + }, + ), + migrations.AddField( + model_name="snapshot", + name="account", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="main.account", + verbose_name="Account", + ), + ), + migrations.AlterModelOptions( + name="snapshot", + options={ + "ordering": ["-date"], + "verbose_name": "Statement", + "verbose_name_plural": "Statements", + }, + ), + migrations.RemoveField( + model_name="snapshot", + name="diff", + ), + migrations.RemoveField( + model_name="snapshot", + name="previous", + ), + migrations.AddField( + model_name="snapshot", + name="start_date", + field=models.DateField( + default=datetime.date.today, verbose_name="Start date" + ), + ), + migrations.AddField( + model_name="snapshot", + name="start_value", + field=models.DecimalField( + decimal_places=2, default=0, max_digits=12, verbose_name="Start value" + ), + ), + migrations.AlterField( + model_name="snapshot", + name="date", + field=models.DateField( + default=datetime.date.today, verbose_name="End date" + ), + ), + migrations.AlterField( + model_name="snapshot", + name="value", + field=models.DecimalField( + decimal_places=2, default=0, max_digits=12, verbose_name="End value" + ), + ), + migrations.AddField( + model_name="snapshot", + name="diff", + field=models.DecimalField( + decimal_places=2, + default=0, + editable=False, + max_digits=12, + verbose_name="Différence", + ), + ), + migrations.AlterField( + model_name="snapshot", + name="account", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="main.account", + verbose_name="Account", + ), + ), + migrations.AddField( + model_name="snapshot", + name="sum", + field=models.DecimalField( + decimal_places=2, + default=0, + editable=False, + max_digits=12, + verbose_name="Transaction difference", + ), + ), + migrations.AlterModelOptions( + name="snapshot", + options={ + "ordering": ["-date"], + "verbose_name": "Relevé", + "verbose_name_plural": "Relevés", + }, + ), + migrations.AlterField( + model_name="category", + name="icon", + field=models.CharField( + default="folder", + max_length=64, + validators=[ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + ( + "Enter a valid “slug” consisting of letters, numbers, " + "underscores or hyphens." + ), + "invalid", + ) + ], + verbose_name="Icône", + ), + ), + migrations.AlterField( + model_name="snapshot", + name="account", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="main.account", + verbose_name="Compte", + ), + ), + migrations.AlterField( + model_name="snapshot", + name="date", + field=models.DateField( + default=datetime.date.today, verbose_name="Date de fin" + ), + ), + migrations.AlterField( + model_name="snapshot", + name="start_date", + field=models.DateField( + default=datetime.date.today, verbose_name="Date de début" + ), + ), + migrations.AlterField( + model_name="snapshot", + name="start_value", + field=models.DecimalField( + decimal_places=2, + default=0, + max_digits=12, + verbose_name="Valeur de début", + ), + ), + migrations.AlterField( + model_name="snapshot", + name="sum", + field=models.DecimalField( + decimal_places=2, + default=0, + editable=False, + max_digits=12, + verbose_name="Différence des transactions", + ), + ), + migrations.AlterField( + model_name="snapshot", + name="value", + field=models.DecimalField( + decimal_places=2, default=0, max_digits=12, verbose_name="Valeur de fin" + ), + ), + migrations.AlterModelOptions( + name="category", + options={ + "ordering": ["name"], + "verbose_name": "Category", + "verbose_name_plural": "Categories", + }, + ), + migrations.AlterModelOptions( + name="invoice", + options={"verbose_name": "Invoice", "verbose_name_plural": "Invoices"}, + ), + migrations.AlterModelOptions( + name="snapshot", + options={ + "ordering": ["-date"], + "verbose_name": "Statement", + "verbose_name_plural": "Statements", + }, + ), + migrations.RemoveField( + model_name="category", + name="icon", + ), + migrations.AlterField( + model_name="category", + name="name", + field=models.CharField( + default="Category", max_length=64, verbose_name="Name" + ), + ), + migrations.AlterField( + model_name="category", + name="user", + field=models.ForeignKey( + editable=False, + on_delete=django.db.models.deletion.CASCADE, + to=settings.AUTH_USER_MODEL, + verbose_name="User", + ), + ), + migrations.AlterField( + model_name="invoice", + name="file", + field=models.FileField( + max_length=128, + upload_to=main.utils.get_path, + validators=[django.core.validators.FileExtensionValidator(["pdf"])], + verbose_name="File", + ), + ), + migrations.AlterField( + model_name="invoice", + name="name", + field=models.CharField( + default="Invoice", max_length=256, verbose_name="Name" + ), + ), + migrations.AlterField( + model_name="invoice", + name="user", + field=models.ForeignKey( + editable=False, + on_delete=django.db.models.deletion.CASCADE, + to=settings.AUTH_USER_MODEL, + verbose_name="User", + ), + ), + migrations.AlterField( + model_name="snapshot", + name="account", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="main.account", + verbose_name="Account", + ), + ), + migrations.AlterField( + model_name="snapshot", + name="date", + field=models.DateField( + default=datetime.date.today, verbose_name="End date" + ), + ), + migrations.AlterField( + model_name="snapshot", + name="diff", + field=models.DecimalField( + decimal_places=2, + default=0, + editable=False, + max_digits=12, + verbose_name="Difference", + ), + ), + migrations.AlterField( + model_name="snapshot", + name="file", + field=models.FileField( + blank=True, + default="", + max_length=256, + upload_to=main.utils.get_path, + validators=[django.core.validators.FileExtensionValidator(["pdf"])], + verbose_name="File", + ), + ), + migrations.AlterField( + model_name="snapshot", + name="start_date", + field=models.DateField( + default=datetime.date.today, verbose_name="Start date" + ), + ), + migrations.AlterField( + model_name="snapshot", + name="start_value", + field=models.DecimalField( + decimal_places=2, default=0, max_digits=12, verbose_name="Start value" + ), + ), + migrations.AlterField( + model_name="snapshot", + name="sum", + field=models.DecimalField( + decimal_places=2, + default=0, + editable=False, + max_digits=12, + verbose_name="Transaction difference", + ), + ), + migrations.AlterField( + model_name="snapshot", + name="user", + field=models.ForeignKey( + editable=False, + on_delete=django.db.models.deletion.CASCADE, + to=settings.AUTH_USER_MODEL, + verbose_name="User", + ), + ), + migrations.AlterField( + model_name="snapshot", + name="value", + field=models.DecimalField( + decimal_places=2, default=0, max_digits=12, verbose_name="End value" + ), + ), + migrations.AddField( + model_name="transaction", + name="account", + field=models.ForeignKey( + editable=False, + on_delete=django.db.models.deletion.CASCADE, + to="main.account", + verbose_name="Account", + ), + ), + migrations.AlterField( + model_name="transaction", + name="category", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="main.category", + verbose_name="Category", + ), + ), + migrations.AlterField( + model_name="transaction", + name="name", + field=models.CharField( + default="Transaction", max_length=256, verbose_name="Name" + ), + ), + migrations.AlterField( + model_name="transaction", + name="payment", + field=models.CharField( + blank=True, max_length=128, null=True, verbose_name="Payment" + ), + ), + migrations.AlterField( + model_name="transaction", + name="real_date", + field=models.DateField(blank=True, null=True, verbose_name="Real date"), + ), + migrations.AddField( + model_name="transaction", + name="snapshot", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="main.snapshot", + verbose_name="Statement", + ), + ), + migrations.AlterField( + model_name="transaction", + name="trader", + field=models.CharField( + blank=True, max_length=128, null=True, verbose_name="Trader" + ), + ), + migrations.AddField( + model_name="transaction", + name="user", + field=models.ForeignKey( + editable=False, + on_delete=django.db.models.deletion.CASCADE, + to=settings.AUTH_USER_MODEL, + verbose_name="User", + ), + ), + migrations.AlterField( + model_name="transaction", + name="value", + field=models.DecimalField( + decimal_places=2, default=0, max_digits=12, verbose_name="Value" + ), + ), + migrations.AlterModelOptions( + name="invoice", + options={ + "ordering": ["transaction", "name"], + "verbose_name": "Invoice", + "verbose_name_plural": "Invoices", + }, + ), + migrations.AlterModelOptions( + name="snapshot", + options={ + "ordering": ["-date", "account"], + "verbose_name": "Statement", + "verbose_name_plural": "Statements", + }, + ), + migrations.AlterModelOptions( + name="transaction", + options={ + "ordering": ["-date", "snapshot"], + "verbose_name": "Transaction", + "verbose_name_plural": "Transactions", + }, + ), + migrations.AddField( + model_name="category", + name="icon", + field=models.SlugField( + default="folder", max_length=24, verbose_name="Icon" + ), + ), + ]