diff --git a/src/registrar/admin.py b/src/registrar/admin.py index bd5555805..d3f5b49f1 100644 --- a/src/registrar/admin.py +++ b/src/registrar/admin.py @@ -737,7 +737,18 @@ class DomainApplicationAdmin(ListHeaderAdmin): # Detail view form = DomainApplicationAdminForm fieldsets = [ - (None, {"fields": ["status", "investigator", "creator", "approved_domain"]}), + ( + None, + { + "fields": [ + "status", + "investigator", + "creator", + "approved_domain", + "notes" + ] + } + ), ( "Type of organization", { @@ -991,6 +1002,22 @@ class DomainAdmin(ListHeaderAdmin): "deleted", ] + fieldsets = ( + ( + None, + { + "fields": [ + "name", + "state", + "expiration_date", + "first_ready", + "deleted", + "notes" + ] + }, + ), + ) + # this ordering effects the ordering of results # in autocomplete_fields for domain ordering = ["name"] diff --git a/src/registrar/migrations/0064_domain_notes_domainapplication_notes.py b/src/registrar/migrations/0064_domain_notes_domainapplication_notes.py new file mode 100644 index 000000000..24dfaf4e3 --- /dev/null +++ b/src/registrar/migrations/0064_domain_notes_domainapplication_notes.py @@ -0,0 +1,22 @@ +# Generated by Django 4.2.7 on 2024-01-24 20:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("registrar", "0063_veryimportantperson"), + ] + + operations = [ + migrations.AddField( + model_name="domain", + name="notes", + field=models.TextField(blank=True, help_text="Notes about this domain", null=True), + ), + migrations.AddField( + model_name="domainapplication", + name="notes", + field=models.TextField(blank=True, help_text="Notes about this application", null=True), + ), + ] diff --git a/src/registrar/models/domain.py b/src/registrar/models/domain.py index 1a581a4ec..f84e61a80 100644 --- a/src/registrar/models/domain.py +++ b/src/registrar/models/domain.py @@ -992,6 +992,12 @@ class Domain(TimeStampedModel, DomainHelper): help_text="The last time this domain moved into the READY state", ) + notes = models.TextField( + null=True, + blank=True, + help_text="Notes about this domain", + ) + def isActive(self): return self.state == Domain.State.CREATED diff --git a/src/registrar/models/domain_application.py b/src/registrar/models/domain_application.py index 196449bfa..301d1b42b 100644 --- a/src/registrar/models/domain_application.py +++ b/src/registrar/models/domain_application.py @@ -556,6 +556,12 @@ class DomainApplication(TimeStampedModel): help_text="Date submitted", ) + notes = models.TextField( + null=True, + blank=True, + help_text="Notes about this application", + ) + def __str__(self): try: if self.requested_domain and self.requested_domain.name: diff --git a/src/registrar/models/domain_information.py b/src/registrar/models/domain_information.py index bdff6061b..fa3b78e1a 100644 --- a/src/registrar/models/domain_information.py +++ b/src/registrar/models/domain_information.py @@ -223,13 +223,20 @@ class DomainInformation(TimeStampedModel): if domain_info: return domain_info # the following information below is not needed in the domain information: - da_dict.pop("status", None) - da_dict.pop("current_websites", None) - da_dict.pop("investigator", None) - da_dict.pop("alternative_domains", None) - da_dict.pop("requested_domain", None) - da_dict.pop("approved_domain", None) - da_dict.pop("submission_date", None) + unused_one_to_one_fields = [ + "status", + "current_websites", + "investigator", + "alternative_domains", + "requested_domain", + "approved_domain", + "submission_date", + "other_contacts", + "notes", + ] + for field in unused_one_to_one_fields: + da_dict.pop(field, None) + other_contacts = da_dict.pop("other_contacts", []) domain_info = cls(**da_dict) domain_info.domain_application = domain_application