diff --git a/src/registrar/assets/js/get-gov-admin.js b/src/registrar/assets/js/get-gov-admin.js index 09cb8f767..7b94fb4e1 100644 --- a/src/registrar/assets/js/get-gov-admin.js +++ b/src/registrar/assets/js/get-gov-admin.js @@ -586,27 +586,14 @@ function initializeWidgetOnList(list, parentId) { if(data && data.email_body_text) { actionNeededEmail.value = data.email_body_text - // Show the text field - showElement(actionNeededEmail); - // Hide the "no email" message - if(noEmailMessage) { - hideElement(noEmailMessage); - } }else if (data && !data.email_body_text) { - if (!noEmailMessage) { - noEmailMessage = document.createElement("p"); - noEmailMessage.id = "no-email-message"; - noEmailMessage.textContent = "No email will be sent"; - actionNeededEmail.parentNode.appendChild(noEmailMessage); - } + actionNeededEmail.value = "No email will be sent"; + } - // Hide the text field - hideElement(actionNeededEmail); - - // Show the message - showElement(noEmailMessage); + if (data) { + actionNeededEmail.value = data.email_body_text ? data.email_body_text : "No email will be sent"; } }); }); diff --git a/src/registrar/assets/sass/_theme/_admin.scss b/src/registrar/assets/sass/_theme/_admin.scss index 89c4c9f8e..21fb429a1 100644 --- a/src/registrar/assets/sass/_theme/_admin.scss +++ b/src/registrar/assets/sass/_theme/_admin.scss @@ -791,7 +791,8 @@ div.dja__model-description{ textarea { width: 100%; resize: none; - cursor: pointer; + cursor: auto; + border-width: medium; &::-webkit-scrollbar { background-color: transparent; @@ -821,5 +822,5 @@ div.dja__model-description{ } .no-border { - border: none + border: none; } \ No newline at end of file diff --git a/src/registrar/models/domain_request.py b/src/registrar/models/domain_request.py index f9e99f94e..ee577a84e 100644 --- a/src/registrar/models/domain_request.py +++ b/src/registrar/models/domain_request.py @@ -557,30 +557,6 @@ class DomainRequest(TimeStampedModel): blank=True, ) - def get_action_needed_reason_default_email_text(self, action_needed_reason: str): - """Returns the default email associated with the given action needed reason""" - if action_needed_reason is None or action_needed_reason == self.ActionNeededReasons.OTHER: - return { - "subject_text": None, - "email_body_text": None, - } - - # Get the email body - template_path = f"emails/action_needed_reasons/{action_needed_reason}.txt" - template = get_template(template_path) - - # Get the email subject - template_subject_path = f"emails/action_needed_reasons/{action_needed_reason}_subject.txt" - subject_template = get_template(template_subject_path) - - # Return the content of the rendered views - context = {"domain_request": self} - - return { - "subject_text": subject_template.render(context=context), - "email_body_text": template.render(context=context), - } - def sync_organization_type(self): """ Updates the organization_type (without saving) to match @@ -623,12 +599,9 @@ class DomainRequest(TimeStampedModel): def save(self, *args, **kwargs): """Save override for custom properties""" - if self.action_needed_reason and not self.action_needed_reason_email: - text = self.get_action_needed_reason_default_email_text(self.action_needed_reason) - self.action_needed_reason_email = text.get("email_body_text") - self.sync_organization_type() self.sync_yes_no_form_fields() + self.sync_action_needed_reason_email() super().save(*args, **kwargs) @@ -639,6 +612,12 @@ class DomainRequest(TimeStampedModel): # Update the cached values after saving self._cache_status_and_action_needed_reason() + def sync_action_needed_reason_email(self): + """If no action_needed_reason_email is defined, add a default one""" + if self.action_needed_reason and not self.action_needed_reason_email: + text = self.get_action_needed_reason_default_email_text(self.action_needed_reason) + self.action_needed_reason_email = text.get("email_body_text") + def sync_action_needed_reason(self): """Checks if we need to send another action needed email""" was_already_action_needed = self._cached_status == self.DomainRequestStatus.ACTION_NEEDED @@ -1241,3 +1220,27 @@ class DomainRequest(TimeStampedModel): return False return True + + def get_action_needed_reason_default_email_text(self, action_needed_reason: str): + """Returns the default email associated with the given action needed reason""" + if action_needed_reason is None or action_needed_reason == self.ActionNeededReasons.OTHER: + return { + "subject_text": None, + "email_body_text": None, + } + + # Get the email body + template_path = f"emails/action_needed_reasons/{action_needed_reason}.txt" + template = get_template(template_path) + + # Get the email subject + template_subject_path = f"emails/action_needed_reasons/{action_needed_reason}_subject.txt" + subject_template = get_template(template_subject_path) + + # Return the content of the rendered views + context = {"domain_request": self} + + return { + "subject_text": subject_template.render(context=context), + "email_body_text": template.render(context=context), + } diff --git a/src/registrar/templates/django/admin/includes/detail_table_fieldset.html b/src/registrar/templates/django/admin/includes/detail_table_fieldset.html index 714b26d71..12d41c23e 100644 --- a/src/registrar/templates/django/admin/includes/detail_table_fieldset.html +++ b/src/registrar/templates/django/admin/includes/detail_table_fieldset.html @@ -106,16 +106,14 @@ This is using a custom implementation fieldset.html (see admin/fieldset.html) - {% if original_object.action_needed_reason_email %}