feat: add application date to members

This commit is contained in:
Marcel Peterkau
2026-07-30 19:35:48 +02:00
parent e3f0a1df86
commit 7a0cdbc04e
6 changed files with 29 additions and 0 deletions
+7
View File
@@ -294,6 +294,7 @@ class MemberRepository:
email: str = "",
phone: str = "",
birth_date: str = "",
application_date: str = "",
member_number: str = "",
) -> Member:
with self._member_number_lock():
@@ -304,6 +305,7 @@ class MemberRepository:
email=email,
phone=phone,
birth_date=birth_date,
application_date=application_date,
member_number=member_number,
)
@@ -316,12 +318,14 @@ class MemberRepository:
email: str,
phone: str,
birth_date: str,
application_date: str,
member_number: str,
) -> Member:
if not first_name.strip() or not last_name.strip():
raise RepositoryError("Vorname und Nachname sind erforderlich.")
try:
birth_date = normalize_date_input(birth_date, "Geburtsdatum")
application_date = normalize_date_input(application_date, "Antragsdatum")
validate_member_dates(birth_date=birth_date)
except DateValidationError as exc:
raise RepositoryError(str(exc)) from exc
@@ -348,6 +352,7 @@ class MemberRepository:
email=email.strip(),
phone=phone.strip(),
birth_date=birth_date,
application_date=application_date,
)
write_json_atomic(directory / "member.json", member.to_dict())
write_json_atomic(directory / "contributions.json", ContributionData().to_dict())
@@ -364,6 +369,7 @@ class MemberRepository:
existing = self.get_member(member.member_id)
try:
member.birth_date = normalize_date_input(member.birth_date, "Geburtsdatum")
member.application_date = normalize_date_input(member.application_date, "Antragsdatum")
member.accepted_at = normalize_date_input(member.accepted_at, "Aufnahmebeschluss")
member.membership_started_at = normalize_date_input(member.membership_started_at, "Mitglied seit")
member.membership_ended_at = normalize_date_input(member.membership_ended_at, "Austrittsdatum")
@@ -1889,6 +1895,7 @@ class MemberRepository:
"email": "E-Mail-Adresse",
"phone": "Telefonnummer",
"birth_date": "Geburtsdatum",
"application_date": "Antragsdatum",
"membership_ended_at": "Austrittsdatum",
"status": "Status",
"payment_frequency": "Zahlungsweise",