Source code for ska_oso_pdm.proposal_management.review

from typing import Annotated

from pydantic import AwareDatetime, Field

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


[docs] class ReviewStatus(TerseStrEnum): IN_PROGRESS = "in progress" DECIDED = "decided" TO_DO = "to do"
[docs] class Conflict(PdmObject): has_conflict: bool = False reason: str | None = None
[docs] class PanelReview(PdmObject): """ SKA review of a proposal by a panel. """ # Add validation here for the submitted_on and submitted_by fields metadata: Metadata = Field( default_factory=Metadata, description="The metadata of this Review." ) panel_id: str review_id: ReviewerID cycle: str | None = None reviewer_id: str prsl_id: ProposalID rank: Annotated[int | None, Field(ge=0, le=9)] = None conflict: Conflict comments: str | None = None submitted_on: AwareDatetime | None = None submitted_by: str | None = None status: ReviewStatus = ReviewStatus.TO_DO