Bug fix after merge and cleanup

This commit is contained in:
zandercymatics 2024-07-17 10:52:27 -06:00
parent 5532aa1516
commit cea47d1d3d
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
4 changed files with 28 additions and 18 deletions

View file

@ -1826,6 +1826,9 @@ document.addEventListener('DOMContentLoaded', function() {
} }
function setupListener(){ function setupListener(){
document.querySelectorAll('[id$="__edit-button"]').forEach(function(button) { document.querySelectorAll('[id$="__edit-button"]').forEach(function(button) {
// Get the "{field_name}" and "edit-button" // Get the "{field_name}" and "edit-button"
let fieldIdParts = button.id.split("__") let fieldIdParts = button.id.split("__")
@ -1849,11 +1852,26 @@ document.addEventListener('DOMContentLoaded', function() {
let firstName = document.querySelector("#id_first_name"); let firstName = document.querySelector("#id_first_name");
let middleName = document.querySelector("#id_middle_name"); let middleName = document.querySelector("#id_middle_name");
let lastName = document.querySelector("#id_last_name"); let lastName = document.querySelector("#id_last_name");
if (firstName && lastName) { if (firstName && lastName && firstName.value && lastName.value) {
let values = [firstName.value, middleName.value, lastName.value] let values = [firstName.value, middleName.value, lastName.value]
readonlyField.innerHTML = values.join(" "); readonlyField.innerHTML = values.join(" ");
}else { }else {
readonlyField.innerHTML = "Unknown"; let fullNameField = document.querySelector('#full_name__edit-button-readonly');
let svg = fullNameField.querySelector("svg use")
if (svg) {
const currentHref = svg.getAttribute('xlink:href');
if (currentHref) {
const parts = currentHref.split('#');
if (parts.length === 2) {
// Keep the path before '#' and replace the part after '#' with 'invalid'
const newHref = parts[0] + '#error';
svg.setAttribute('xlink:href', newHref);
fullNameField.classList.add("input-with-edit-button__error")
label = fullNameField.querySelector(".input-with-edit-button__readonly-field")
label.innerHTML = "Unknown";
}
}
}
} }
// Technically, the full_name field is optional, but we want to display it as required. // Technically, the full_name field is optional, but we want to display it as required.
@ -1873,6 +1891,7 @@ document.addEventListener('DOMContentLoaded', function() {
function showInputOnErrorFields(){ function showInputOnErrorFields(){
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
// Get all input elements within the form // Get all input elements within the form
let form = document.querySelector("#finish-profile-setup-form"); let form = document.querySelector("#finish-profile-setup-form");
let inputs = form ? form.querySelectorAll("input") : null; let inputs = form ? form.querySelectorAll("input") : null;
@ -1911,9 +1930,9 @@ document.addEventListener('DOMContentLoaded', function() {
}); });
}; };
// Hookup all edit buttons to the `handleEditButtonClick` function
setupListener(); setupListener();
// Show the input fields if an error exists // Show the input fields if an error exists
showInputOnErrorFields(); showInputOnErrorFields();
})(); })();

View file

@ -93,10 +93,7 @@ class FinishSetupProfileForm(UserProfileForm):
self.fields["title"].label = "Title or role in your organization" self.fields["title"].label = "Title or role in your organization"
# Define the "full_name" value # Define the "full_name" value
full_name = "" full_name = None
if self.instance.first_name and self.instance.last_name: if self.instance.first_name and self.instance.last_name:
full_name = self.instance.get_formatted_name(return_unknown_when_none=False) full_name = self.instance.get_formatted_name()
self.fields["full_name"].initial = full_name self.fields["full_name"].initial = full_name
# Set full_name as required for styling purposes
self.fields["full_name"].widget.attrs["required"] = "required"

View file

@ -87,13 +87,10 @@ class Contact(TimeStampedModel):
return getattr(self, relation).count() > threshold return getattr(self, relation).count() > threshold
return False return False
def get_formatted_name(self, return_unknown_when_none=True): def get_formatted_name(self):
"""Returns the contact's name in Western order.""" """Returns the contact's name in Western order."""
names = [n for n in [self.first_name, self.middle_name, self.last_name] if n] names = [n for n in [self.first_name, self.middle_name, self.last_name] if n]
if names: return " ".join(names) if names else "Unknown"
return " ".join(names)
else:
return "Unknown" if return_unknown_when_none else None
def has_contact_info(self): def has_contact_info(self):
return bool(self.title or self.email or self.phone) return bool(self.title or self.email or self.phone)

View file

@ -161,13 +161,10 @@ class User(AbstractUser):
"""Return count of ineligible requests""" """Return count of ineligible requests"""
return self.domain_requests_created.filter(status=DomainRequest.DomainRequestStatus.INELIGIBLE).count() return self.domain_requests_created.filter(status=DomainRequest.DomainRequestStatus.INELIGIBLE).count()
def get_formatted_name(self, return_unknown_when_none=True): def get_formatted_name(self):
"""Returns the contact's name in Western order.""" """Returns the contact's name in Western order."""
names = [n for n in [self.first_name, self.middle_name, self.last_name] if n] names = [n for n in [self.first_name, self.middle_name, self.last_name] if n]
if names: return " ".join(names) if names else "Unknown"
return " ".join(names)
else:
return "Unknown" if return_unknown_when_none else None
def has_contact_info(self): def has_contact_info(self):
return bool(self.title or self.email or self.phone) return bool(self.title or self.email or self.phone)