From 8d8c31f37a1af0f740b60aa8bad2dca1b275d8db Mon Sep 17 00:00:00 2001 From: David Kennedy Date: Wed, 5 Jun 2024 15:43:23 -0400 Subject: [PATCH] additional work on delete --- src/registrar/assets/js/get-gov.js | 36 ++++++++++++++++----------- src/registrar/views/domain_request.py | 8 ++++-- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/registrar/assets/js/get-gov.js b/src/registrar/assets/js/get-gov.js index 4100477b8..1371af45b 100644 --- a/src/registrar/assets/js/get-gov.js +++ b/src/registrar/assets/js/get-gov.js @@ -1229,7 +1229,7 @@ document.addEventListener('DOMContentLoaded', function() { let tableHeaders = document.querySelectorAll('.domain-requests__table th[data-sortable]'); let tableAnnouncementRegion = document.querySelector('.domain-requests__table-wrapper .usa-table__announcement-region') - function deleteDomainRequest(domainRequestPk) { + function deleteDomainRequest(domainRequestPk,pageToDisplay) { const csrfToken = getCsrfToken(); // Create FormData object and append the CSRF token @@ -1247,12 +1247,13 @@ document.addEventListener('DOMContentLoaded', function() { if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } - return response.json(); - }) - .then(data => { - console.log('response', data); - // Perform any additional actions, e.g., updating the UI + loadDomainRequests(pageToDisplay, currentSortBy, currentOrder, hasLoaded, currentSearchTerm); + //return response.json(); }) + // .then(data => { + // console.log('response', data); + // // Perform any additional actions, e.g., updating the UI + // }) .catch(error => console.error('Error fetching domain requests:', error)); } @@ -1361,7 +1362,7 @@ document.addEventListener('DOMContentLoaded', function() { const modalSubmit = ` ` @@ -1443,17 +1444,22 @@ document.addEventListener('DOMContentLoaded', function() { // initialize modals immediately after the DOM content is updated initializeModals(); - let subbmitButtons = document.querySelectorAll('.usa-moda__submit'); - subbmitButtons.forEach(button => { - button.addEventListener('click', function() { - pk = button.getAttribute('data-pk'); - console.log('pk ' + pk); - deleteDomainRequest(pk); - loadDomainRequests(1, 'id', 'asc'); + const modals = document.querySelectorAll('.usa-modal__content'); + + modals.forEach(modal => { + const submitButton = modal.querySelector('.usa-modal__submit'); + const closeButton = modal.querySelector('.usa-modal__close'); + submitButton.addEventListener('click', function() { + pk = submitButton.getAttribute('data-pk'); + closeButton.click(); + let pageToDisplay = data.page; + if (data.total == 1 && data.unfiltered_total > 1) { + pageToDisplay--; + } + deleteDomainRequest(pk, pageToDisplay); }); }); - if (hasLoaded) ScrollToElement('id', 'domain-requests-header'); diff --git a/src/registrar/views/domain_request.py b/src/registrar/views/domain_request.py index 95a139211..1cd23d803 100644 --- a/src/registrar/views/domain_request.py +++ b/src/registrar/views/domain_request.py @@ -798,8 +798,11 @@ class DomainRequestDeleteView(DomainRequestPermissionDeleteView): domain_request: DomainRequest = self.get_object() contacts_to_delete, duplicates = self._get_orphaned_contacts(domain_request) + self.object = self.get_object() + self.object.delete() + # Delete the DomainRequest - response = super().post(request, *args, **kwargs) + # response = super().post(request, *args, **kwargs) # Delete orphaned contacts - but only for if they are not associated with a user Contact.objects.filter(id__in=contacts_to_delete, user=None).delete() @@ -811,7 +814,8 @@ class DomainRequestDeleteView(DomainRequestPermissionDeleteView): duplicates_to_delete, _ = self._get_orphaned_contacts(domain_request, check_db=True) Contact.objects.filter(id__in=duplicates_to_delete, user=None).delete() - return response + # Return a 200 response with an empty body + return HttpResponse(status=200) def _get_orphaned_contacts(self, domain_request: DomainRequest, check_db=False): """