This website requires JavaScript.
2c4d031050
Show just surnames for an unnamed family, not "... family"
Bernard Siebens
2026-08-03 17:04:09 +02:00
d5f45c9404
Make user-facing strings translatable
Bernard Siebens
2026-08-03 17:03:49 +02:00
8598fd2b46
Generate seasons per club instead of a hardcoded Aug-May window
Bernard Siebens
2026-08-03 17:03:03 +02:00
062da00bb9
Add the management app: club-facing UI + real fee-payment tracking
Bernard Siebens
2026-08-03 17:01:15 +02:00
5bea8a4a6c
Keep /media/ reachable during maintenance, so the club logo still loads
Bernard Siebens
2026-07-27 11:56:10 +02:00
febde41214
Let the club logo fill more of its ring, match it in the control panel
Bernard Siebens
2026-07-27 11:15:08 +02:00
a86c35cbe7
Frame the club logo with a primary-coloured ring, sharpen its scaling
Bernard Siebens
2026-07-27 11:06:08 +02:00
c17e7b5059
Remove unused CSS utility classes and redundant theme variables
Bernard Siebens
2026-07-27 10:56:30 +02:00
c1ba6e269b
Rebuild compiled CSS to include bg-secondary / text-secondary-content
Bernard Siebens
2026-07-27 10:37:43 +02:00
0223383c9d
Fix flaky chart date windows: use calendar months, not 30-day steps
Bernard Siebens
2026-07-27 10:37:37 +02:00
90a99fb03e
Rename PyCharm module to match the RosterChief project name
Bernard Siebens
2026-07-27 10:27:18 +02:00
75679dcc40
Fix club-metrics test copy after the dashboard relabel
Bernard Siebens
2026-07-27 10:27:13 +02:00
88a6c63f9f
Allow SVG club logos
Bernard Siebens
2026-07-27 10:27:07 +02:00
075c2918b6
Add a secondary brand colour for clubs
Bernard Siebens
2026-07-27 10:26:31 +02:00
ccaa9e991a
Add a generic form_field templatetag for daisyUI form rendering
Bernard Siebens
2026-07-27 10:24:28 +02:00
bf1ec322ce
Simplify add_one_year using dateutil.relativedelta
Bernard Siebens
2026-07-27 10:22:42 +02:00
08bf76e762
Make the OTP boxes focus the input when tapped
Bernard Siebens
2026-07-27 10:20:53 +02:00
438d111718
Make the navbar responsive on small phone widths
Bernard Siebens
2026-07-27 10:19:15 +02:00
40255805c3
Modularize confirmation modal for destructive POST actions and add notify helper for concise message handling across the UI.
v0.1.0
development
Bernard Siebens
2026-07-16 18:33:56 +02:00
127d0e338e
Modularize and streamline billing templates; replace _billing_form.html with reusable modals and shared partials, and update styles and interactions for consistency and clarity. billing, feature management, and forms
Bernard Siebens
2026-07-16 16:44:37 +02:00
83caa233d7
Replace doughnut chart with pie chart in fees visualization and clean up unused CSS styles.
Bernard Siebens
2026-07-16 08:38:17 +02:00
fc7a349f8f
Add "Open" button to club detail for direct access to club subdomain
Bernard Siebens
2026-07-16 00:12:29 +02:00
f403128f57
Improve club detail layout: enhance logo display, adjust badge styles, refine card layouts, and optimize spacing
Bernard Siebens
2026-07-16 00:06:54 +02:00
91270b0cf8
Add "Plan end" column to health table and simplify badge styles
Bernard Siebens
2026-07-15 18:28:02 +02:00
19108407c6
Show the cover-end date for waived periods too, not just paid
Bernard Siebens
2026-07-15 18:16:56 +02:00
10b113f244
Read the health-check port from the server's WEB_PORT
Bernard Siebens
2026-07-15 13:25:39 +02:00
5b51f2c945
Point HOME at /app so gunicorn stops erroring on boot
Bernard Siebens
2026-07-15 13:18:10 +02:00
4d74f3fbde
Always allow the loopback in ALLOWED_HOSTS, for health checks
Bernard Siebens
2026-07-15 13:15:08 +02:00
a1266378fc
Fix deploy script: compose run was eating the rest of the heredoc
Bernard Siebens
2026-07-15 13:10:09 +02:00
a2bcb2f0c8
Add a one-command SSH deploy for the dev server
Bernard Siebens
2026-07-15 13:02:11 +02:00
9bc5377cc5
Drop the sidebar's "Platform" title, add top margin
Bernard Siebens
2026-07-15 12:58:24 +02:00
7c874aa87b
Stack the paid-until date under the paid badge
Bernard Siebens
2026-07-15 09:48:20 +02:00
5283262e6b
Show a paid club's cover end date in the health table
Bernard Siebens
2026-07-15 08:41:20 +02:00
65a2f741f6
Format: collapse a chained queryset to one line
Bernard Siebens
2026-07-15 08:35:19 +02:00
975426a17f
Match tests to the reworked dashboard, surface the renewals KPI
Bernard Siebens
2026-07-15 08:34:49 +02:00
9a616c20e4
Auto-renew subscriptions before they lapse
Bernard Siebens
2026-07-15 07:26:41 +02:00
2d43b0b903
Make the control panel a real app shell with a fixed sidebar
Bernard Siebens
2026-07-14 23:06:31 +02:00
c42963c447
Do not let DEBUG=True take down a container that has no dev deps
Bernard Siebens
2026-07-14 18:14:53 +02:00
5d42691a10
Fix the image build: fetch the git dependency in its own stage
Bernard Siebens
2026-07-14 18:07:54 +02:00
a759f763ed
Update to the CSS file
Bernard Siebens
2026-07-14 17:54:18 +02:00
534d01d6fe
Size the server, and cost an AWS three-node layout
Bernard Siebens
2026-07-14 10:25:40 +02:00
98e5f22873
Document running RosterChief beside another domain on one Caddy
Bernard Siebens
2026-07-14 10:22:37 +02:00
d30b163122
Add maintenance mode: lock the platform down from the control panel
Bernard Siebens
2026-07-14 10:11:15 +02:00
c0a44093d9
Add a health check and the deployment runbook
Bernard Siebens
2026-07-14 09:45:21 +02:00
35d1ec45a7
Containerise: Dockerfile, Compose stack and wildcard TLS
Bernard Siebens
2026-07-14 09:41:51 +02:00
e5a93194bf
Make the app deployable: Postgres, shared cache, S3, HTTPS
Bernard Siebens
2026-07-14 09:37:36 +02:00
29d61eeea8
Manage billing from the control panel
Bernard Siebens
2026-07-14 01:52:43 +02:00
60bfac9881
Add platform billing: tiers, dues, payments and invoices
Bernard Siebens
2026-07-14 01:45:15 +02:00
6899e203f6
Show club health on the clubs list too
Bernard Siebens
2026-07-14 01:24:31 +02:00
3a6dc00e05
Guard against multi-line {# #} template comments
Bernard Siebens
2026-07-14 01:24:19 +02:00
192fe5ad0e
Split platform signups, and rework the club table into health
Bernard Siebens
2026-07-14 01:17:26 +02:00
639807b2d2
Split club signups into new members and renewals
Bernard Siebens
2026-07-14 01:12:01 +02:00
f2b78bb1dd
Build the club metrics
Bernard Siebens
2026-07-14 01:08:37 +02:00
21d3947d08
Label the revenue axis in euros
Bernard Siebens
2026-07-14 01:02:14 +02:00
016206a79e
Build the platform metrics dashboard
Bernard Siebens
2026-07-14 00:59:28 +02:00
9127be0c42
Give every model created/modified timestamps
Bernard Siebens
2026-07-14 00:53:12 +02:00
1dd2e5099f
Replace "usb" icons with "user-key" for WebAuthn buttons; refine button styles and layouts across templates
Bernard Siebens
2026-07-14 00:31:22 +02:00
bf86654e72
Give every auth button an icon, and lay out the password and MFA screens
Bernard Siebens
2026-07-13 23:53:35 +02:00
0eb6838cba
Make every cancel/back button an outline button
Bernard Siebens
2026-07-13 23:32:27 +02:00
c9935d0a04
Add Cancel to the sign-out page, and icons to both buttons
Bernard Siebens
2026-07-13 23:21:56 +02:00
7900233f6d
Restore the buttons on the sign-out and deactivate pages
Bernard Siebens
2026-07-13 23:20:13 +02:00
add1ee87ae
Put the otp input after its boxes
Bernard Siebens
2026-07-13 23:16:35 +02:00
fa213d95ee
Drop the placeholder from the otp field
Bernard Siebens
2026-07-13 23:11:06 +02:00
addfc61a2c
Style every MFA screen through the element system
Bernard Siebens
2026-07-13 23:07:44 +02:00
2b7b2b64db
Fix empty allauth forms, and lay out the 2FA page
Bernard Siebens
2026-07-13 22:59:00 +02:00
b3f153a2dc
Lay out the login card and wire up the passkey button
Bernard Siebens
2026-07-13 22:47:26 +02:00
7b18b39f49
Put icons in the login fields and drop their labels
Bernard Siebens
2026-07-13 22:43:44 +02:00
e44933330d
Give messages an icon, a bold title and soft styling
Bernard Siebens
2026-07-13 22:35:06 +02:00
1a2bf257da
Brand the auth screens per tenant
Bernard Siebens
2026-07-13 22:30:38 +02:00
fc51e1903c
Self-host Ubuntu, JetBrains Mono, Roboto and Tourney
Bernard Siebens
2026-07-13 22:30:02 +02:00
334c706aec
Reload the browser on template and static changes in dev
Bernard Siebens
2026-07-13 18:32:19 +02:00
268cbe1e06
Manage platform admins and feature flags from the control panel
Bernard Siebens
2026-07-13 16:42:23 +02:00
fed24bfee3
Add club-scoped feature flags on django-waffle
Bernard Siebens
2026-07-13 16:42:22 +02:00
eace903f05
chore: rebrand ClubManager -> RosterChief, add lucide icons
Bernard Siebens
2026-07-13 15:42:20 +02:00
6f66df3ba4
feat(ui): platform control panel and styled auth screens
Bernard Siebens
2026-07-13 15:29:24 +02:00
848a8578de
build(ui): add Tailwind v4 + daisyUI 5 pipeline
Bernard Siebens
2026-07-13 15:29:10 +02:00
ebb8bc3db1
feat(club): archive clubs instead of deleting them
Bernard Siebens
2026-07-13 15:29:10 +02:00
10736fd5ee
feat(auth): two-factor authentication (TOTP, passkeys, recovery codes)
Bernard Siebens
2026-07-13 14:43:55 +02:00
819700ad0c
feat(club): ClubRole, RBAC access service and role sync
Bernard Siebens
2026-07-13 14:43:15 +02:00
78fdcdf138
feat(shop): cart, order, invoice and discounts
Bernard Siebens
2026-07-13 14:42:29 +02:00
d43ca0cfa8
feat(formbuilder): answers must belong to the submission's form
Bernard Siebens
2026-07-13 14:42:17 +02:00
22d971d48c
feat(events): event owner and cross-club validation
Bernard Siebens
2026-07-13 14:42:17 +02:00
c0816a1add
feat(teams): management positions and cross-club validation
Bernard Siebens
2026-07-13 14:42:06 +02:00
c320931595
feat(core): add cross-club scope validator
Bernard Siebens
2026-07-13 14:41:57 +02:00
54aace8abb
feat: auto-populate slug fields on save
Bernard Siebens
2026-07-12 21:41:59 +02:00
57f20fe544
chore(shop): scaffold empty shop app
Bernard Siebens
2026-07-12 21:13:32 +02:00
5dd3715c1f
feat(formbuilder): fix tenancy bugs, add admin + services
Bernard Siebens
2026-07-12 21:13:16 +02:00
2653dd6d08
feat(events): formal end date for recurring series
Bernard Siebens
2026-07-12 19:22:48 +02:00
c535e5dc8c
feat(events): series-level gathering and deadline offsets
Bernard Siebens
2026-07-12 18:04:14 +02:00
ca34d26a8e
feat(events): recurring event series with occurrence sync
Bernard Siebens
2026-07-12 17:51:34 +02:00
866716d196
feat(events): team/invited audience with attendance sync
Bernard Siebens
2026-07-12 17:44:48 +02:00
076a9cacbc
feat(teams): add teams app with roster and staff assignments
Bernard Siebens
2026-07-12 16:47:52 +02:00
dd2e4b2169
feat: season-scope club memberships and convert to UniqueConstraint
Bernard Siebens
2026-07-12 16:47:39 +02:00
3914765f90
feat(tenancy): add Season current-season lookup and year name
Bernard Siebens
2026-07-12 15:38:06 +02:00
cda4960ffc
docs: revise shop order-level discount design
Bernard Siebens
2026-07-12 15:32:23 +02:00
3575d8f7b1
chore: document dev environment variables
Bernard Siebens
2026-07-12 15:32:23 +02:00
e85a5f6300
test(tenancy): cover club resolution, context, and scoping
Bernard Siebens
2026-07-12 15:32:23 +02:00
72e7b5e070
feat(tenancy): resolve active club from request subdomain
Bernard Siebens
2026-07-12 15:32:05 +02:00
919a68ed3a
build: add coverage dev dependency; drop contextvars backport
Bernard Siebens
2026-07-12 15:31:55 +02:00
638f85fa07
Remove redundant user re-link branch in CSV importer
Bernard Siebens
2026-07-12 00:21:48 +02:00