unlink users from payments, delete payback model and other small model changes

This commit is contained in:
2024-06-11 23:38:38 +02:00
parent 58657c62e2
commit 6baf5c9066
2 changed files with 30 additions and 34 deletions

View File

@@ -0,0 +1,29 @@
# Generated by Django 5.0.6 on 2024-06-11 21:43
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('gaehsnitz', '0001_initial'),
]
operations = [
migrations.RemoveField(
model_name='donation',
name='from_user',
),
migrations.RemoveField(
model_name='payment',
name='from_user',
),
migrations.AlterField(
model_name='consumption',
name='day',
field=models.PositiveSmallIntegerField(choices=[(1, 'Do'), (2, 'Fr'), (3, 'Sa'), (4, 'So')]),
),
migrations.DeleteModel(
name='Payback',
),
]

View File

@@ -20,11 +20,6 @@ class User(AbstractUser):
def free_drinks(self): def free_drinks(self):
return self.consumption_list.filter(for_free=True) return self.consumption_list.filter(for_free=True)
@property
def donations_made(self):
query = self.donations.aggregate(sum=Sum("amount"))
return query["sum"] or 0
@property @property
def consumed_drinks_price(self): def consumed_drinks_price(self):
query = self.paid_drinks \ query = self.paid_drinks \
@@ -32,25 +27,8 @@ class User(AbstractUser):
.aggregate(sum=Sum("cost")) .aggregate(sum=Sum("cost"))
return query["sum"] or 0 return query["sum"] or 0
@property
def other_payments_made(self):
query = self.payments.aggregate(sum=Sum("amount"))
return query["sum"] or 0
@property
def paybacks_received(self):
query = self.paybacks.aggregate(sum=Sum("amount"))
return query["sum"] or 0
@property
def balance(self):
return self.donations_made - self.consumed_drinks_price + self.other_payments_made - self.paybacks_received
class Donation(models.Model): class Donation(models.Model):
from_user = models.ForeignKey(
to=User, on_delete=models.PROTECT,
related_name="donations", related_query_name="donation")
date = models.DateField() date = models.DateField()
amount = PriceField() amount = PriceField()
note = models.CharField(max_length=64, blank=True, default="") note = models.CharField(max_length=64, blank=True, default="")
@@ -65,19 +43,8 @@ class Payment(models.Model):
purpose = models.CharField(max_length=64) purpose = models.CharField(max_length=64)
date = models.DateField() date = models.DateField()
amount = PriceField() amount = PriceField()
from_user = models.ForeignKey(
to=User, on_delete=models.PROTECT,
related_name="payments", related_query_name="payment")
class Payback(models.Model):
to_user = models.ForeignKey(
to=User, on_delete=models.PROTECT,
related_name="paybacks", related_query_name="payback")
date = models.DateField()
amount = PriceField()
note = models.CharField(max_length=64, blank=True, default="")
class Drink(models.Model): class Drink(models.Model):
name = models.CharField(max_length=32, unique=True) name = models.CharField(max_length=32, unique=True)
@@ -166,5 +133,5 @@ class Consumption(models.Model):
to=Drink, on_delete=models.CASCADE, to=Drink, on_delete=models.CASCADE,
related_name="consumption_list", related_query_name="consumption") related_name="consumption_list", related_query_name="consumption")
amount = models.PositiveSmallIntegerField() amount = models.PositiveSmallIntegerField()
day = models.PositiveSmallIntegerField(choices=[(1, "Do"), (2, "Fr"), (3, "Sa")]) day = models.PositiveSmallIntegerField(choices=[(1, "Do"), (2, "Fr"), (3, "Sa"), (4, "So")])
for_free = models.BooleanField(default=False) for_free = models.BooleanField(default=False)