Rework Teams/Positions access control and add full Locations/Opponents CRUD

Team managers/coaches now only see their own teams, can't create teams,
and can view (but not edit) positions -- admins keep full rights.
Locations and Opponents move from read-only stubs to full CRUD, gated
to admins and management-position staff, with a country dropdown
(django-countries) instead of free text. Also: the team list shows
player/staff counts, and deleting a news item's main photo promotes
another one instead of leaving the item without one.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R1gj3J1QPfP38XWpnpbFpy
This commit is contained in:
2026-08-04 12:27:24 +02:00
parent 9a4da9b136
commit e6850232f0
23 changed files with 813 additions and 25 deletions

View File

@@ -54,6 +54,7 @@ INSTALLED_APPS = [
# that page raises TemplateSyntaxError.
"django.contrib.humanize",
"phonenumber_field",
"django_countries",
"lucide",
# Auth: allauth deliberately WITHOUT django.contrib.sites — it is optional in
# allauth 65+, and ARCHITECTURE.md §2.4 rejects the Sites framework (Club is
@@ -188,6 +189,7 @@ TEMPLATES = [
"club.context_processors.branding",
"features.context_processors.maintenance",
"management.context_processors.is_admin",
"management.context_processors.management_position",
"management.context_processors.management_link",
"management.context_processors.active_nav_section",
"management.context_processors.news_permissions",