From 31d04c026971fb64fbe29fb37b9d62155f0859e4 Mon Sep 17 00:00:00 2001 From: David Kennedy Date: Tue, 12 Sep 2023 14:47:22 -0400 Subject: [PATCH] added test for case where no status --- src/registrar/admin.py | 6 ++++-- src/registrar/tests/test_admin.py | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/registrar/admin.py b/src/registrar/admin.py index a373757cd..d8fc4a232 100644 --- a/src/registrar/admin.py +++ b/src/registrar/admin.py @@ -267,11 +267,13 @@ class DomainApplicationAdminForm(forms.ModelForm): instance = kwargs.get("instance") if instance and instance.pk: current_state = instance.status + + # first option in status transitions is current state + available_transitions = [(current_state, current_state)] + transitions = get_available_FIELD_transitions( instance, models.DomainApplication._meta.get_field("status") ) - # first option in status transitions is current state - available_transitions = [(current_state, current_state)] for transition in transitions: available_transitions.append((transition.target, transition.target)) diff --git a/src/registrar/tests/test_admin.py b/src/registrar/tests/test_admin.py index f2225d877..78d358034 100644 --- a/src/registrar/tests/test_admin.py +++ b/src/registrar/tests/test_admin.py @@ -106,6 +106,20 @@ class TestDomainApplicationAdminForm(TestCase): expected_choices = [("started", "started"), ("submitted", "submitted")] self.assertEqual(form.fields["status"].widget.choices, expected_choices) + def test_form_choices_when_no_instance(self): + # Create a form instance without an instance + form = DomainApplicationAdminForm() + + # Verify that the form choices show all choices when no instance is provided; + # this is necessary to show all choices when creating a new domain + # application in django admin; + # note that FSM ensures that no domain application exists with invalid status, + # so don't need to test for invalid status + self.assertEqual( + form.fields["status"].widget.choices, + DomainApplication._meta.get_field("status").choices, + ) + class TestDomainApplicationAdmin(TestCase): def setUp(self):