Source code for cadrumo.application.filing.draft_revision_gate
"""Shared-gate adapter for persisted filing-draft registry coordinates."""from__future__importannotationsfromtypingimportTYPE_CHECKINGfrom...domain.filing.errorsimportModeloDraftErrorfrom...domain.filing.schemaimportModeloDraftfrom..calculations.revision_carry_gateimportrevision_carry_outcomeifTYPE_CHECKING:from...domain.calculations.registry.authorityimportPinnedAuthorityOperation
[docs]defrequire_modelo_draft_coordinates_current(draft:ModeloDraft,*,operation:PinnedAuthorityOperation,)->ModeloDraft:"""Return a persisted draft only when its producing registry coordinate is current. Core types: :class:`~cadrumo.domain.filing.schema.ModeloDraft`. """outcome=revision_carry_outcome(draft.snapshot_ref,operation=operation)ifoutcome.refused:raiseModeloDraftError(translated_message="application.filing.review.errors.registry_review_mismatch",context={"modelo":draft.modelo,"filing_year":str(draft.period.filing_year),"period":draft.period.registry_token,"stored_revision":str(draft.snapshot_ref.revision_id),"law_revision":str(outcome.selected_revision_idor"unresolvable"),},)returndraft