ska_oso_pdm.proposal_management.panel
Class diagram for an OSO proposal management panel
A current example of Panel json is presented below:
{
"panel_id": "PANEL-2025A-001",
"name": "STARGAZERS",
"cycle": "2025A",
"proposals": [{"prsl_id": "PR-002", "assigned_on": "2025-06-04T14:00:00Z"}],
"reviewers": [{"reviewer_id": "RV-001", "assigned_on": "2025-06-04T14:00:00Z", "status": "accepted"}]
}
- class Panel(*, metadata: ~ska_oso_pdm._shared.metadata.Metadata = <factory>, panel_id: str, name: str, cycle: str | None = None, expiry_date: ~pydantic.types.AwareDatetime | None = None, proposals: list[~ska_oso_pdm.proposal_management.panel.ProposalAssignment] = <factory>, sci_reviewers: list[~ska_oso_pdm.proposal_management.panel.ReviewerAssignment] = <factory>, tech_reviewers: list[~ska_oso_pdm.proposal_management.panel.ReviewerAssignment] = <factory>)[source]
-
- classmethod ensure_unique_proposals(proposals: list[ProposalAssignment]) list[ProposalAssignment][source]
Ensure that proposals list contains only unique prsl_ids, and preserves the first occurrence.
- class ProposalAssignment(*, prsl_id: str, assigned_on: ~pydantic.types.AwareDatetime = <factory>)[source]