8 Commits

Author SHA1 Message Date
flo 4c9d041254 Add year-scoped drink data, UserPayment model, German verbose names
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>
2026-05-14 22:18:57 +02:00
flo 47d46e8e6f Add suff drink booking tool with PIN auth
Self-service drink tab at /suff/ for festival attendees. Users log in
with username + 3-digit PIN stored in a separate User.pin field, so
staff/admin accounts can keep their strong password for /admin/ and
also use the drink tool with the same username. PINs for staff users
must be set from the admin panel via a dedicated "PIN setzen" view to
prevent account takeover by name collision.

Time-gated to the festival window (Thu–Sun in Berlin tz) with phases
before/booking/readonly/closed; in non-production mode the tool is
always in booking phase for local testing.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 12:05:25 +02:00
flo 10d3254dda reformat everything using ruff 2026-02-19 18:32:01 +01:00
flo e4ea057ecb rewrite models 2022-09-09 17:11:39 +02:00
flo aa32494ce6 configure csrf 2022-07-13 14:41:31 +02:00
flo 8d640348bd add admin site 2022-07-12 20:37:50 +02:00
flo 01b9a1a63f add and configure database container 2022-07-12 17:56:34 +02:00
flo 3b38c9fdec create basic django app serving the Gähsnitz website 2022-05-20 23:00:36 +02:00