Skip to content

Commit a79e441

Browse files
committed
Add membership on date method
1 parent 466ae0a commit a79e441

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/mysoc_validator/models/popolo.py

+12-2
Original file line numberDiff line numberDiff line change
@@ -503,10 +503,20 @@ def memberships(self) -> list[Membership]:
503503
)
504504
return [m for m in members if not isinstance(m, MembershipRedirect)]
505505

506-
def latest_membership(self) -> Optional[Membership]:
506+
def membership_on_date(self, date: date, chamber: Chamber) -> Optional[Membership]:
507507
memberships = self.memberships()
508508
if memberships:
509-
return max(memberships, key=lambda m: m.start_date)
509+
for m in memberships:
510+
if m.organization_id == chamber:
511+
if m.start_date <= date <= m.end_date:
512+
return m
513+
514+
def latest_membership(self, chamber: Chamber) -> Optional[Membership]:
515+
chamber_memberships = [
516+
m for m in self.memberships() if m.organization_id == chamber
517+
]
518+
if chamber_memberships:
519+
return max(chamber_memberships, key=lambda m: m.start_date)
510520

511521

512522
class Area(ModelInList):

0 commit comments

Comments
 (0)