4c9d041254e36a42d12a1fd5973b036bd46fb4d7
Drink gets a year field (default 2024 for legacy rows), with name+year unique together so each festival can have its own price/crate config without overwriting the previous year. User balance properties (consumed_drinks_price, paid_amount, open_balance) and the new current_year() helper all filter by current year so year-over-year data stays separated. UserPayment model tracks per-user payments (cash/PayPal/bank/other) against their drink tab, separate from Donation (event-level income). Verbose names + Meta verbose_name(_plural) added across all models, and LANGUAGE_CODE set to "de" so the admin renders German throughout. Drink gains a few derived properties (crates_full_returned, crates_remaining, bottles_consumed, bottles_remaining, remaining_purchase_value) used by the upcoming admin and dashboard views. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
The official website of our DIY-festival: Gähsnitz Open Air!
Languages
Python
57.5%
HTML
33%
CSS
9.2%
Dockerfile
0.2%
Shell
0.1%