fix: tolerate invalid member dates in views

This commit is contained in:
Marcel Peterkau
2026-06-21 16:49:51 +02:00
parent dfd5b1192b
commit e63abbae81
5 changed files with 52 additions and 3 deletions
+23 -1
View File
@@ -4,7 +4,12 @@ import calendar
from dataclasses import dataclass, field
from datetime import date, timedelta
from ccma.domain.dates import DateValidationError, parse_iso_date, validate_birth_date
from ccma.domain.dates import (
DateValidationError,
parse_iso_date,
validate_birth_date,
validate_member_dates,
)
from ccma.domain.models import HousekeeperFinding
from ccma.services.intervals import AnniversaryInterval, parse_anniversary_intervals
from ccma.storage.repository import MemberRepository
@@ -48,6 +53,23 @@ class Housekeeper:
current_date = today or date.today()
findings: list[HousekeeperFinding] = []
for member in self.repository.list_members():
try:
validate_member_dates(
birth_date=member.birth_date,
accepted_at=member.accepted_at,
membership_started_at=member.membership_started_at,
today=current_date,
)
except DateValidationError as exc:
findings.append(
HousekeeperFinding(
severity="error",
member_id=member.member_id,
code="invalid_member_dates",
title=f"{member.display_name}: Ungültige Datumsangabe",
detail=str(exc),
)
)
if member.status in {
"active",
"suspended_contribution",