diff --git a/src/registrar/fixtures.py b/src/registrar/fixtures.py index 09ebf2690..5f3562ea2 100644 --- a/src/registrar/fixtures.py +++ b/src/registrar/fixtures.py @@ -116,6 +116,10 @@ class DomainApplicationFixture: "status": "investigating", "organization_name": "Example - Approved", }, + { + "status": "withdrawn" + "organization_name": "Example - Withdrawn" + } ] @classmethod diff --git a/src/registrar/migrations/0017_alter_domaininvitation_status.py b/src/registrar/migrations/0017_alter_domaininvitation_status.py new file mode 100644 index 000000000..885ec43ff --- /dev/null +++ b/src/registrar/migrations/0017_alter_domaininvitation_status.py @@ -0,0 +1,23 @@ +# Generated by Django 4.1.6 on 2023-04-13 18:27 + +from django.db import migrations +import django_fsm + + +class Migration(migrations.Migration): + dependencies = [ + ("registrar", "0016_domaininvitation"), + ] + + operations = [ + migrations.AlterField( + model_name="domaininvitation", + name="status", + field=django_fsm.FSMField( + choices=[("invited", "invited"), ("retrieved", "retrieved")], + default="invited", + max_length=50, + protected=True, + ), + ), + ] diff --git a/src/registrar/migrations/0018_alter_domainapplication_status.py b/src/registrar/migrations/0018_alter_domainapplication_status.py new file mode 100644 index 000000000..741f2950e --- /dev/null +++ b/src/registrar/migrations/0018_alter_domainapplication_status.py @@ -0,0 +1,28 @@ +# Generated by Django 4.1.6 on 2023-04-13 18:31 + +from django.db import migrations +import django_fsm + + +class Migration(migrations.Migration): + dependencies = [ + ("registrar", "0017_alter_domaininvitation_status"), + ] + + operations = [ + migrations.AlterField( + model_name="domainapplication", + name="status", + field=django_fsm.FSMField( + choices=[ + ("started", "started"), + ("submitted", "submitted"), + ("investigating", "investigating"), + ("approved", "approved"), + ("Withdrawn", "Withdrawn"), + ], + default="started", + max_length=50, + ), + ), + ] diff --git a/src/registrar/models/domain_application.py b/src/registrar/models/domain_application.py index 729cdfe8c..8d1700510 100644 --- a/src/registrar/models/domain_application.py +++ b/src/registrar/models/domain_application.py @@ -23,11 +23,13 @@ class DomainApplication(TimeStampedModel): SUBMITTED = "submitted" INVESTIGATING = "investigating" APPROVED = "approved" + WITHDRAWN = "Withdrawn" STATUS_CHOICES = [ (STARTED, STARTED), (SUBMITTED, SUBMITTED), (INVESTIGATING, INVESTIGATING), (APPROVED, APPROVED), + (WITHDRAWN, WITHDRAWN) ] class StateTerritoryChoices(models.TextChoices): @@ -505,7 +507,7 @@ class DomainApplication(TimeStampedModel): # This is a side-effect of the state transition self._send_confirmation_email() - @transition(field="status", source=[SUBMITTED, INVESTIGATING], target=APPROVED) + @transition(field="status", source=[SUBMITTED, INVESTIGATING], target=[APPROVED]) def approve(self): """Approve an application that has been submitted.