From c8b777b42d00a80df9ac6fb498ca93653f557660 Mon Sep 17 00:00:00 2001 From: Tiago Scholten Date: Sat, 5 Sep 2026 09:21:12 +0200 Subject: [PATCH 1/6] Added association ref to committees --- src/fiber_package/committee/committee.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/fiber_package/committee/committee.py b/src/fiber_package/committee/committee.py index 4b57b21..9a7113d 100644 --- a/src/fiber_package/committee/committee.py +++ b/src/fiber_package/committee/committee.py @@ -3,7 +3,8 @@ from pydantic import model_validator, UUID7 from fiber_package.refs import ( CommitteeEditionRef, CommitteeEditionRefList, - EntityRefList + EntityRefList, + AssociationRef ) from fiber_package.base import FiberBaseModel @@ -21,6 +22,8 @@ An edition is a definite group of members with functions and a timespan. class CommitteeModel(FiberBaseModel): collection_name: Literal["committee"] = "committee" + association: AssociationRef + full_name_en: str full_name_nl: str description_en: str = "" @@ -54,5 +57,5 @@ class CommitteeEditionModel(FiberBaseModel): def functions_to_members_only(self) -> Self: for uuid in self.functions: if uuid not in self.members: - raise ValueError("Cannot only assign functions to committee members") + raise ValueError("Can only assign functions to committee members") return self From def73d3888c1fa14ef4e5064f46942e62bae65ed Mon Sep 17 00:00:00 2001 From: Tiago Scholten Date: Sat, 5 Sep 2026 10:49:28 +0200 Subject: [PATCH 2/6] added list committee request and response --- src/fiber_package/action/request/list.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/fiber_package/action/request/list.py b/src/fiber_package/action/request/list.py index 40dfe58..1a45355 100644 --- a/src/fiber_package/action/request/list.py +++ b/src/fiber_package/action/request/list.py @@ -8,3 +8,9 @@ class ListPeopleRequest(BaseModel): association_tag: str membership: Membership query: str | None + +ListCommitteesResponse = list[BaseModel] + +class ListCommitteesRequest(BaseModel): + association_tag: str + query: str | None \ No newline at end of file From c557c133042130a4abc909ea28bd392fe9fc3496 Mon Sep 17 00:00:00 2001 From: Tiago Scholten Date: Sat, 5 Sep 2026 11:00:14 +0200 Subject: [PATCH 3/6] defaults query to None and committees now have short names --- src/fiber_package/action/request/list.py | 4 ++-- src/fiber_package/committee/committee.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/fiber_package/action/request/list.py b/src/fiber_package/action/request/list.py index 1a45355..eb9a131 100644 --- a/src/fiber_package/action/request/list.py +++ b/src/fiber_package/action/request/list.py @@ -7,10 +7,10 @@ ListPeopleResponse = list[BaseModel] class ListPeopleRequest(BaseModel): association_tag: str membership: Membership - query: str | None + query: str | None = None ListCommitteesResponse = list[BaseModel] class ListCommitteesRequest(BaseModel): association_tag: str - query: str | None \ No newline at end of file + query: str | None = None \ No newline at end of file diff --git a/src/fiber_package/committee/committee.py b/src/fiber_package/committee/committee.py index 9a7113d..f1eb2b2 100644 --- a/src/fiber_package/committee/committee.py +++ b/src/fiber_package/committee/committee.py @@ -24,6 +24,7 @@ class CommitteeModel(FiberBaseModel): association: AssociationRef + short_name: str full_name_en: str full_name_nl: str description_en: str = "" From 2ad0217ea2826c116af67a8a59d3f43e6c3dafa7 Mon Sep 17 00:00:00 2001 From: Tiago Scholten Date: Sat, 5 Sep 2026 21:26:32 +0200 Subject: [PATCH 4/6] added list committee editions request --- src/fiber_package/action/request/list.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/fiber_package/action/request/list.py b/src/fiber_package/action/request/list.py index eb9a131..82958ef 100644 --- a/src/fiber_package/action/request/list.py +++ b/src/fiber_package/action/request/list.py @@ -2,15 +2,26 @@ from pydantic import BaseModel, UUID7 from fiber_package.membership_tag import Membership -ListPeopleResponse = list[BaseModel] +# List People class ListPeopleRequest(BaseModel): association_tag: str membership: Membership query: str | None = None -ListCommitteesResponse = list[BaseModel] +ListPeopleResponse = list[BaseModel] + +# List Committees class ListCommitteesRequest(BaseModel): association_tag: str - query: str | None = None \ No newline at end of file + query: str | None = None + +ListCommitteesResponse = list[BaseModel] + +# List Committee Editions + +class ListCommitteeEditionsRequest(BaseModel): + committee: UUID7 + +ListCommitteeEditionsResponse = list[BaseModel] \ No newline at end of file From 7939ac5ca70534aeeae7520c44f60a6274f1c3cc Mon Sep 17 00:00:00 2001 From: Tiago Scholten Date: Sun, 6 Sep 2026 15:40:15 +0200 Subject: [PATCH 5/6] added remarks and edition_string to committee_edition --- src/fiber_package/committee/committee.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/fiber_package/committee/committee.py b/src/fiber_package/committee/committee.py index f1eb2b2..3c250f9 100644 --- a/src/fiber_package/committee/committee.py +++ b/src/fiber_package/committee/committee.py @@ -1,4 +1,4 @@ -from pydantic import model_validator, UUID7 +from pydantic import model_validator, UUID7, computed_field from fiber_package.refs import ( CommitteeEditionRef, @@ -51,9 +51,24 @@ class CommitteeEditionModel(FiberBaseModel): members: EntityRefList functions: dict[UUID7, str] + remarks: str = "" + start_date: date end_date: date | None # None means ongoing + @computed_field + @property + def edition_string(self) -> str: + start_year = start_date.year + if end_date is None: + return f"{start_year} - " + else: + end_year = end_date.year + if end_year == start_year: + return f"{start_year}" + else: + return f"{start_year} - {end_year}" + @model_validator(mode='after') def functions_to_members_only(self) -> Self: for uuid in self.functions: From 73f3fcdfa63c6022c10b91cdeb82c569a375b9ee Mon Sep 17 00:00:00 2001 From: Tiago Scholten Date: Sun, 6 Sep 2026 15:41:20 +0200 Subject: [PATCH 6/6] fixed typo --- src/fiber_package/committee/committee.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/fiber_package/committee/committee.py b/src/fiber_package/committee/committee.py index 3c250f9..3c9f38a 100644 --- a/src/fiber_package/committee/committee.py +++ b/src/fiber_package/committee/committee.py @@ -59,11 +59,11 @@ class CommitteeEditionModel(FiberBaseModel): @computed_field @property def edition_string(self) -> str: - start_year = start_date.year - if end_date is None: + start_year = self.start_date.year + if self.end_date is None: return f"{start_year} - " else: - end_year = end_date.year + end_year = self.end_date.year if end_year == start_year: return f"{start_year}" else: