diff --git a/src/registrar/config/urls.py b/src/registrar/config/urls.py index bf663b58b..dbb78d74c 100644 --- a/src/registrar/config/urls.py +++ b/src/registrar/config/urls.py @@ -57,6 +57,11 @@ urlpatterns = [ views.ApplicationStatus.as_view(), name="application-status", ), + path( + "application//withdraw", + views.ApplicationWithdraw.as_view(), + name="application-withdraw-confirmation", + ), path("health/", views.health), path("openid/", include("djangooidc.urls")), path("register/", include((application_urls, APPLICATION_NAMESPACE))), diff --git a/src/registrar/migrations/0018_alter_domainapplication_status.py b/src/registrar/migrations/0017_alter_domainapplication_status_and_more.py similarity index 55% rename from src/registrar/migrations/0018_alter_domainapplication_status.py rename to src/registrar/migrations/0017_alter_domainapplication_status_and_more.py index 741f2950e..3f55b2042 100644 --- a/src/registrar/migrations/0018_alter_domainapplication_status.py +++ b/src/registrar/migrations/0017_alter_domainapplication_status_and_more.py @@ -1,4 +1,4 @@ -# Generated by Django 4.1.6 on 2023-04-13 18:31 +# Generated by Django 4.1.6 on 2023-04-13 18:38 from django.db import migrations import django_fsm @@ -6,7 +6,7 @@ import django_fsm class Migration(migrations.Migration): dependencies = [ - ("registrar", "0017_alter_domaininvitation_status"), + ("registrar", "0016_domaininvitation"), ] operations = [ @@ -19,10 +19,20 @@ class Migration(migrations.Migration): ("submitted", "submitted"), ("investigating", "investigating"), ("approved", "approved"), - ("Withdrawn", "Withdrawn"), + ("withdrawn", "withdrawn"), ], default="started", max_length=50, ), ), + 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/0017_alter_domaininvitation_status.py b/src/registrar/migrations/0017_alter_domaininvitation_status.py deleted file mode 100644 index 885ec43ff..000000000 --- a/src/registrar/migrations/0017_alter_domaininvitation_status.py +++ /dev/null @@ -1,23 +0,0 @@ -# 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/models/domain_application.py b/src/registrar/models/domain_application.py index 8d1700510..191d8729c 100644 --- a/src/registrar/models/domain_application.py +++ b/src/registrar/models/domain_application.py @@ -23,7 +23,7 @@ class DomainApplication(TimeStampedModel): SUBMITTED = "submitted" INVESTIGATING = "investigating" APPROVED = "approved" - WITHDRAWN = "Withdrawn" + WITHDRAWN = "withdrawn" STATUS_CHOICES = [ (STARTED, STARTED), (SUBMITTED, SUBMITTED), diff --git a/src/registrar/templates/application_withdraw_confirmation.html b/src/registrar/templates/application_withdraw_confirmation.html new file mode 100644 index 000000000..785f72d19 --- /dev/null +++ b/src/registrar/templates/application_withdraw_confirmation.html @@ -0,0 +1,114 @@ +{% extends 'base.html' %} + +{% block title %}Domain request status- {{ domainapplication.requested_domain.name }}{% endblock %} +{% load static url_helpers %} + +{% block content %} +
+ + +

Domain request for {{ domainapplication.requested_domain.name }}

+ +
+
+

+ + Status: + + {% if domainapplication.status == 'approved' %} Approved + {% elif domainapplication.status == 'investigating' %} In Review + {% elif domainapplication.status == 'submitted' %} Received + {% else %}ERROR Please contact technical support/dev + {% endif %} +


+

Last updated: {{domainapplication.updated_at|date:"F j, Y"}}
+ Request #: {{domainapplication.id}}

+ +

{% include "includes/domain_application.html" %}

+ +

+ +

Summary of your domain request

+ +
+

+


Type of organization
+ {{ domainapplication.get_organization_type_display }} +

+ + {% if domainapplication.tribe_name %} +

{{ domainapplication.tribe_name }}

+ {% endif %} + {% if domainapplication.federally_recognized_tribe %} +

Federally-recognized tribe

+ {% endif %} + {% if domainapplication.state_recognized_tribe %} +

State-recognized tribe

+ {% endif %} + {% if domainapplication.get_federal_type_display %} +


Federal government branch
+ {{ domainapplication.get_federal_type_display }}

+ {% endif %} + {% if domainapplication.is_election_board %} +


Election Office
{{ domainapplication.is_election_board}}

+ {% endif %} + {% if domainapplication.organization_name %} +


Organization address
+ {% include "includes/organization_address.html" with organization=domainapplication %}

+ {% endif %} + {% if domainapplication.type_of_work %} +

{{domainapplication.type_of_work}}

+ {% endif %} + {% if domainapplication.more_organization_information %} +

{{domainapplication.more_organization_information}}

+ {% endif %} + {% if domainapplication.authorizing_official %} +


Authorizing Official
+ {% include "includes/contact.html" with contact=domainapplication.authorizing_official %}

+ {% endif %} +


Organization website
    + {% for site in domainapplication.current_websites.all %} +
  • {{ site.website }}
  • + {% empty %} +
  • None
  • + {% endfor %}

+ {% if domainapplication.requested_domain.name %} +


.gov domain
    +
  • {{ domainapplication.requested_domain.name|default:"Incomplete" }}
  • +
+
    + {% for site in domainapplication.alternative_domains.all %} +
  • {{ site.website }}
  • + {% endfor %} +

+ {% endif %} + {% if domainapplication.purpose %} +


Purpose of your domain
+ {{ domainapplication.purpose }}

+ {% endif %} + {% if domainapplication.submitter %} +


Your contact information
+
+ {% include "includes/contact.html" with contact=domainapplication.submitter %} +
+ {% endif %} + {% for other in domainapplication.other_contacts.all %} +
+ {% include "includes/contact.html" with contact=other %} +
+ {% empty %} + None + {% endfor %}

+


Anything else we should know?

+ {{ domainapplication.anything_else|default:"No" }} +
+ + + +{% endblock %} diff --git a/src/registrar/views/application.py b/src/registrar/views/application.py index d68bd57b1..a38b4f6cd 100644 --- a/src/registrar/views/application.py +++ b/src/registrar/views/application.py @@ -483,3 +483,11 @@ class ApplicationStatus(generic.DetailView): def get_context_data(self, **kwargs): context = super(ApplicationStatus, self).get_context_data(**kwargs) return context + +class ApplicationWithdraw(generic.DetailView) + model = DomainApplication + template_name = "application_withdraw_confirmation.html" + + def get_context_data(self, **kwargs): + context = super(ApplicationWithdraw, self).get_context_data(**kwargs) + return context \ No newline at end of file