diff --git a/src/registrar/migrations/0147_alter_hostip_options.py b/src/registrar/migrations/0147_alter_hostip_options.py new file mode 100644 index 000000000..14658aadb --- /dev/null +++ b/src/registrar/migrations/0147_alter_hostip_options.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.20 on 2025-04-29 21:17 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("registrar", "0146_remove_domainrequest_eop_stakeholder_email_and_more"), + ] + + operations = [ + migrations.AlterModelOptions( + name="hostip", + options={"verbose_name": "Host IP", "verbose_name_plural": "Host IPs"}, + ), + ] diff --git a/src/registrar/models/host_ip.py b/src/registrar/models/host_ip.py index e0c5bb1c9..972a0626e 100644 --- a/src/registrar/models/host_ip.py +++ b/src/registrar/models/host_ip.py @@ -14,6 +14,10 @@ class HostIP(TimeStampedModel): available when registry is not available. """ + class Meta: + verbose_name = "Host IP" + verbose_name_plural = "Host IPs" + address = models.CharField( max_length=46, null=False, diff --git a/src/registrar/templates/admin/model_descriptions.html b/src/registrar/templates/admin/model_descriptions.html index 9b163c407..130cd023c 100644 --- a/src/registrar/templates/admin/model_descriptions.html +++ b/src/registrar/templates/admin/model_descriptions.html @@ -36,6 +36,20 @@ {% include "django/admin/includes/descriptions/portfolio_invitation_description.html" %} {% elif opts.model_name == 'allowedemail' %} {% include "django/admin/includes/descriptions/allowed_email_description.html" %} + {% elif opts.model_name == 'federalagency' %} + {% include "django/admin/includes/descriptions/federal_agency_description.html" %} + {% elif opts.model_name == 'hostip' %} + {% include "django/admin/includes/descriptions/host_ip_description.html" %} + {% elif opts.model_name == 'portfolio' %} + {% include "django/admin/includes/descriptions/portfolio_description.html" %} + {% elif opts.model_name == 'seniorofficial' %} + {% include "django/admin/includes/descriptions/senior_official_description.html" %} + {% elif opts.model_name == 'suborganization' %} + {% include "django/admin/includes/descriptions/suborganization_description.html" %} + {% elif opts.model_name == 'waffleflag' %} + {% include "django/admin/includes/descriptions/waffle_flag_description.html" %} + {% elif opts.model_name == 'domaingroup' %} + {% include "django/admin/includes/descriptions/domain_group_description.html" %} {% else %}
This table does not have a description yet.
{% endif %} diff --git a/src/registrar/templates/django/admin/includes/descriptions/allowed_email_description.html b/src/registrar/templates/django/admin/includes/descriptions/allowed_email_description.html index 602935ab7..8aa142303 100644 --- a/src/registrar/templates/django/admin/includes/descriptions/allowed_email_description.html +++ b/src/registrar/templates/django/admin/includes/descriptions/allowed_email_description.html @@ -1,6 +1,12 @@ -This table is an email allow list for non-production environments.
- If an email is sent out and the email does not exist within this table (or is not a subset of it), - then no email will be sent. + This table contains all email addresses that have been added to the allowlist for + non-production environments. +
++ If an email is triggered and the intended recipient doesn’t appear within this table + (or isn’t a subset of an entry in this table), then the message won’t be sent to that email address. +
++ If this table is populated in a production environment, it won’t have an effect on sending emails and + will simply be ignored.
-If this table is populated in a production environment, no change will occur as it will simply be ignored.
diff --git a/src/registrar/templates/django/admin/includes/descriptions/contact_description.html b/src/registrar/templates/django/admin/includes/descriptions/contact_description.html index e29041168..715cfb3d1 100644 --- a/src/registrar/templates/django/admin/includes/descriptions/contact_description.html +++ b/src/registrar/templates/django/admin/includes/descriptions/contact_description.html @@ -1,10 +1,8 @@-Contacts include anyone who has access to the registrar (known as “users”) and anyone listed in a domain request, -including other employees and senior officials. -Only contacts who have access to the registrar will have -a corresponding record within the Users table. + This table contains anyone listed in a non-portfolio domain request, including other employees + and senior officials. They aren't necessarily users with an account for the registrar unless + they are also in the Users table.
--Updating someone’s contact information here will not affect that person’s Login.gov information. + Updating someone’s contact information here will not affect that person’s User record or Login.gov information.
diff --git a/src/registrar/templates/django/admin/includes/descriptions/domain_group_description.html b/src/registrar/templates/django/admin/includes/descriptions/domain_group_description.html new file mode 100644 index 000000000..19dae0ef2 --- /dev/null +++ b/src/registrar/templates/django/admin/includes/descriptions/domain_group_description.html @@ -0,0 +1 @@ +This table isn’t being used in the registrar yet and can be ignored.
diff --git a/src/registrar/templates/django/admin/includes/descriptions/domain_request_description.html b/src/registrar/templates/django/admin/includes/descriptions/domain_request_description.html index 5adc07454..de1f03a37 100644 --- a/src/registrar/templates/django/admin/includes/descriptions/domain_request_description.html +++ b/src/registrar/templates/django/admin/includes/descriptions/domain_request_description.html @@ -1,11 +1,36 @@-This table contains all domain requests that have been started within the registrar and the status of those requests. -Updating values here will immediately update the corresponding values that users see in the registrar. + This table contains all .gov domain requests. If a green checkmark appears next to the “requested domain” + in this table, then it came from a portfolio organization. Updating values in this table will immediately + update the corresponding values that users see in the registrar.
-Once a domain request has been adjudicated, the details of that request should not be modified. -To update attributes (like an organization’s name) after a domain’s approval, -go to Domains. -Similar fields display on each Domain page, but edits made there will not affect the corresponding domain request. + A domain request will have one of the following + statuses: +
++ If you change the status to one of those marked with an asterisk, then an email will be sent to the creator of that request. +
++ Once a domain request has been adjudicated (i.e., set to Rejected, Withdrawn, Ineligible, or Approved), the details of that + request should not be modified. To update attributes (like an organization’s name) after a domain’s approval, go to + Domains. Similar fields display on each + domain page, but edits made there will not affect the corresponding request. +
+ ++ If a domain is accidentally approved, an entry will be added to the + Domains table and an approval email will + be sent. However, if the status is changed back before name servers are added, the request can be processed normally.
diff --git a/src/registrar/templates/django/admin/includes/descriptions/federal_agency_description.html b/src/registrar/templates/django/admin/includes/descriptions/federal_agency_description.html new file mode 100644 index 000000000..b80c92830 --- /dev/null +++ b/src/registrar/templates/django/admin/includes/descriptions/federal_agency_description.html @@ -0,0 +1,21 @@ +This table is used to populate “federal agency” drop-down menus in the registrar and in the following Django tables:
+ ++ If a federal agency name is incorrect or needs to be changed, you should edit the existing record rather than create a + new one. That way relationships with that record do not break within other Django tables. +
diff --git a/src/registrar/templates/django/admin/includes/descriptions/host_ip_description.html b/src/registrar/templates/django/admin/includes/descriptions/host_ip_description.html new file mode 100644 index 000000000..8048650e2 --- /dev/null +++ b/src/registrar/templates/django/admin/includes/descriptions/host_ip_description.html @@ -0,0 +1,5 @@ ++ This table contains all IP addresses associated with name servers for .gov domains. + A single name server can have multiple IP addresses in any combination of ip v4 or v6. + This table is primarily used for troubleshooting. +
diff --git a/src/registrar/templates/django/admin/includes/descriptions/portfolio_description.html b/src/registrar/templates/django/admin/includes/descriptions/portfolio_description.html new file mode 100644 index 000000000..0387215f1 --- /dev/null +++ b/src/registrar/templates/django/admin/includes/descriptions/portfolio_description.html @@ -0,0 +1,10 @@ ++ This table contains all portfolios in the registrar. + Portfolios are used to group an organization with all its domains, requests, suborganizations, and members. +
+ ++ For portfolio organizations, the mailing address is stored in this table, and the senior official is listed in the + Senior officials table. + For non-portfolio organizations, that information is managed at the domain or request level. +
diff --git a/src/registrar/templates/django/admin/includes/descriptions/senior_official_description.html b/src/registrar/templates/django/admin/includes/descriptions/senior_official_description.html new file mode 100644 index 000000000..69ead8691 --- /dev/null +++ b/src/registrar/templates/django/admin/includes/descriptions/senior_official_description.html @@ -0,0 +1,11 @@ +This table includes all senior officials that can be associated with a portfolio organization.
+ ++ To maintain data integrity, each organization should have only one senior official. + When adding a new senior official, selecting a federal agency will automatically link the official to that agency’s portfolio. +
+ ++ The senior official for non-portfolio organizations is managed at the domain or request level. + Those contacts do not appear in this table. +
diff --git a/src/registrar/templates/django/admin/includes/descriptions/suborganization_description.html b/src/registrar/templates/django/admin/includes/descriptions/suborganization_description.html new file mode 100644 index 000000000..babd93ad3 --- /dev/null +++ b/src/registrar/templates/django/admin/includes/descriptions/suborganization_description.html @@ -0,0 +1,9 @@ ++ This table contains all suborganizations created for portfolio organizations. + A suborganization is any entity (agency, bureau, office) that falls under the overarching organization. +
+ ++ Domains or requests within a portfolio can be linked to a suborganization. + If linked, the suborganization’s name will be publicly shown as the domain registrant. +
diff --git a/src/registrar/templates/django/admin/includes/descriptions/user_portfolio_permission_description.html b/src/registrar/templates/django/admin/includes/descriptions/user_portfolio_permission_description.html index fd8919b8f..fa5b20612 100644 --- a/src/registrar/templates/django/admin/includes/descriptions/user_portfolio_permission_description.html +++ b/src/registrar/templates/django/admin/includes/descriptions/user_portfolio_permission_description.html @@ -8,4 +8,4 @@If you add or remove someone to a portfolio by using this table, those actions won’t trigger notification emails. -
\ No newline at end of file + diff --git a/src/registrar/templates/django/admin/includes/descriptions/waffle_flag_description.html b/src/registrar/templates/django/admin/includes/descriptions/waffle_flag_description.html new file mode 100644 index 000000000..32e454b04 --- /dev/null +++ b/src/registrar/templates/django/admin/includes/descriptions/waffle_flag_description.html @@ -0,0 +1,13 @@ +Waffle flags control whether certain features are turned on or off in the registrar.
+ ++ You can adjust settings for specific user groups (superusers, staff), but the setting for "Everyone" + takes priority and overrides individual group settings. +
+ +If “Everyone” is set to:
+