blank value displays on portfolio and suborg, return ids in json

This commit is contained in:
Rachid Mrad 2024-11-06 18:19:11 -05:00
parent 4e12b1295b
commit b54017840e
No known key found for this signature in database
3 changed files with 26 additions and 3 deletions

View file

@ -8,6 +8,7 @@ from django.db.models.functions import Concat, Coalesce
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from registrar.models.federal_agency import FederalAgency from registrar.models.federal_agency import FederalAgency
from registrar.utility.admin_helpers import ( from registrar.utility.admin_helpers import (
AutocompleteSelectWithPlaceholder,
get_action_needed_reason_default_email, get_action_needed_reason_default_email,
get_rejection_reason_default_email, get_rejection_reason_default_email,
get_field_links_as_list, get_field_links_as_list,
@ -236,7 +237,17 @@ class DomainRequestAdminForm(forms.ModelForm):
widgets = { widgets = {
"current_websites": NoAutocompleteFilteredSelectMultiple("current_websites", False), "current_websites": NoAutocompleteFilteredSelectMultiple("current_websites", False),
"alternative_domains": NoAutocompleteFilteredSelectMultiple("alternative_domains", False), "alternative_domains": NoAutocompleteFilteredSelectMultiple("alternative_domains", False),
"other_contacts": NoAutocompleteFilteredSelectMultiple("other_contacts", False) "other_contacts": NoAutocompleteFilteredSelectMultiple("other_contacts", False),
'portfolio': AutocompleteSelectWithPlaceholder(
DomainRequest._meta.get_field('portfolio'),
admin.site,
attrs={'data-placeholder': '---------'}
),
'sub_organization': AutocompleteSelectWithPlaceholder(
DomainRequest._meta.get_field('sub_organization'),
admin.site,
attrs={'data-placeholder': '---------'}
),
} }
labels = { labels = {
"action_needed_reason_email": "Email", "action_needed_reason_email": "Email",

View file

@ -4,6 +4,7 @@ from django.utils.html import format_html
from django.urls import reverse from django.urls import reverse
from django.utils.html import escape from django.utils.html import escape
from registrar.models.utility.generic_helper import value_of_attribute from registrar.models.utility.generic_helper import value_of_attribute
from django.contrib.admin.widgets import AutocompleteSelect
def get_action_needed_reason_default_email(domain_request, action_needed_reason): def get_action_needed_reason_default_email(domain_request, action_needed_reason):
@ -94,3 +95,12 @@ def get_field_links_as_list(
else: else:
links = "".join(links) links = "".join(links)
return format_html(f'<ul class="add-list-reset">{links}</ul>') if links else msg_for_none return format_html(f'<ul class="add-list-reset">{links}</ul>') if links else msg_for_none
class AutocompleteSelectWithPlaceholder(AutocompleteSelect):
"""Override of the default autoselect element. This is because by default,
the autocomplete element clears data-placeholder"""
def build_attrs(self, base_attrs, extra_attrs=None):
attrs = super().build_attrs(base_attrs, extra_attrs=extra_attrs)
if 'data-placeholder' in base_attrs:
attrs['data-placeholder'] = base_attrs['data-placeholder']
return attrs

View file

@ -60,6 +60,8 @@ def get_portfolio_json(request):
# Convert the portfolio to a dictionary # Convert the portfolio to a dictionary
portfolio_dict = model_to_dict(portfolio) portfolio_dict = model_to_dict(portfolio)
portfolio_dict["id"] = portfolio.id
# map portfolio federal type # map portfolio federal type
portfolio_dict["federal_type"] = BranchChoices.get_branch_label(portfolio.federal_type) if portfolio.federal_type else "-" portfolio_dict["federal_type"] = BranchChoices.get_branch_label(portfolio.federal_type) if portfolio.federal_type else "-"
@ -84,9 +86,9 @@ def get_portfolio_json(request):
if portfolio.federal_agency: if portfolio.federal_agency:
federal_agency = model_to_dict( federal_agency = model_to_dict(
portfolio.federal_agency, portfolio.federal_agency,
fields=["agency"] fields=["agency", "id"]
) )
portfolio_dict["federal_agency"] = federal_agency["agency"] portfolio_dict["federal_agency"] = federal_agency
else: else:
portfolio_dict["federal_agency"] = '-' portfolio_dict["federal_agency"] = '-'