From 572d91018dcb2ebf836e6b7a801123a91cedad8c Mon Sep 17 00:00:00 2001 From: Flo Ha Date: Tue, 11 Jun 2024 23:41:07 +0200 Subject: [PATCH] handle model changes in management commands --- gaehsnitz/admin.py | 68 ++----------------- .../management/commands/total_balance.py | 14 ---- gaehsnitz/management/commands/user_stats.py | 26 +------ 3 files changed, 6 insertions(+), 102 deletions(-) diff --git a/gaehsnitz/admin.py b/gaehsnitz/admin.py index 0595644..ded26b0 100644 --- a/gaehsnitz/admin.py +++ b/gaehsnitz/admin.py @@ -3,35 +3,20 @@ from django.contrib.auth import get_user_model from django.contrib.auth.admin import UserAdmin from django.utils.safestring import mark_safe -from gaehsnitz.models import Donation, Payment, Drink, Consumption, Payback +from gaehsnitz.models import Donation, Payment, Drink, Consumption from gaehsnitz.templatetags.money import euro User = get_user_model() -class DonationInline(admin.TabularInline): - model = Donation - extra = 0 - - class ConsumptionInline(admin.TabularInline): model = Consumption extra = 0 -class PaymentInline(admin.TabularInline): - model = Payment - extra = 0 - - -class PaybackInline(admin.TabularInline): - model = Payback - extra = 0 - - @admin.register(User) class CustomUserAdmin(UserAdmin): - list_display = ("username", "balance") + list_display = ("username", "consumed_drinks_price") ordering = ("username",) list_filter = [] fieldsets = ( @@ -40,54 +25,21 @@ class CustomUserAdmin(UserAdmin): "password", )}), ("BALANCE", {"fields": ( - "donations_made", "consumed_drinks_price", - "other_payments_made", - "paybacks_received", - "balance", )}), ) readonly_fields = ( - "donations_made", "consumed_drinks_price", - "other_payments_made", - "paybacks_received", - "balance", ) - inlines = (DonationInline, ConsumptionInline, PaymentInline, PaybackInline) - - def donations_made(self, user: User): - return euro(user.donations_made) + inlines = (ConsumptionInline,) def consumed_drinks_price(self, user: User): return euro(user.consumed_drinks_price) - def other_payments_made(self, user: User): - return euro(user.other_payments_made) - - def paybacks_received(self, user: User): - return euro(user.paybacks_received) - - def balance(self, user: User): - val = user.balance - if val < 0: - color = "#FF8844" - elif val < 20: - color = "#EEEE33" - elif val < 40: - color = "#66FF33" - else: - color = "#5599FF" - return mark_safe( - f'' - f'{euro(val)}' - f'' - ) - @admin.register(Donation) class DonationAdmin(admin.ModelAdmin): - list_display = ("date", "from_user", "amount", "note") + list_display = ("date", "amount", "note") ordering = ("-date",) @admin.display(ordering="amount") @@ -97,7 +49,7 @@ class DonationAdmin(admin.ModelAdmin): @admin.register(Payment) class PaymentAdmin(admin.ModelAdmin): - list_display = ("date", "purpose", "amount", "from_user") + list_display = ("date", "purpose", "amount") ordering = ("-date",) @admin.display(ordering="amount") @@ -105,16 +57,6 @@ class PaymentAdmin(admin.ModelAdmin): return euro(payment.amount) -@admin.register(Payback) -class PaybackAdmin(admin.ModelAdmin): - list_display = ("date", "to_user", "amount", "note") - ordering = ("-date",) - - @admin.display(ordering="amount") - def amount(self, payback: Payback): - return euro(payback.amount) - - @admin.register(Drink) class DrinkAdmin(admin.ModelAdmin): list_display = ("name", "purchase_price_per_crate", "crates_purchased", "purchase_price_total") diff --git a/gaehsnitz/management/commands/total_balance.py b/gaehsnitz/management/commands/total_balance.py index bd3ef15..b2a3875 100644 --- a/gaehsnitz/management/commands/total_balance.py +++ b/gaehsnitz/management/commands/total_balance.py @@ -17,17 +17,3 @@ class Command(BaseCommand): balance = all_donations_sum - all_payments_sum print("-------------------------") print(f"Bilanz: {euro(balance)}") - print() - - print("Leute mit Schulden:") - awaited_sum = 0 - for user in User.objects.all().order_by("username"): - if (value := user.balance) < 0: - print(f"{user}: {euro(-value)}") - awaited_sum -= value - print("-------------------------") - print(f"gesamt: {euro(awaited_sum)}") - balance_after_payments = balance + awaited_sum - print("-------------------------") - print(f"Bilanz danach: {euro(balance_after_payments)}") - print() diff --git a/gaehsnitz/management/commands/user_stats.py b/gaehsnitz/management/commands/user_stats.py index 6a01920..dbdebef 100644 --- a/gaehsnitz/management/commands/user_stats.py +++ b/gaehsnitz/management/commands/user_stats.py @@ -12,7 +12,6 @@ class Command(BaseCommand): def handle(self, *args, **options): id_to_name = {d.id: d.name for d in Drink.objects.all()} for user in User.objects.all().order_by("username"): - print(f">>> {user.username.capitalize()}") to_pay = user.consumed_drinks_price if to_pay != 0: paid_consumption = user.consumption_list.filter(for_free=False) @@ -21,27 +20,4 @@ class Command(BaseCommand): name = id_to_name[drink_dict["drink_id"]] amount = drink_dict["amount"] drink_list.append(f"{amount}x {name}") - drink_list_str = ", ".join(drink_list) - print(f"zu zahlen: {euro(to_pay)} ({drink_list_str})") - - donated = user.donations_made - if donated != 0: - don_list = [f"{don.date:%d.%m.} {euro(don.amount)}" for don in user.donations.order_by("date")] - don_list_str = ", ".join(don_list) - print(f"gespendet: {euro(donated)} ({don_list_str})") - - paid = user.other_payments_made - if paid != 0: - pay_list = [f"{pay.purpose} {euro(pay.amount)}" for pay in user.payments.order_by("date")] - pay_list_str = ", ".join(pay_list) - print(f"bezahlt: {euro(paid)} ({pay_list_str})") - - paid_back = user.paybacks_received - if paid_back != 0: - pb_list = [f"{pb.date:%d.%m.} {euro(pb.amount)}" for pb in user.paybacks.order_by("date")] - pb_list_str = ", ".join(pb_list) - print(f"zurückbekommen: {euro(paid_back)} ({pb_list_str})") - - balance = donated + paid - to_pay - paid_back - print(f"==> STAND: {euro(balance)}") - print() + print(f"{user.username.capitalize()}: {euro(to_pay)} ({", ".join(drink_list)})")