Commit Graph

148 Commits

Author SHA1 Message Date
flo 2056d5bbc7 Add staff dashboard, payment flow, seed extra 2026 expenses
Self-service /suff/pay/ page lets users record their own payments
(cash/PayPal/bank/other) against their tab. Open balance is shown on
/suff/me/ alongside total and paid amount, with a Bezahlen button when
something is owed.

Staff-only /suff/dashboard/ replaces the drink_stats / total_balance /
user_stats CLI commands with a mobile-friendly festival view: overall
refinancing progress bar (Spenden vs. Ausgaben with Bilanz), drinks
refinancing bar (sales revenue vs. purchase cost with profit), per-drink
sold/total/balance, open balances per user, and fun facts (top
spender, top drink, busiest day, and top user per festival day).
Linked from /suff/me/ when the logged-in user is staff.

seed_drinks_2026 also creates the non-drink Payments we already know
about (toilets, drinks/equipment down payment, band fees per stage day),
idempotently keyed on (purpose, date).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 22:18:57 +02:00
flo b9c62babf1 Show year-scoped balances and breakdowns in admin
User list shows Konsumiert / Bezahlt / Offener Betrag for the current
year. User detail page adds a BILANZ section with per-drink breakdowns
(paid + free) so a quick look at the user page replaces what
user_stats used to print.

Drink list shows crates_purchased, bottles_sold, bottles_remaining,
purchase_price_total, and balance, with a year filter. Detail page
groups all derived values into German sections (Kästen, Flaschen,
Menge, Einkauf, Pfand, Verkauf), replacing the drink_stats command.

UserPayment admin gets a custom YearFilter (created_at__year is not
admin-filterable directly). Donation/Payment get date filters and
search.

Group admin is unregistered (unused in this project).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 22:18:57 +02:00
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 2d5ec8fc6d Style suff frontend mobile-first
Dark theme matching GOA palette, standalone microsite (no nav).
- Landing/login: GOA subhead + big "Suff" wordmark, large tap targets
- me page: 2-col 4:3 drink grid, bordered total box, day-grouped
  history with zebra rows, emoji empty-state
- Booking confirmation toast (amber, 5s, then 800ms CSS collapse)
- Touch feedback via :active scale, SVG beer favicon
- no_pin.html link-buttons styled
2026-05-14 12:41:45 +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 1d35f0b9b9 Merge pull request 'Update dependency gunicorn to v26' (#25) from renovate/gunicorn-26.x into main
Reviewed-on: #25
2026-05-13 22:55:44 +00:00
flo 96aa2198a3 Update dependency gunicorn to v26 2026-05-07 07:00:53 +00:00
flo b882f34b97 Merge pull request 'Update dependency ruff to v0.15.12' (#22) from renovate/ruff-0.x into main
Reviewed-on: #22
2026-05-06 18:53:13 +00:00
flo 0fc572ec3b Merge pull request 'Update dependency psycopg to v3.3.4' (#24) from renovate/psycopg-3.x into main
Reviewed-on: #24
2026-05-06 18:52:12 +00:00
flo e2e90f1116 Merge pull request 'Update dependency django to v6.0.5' (#23) from renovate/django-6.x into main
Reviewed-on: #23
2026-05-06 18:51:05 +00:00
flo 370e3fa168 small style improvements 2026-05-06 20:47:43 +02:00
flo 90a943c630 remove navi and for-bands page 2026-05-06 20:42:31 +02:00
flo 0c3012425c rewrite and summarize everything in a single page 2026-05-06 20:41:58 +02:00
flo 1bb888e522 update for-bands page 2026-05-06 19:36:52 +02:00
flo e6e7f1b1cb Update dependency django to v6.0.5 2026-05-05 17:00:51 +00:00
flo 13005054f2 Update dependency psycopg to v3.3.4 2026-05-02 07:00:57 +00:00
flo 6dc44fa770 Update dependency ruff to v0.15.12 2026-04-25 07:00:59 +00:00
flo 4d825f3b28 overhaul site for 2026: amber theme, archive pages, consolidated main page
- Update site title and dates to 2026 (11.-14. Juni)
- New amber/fire color scheme replacing the old green
- Archive 2022 and 2024 as single combined Django pages (news, program, A-Z, Bühne & Technik, Finanzen)
- Archive pages use a neutral blue-grey color scheme for content
- Remove standalone atoz, program, finance pages; consolidate into main Festival page
- Main page now has Über uns intro, Programm (2026 lineup), Von A bis Z, Finanzen sections
- Footer with archive links instead of nav entries
- Nav simplified to Festival and für Bands

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 20:07:51 +02:00
flo 5ec8b93441 fix volume for postrges 18 db 2026-03-30 19:20:09 +02:00
flo 16e0c5e3a6 Merge pull request 'Update dependency ruff to v0.15.8' (#20) from renovate/ruff-0.x into main
Reviewed-on: #20
2026-03-30 17:18:13 +00:00
flo b3be4c6be1 Merge pull request 'Update dependency gunicorn to v25.3.0' (#21) from renovate/gunicorn-25.x into main
Reviewed-on: #21
2026-03-30 17:18:01 +00:00
flo d8ceb6af8e Update dependency gunicorn to v25.3.0 2026-03-27 07:01:04 +00:00
flo cc72b3f32d Update dependency ruff to v0.15.8 2026-03-27 07:00:52 +00:00
flo de8fd5e3cc Merge pull request 'Update dependency django to v6.0.3' (#19) from renovate/django-6.x into main
Reviewed-on: #19
2026-03-12 11:32:41 +00:00
flo 3bfe7340ca Merge pull request 'Update dependency ruff to v0.15.5' (#18) from renovate/ruff-0.x into main
Reviewed-on: #18
2026-03-12 11:31:39 +00:00
flo d38c0d0a24 Update dependency ruff to v0.15.5 2026-03-06 07:00:57 +00:00
flo 0d6f7bdd3a Update dependency django to v6.0.3 2026-03-03 17:00:56 +00:00
flo 91571bf935 Merge pull request 'Update dependency ruff to v0.15.2' (#17) from renovate/ruff-0.x into main
Reviewed-on: #17
2026-02-23 22:26:16 +00:00
flo 22c85b5032 change workdir and fix uv venv usage 2026-02-21 12:19:49 +01:00
flo 62eb864c18 Update dependency ruff to v0.15.2 2026-02-20 07:00:57 +00:00
flo 1793be90e1 reformat using prettier 2026-02-19 18:53:08 +01:00
flo acd8e8a52a add editorconfig 2026-02-19 18:48:38 +01:00
flo 8a1a5ac000 update dependencies and add ruff 2026-02-19 18:42:42 +01:00
flo 10d3254dda reformat everything using ruff 2026-02-19 18:32:01 +01:00
flo 5b48167c66 replace pip with uv 2026-02-19 18:31:21 +01:00
flo 683c73421f Merge pull request 'Update dependency django to v6.0.2' (#15) from renovate/django-6.x into main
Reviewed-on: #15
2026-02-19 16:44:07 +00:00
flo d4aeb50af9 Merge pull request 'Update dependency psycopg to v3.3.3' (#16) from renovate/psycopg-3.x into main
Reviewed-on: #16
2026-02-19 16:41:14 +00:00
flo b58800a935 Update dependency psycopg to v3.3.3 2026-02-18 17:01:07 +00:00
flo 25e2cd72f5 Update dependency django to v6.0.2 2026-02-03 17:01:22 +00:00
flo ad370e954f Merge pull request 'Update dependency django to v6.0.1' (#12) from renovate/django-6.x into main
Reviewed-on: #12
2026-01-09 18:44:46 +00:00
flo 2dcd9cdfbe Update dependency django to v6.0.1 2026-01-07 07:01:03 +00:00
flo 0b3aad0b5c Merge pull request 'Update dependency psycopg to v3.3.2' (#11) from renovate/psycopg-3.x into main
Reviewed-on: #11
2025-12-14 22:10:05 +00:00
flo 2e69214e26 Update dependency psycopg to v3.3.2 2025-12-07 07:01:21 +00:00
flo a070a350db Merge pull request 'Update postgres Docker tag to v18' (#6) from renovate/postgres-18.x into main
Reviewed-on: #6
2025-12-04 10:18:28 +00:00
flo a1572a21e9 Merge pull request 'Update dependency psycopg to v3.3.1' (#8) from renovate/psycopg-3.x into main
Reviewed-on: #8
2025-12-04 10:17:52 +00:00
flo 8a87d0c321 Merge pull request 'Update dependency django to v6' (#10) from renovate/django-6.x into main
Reviewed-on: #10
2025-12-04 10:17:40 +00:00
flo 537ebd6bfa Update dependency django to v6 2025-12-03 17:01:11 +00:00
flo b4cf90472f Update dependency psycopg to v3.3.1 2025-12-03 07:01:06 +00:00
flo 06d71ee356 Merge pull request 'Update dependency psycopg to v3.2.13' (#7) from renovate/psycopg-3.x into main
Reviewed-on: #7
2025-11-23 16:25:53 +00:00
flo 93fed164db Update dependency psycopg to v3.2.13 2025-11-22 07:01:15 +00:00