Add ClubMembership enhancements, CSV import command, and related tests

- Extend the ClubMembership model with `club`, `member`, and optional `license` fields, along with relevant constraints and ordering.
- Implement verbose names for Club and ClubMembership models and update admin configurations for better display and filtering.
- Add a `import_members_csv` management command for batch importing members, clubs, and memberships from a CSV file.
- Include extensive tests for the `import_members_csv` command, ClubMembership model, and Club model.
- Refactor related migrations, services, and test structure.
This commit is contained in:
2026-07-05 23:51:35 +02:00
parent 44fe658efa
commit 89c12c12b1
12 changed files with 753 additions and 2 deletions

View File

@@ -1,3 +1,24 @@
from django.contrib import admin
from django.utils.translation import gettext_lazy as _
from .models import Club, ClubMembership
# Register your models here.
@admin.register(Club)
class ClubAdmin(admin.ModelAdmin):
list_display = ["name"]
search_fields = ["name"]
ordering = ["name"]
@admin.register(ClubMembership)
class ClubMembershipAdmin(admin.ModelAdmin):
list_display = ["club__name", "member__last_name", "member__first_name", "license"]
search_fields = ["club__name", "member__last_name", "member__first_name"]
list_filter = ["club"]
raw_id_fields = ["member"]
fieldsets = [
[None, {"fields": ["club", "member"]}],
[_("Member informaton"), {"fields": ["license"]}],
]