Source code for ska_oso_pdm.proposal_management.panel

from typing import List

from pydantic import AwareDatetime, Field

from ska_oso_pdm._shared import Metadata, PanelID, PdmObject, ProposalID
from ska_oso_pdm._shared.atoms import TerseStrEnum
from ska_oso_pdm._shared.ids import ReviewerID


[docs] class ReviewerStatus(TerseStrEnum): ACCEPTED = "accepted" DECLINED = "declined" PENDING = "pending"
[docs] class ProposalAssignment(PdmObject): prsl_id: ProposalID assigned_on: AwareDatetime
[docs] class ReviewerAssignment(PdmObject): reviewer_id: ReviewerID assigned_on: AwareDatetime status: ReviewerStatus = ReviewerStatus.PENDING
[docs] class Panel(PdmObject): metadata: Metadata = Field( default_factory=Metadata, description="The metadata of this Panel." ) panel_id: PanelID name: str cycle: str | None = None proposals: List[ProposalAssignment] = Field(default_factory=list) reviewers: List[ReviewerAssignment] = Field(default_factory=list)