This commit is contained in:
David Kennedy 2024-11-05 18:31:34 -05:00
parent 05a387daa0
commit 3c9e93ee46
No known key found for this signature in database
GPG key ID: 6528A5386E66B96B
2 changed files with 30 additions and 66 deletions

View file

@ -236,7 +236,7 @@ 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)
} }
labels = { labels = {
"action_needed_reason_email": "Email", "action_needed_reason_email": "Email",

View file

@ -140,73 +140,31 @@ function handlePortfolioSelection() {
} }
function updatePortfolioFields() { function updatePortfolioFields() {
console.log("isPageLoading = " + isPageLoading);
if (!isPageLoading) { if (!isPageLoading) {
if (portfolioDropdown.val()) { if (portfolioDropdown.val()) {
console.log("there is a value in portfolio dropdown")
let portfolio = getPortfolio(portfolioDropdown.val()); let portfolio = getPortfolio(portfolioDropdown.val());
updatePortfolioFieldsData(portfolio); updatePortfolioFieldsData(portfolio);
} }
console.log("updating display");
updatePortfolioFieldsDisplay(); updatePortfolioFieldsDisplay();
} else { } else {
isPageLoading = false; isPageLoading = false;
} }
} }
function getUrl() { function updateSubOrganizationDropdown(portfolio_id) {
return "/admin/api/get-suborganization-list-json/?portfolio_id=" + portfolioDropdown.val();
}
function updateSubOrganizationUrl() {
if (portfolioDropdown.val()) {
const dropdown = django.jQuery("#id_sub_organization");
if (dropdown.data('select2')) {
console.log("destroying select2");
dropdown.select2("destroy");
}
let newURL = "/admin/api/get-suborganization-list-json/?portfolio_id=" + portfolioDropdown.val();
dropdown.select2({
ajax: {
url: function (params) {
return newURL;
},
dataType: 'json',
delay: 250,
cache: true
},
theme: 'admin-autocomplete',
allowClear: true,
placeholder: dropdown.attr('data-placeholder')
});
}
}
function updatePortfolioFieldsDisplay() {
if (portfolioDropdown.val()) {
// update autocomplete url for suborganizationDropdown
// console.log("updating suborganization dropdown, id to " + portfolioDropdown.val());
// console.log(typeof django.jQuery().select2); // Should output 'function'
// console.log("Attributes of #id_sub_organization:");
console.log(suborganizationDropdown);
suborganizationDropdown.attr("data-ajax--url", "/admin/api/get-suborganization-list-json/");
django.jQuery(document).ready(function() { django.jQuery(document).ready(function() {
console.log(suborganizationDropdown);
let dropdown = django.jQuery("#id_sub_organization");
if (suborganizationDropdown.data('select2')) { if (suborganizationDropdown.data('select2')) {
suborganizationDropdown.select2('destroy'); suborganizationDropdown.select2('destroy');
} }
// Reinitialize Select2 with the updated URL // Reinitialize Select2 with the updated URL
dropdown = django.jQuery("#id_sub_organization");
suborganizationDropdown.select2({ suborganizationDropdown.select2({
ajax: { ajax: {
data: function (params) { data: function (params) {
var query = { var query = {
search: params.term, search: params.term,
portfolio_id: portfolioDropdown.val() portfolio_id: portfolio_id
} }
return query; return query;
}, },
@ -218,13 +176,19 @@ function handlePortfolioSelection() {
allowClear: true, allowClear: true,
placeholder: suborganizationDropdown.attr('data-placeholder') placeholder: suborganizationDropdown.attr('data-placeholder')
}); });
console.log(suborganizationDropdown);
}); });
}
function initializeSubOrganizationUrl() {
suborganizationDropdown.attr("data-ajax--url", "/admin/api/get-suborganization-list-json/");
}
// suborganizationDropdown.attr("ajaxUrl", "/admin/api/get-suborganization-list-json/?portfolio_id=" + portfolioDropdown.val()); function updatePortfolioFieldsDisplay() {
let portfolio_id = portfolioDropdown.val();
if (portfolio_id) {
updateSubOrganizationDropdown(portfolio_id);
showElement(suborganizationField); showElement(suborganizationField);
hideElement(seniorOfficialField); hideElement(seniorOfficialField);
@ -260,8 +224,8 @@ function handlePortfolioSelection() {
} }
} }
// django.jQuery(document).ready(function() {
// updateSubOrganizationUrl(); initializeSubOrganizationUrl();
// Run the function once on page startup, then attach an event listener // Run the function once on page startup, then attach an event listener
updatePortfolioFieldsDisplay(); updatePortfolioFieldsDisplay();
portfolioDropdown.on("change", updatePortfolioFields); portfolioDropdown.on("change", updatePortfolioFields);