17 Commits

Author SHA1 Message Date
ef05a6523d Apply ruff formatting and fix unused import linting errors
Remove unused imports flagged by ruff (F401), apply ruff format across all
files, and restore members.signals side-effect import with noqa: F401 so the
post_save signal that auto-creates Member profiles continues to fire.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 08:55:28 +02:00
6c0115d4a2 Add Team/TeamRole/TeamMembership/TeamPicture models and fix two test bugs
- Fix Member.create(): post_save signal creates Member immediately on User creation,
  so new users always hit the hasattr branch; check `created` flag to set initial
  password and notes for genuinely new users
- Fix Season.for_date(): replace get() with filter().order_by("-start_date").first()
  to handle overlapping seasons gracefully and raise DoesNotExist when none match
- Add TeamRole, Team, TeamMembership, TeamPicture models with rules permissions
- Add migration 0002 for new models
- Add test suites for members and teams covering all new model behaviour

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 08:53:05 +02:00
a02f234411 Fix five confirmed bugs: typo, field name, auth, success message, debug print
- Fix `fist_name` typo in CSV bulk upload (first_name was always None)
- Fix CSV file field name mismatch: `members_data` → `csv_file` (matches form + template)
- Add `@login_required` to backend index view (was unprotected)
- Move `messages.success` inside `if form.is_valid()` (was always shown)
- Remove debug `print(response.headers)` from HTMXViewMixin

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 14:56:51 +02:00
72e6388c0c Add configuration page: implement ConfigurationForm, update views, templates, and routes to enable superusers to manage club settings and toggle features using django-waffle. 2026-04-12 16:02:05 +02:00
cb3da371d1 Refactor feature flags: replace config checks with django-waffle switches, update templates and MemberLoadView to use TF_MASS_UPLOAD and TF_ENABLE_TEAMS. Add missing waffle_tags load for member_form.html. 2026-04-12 13:48:43 +02:00
4e4fe62f11 Add feature flag for bulk member upload: update MemberLoadView, templates, and settings to use mass_upload flag with django-waffle. 2026-04-12 12:18:24 +02:00
b71bc2afc0 Add bulk member upload functionality: implement MemberLoadView, update routes, templates, and create MassUploadForm for CSV uploads. 2026-04-12 12:10:02 +02:00
7aa4a4816c Enable member editing functionality: implement MemberEditView, update routes, modify templates for dynamic filtering and superuser badges, and standardize contact info handling. 2026-04-12 11:06:28 +02:00
646479c5be Refactor MemberEditView to include permissions, success messages, and HTMX support. Adjust member filter template layout to use flex-row. 2026-03-31 16:49:03 +02:00
303b8553c9 Enable member creation functionality: implement MemberAddView, create MemberForm, update routes, templates, and add supporting styles. 2026-01-17 23:38:12 +01:00
17e91cd7f8 Add menu highlighting logic via HX-Trigger, update templates for dynamic menu state management, and extend mixins to support menu highlighting. 2026-01-16 23:57:06 +01:00
5898a3ac6d Soft-deletion for members: implement confirmation template, update MemberDeleteView to deactivate users instead of deleting, and adjust templates for i18n. 2026-01-11 22:14:25 +01:00
b885bf6da5 Activate member deletion functionality: implement MemberDeleteView with HTMX integration, add is_active filter, update member filter template, and refine related styles. 2026-01-11 22:04:34 +01:00
d2d50afdd7 Enhance MemberListView with HTMX integration, refactor member filter template for partial rendering, and add HTMX utility mixins. 2026-01-10 23:57:06 +01:00
40ddab4627 Extend members app: add filtering with django-filter, MemberFilter class, and initial view setup. Update URLs, templates, and dependencies for integration. 2026-01-04 23:24:53 +01:00
e67ef526f4 Remove backend app and its initial structure 2026-01-04 22:53:05 +01:00
18181113a9 Set up backend app with initial structure and registered it in settings 2026-01-04 22:43:38 +01:00