This commit is contained in:
zandercymatics 2024-12-20 11:30:21 -07:00
parent 19a1d60c13
commit 5d601d6991
No known key found for this signature in database
GPG key ID: FF4636ABEC9682B7
4 changed files with 13 additions and 15 deletions

View file

@ -80,17 +80,17 @@ class RequestingEntityForm(RegistrarForm):
return self.cleaned_data.get("sub_organization")
def clean_requested_suborganization(self):
name = self.cleaned_data.get('requested_suborganization')
if name and Suborganization.objects.filter(
name__iexact=name,
portfolio=self.domain_request.portfolio,
name__isnull=False,
portfolio__isnull=False
).exists():
name = self.cleaned_data.get("requested_suborganization")
if (
name
and Suborganization.objects.filter(
name__iexact=name, portfolio=self.domain_request.portfolio, name__isnull=False, portfolio__isnull=False
).exists()
):
raise ValidationError(
"This suborganization already exists. "
"Choose a new name, or select it directly if you would like to use it."
)
)
return name
def full_clean(self):

View file

@ -679,9 +679,9 @@ class DomainRequest(TimeStampedModel):
2. Partial suborganization data: Enforces a all-or-nothing rule for city/state/name fields
when portfolio exists without selected suborganization
Add new domain request validation rules here to ensure they're
Add new domain request validation rules here to ensure they're
enforced during both model save and form submission.
Not presently used on the domain request wizard, though.
Not presently used on the domain request wizard, though.
"""
super().clean()
# Validation logic for a suborganization request
@ -717,10 +717,7 @@ class DomainRequest(TimeStampedModel):
if not value
}
# Adds a validation error to each missing field
raise ValidationError({
k: ValidationError(v, code='required')
for k, v in errors_dict.items()
})
raise ValidationError({k: ValidationError(v, code="required") for k, v in errors_dict.items()})
def save(self, *args, **kwargs):
"""Save override for custom properties"""

View file

@ -869,6 +869,7 @@ class MemberExportTest(MockDbForIndividualTests, MockEppLib):
csv_file.seek(0)
# Read the content into a variable
csv_content = csv_file.read()
self.maxDiff = None
expected_content = (
# Header
"Email,Organization admin,Invited by,Joined date,Last active,Domain requests,"

View file

@ -417,7 +417,7 @@ class MemberExport(BaseExport):
# Adding a order_by increases output predictability.
# Doesn't matter as much for normal use, but makes tests easier.
# We should also just be ordering by default anyway.
members = permissions.union(invitations).order_by("email_display")
members = permissions.union(invitations).order_by("email_display", "member_display", "first_name", "last_name")
return convert_queryset_to_dict(members, is_model=False)
@classmethod