Update member UI and related app changes

This commit is contained in:
Marcel Peterkau
2026-06-26 21:57:11 +02:00
parent 833075f0dc
commit 30b6d253b2
18 changed files with 490 additions and 84 deletions
+38 -17
View File
@@ -29,6 +29,39 @@ class RepositoryError(RuntimeError):
DEFAULT_MEMBER_NUMBER_PATTERN = "CCMA-{number:04d}"
DEFAULT_CONTRIBUTION_RULES = [
{
"rule_id": "standard-before-2022",
"name": "Regulärer Beitrag bis 2021",
"valid_from": "1900-01-01",
"valid_until": "2021-12-31",
"annual_amount": "120.00",
"admission_fee": "10.00",
"annual_due": "01-31",
"semiannual_due": ["01-31", "07-31"],
"entry_proration": {"mode": "monthly", "started_month": "included"},
"first_payment_due_days_after_acceptance": 28,
"issue_days_before_due": 30,
"reminder_fee": "5.00",
"failed_debit_fee": "5.00",
},
{
"rule_id": "standard-2022",
"name": "Regulärer Beitrag ab 2022",
"valid_from": "2022-01-01",
"valid_until": None,
"annual_amount": "150.00",
"admission_fee": "10.00",
"annual_due": "01-31",
"semiannual_due": ["01-31", "07-31"],
"entry_proration": {"mode": "monthly", "started_month": "included"},
"first_payment_due_days_after_acceptance": 28,
"issue_days_before_due": 30,
"reminder_fee": "5.00",
"failed_debit_fee": "5.00",
},
]
DEFAULT_CONFIGURATION = {
"schema_version": 1,
@@ -73,23 +106,7 @@ DEFAULT_CONFIGURATION = {
},
],
},
"contribution_rules": [
{
"rule_id": "standard-2022",
"name": "Regulärer Beitrag ab 2022",
"valid_from": "2022-01-01",
"valid_until": None,
"annual_amount": "150.00",
"admission_fee": "10.00",
"annual_due": "01-31",
"semiannual_due": ["01-31", "07-31"],
"entry_proration": {"mode": "monthly", "started_month": "included"},
"first_payment_due_days_after_acceptance": 28,
"issue_days_before_due": 30,
"reminder_fee": "5.00",
"failed_debit_fee": "5.00",
}
],
"contribution_rules": DEFAULT_CONTRIBUTION_RULES,
}
@@ -209,6 +226,7 @@ class MemberRepository:
*,
first_name: str,
last_name: str,
nickname: str = "",
email: str = "",
phone: str = "",
birth_date: str = "",
@@ -238,6 +256,7 @@ class MemberRepository:
member_number=selected_number,
first_name=first_name.strip(),
last_name=last_name.strip(),
nickname=nickname.strip(),
email=email.strip(),
phone=phone.strip(),
birth_date=birth_date,
@@ -752,6 +771,7 @@ class MemberRepository:
member.member_number,
member.first_name,
member.last_name,
member.nickname,
member.display_name,
member.email,
member.phone,
@@ -880,6 +900,7 @@ class MemberRepository:
"member_number": "Mitgliedsnummer",
"first_name": "Vorname",
"last_name": "Nachname",
"nickname": "Nickname",
"email": "E-Mail-Adresse",
"phone": "Telefonnummer",
"birth_date": "Geburtsdatum",