From 5b6c123fa16a0593fd4d89a5c40794c49a6d7ec1 Mon Sep 17 00:00:00 2001 From: Herculino Trotta Date: Sun, 27 Jul 2025 23:19:39 -0300 Subject: [PATCH] refactor: properly name shareable objects generic fields --- ...wner_alter_account_shared_with_and_more.py | 46 ++++++++++++++ app/apps/common/models.py | 11 +++- .../0004_alter_dcastrategy_owner_and_more.py | 31 ++++++++++ ...14_alter_transactionrule_owner_and_more.py | 31 ++++++++++ ...lter_transactioncategory_owner_and_more.py | 61 +++++++++++++++++++ app/apps/transactions/models.py | 3 + 6 files changed, 181 insertions(+), 2 deletions(-) create mode 100644 app/apps/accounts/migrations/0015_alter_account_owner_alter_account_shared_with_and_more.py create mode 100644 app/apps/dca/migrations/0004_alter_dcastrategy_owner_and_more.py create mode 100644 app/apps/rules/migrations/0014_alter_transactionrule_owner_and_more.py create mode 100644 app/apps/transactions/migrations/0047_alter_transactioncategory_owner_and_more.py diff --git a/app/apps/accounts/migrations/0015_alter_account_owner_alter_account_shared_with_and_more.py b/app/apps/accounts/migrations/0015_alter_account_owner_alter_account_shared_with_and_more.py new file mode 100644 index 0000000..09b23b0 --- /dev/null +++ b/app/apps/accounts/migrations/0015_alter_account_owner_alter_account_shared_with_and_more.py @@ -0,0 +1,46 @@ +# Generated by Django 5.2.4 on 2025-07-28 02:15 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('accounts', '0014_alter_account_options_alter_accountgroup_options'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AlterField( + model_name='account', + name='owner', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)s_owned', to=settings.AUTH_USER_MODEL, verbose_name='Owner'), + ), + migrations.AlterField( + model_name='account', + name='shared_with', + field=models.ManyToManyField(blank=True, related_name='%(class)s_shared', to=settings.AUTH_USER_MODEL, verbose_name='Shared with users'), + ), + migrations.AlterField( + model_name='account', + name='visibility', + field=models.CharField(choices=[('private', 'Private'), ('public', 'Public')], default='private', max_length=10, verbose_name='Visibility'), + ), + migrations.AlterField( + model_name='accountgroup', + name='owner', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)s_owned', to=settings.AUTH_USER_MODEL, verbose_name='Owner'), + ), + migrations.AlterField( + model_name='accountgroup', + name='shared_with', + field=models.ManyToManyField(blank=True, related_name='%(class)s_shared', to=settings.AUTH_USER_MODEL, verbose_name='Shared with users'), + ), + migrations.AlterField( + model_name='accountgroup', + name='visibility', + field=models.CharField(choices=[('private', 'Private'), ('public', 'Public')], default='private', max_length=10, verbose_name='Visibility'), + ), + ] diff --git a/app/apps/common/models.py b/app/apps/common/models.py index d446921..10f79c8 100644 --- a/app/apps/common/models.py +++ b/app/apps/common/models.py @@ -36,12 +36,19 @@ class SharedObject(models.Model): related_name="%(class)s_owned", null=True, blank=True, + verbose_name=_("Owner"), ) visibility = models.CharField( - max_length=10, choices=Visibility.choices, default=Visibility.private + max_length=10, + choices=Visibility.choices, + default=Visibility.private, + verbose_name=_("Visibility"), ) shared_with = models.ManyToManyField( - settings.AUTH_USER_MODEL, related_name="%(class)s_shared", blank=True + settings.AUTH_USER_MODEL, + related_name="%(class)s_shared", + blank=True, + verbose_name=_("Shared with users"), ) # Use as abstract base class diff --git a/app/apps/dca/migrations/0004_alter_dcastrategy_owner_and_more.py b/app/apps/dca/migrations/0004_alter_dcastrategy_owner_and_more.py new file mode 100644 index 0000000..2e5e00e --- /dev/null +++ b/app/apps/dca/migrations/0004_alter_dcastrategy_owner_and_more.py @@ -0,0 +1,31 @@ +# Generated by Django 5.2.4 on 2025-07-28 02:15 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('dca', '0003_dcastrategy_owner_dcastrategy_shared_with_and_more'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AlterField( + model_name='dcastrategy', + name='owner', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)s_owned', to=settings.AUTH_USER_MODEL, verbose_name='Owner'), + ), + migrations.AlterField( + model_name='dcastrategy', + name='shared_with', + field=models.ManyToManyField(blank=True, related_name='%(class)s_shared', to=settings.AUTH_USER_MODEL, verbose_name='Shared with users'), + ), + migrations.AlterField( + model_name='dcastrategy', + name='visibility', + field=models.CharField(choices=[('private', 'Private'), ('public', 'Public')], default='private', max_length=10, verbose_name='Visibility'), + ), + ] diff --git a/app/apps/rules/migrations/0014_alter_transactionrule_owner_and_more.py b/app/apps/rules/migrations/0014_alter_transactionrule_owner_and_more.py new file mode 100644 index 0000000..cbf8d0a --- /dev/null +++ b/app/apps/rules/migrations/0014_alter_transactionrule_owner_and_more.py @@ -0,0 +1,31 @@ +# Generated by Django 5.2.4 on 2025-07-28 02:15 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('rules', '0013_transactionrule_on_delete'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AlterField( + model_name='transactionrule', + name='owner', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)s_owned', to=settings.AUTH_USER_MODEL, verbose_name='Owner'), + ), + migrations.AlterField( + model_name='transactionrule', + name='shared_with', + field=models.ManyToManyField(blank=True, related_name='%(class)s_shared', to=settings.AUTH_USER_MODEL, verbose_name='Shared with users'), + ), + migrations.AlterField( + model_name='transactionrule', + name='visibility', + field=models.CharField(choices=[('private', 'Private'), ('public', 'Public')], default='private', max_length=10, verbose_name='Visibility'), + ), + ] diff --git a/app/apps/transactions/migrations/0047_alter_transactioncategory_owner_and_more.py b/app/apps/transactions/migrations/0047_alter_transactioncategory_owner_and_more.py new file mode 100644 index 0000000..27d7d97 --- /dev/null +++ b/app/apps/transactions/migrations/0047_alter_transactioncategory_owner_and_more.py @@ -0,0 +1,61 @@ +# Generated by Django 5.2.4 on 2025-07-28 02:15 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('transactions', '0046_quicktransaction_mute'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AlterField( + model_name='transactioncategory', + name='owner', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)s_owned', to=settings.AUTH_USER_MODEL, verbose_name='Owner'), + ), + migrations.AlterField( + model_name='transactioncategory', + name='shared_with', + field=models.ManyToManyField(blank=True, related_name='%(class)s_shared', to=settings.AUTH_USER_MODEL, verbose_name='Shared with users'), + ), + migrations.AlterField( + model_name='transactioncategory', + name='visibility', + field=models.CharField(choices=[('private', 'Private'), ('public', 'Public')], default='private', max_length=10, verbose_name='Visibility'), + ), + migrations.AlterField( + model_name='transactionentity', + name='owner', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)s_owned', to=settings.AUTH_USER_MODEL, verbose_name='Owner'), + ), + migrations.AlterField( + model_name='transactionentity', + name='shared_with', + field=models.ManyToManyField(blank=True, related_name='%(class)s_shared', to=settings.AUTH_USER_MODEL, verbose_name='Shared with users'), + ), + migrations.AlterField( + model_name='transactionentity', + name='visibility', + field=models.CharField(choices=[('private', 'Private'), ('public', 'Public')], default='private', max_length=10, verbose_name='Visibility'), + ), + migrations.AlterField( + model_name='transactiontag', + name='owner', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)s_owned', to=settings.AUTH_USER_MODEL, verbose_name='Owner'), + ), + migrations.AlterField( + model_name='transactiontag', + name='shared_with', + field=models.ManyToManyField(blank=True, related_name='%(class)s_shared', to=settings.AUTH_USER_MODEL, verbose_name='Shared with users'), + ), + migrations.AlterField( + model_name='transactiontag', + name='visibility', + field=models.CharField(choices=[('private', 'Private'), ('public', 'Public')], default='private', max_length=10, verbose_name='Visibility'), + ), + ] diff --git a/app/apps/transactions/models.py b/app/apps/transactions/models.py index 7b363c4..927ca72 100644 --- a/app/apps/transactions/models.py +++ b/app/apps/transactions/models.py @@ -976,3 +976,6 @@ class QuickTransaction(OwnedObject): self.full_clean() super().save(*args, **kwargs) + + def __str__(self): + return self.name