From 08227d3af342971999af05be2a86a60e9fabdbb9 Mon Sep 17 00:00:00 2001 From: "Edgar P. Burkhart" Date: Sat, 31 Dec 2022 19:08:09 +0100 Subject: [PATCH] Add default account field Fixes #3 again --- nummi/main/forms.py | 1 + nummi/main/migrations/0024_account_default.py | 18 ++++++++++++++++++ nummi/main/models.py | 8 ++++++++ nummi/main/views.py | 4 +++- 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 nummi/main/migrations/0024_account_default.py diff --git a/nummi/main/forms.py b/nummi/main/forms.py index 0482833..7ade755 100644 --- a/nummi/main/forms.py +++ b/nummi/main/forms.py @@ -18,6 +18,7 @@ class AccountForm(NummiForm): fields = [ "name", "icon", + "default", ] diff --git a/nummi/main/migrations/0024_account_default.py b/nummi/main/migrations/0024_account_default.py new file mode 100644 index 0000000..89665b7 --- /dev/null +++ b/nummi/main/migrations/0024_account_default.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.4 on 2022-12-31 18:04 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("main", "0023_auto_20221231_1741"), + ] + + operations = [ + migrations.AddField( + model_name="account", + name="default", + field=models.BooleanField(default=False, verbose_name="Default"), + ), + ] diff --git a/nummi/main/models.py b/nummi/main/models.py index 989b979..e051b81 100644 --- a/nummi/main/models.py +++ b/nummi/main/models.py @@ -48,6 +48,14 @@ class Account(CustomModel): default="building-columns", verbose_name=_("Icon"), ) + default = models.BooleanField(default=False, verbose_name=_("Default")) + + def save(self, *args, **kwargs): + if self.default: + for ac in Account.objects.filter(user=self.user, default=True): + ac.default = False + ac.save() + super().save(*args, **kwargs) def __str__(self): return str(self.name) diff --git a/nummi/main/views.py b/nummi/main/views.py index 75ff656..5fd1a084 100644 --- a/nummi/main/views.py +++ b/nummi/main/views.py @@ -133,7 +133,9 @@ class SnapshotCreateView(NummiCreateView): "initial": { "account": ( self.kwargs.get("account") - or Account.objects.filter(user=self.request.user).first() + or Account.objects.filter(user=self.request.user) + .order_by("-default") + .first() ), }, }