mirror of
https://git.hiabuto.net/C3MA/CCMA.git
synced 2026-07-02 11:40:13 +02:00
fix: tolerate invalid member dates in views
This commit is contained in:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user