From 10d3254ddaf938ef63690dd9424851ef39edccb9 Mon Sep 17 00:00:00 2001 From: Flo Ha Date: Thu, 19 Feb 2026 18:32:01 +0100 Subject: [PATCH] reformat everything using ruff --- gaehsnitz/admin.py | 145 +++++++----- .../management/commands/fill_data_2022.py | 166 ++++++++------ .../management/commands/fill_data_2024.py | 170 +++++++------- gaehsnitz/management/commands/user_stats.py | 2 +- gaehsnitz/migrations/0001_initial.py | 207 +++++++++++++----- ..._user_remove_payment_from_user_and_more.py | 19 +- gaehsnitz/models.py | 17 +- gaehsnitz/views.py | 22 +- gaehsnitzproject/wsgi.py | 2 +- manage.py | 5 +- 10 files changed, 464 insertions(+), 291 deletions(-) diff --git a/gaehsnitz/admin.py b/gaehsnitz/admin.py index ded26b0..37b2551 100644 --- a/gaehsnitz/admin.py +++ b/gaehsnitz/admin.py @@ -20,17 +20,18 @@ class CustomUserAdmin(UserAdmin): ordering = ("username",) list_filter = [] fieldsets = ( - (None, {"fields": ( - "username", - "password", - )}), - ("BALANCE", {"fields": ( - "consumed_drinks_price", - )}), - ) - readonly_fields = ( - "consumed_drinks_price", + ( + None, + { + "fields": ( + "username", + "password", + ) + }, + ), + ("BALANCE", {"fields": ("consumed_drinks_price",)}), ) + readonly_fields = ("consumed_drinks_price",) inlines = (ConsumptionInline,) def consumed_drinks_price(self, user: User): @@ -61,52 +62,88 @@ class PaymentAdmin(admin.ModelAdmin): class DrinkAdmin(admin.ModelAdmin): list_display = ("name", "purchase_price_per_crate", "crates_purchased", "purchase_price_total") fieldsets = ( - (None, {"fields": ( - "name", - )}), - ("crates", {"fields": ( - "crates_ordered", - "crates_purchased", - "crates_returned", - )}), - ("bottles", {"fields": ( - "bottles_per_crate", - "bottles_total", - "bottles_returned", - )}), - ("amount", {"fields": ( - "bottle_size", - "amount_per_crate", - "amount_total", - )}), - ("purchase", {"fields": ( - "purchase_price_per_crate", - "purchase_price_per_bottle", - "purchase_price_total", - )}), - ("deposit", {"fields": ( - "deposit_per_crate", - "deposit_total", - "deposit_refund", - "deposit_kept", - )}), - ("sales", {"fields": ( - "sale_price_per_bottle", - "bottles_sold", - "sales_purchase_value", - "sale_price_total", - "bottles_given_away", - "giveaway_purchase_value", - "balance", - )}), + (None, {"fields": ("name",)}), + ( + "crates", + { + "fields": ( + "crates_ordered", + "crates_purchased", + "crates_returned", + ) + }, + ), + ( + "bottles", + { + "fields": ( + "bottles_per_crate", + "bottles_total", + "bottles_returned", + ) + }, + ), + ( + "amount", + { + "fields": ( + "bottle_size", + "amount_per_crate", + "amount_total", + ) + }, + ), + ( + "purchase", + { + "fields": ( + "purchase_price_per_crate", + "purchase_price_per_bottle", + "purchase_price_total", + ) + }, + ), + ( + "deposit", + { + "fields": ( + "deposit_per_crate", + "deposit_total", + "deposit_refund", + "deposit_kept", + ) + }, + ), + ( + "sales", + { + "fields": ( + "sale_price_per_bottle", + "bottles_sold", + "sales_purchase_value", + "sale_price_total", + "bottles_given_away", + "giveaway_purchase_value", + "balance", + ) + }, + ), ) readonly_fields = ( - "bottles_total", "bottles_returned", - "amount_per_crate", "amount_total", - "purchase_price_per_bottle", "purchase_price_total", - "deposit_total", "deposit_refund", "deposit_kept", - "bottles_sold", "sales_purchase_value", "sale_price_total", - "bottles_given_away", "giveaway_purchase_value", + "bottles_total", + "bottles_returned", + "amount_per_crate", + "amount_total", + "purchase_price_per_bottle", + "purchase_price_total", + "deposit_total", + "deposit_refund", + "deposit_kept", + "bottles_sold", + "sales_purchase_value", + "sale_price_total", + "bottles_given_away", + "giveaway_purchase_value", "balance", ) diff --git a/gaehsnitz/management/commands/fill_data_2022.py b/gaehsnitz/management/commands/fill_data_2022.py index 83d8c7e..f13fe94 100644 --- a/gaehsnitz/management/commands/fill_data_2022.py +++ b/gaehsnitz/management/commands/fill_data_2022.py @@ -46,16 +46,14 @@ def payback(user, day, month, amount, note): def consumption(day: int, for_free: bool, drink_dict: Dict[User, List[Tuple[int, Drink]]]): for user, drink_list in drink_dict.items(): for amount, drink in drink_list: - Consumption.objects.create( - user=user, drink=drink, amount=amount, day=day, for_free=for_free) + Consumption.objects.create(user=user, drink=drink, amount=amount, day=day, for_free=for_free) class Command(BaseCommand): @transaction.atomic() def handle(self, *args, **options): if any(model.objects.exists() for model in [Donation, Payment, Drink, Consumption]): - raise CommandError( - "clear all donation, payment, drink and consumption objects before running this command") + raise CommandError("clear all donation, payment, drink and consumption objects before running this command") # --------------- PEOPLE --------------- @@ -224,82 +222,106 @@ class Command(BaseCommand): # --------------- THURSDAY --------------- - consumption(day=1, for_free=False, drink_dict={ - robert: [(2, mate), (2, radler), (1, wasser)], - thure: [(4, sterni), (1, krosti), (2, radler)], - tobi: [(7, sterni), (2, krosti)], - herald: [(1, radler), (2, wasser), (4, wein)], - annemarie: [(1, sterni), (1, wasser), (2, wein)], - cathi_clemens: [(1, sterni), (2, radler)], - flo: [(6, sterni), (1, wasser)], - josi: [(4, sterni)], - aimee: [(5, sterni)], - lutz: [(1, sterni), (1, wasser)], - lasse: [(2, sterni), (1, wasser)], - domi: [(1, sterni), (1, radler)], - }) - consumption(day=1, for_free=True, drink_dict={ - seth_family: [(1, krosti), (1, radler)], - }) + consumption( + day=1, + for_free=False, + drink_dict={ + robert: [(2, mate), (2, radler), (1, wasser)], + thure: [(4, sterni), (1, krosti), (2, radler)], + tobi: [(7, sterni), (2, krosti)], + herald: [(1, radler), (2, wasser), (4, wein)], + annemarie: [(1, sterni), (1, wasser), (2, wein)], + cathi_clemens: [(1, sterni), (2, radler)], + flo: [(6, sterni), (1, wasser)], + josi: [(4, sterni)], + aimee: [(5, sterni)], + lutz: [(1, sterni), (1, wasser)], + lasse: [(2, sterni), (1, wasser)], + domi: [(1, sterni), (1, radler)], + }, + ) + consumption( + day=1, + for_free=True, + drink_dict={ + seth_family: [(1, krosti), (1, radler)], + }, + ) # --------------- FRIDAY --------------- - consumption(day=2, for_free=False, drink_dict={ - robert: [(2, mate), (1, radler)], - thure: [(8, sterni), (2, krosti), (1, wasser)], - tobi: [(2, mate), (5, sterni), (5, krosti), (3, radler), (1, cola)], - herald: [(1, mate), (1, sterni), (2, radler), (1, cola), (4, wasser), (7, wein)], - annemarie: [(2, mate), (9, sterni), (1, krosti), (2, radler), (3, wasser)], - cathi_clemens: [(3, sterni), (3, radler)], - flo: [(1, mate), (6, sterni), (3, wasser)], - josi: [(8, sterni), (1, krosti), (2, radler)], - andrew: [(4, sterni)], - peter: [(7, sterni), (1, krosti), (2, wasser)], - fiddi_melli: [(6, sterni), (3, radler), (1, wasser)], - suse: [(1, krosti), (1, radler)], - lilly_simon: [(1, mate), (7, sterni), (3, wasser)] - }) + consumption( + day=2, + for_free=False, + drink_dict={ + robert: [(2, mate), (1, radler)], + thure: [(8, sterni), (2, krosti), (1, wasser)], + tobi: [(2, mate), (5, sterni), (5, krosti), (3, radler), (1, cola)], + herald: [(1, mate), (1, sterni), (2, radler), (1, cola), (4, wasser), (7, wein)], + annemarie: [(2, mate), (9, sterni), (1, krosti), (2, radler), (3, wasser)], + cathi_clemens: [(3, sterni), (3, radler)], + flo: [(1, mate), (6, sterni), (3, wasser)], + josi: [(8, sterni), (1, krosti), (2, radler)], + andrew: [(4, sterni)], + peter: [(7, sterni), (1, krosti), (2, wasser)], + fiddi_melli: [(6, sterni), (3, radler), (1, wasser)], + suse: [(1, krosti), (1, radler)], + lilly_simon: [(1, mate), (7, sterni), (3, wasser)], + }, + ) - consumption(day=2, for_free=True, drink_dict={ - seth_family: [(1, mate), (6, sterni), (3, wasser)], - aimee: [(1, mate), (9, sterni), (3, wasser)], - lutz: [(1, mate), (9, sterni), (3, wasser)], - lasse: [(7, sterni), (1, wasser)], - domi: [(1, mate), (4, sterni), (1, wasser)], - hans_welle: [(3, mate), (7, sterni), (7, krosti), (1, cola), (2, wasser)], - }) + consumption( + day=2, + for_free=True, + drink_dict={ + seth_family: [(1, mate), (6, sterni), (3, wasser)], + aimee: [(1, mate), (9, sterni), (3, wasser)], + lutz: [(1, mate), (9, sterni), (3, wasser)], + lasse: [(7, sterni), (1, wasser)], + domi: [(1, mate), (4, sterni), (1, wasser)], + hans_welle: [(3, mate), (7, sterni), (7, krosti), (1, cola), (2, wasser)], + }, + ) # --------------- SATURDAY --------------- - consumption(day=3, for_free=False, drink_dict={ - robert: [(4, mate), (1, cola), (4, wasser)], - tobi: [(9, sterni), (1, krosti), (2, radler), (1, cola)], - herald: [(2, mate), (2, radler), (3, wasser), (5, wein)], - annemarie: [(2, mate), (6, sterni), (3, radler), (1, cola), (1, wasser)], - cathi_clemens: [(4, sterni), (8, radler), (1, wasser)], - flo: [(2, mate), (8, sterni), (1, radler), (3, wasser)], - josi: [(9, sterni), (2, radler), (2, wasser)], - aimee: [(10, sterni), (2, radler)], - lutz: [(1, krosti), (1, wasser)], - lasse: [(1, mate), (8, sterni)], - domi: [(6, sterni), (2, radler), (1, wasser)], - peter: [(3, sterni), (3, krosti), (2, radler)], - fiddi_melli: [(1, mate), (1, wasser)], - suse: [(1, mate), (1, sterni), (2, krosti), (4, radler)], - lilly_simon: [(1, mate), (2, radler), (7, wasser)], - kevin: [(1, mate), (1, radler)], - rebecca: [(1, radler)], - resi_simon: [(8, sterni), (1, radler), (1, wasser)], - }) + consumption( + day=3, + for_free=False, + drink_dict={ + robert: [(4, mate), (1, cola), (4, wasser)], + tobi: [(9, sterni), (1, krosti), (2, radler), (1, cola)], + herald: [(2, mate), (2, radler), (3, wasser), (5, wein)], + annemarie: [(2, mate), (6, sterni), (3, radler), (1, cola), (1, wasser)], + cathi_clemens: [(4, sterni), (8, radler), (1, wasser)], + flo: [(2, mate), (8, sterni), (1, radler), (3, wasser)], + josi: [(9, sterni), (2, radler), (2, wasser)], + aimee: [(10, sterni), (2, radler)], + lutz: [(1, krosti), (1, wasser)], + lasse: [(1, mate), (8, sterni)], + domi: [(6, sterni), (2, radler), (1, wasser)], + peter: [(3, sterni), (3, krosti), (2, radler)], + fiddi_melli: [(1, mate), (1, wasser)], + suse: [(1, mate), (1, sterni), (2, krosti), (4, radler)], + lilly_simon: [(1, mate), (2, radler), (7, wasser)], + kevin: [(1, mate), (1, radler)], + rebecca: [(1, radler)], + resi_simon: [(8, sterni), (1, radler), (1, wasser)], + }, + ) - consumption(day=3, for_free=True, drink_dict={ - thure: [(1, mate), (4, sterni), (5, radler), (3, wasser)], - seth_family: [(1, mate), (2, sterni), (12, krosti), (1, wasser)], - andrew: [(3, sterni), (2, krosti), (3, radler), (1, wasser)], - robin: [(1, mate), (4, krosti), (2, radler)], - melokomplott: [(5, mate), (13, sterni), (1, krosti), (1, radler)], - residudes: [(2, mate), (1, sterni), (15, krosti), (7, radler), (1, wasser)], - }) + consumption( + day=3, + for_free=True, + drink_dict={ + thure: [(1, mate), (4, sterni), (5, radler), (3, wasser)], + seth_family: [(1, mate), (2, sterni), (12, krosti), (1, wasser)], + andrew: [(3, sterni), (2, krosti), (3, radler), (1, wasser)], + robin: [(1, mate), (4, krosti), (2, radler)], + melokomplott: [(5, mate), (13, sterni), (1, krosti), (1, radler)], + residudes: [(2, mate), (1, sterni), (15, krosti), (7, radler), (1, wasser)], + }, + ) # --------------- ADMIN STUFF --------------- diff --git a/gaehsnitz/management/commands/fill_data_2024.py b/gaehsnitz/management/commands/fill_data_2024.py index d9f6c6c..86cee0b 100644 --- a/gaehsnitz/management/commands/fill_data_2024.py +++ b/gaehsnitz/management/commands/fill_data_2024.py @@ -35,16 +35,14 @@ def payment(purpose, day, month, amount): def consumption(day: int, for_free: bool, drink_dict: Dict[User, List[Tuple[int, Drink]]]): for user, drink_list in drink_dict.items(): for amount, drink in drink_list: - Consumption.objects.create( - user=user, drink=drink, amount=amount, day=day, for_free=for_free) + Consumption.objects.create(user=user, drink=drink, amount=amount, day=day, for_free=for_free) class Command(BaseCommand): @transaction.atomic() def handle(self, *args, **options): if any(model.objects.exists() for model in [Donation, Payment, Drink, Consumption]): - raise CommandError( - "clear all donation, payment, drink and consumption objects before running this command") + raise CommandError("clear all donation, payment, drink and consumption objects before running this command") # --------------- PEOPLE --------------- @@ -232,86 +230,106 @@ class Command(BaseCommand): # --------------- THURSDAY --------------- - consumption(day=1, for_free=False, drink_dict={ - enni: [(2, wasser), (9, sterni)], - robert: [(2, wasser), (2, freiberger), (1, spezi), (2, mate)], - josi: [(5, sterni), (1, radler)], - tobi: [(5, sterni), (1, freiberger), (2, mate)], - annemarie: [(1, wasser), (4, sterni), (1, radler)], - sandra: [(1, wasser), (3, sterni), (1, spezi), (1, mate)], - flo: [(2, wasser), (5, sterni), (1, mate), (1, helles)], - }) + consumption( + day=1, + for_free=False, + drink_dict={ + enni: [(2, wasser), (9, sterni)], + robert: [(2, wasser), (2, freiberger), (1, spezi), (2, mate)], + josi: [(5, sterni), (1, radler)], + tobi: [(5, sterni), (1, freiberger), (2, mate)], + annemarie: [(1, wasser), (4, sterni), (1, radler)], + sandra: [(1, wasser), (3, sterni), (1, spezi), (1, mate)], + flo: [(2, wasser), (5, sterni), (1, mate), (1, helles)], + }, + ) # --------------- FRIDAY --------------- - consumption(day=2, for_free=False, drink_dict={ - tobi: [(2, wasser), (9, sterni), (2, freiberger)], - annemarie: [(1, wasser), (5, sterni), (2, mate), (2, radler), (2, buddi), (3, sekt)], - sandra: [(1, freiberger), (1, buddi), (1, spezi), (2, mate), (1, radler), (2, sekt)], - robert: [(2, wasser), (1, freiberger), (1, buddi), (1, spezi)], - josi: [(2, wasser), (6, sterni), (1, freiberger), (2, radler)], - enni: [(2, wasser), (10, sterni), (1, spezi)], - steven: [(1, sterni), (1, krosti), (1, radler), (5, helles)], - marten: [(9, krosti)], - thure: [(4, sterni)], - jona: [(2, freiberger), (10, krosti)], - benni: [(5, krosti), (1, helles)], - katha: [(1, krosti), (1, mate)], - diana: [(5, sterni), (1, radler)], - katz: [(3, krosti), (1, buddi)], - alexius: [(8, sterni)], - pauline: [(5, sterni), (1, radler)], - herald: [(1, wasser), (2, sterni), (1, freiberger)], - arthur: [(6, sterni), (1, radler)], - matze: [(1, sterni), (1, freiberger)], - dennis: [(1, sterni), (2, krosti)], - marvin: [(3, sterni), (1, krosti), (1, mate)], - simon: [(1, sterni)], - }) + consumption( + day=2, + for_free=False, + drink_dict={ + tobi: [(2, wasser), (9, sterni), (2, freiberger)], + annemarie: [(1, wasser), (5, sterni), (2, mate), (2, radler), (2, buddi), (3, sekt)], + sandra: [(1, freiberger), (1, buddi), (1, spezi), (2, mate), (1, radler), (2, sekt)], + robert: [(2, wasser), (1, freiberger), (1, buddi), (1, spezi)], + josi: [(2, wasser), (6, sterni), (1, freiberger), (2, radler)], + enni: [(2, wasser), (10, sterni), (1, spezi)], + steven: [(1, sterni), (1, krosti), (1, radler), (5, helles)], + marten: [(9, krosti)], + thure: [(4, sterni)], + jona: [(2, freiberger), (10, krosti)], + benni: [(5, krosti), (1, helles)], + katha: [(1, krosti), (1, mate)], + diana: [(5, sterni), (1, radler)], + katz: [(3, krosti), (1, buddi)], + alexius: [(8, sterni)], + pauline: [(5, sterni), (1, radler)], + herald: [(1, wasser), (2, sterni), (1, freiberger)], + arthur: [(6, sterni), (1, radler)], + matze: [(1, sterni), (1, freiberger)], + dennis: [(1, sterni), (2, krosti)], + marvin: [(3, sterni), (1, krosti), (1, mate)], + simon: [(1, sterni)], + }, + ) - consumption(day=2, for_free=True, drink_dict={ - flo: [(2, wasser), (3, sterni), (1, freiberger), (3, helles)], - casi: [(6, sterni)], - sepp: [(6, sterni)], - ohli: [(4, sterni)], - marius: [(1, radler)], - anonym: [(10, sterni), (10, krosti), (2, radler), (4, helles), (1, sekt)] - }) + consumption( + day=2, + for_free=True, + drink_dict={ + flo: [(2, wasser), (3, sterni), (1, freiberger), (3, helles)], + casi: [(6, sterni)], + sepp: [(6, sterni)], + ohli: [(4, sterni)], + marius: [(1, radler)], + anonym: [(10, sterni), (10, krosti), (2, radler), (4, helles), (1, sekt)], + }, + ) # --------------- SATURDAY --------------- - consumption(day=3, for_free=False, drink_dict={ - herald: [(1, sterni), (2, freiberger), (2, radler), (1, buddi), (5, spezi), (2, wasser)], - thure: [(6, sterni), (1, krosti), (1, radler), (2, spezi)], - sandra: [(6, sterni), (1, freiberger), (2, radler), (1, mate), (1, cola), (1, sekt)], - marvin: [(1, sterni), (1, mate)], - simon: [(10, sterni), (1, radler), (1, mate)], - jona: [(6, sterni), (4, krosti)], - robert: [(1, sterni), (1, freiberger), (1, buddi), (2, mate), (2, spezi), (3, wasser)], - steven: [(5, helles), (1, sterni), (2, radler), (1, mate)], - flo: [(4, helles), (1, freiberger), (1, buddi), (2, mate)], - matze: [(4, sterni), (2, radler), (3, buddi), (7, spezi)], - alexius: [(2, helles), (3, sterni), (1, radler), (1, cola)], - josi: [(5, sterni), (1, radler), (2, mate), (2, wasser), (1, sekt)], - benni: [(1, helles), (2, krosti), (2, radler), (1, wasser)], - ohli: [(1, helles), (3, sterni), (2, krosti), (1, radler), (1, buddi), (1, mate)], - arthur: [(3, sterni), (1, krosti), (1, radler), (1, mate), (3, spezi), (2, sekt)], - pauline: [(2, sterni), (2, radler), (1, mate), (1, cola)], - enni: [(9, sterni), (1, spezi), (2, wasser), (1, sekt)], - annemarie: [(5, sterni), (4, radler), (2, buddi), (1, mate), (1, wasser), (2, sekt)], - tobi: [(3, sterni), (1, radler), (1, mate), (1, wasser)], - marten: [(4, helles), (1, krosti)], - lukas: [(4, sterni), (1, spezi)], - lilly: [(5, sterni), (1, mate)], - andrea: [(1, buddi)], - lena: [(1, sterni)], - anonym: [(2, helles), (3, sterni), (5, krosti), (2, radler), (1, cola), (2, sekt)] - }) + consumption( + day=3, + for_free=False, + drink_dict={ + herald: [(1, sterni), (2, freiberger), (2, radler), (1, buddi), (5, spezi), (2, wasser)], + thure: [(6, sterni), (1, krosti), (1, radler), (2, spezi)], + sandra: [(6, sterni), (1, freiberger), (2, radler), (1, mate), (1, cola), (1, sekt)], + marvin: [(1, sterni), (1, mate)], + simon: [(10, sterni), (1, radler), (1, mate)], + jona: [(6, sterni), (4, krosti)], + robert: [(1, sterni), (1, freiberger), (1, buddi), (2, mate), (2, spezi), (3, wasser)], + steven: [(5, helles), (1, sterni), (2, radler), (1, mate)], + flo: [(4, helles), (1, freiberger), (1, buddi), (2, mate)], + matze: [(4, sterni), (2, radler), (3, buddi), (7, spezi)], + alexius: [(2, helles), (3, sterni), (1, radler), (1, cola)], + josi: [(5, sterni), (1, radler), (2, mate), (2, wasser), (1, sekt)], + benni: [(1, helles), (2, krosti), (2, radler), (1, wasser)], + ohli: [(1, helles), (3, sterni), (2, krosti), (1, radler), (1, buddi), (1, mate)], + arthur: [(3, sterni), (1, krosti), (1, radler), (1, mate), (3, spezi), (2, sekt)], + pauline: [(2, sterni), (2, radler), (1, mate), (1, cola)], + enni: [(9, sterni), (1, spezi), (2, wasser), (1, sekt)], + annemarie: [(5, sterni), (4, radler), (2, buddi), (1, mate), (1, wasser), (2, sekt)], + tobi: [(3, sterni), (1, radler), (1, mate), (1, wasser)], + marten: [(4, helles), (1, krosti)], + lukas: [(4, sterni), (1, spezi)], + lilly: [(5, sterni), (1, mate)], + andrea: [(1, buddi)], + lena: [(1, sterni)], + anonym: [(2, helles), (3, sterni), (5, krosti), (2, radler), (1, cola), (2, sekt)], + }, + ) - consumption(day=3, for_free=True, drink_dict={ - rockbert: [(8, krosti), (1, radler), (1, mate)], - anonym: [(8, sterni), (2, krosti), (2, mate), (1, cola)] - }) + consumption( + day=3, + for_free=True, + drink_dict={ + rockbert: [(8, krosti), (1, radler), (1, mate)], + anonym: [(8, sterni), (2, krosti), (2, mate), (1, cola)], + }, + ) # --------------- ADMIN STUFF --------------- diff --git a/gaehsnitz/management/commands/user_stats.py b/gaehsnitz/management/commands/user_stats.py index dbdebef..ed7183b 100644 --- a/gaehsnitz/management/commands/user_stats.py +++ b/gaehsnitz/management/commands/user_stats.py @@ -20,4 +20,4 @@ class Command(BaseCommand): name = id_to_name[drink_dict["drink_id"]] amount = drink_dict["amount"] drink_list.append(f"{amount}x {name}") - print(f"{user.username.capitalize()}: {euro(to_pay)} ({", ".join(drink_list)})") + print(f"{user.username.capitalize()}: {euro(to_pay)} ({', '.join(drink_list)})") diff --git a/gaehsnitz/migrations/0001_initial.py b/gaehsnitz/migrations/0001_initial.py index f2fcb7a..1ad61ac 100644 --- a/gaehsnitz/migrations/0001_initial.py +++ b/gaehsnitz/migrations/0001_initial.py @@ -10,94 +10,189 @@ import gaehsnitz.models class Migration(migrations.Migration): - initial = True dependencies = [ - ('auth', '0012_alter_user_first_name_max_length'), + ("auth", "0012_alter_user_first_name_max_length"), ] operations = [ migrations.CreateModel( - name='User', + name="User", fields=[ - ('id', models.SmallAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('password', models.CharField(max_length=128, verbose_name='password')), - ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), - ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), - ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')), - ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')), - ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), - ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), - ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), - ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), - ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), - ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')), - ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')), + ("id", models.SmallAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), + ("password", models.CharField(max_length=128, verbose_name="password")), + ("last_login", models.DateTimeField(blank=True, null=True, verbose_name="last login")), + ( + "is_superuser", + models.BooleanField( + default=False, + help_text="Designates that this user has all permissions without explicitly assigning them.", + verbose_name="superuser status", + ), + ), + ( + "username", + models.CharField( + error_messages={"unique": "A user with that username already exists."}, + help_text="Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.", + max_length=150, + unique=True, + validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], + verbose_name="username", + ), + ), + ("first_name", models.CharField(blank=True, max_length=150, verbose_name="first name")), + ("last_name", models.CharField(blank=True, max_length=150, verbose_name="last name")), + ("email", models.EmailField(blank=True, max_length=254, verbose_name="email address")), + ( + "is_staff", + models.BooleanField( + default=False, + help_text="Designates whether the user can log into this admin site.", + verbose_name="staff status", + ), + ), + ( + "is_active", + models.BooleanField( + default=True, + help_text="Designates whether this user should be treated as active. Unselect this instead of deleting accounts.", + verbose_name="active", + ), + ), + ("date_joined", models.DateTimeField(default=django.utils.timezone.now, verbose_name="date joined")), + ( + "groups", + models.ManyToManyField( + blank=True, + help_text="The groups this user belongs to. A user will get all permissions granted to each of their groups.", + related_name="user_set", + related_query_name="user", + to="auth.group", + verbose_name="groups", + ), + ), + ( + "user_permissions", + models.ManyToManyField( + blank=True, + help_text="Specific permissions for this user.", + related_name="user_set", + related_query_name="user", + to="auth.permission", + verbose_name="user permissions", + ), + ), ], options={ - 'verbose_name': 'user', - 'verbose_name_plural': 'users', - 'abstract': False, + "verbose_name": "user", + "verbose_name_plural": "users", + "abstract": False, }, managers=[ - ('objects', django.contrib.auth.models.UserManager()), + ("objects", django.contrib.auth.models.UserManager()), ], ), migrations.CreateModel( - name='Drink', + name="Drink", fields=[ - ('id', models.SmallAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=32, unique=True)), - ('crates_ordered', models.PositiveSmallIntegerField(help_text='just informational to see how good we planned, not the actual consumed/paid drinks')), - ('crates_purchased', models.PositiveSmallIntegerField()), - ('crates_returned', models.PositiveSmallIntegerField()), - ('purchase_price_per_crate', gaehsnitz.models.PriceField(decimal_places=2, max_digits=6)), - ('deposit_per_crate', gaehsnitz.models.PriceField(decimal_places=2, max_digits=6)), - ('bottles_per_crate', models.PositiveSmallIntegerField()), - ('bottle_size', models.FloatField()), - ('sale_price_per_bottle', gaehsnitz.models.PriceField(decimal_places=2, max_digits=6)), + ("id", models.SmallAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), + ("name", models.CharField(max_length=32, unique=True)), + ( + "crates_ordered", + models.PositiveSmallIntegerField( + help_text="just informational to see how good we planned, not the actual consumed/paid drinks" + ), + ), + ("crates_purchased", models.PositiveSmallIntegerField()), + ("crates_returned", models.PositiveSmallIntegerField()), + ("purchase_price_per_crate", gaehsnitz.models.PriceField(decimal_places=2, max_digits=6)), + ("deposit_per_crate", gaehsnitz.models.PriceField(decimal_places=2, max_digits=6)), + ("bottles_per_crate", models.PositiveSmallIntegerField()), + ("bottle_size", models.FloatField()), + ("sale_price_per_bottle", gaehsnitz.models.PriceField(decimal_places=2, max_digits=6)), ], ), migrations.CreateModel( - name='Payment', + name="Payment", fields=[ - ('id', models.SmallAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('purpose', models.CharField(max_length=64)), - ('date', models.DateField()), - ('amount', gaehsnitz.models.PriceField(decimal_places=2, max_digits=6)), - ('from_user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='payments', related_query_name='payment', to=settings.AUTH_USER_MODEL)), + ("id", models.SmallAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), + ("purpose", models.CharField(max_length=64)), + ("date", models.DateField()), + ("amount", gaehsnitz.models.PriceField(decimal_places=2, max_digits=6)), + ( + "from_user", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="payments", + related_query_name="payment", + to=settings.AUTH_USER_MODEL, + ), + ), ], ), migrations.CreateModel( - name='Payback', + name="Payback", fields=[ - ('id', models.SmallAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('date', models.DateField()), - ('amount', gaehsnitz.models.PriceField(decimal_places=2, max_digits=6)), - ('note', models.CharField(blank=True, default='', max_length=64)), - ('to_user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='paybacks', related_query_name='payback', to=settings.AUTH_USER_MODEL)), + ("id", models.SmallAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), + ("date", models.DateField()), + ("amount", gaehsnitz.models.PriceField(decimal_places=2, max_digits=6)), + ("note", models.CharField(blank=True, default="", max_length=64)), + ( + "to_user", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="paybacks", + related_query_name="payback", + to=settings.AUTH_USER_MODEL, + ), + ), ], ), migrations.CreateModel( - name='Donation', + name="Donation", fields=[ - ('id', models.SmallAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('date', models.DateField()), - ('amount', gaehsnitz.models.PriceField(decimal_places=2, max_digits=6)), - ('note', models.CharField(blank=True, default='', max_length=64)), - ('from_user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='donations', related_query_name='donation', to=settings.AUTH_USER_MODEL)), + ("id", models.SmallAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), + ("date", models.DateField()), + ("amount", gaehsnitz.models.PriceField(decimal_places=2, max_digits=6)), + ("note", models.CharField(blank=True, default="", max_length=64)), + ( + "from_user", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="donations", + related_query_name="donation", + to=settings.AUTH_USER_MODEL, + ), + ), ], ), migrations.CreateModel( - name='Consumption', + name="Consumption", fields=[ - ('id', models.SmallAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('amount', models.PositiveSmallIntegerField()), - ('day', models.PositiveSmallIntegerField(choices=[(1, 'Do'), (2, 'Fr'), (3, 'Sa')])), - ('for_free', models.BooleanField(default=False)), - ('drink', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='consumption_list', related_query_name='consumption', to='gaehsnitz.drink')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='consumption_list', related_query_name='consumption', to=settings.AUTH_USER_MODEL)), + ("id", models.SmallAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), + ("amount", models.PositiveSmallIntegerField()), + ("day", models.PositiveSmallIntegerField(choices=[(1, "Do"), (2, "Fr"), (3, "Sa")])), + ("for_free", models.BooleanField(default=False)), + ( + "drink", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="consumption_list", + related_query_name="consumption", + to="gaehsnitz.drink", + ), + ), + ( + "user", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="consumption_list", + related_query_name="consumption", + to=settings.AUTH_USER_MODEL, + ), + ), ], ), ] diff --git a/gaehsnitz/migrations/0002_remove_donation_from_user_remove_payment_from_user_and_more.py b/gaehsnitz/migrations/0002_remove_donation_from_user_remove_payment_from_user_and_more.py index c664bb0..c515915 100644 --- a/gaehsnitz/migrations/0002_remove_donation_from_user_remove_payment_from_user_and_more.py +++ b/gaehsnitz/migrations/0002_remove_donation_from_user_remove_payment_from_user_and_more.py @@ -4,26 +4,25 @@ from django.db import migrations, models class Migration(migrations.Migration): - dependencies = [ - ('gaehsnitz', '0001_initial'), + ("gaehsnitz", "0001_initial"), ] operations = [ migrations.RemoveField( - model_name='donation', - name='from_user', + model_name="donation", + name="from_user", ), migrations.RemoveField( - model_name='payment', - name='from_user', + 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')]), + model_name="consumption", + name="day", + field=models.PositiveSmallIntegerField(choices=[(1, "Do"), (2, "Fr"), (3, "Sa"), (4, "So")]), ), migrations.DeleteModel( - name='Payback', + name="Payback", ), ] diff --git a/gaehsnitz/models.py b/gaehsnitz/models.py index 36f52e6..63105d4 100644 --- a/gaehsnitz/models.py +++ b/gaehsnitz/models.py @@ -4,14 +4,12 @@ from django.db.models import Sum, F class PriceField(models.DecimalField): - def __init__(self, verbose_name=None, name=None, **kwargs): kwargs.update({"max_digits": 6, "decimal_places": 2}) super().__init__(verbose_name, name, **kwargs) class User(AbstractUser): - @property def paid_drinks(self): return self.consumption_list.filter(for_free=False) @@ -22,9 +20,9 @@ class User(AbstractUser): @property def consumed_drinks_price(self): - query = self.paid_drinks \ - .annotate(cost=F("amount") * F("drink__sale_price_per_bottle")) \ - .aggregate(sum=Sum("cost")) + query = self.paid_drinks.annotate(cost=F("amount") * F("drink__sale_price_per_bottle")).aggregate( + sum=Sum("cost") + ) return query["sum"] or 0 @@ -45,7 +43,6 @@ class Payment(models.Model): amount = PriceField() - class Drink(models.Model): name = models.CharField(max_length=32, unique=True) crates_ordered = models.PositiveSmallIntegerField( @@ -127,11 +124,11 @@ class Drink(models.Model): class Consumption(models.Model): user = models.ForeignKey( - to=User, on_delete=models.CASCADE, - related_name="consumption_list", related_query_name="consumption") + to=User, on_delete=models.CASCADE, related_name="consumption_list", related_query_name="consumption" + ) drink = models.ForeignKey( - to=Drink, on_delete=models.CASCADE, - related_name="consumption_list", related_query_name="consumption") + to=Drink, on_delete=models.CASCADE, related_name="consumption_list", related_query_name="consumption" + ) amount = models.PositiveSmallIntegerField() day = models.PositiveSmallIntegerField(choices=[(1, "Do"), (2, "Fr"), (3, "Sa"), (4, "So")]) for_free = models.BooleanField(default=False) diff --git a/gaehsnitz/views.py b/gaehsnitz/views.py index 89c99be..5dda5b2 100644 --- a/gaehsnitz/views.py +++ b/gaehsnitz/views.py @@ -14,9 +14,11 @@ class GaehsnitzTemplateView(TemplateView): context = super().get_context_data(**kwargs) delta_til_start = festival_start_date - date.today() days_til_start = max(delta_til_start.days, 0) - context.update({ - "days_til_festival_start": days_til_start, - }) + context.update( + { + "days_til_festival_start": days_til_start, + } + ) return context @@ -55,12 +57,14 @@ class FinanceView(GaehsnitzTemplateView): displayed_payments.append(Payment(purpose="Bands", amount=band_sum)) - context.update({ - "total_donations": total_donations, - "total_payments": total_payments, - "total_balance": total_balance, - "payments": displayed_payments, - }) + context.update( + { + "total_donations": total_donations, + "total_payments": total_payments, + "total_balance": total_balance, + "payments": displayed_payments, + } + ) return context diff --git a/gaehsnitzproject/wsgi.py b/gaehsnitzproject/wsgi.py index d717378..fe5da11 100644 --- a/gaehsnitzproject/wsgi.py +++ b/gaehsnitzproject/wsgi.py @@ -2,6 +2,6 @@ import os from django.core.wsgi import get_wsgi_application -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'gaehsnitzproject.settings') +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "gaehsnitzproject.settings") application = get_wsgi_application() diff --git a/manage.py b/manage.py index 2b4499f..07126dc 100755 --- a/manage.py +++ b/manage.py @@ -1,11 +1,12 @@ #!/usr/bin/env python """Django's command-line utility for administrative tasks.""" + import os import sys def main(): - os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'gaehsnitzproject.settings') + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "gaehsnitzproject.settings") try: from django.core.management import execute_from_command_line except ImportError as exc: @@ -17,5 +18,5 @@ def main(): execute_from_command_line(sys.argv) -if __name__ == '__main__': +if __name__ == "__main__": main()