From 1c015b7aa1024622d0ad033bc0819346867d8944 Mon Sep 17 00:00:00 2001 From: Rebecca Hsieh Date: Mon, 24 Jun 2024 12:46:26 -0700 Subject: [PATCH 1/4] Update to have flag logic --- src/registrar/models/domain_request.py | 13 +++++++------ src/registrar/tests/test_models.py | 6 +++--- src/registrar/views/domain_request.py | 4 ++-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/registrar/models/domain_request.py b/src/registrar/models/domain_request.py index 1c4725be1..49b84d472 100644 --- a/src/registrar/models/domain_request.py +++ b/src/registrar/models/domain_request.py @@ -17,6 +17,8 @@ from .utility.time_stamped_model import TimeStampedModel from ..utility.email import send_templated_email, EmailSendingError from itertools import chain +from waffle.decorators import flag_is_active + logger = logging.getLogger(__name__) @@ -1165,19 +1167,20 @@ class DomainRequest(TimeStampedModel): def _is_policy_acknowledgement_complete(self): return self.is_policy_acknowledged is not None - def _is_general_form_complete(self): + def _is_general_form_complete(self, request): + has_profile_feature_flag = flag_is_active(request, "profile_feature") return ( self._is_organization_name_and_address_complete() and self._is_authorizing_official_complete() and self._is_requested_domain_complete() and self._is_purpose_complete() - and self._is_submitter_complete() + and (self._is_submitter_complete() if not has_profile_feature_flag else True) and self._is_other_contacts_complete() and self._is_additional_details_complete() and self._is_policy_acknowledgement_complete() ) - def _form_complete(self): + def _form_complete(self, request): match self.generic_org_type: case DomainRequest.OrganizationChoices.FEDERAL: is_complete = self._is_federal_complete() @@ -1198,8 +1201,6 @@ class DomainRequest(TimeStampedModel): case _: # NOTE: Shouldn't happen, this is only if somehow they didn't choose an org type is_complete = False - - if not is_complete or not self._is_general_form_complete(): + if not is_complete or not self._is_general_form_complete(request): return False - return True diff --git a/src/registrar/tests/test_models.py b/src/registrar/tests/test_models.py index 53af1674e..c3bb1fac9 100644 --- a/src/registrar/tests/test_models.py +++ b/src/registrar/tests/test_models.py @@ -2012,8 +2012,8 @@ class TestDomainRequestIncomplete(TestCase): self.domain_request.is_policy_acknowledged = None self.assertFalse(self.domain_request._is_policy_acknowledgement_complete()) - def test_form_complete(self): - self.assertTrue(self.domain_request._form_complete()) + def test_form_complete(self, request): + self.assertTrue(self.domain_request._form_complete(request)) self.domain_request.generic_org_type = None self.domain_request.save() - self.assertFalse(self.domain_request._form_complete()) + self.assertFalse(self.domain_request._form_complete(request)) diff --git a/src/registrar/views/domain_request.py b/src/registrar/views/domain_request.py index 77699e17a..73524dbe3 100644 --- a/src/registrar/views/domain_request.py +++ b/src/registrar/views/domain_request.py @@ -383,7 +383,7 @@ class DomainRequestWizard(DomainRequestWizardPermissionView, TemplateView): has_profile_flag = flag_is_active(self.request, "profile_feature") context_stuff = {} - if DomainRequest._form_complete(self.domain_request): + if DomainRequest._form_complete(self.domain_request, self.request): modal_button = '" context_stuff = { "not_form": False, @@ -695,7 +695,7 @@ class Review(DomainRequestWizard): forms = [] # type: ignore def get_context_data(self): - if DomainRequest._form_complete(self.domain_request) is False: + if DomainRequest._form_complete(self.domain_request, self.request) is False: logger.warning("User arrived at review page with an incomplete form.") context = super().get_context_data() context["Step"] = Step.__members__ From 668611f13e1bc71f951ee97bbded0985f3ebad3f Mon Sep 17 00:00:00 2001 From: Rebecca Hsieh Date: Mon, 24 Jun 2024 14:09:56 -0700 Subject: [PATCH 2/4] Update test --- src/registrar/tests/test_models.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/registrar/tests/test_models.py b/src/registrar/tests/test_models.py index c3bb1fac9..272996147 100644 --- a/src/registrar/tests/test_models.py +++ b/src/registrar/tests/test_models.py @@ -3,6 +3,8 @@ from django.db.utils import IntegrityError from unittest.mock import patch from django.contrib.auth import get_user_model +from django.test import RequestFactory + from registrar.models import ( Contact, DomainRequest, @@ -1610,6 +1612,7 @@ class TestDomainInformationCustomSave(TestCase): class TestDomainRequestIncomplete(TestCase): def setUp(self): super().setUp() + self.factory = RequestFactory() username = "test_user" first_name = "First" last_name = "Last" @@ -2012,7 +2015,10 @@ class TestDomainRequestIncomplete(TestCase): self.domain_request.is_policy_acknowledged = None self.assertFalse(self.domain_request._is_policy_acknowledgement_complete()) - def test_form_complete(self, request): + def test_form_complete(self): + request = self.factory.get("/") + request.user = self.user + self.assertTrue(self.domain_request._form_complete(request)) self.domain_request.generic_org_type = None self.domain_request.save() From b8bc2900cce9c04dfe48de399411d440f1331e25 Mon Sep 17 00:00:00 2001 From: Rebecca Hsieh Date: Mon, 24 Jun 2024 14:24:33 -0700 Subject: [PATCH 3/4] Add comment --- src/registrar/models/domain_request.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/registrar/models/domain_request.py b/src/registrar/models/domain_request.py index 49b84d472..63f11c8d0 100644 --- a/src/registrar/models/domain_request.py +++ b/src/registrar/models/domain_request.py @@ -1174,6 +1174,7 @@ class DomainRequest(TimeStampedModel): and self._is_authorizing_official_complete() and self._is_requested_domain_complete() and self._is_purpose_complete() + # NOTE: This flag leaves submitter as empty (request wont submt) hence preset to True and (self._is_submitter_complete() if not has_profile_feature_flag else True) and self._is_other_contacts_complete() and self._is_additional_details_complete() From 4e3b7a49bc02c6ca0d1b763038a629f4fe2cbd1a Mon Sep 17 00:00:00 2001 From: Rebecca Hsieh Date: Mon, 24 Jun 2024 14:25:21 -0700 Subject: [PATCH 4/4] Spelling error fix --- src/registrar/models/domain_request.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/registrar/models/domain_request.py b/src/registrar/models/domain_request.py index 63f11c8d0..25b696c2a 100644 --- a/src/registrar/models/domain_request.py +++ b/src/registrar/models/domain_request.py @@ -1174,7 +1174,7 @@ class DomainRequest(TimeStampedModel): and self._is_authorizing_official_complete() and self._is_requested_domain_complete() and self._is_purpose_complete() - # NOTE: This flag leaves submitter as empty (request wont submt) hence preset to True + # NOTE: This flag leaves submitter as empty (request wont submit) hence preset to True and (self._is_submitter_complete() if not has_profile_feature_flag else True) and self._is_other_contacts_complete() and self._is_additional_details_complete()