diff --git a/src/organisation/constants.py b/src/organisation/constants.py index da4d60e..db46f43 100644 --- a/src/organisation/constants.py +++ b/src/organisation/constants.py @@ -31,7 +31,11 @@ class Status(StrEnum): @property def is_pre_approval(self): - return self in (self.PARTIAL, self.SUBMITTED) + return self in (self.PARTIAL, self.SUBMITTED, self.REMEDIATION) + + @property + def is_pre_submission(self): + return self in (self.PARTIAL, self.REMEDIATION) class ContactType(StrEnum): diff --git a/src/organisation/router.py b/src/organisation/router.py index eb74f0a..3be0a2b 100644 --- a/src/organisation/router.py +++ b/src/organisation/router.py @@ -222,6 +222,11 @@ async def update_questionnaire( The partial bool allows for submission of partially completed questionnaire and/or final "are you sure" check before setting the org to be in "submitted" status, awaiting admin approval. """ + org_status = StatusEnum(org_model.status) + if not org_status.is_pre_submission: + raise ForbiddenException( + "Questionnaire may only be modified prior to submission." + ) update_data = request_model.intake_questionnaire.model_dump(exclude_none=True) questionnaire = org_model.intake_questionnaire questions_model = QuestionnaireQuestionsVersion0(**questionnaire["questions"])