From 503c464e484b8746bdf1a78c510c31106c30e0a2 Mon Sep 17 00:00:00 2001 From: usmannasir Date: Mon, 22 Sep 2025 17:46:10 +0500 Subject: [PATCH] bug fix: staging site issue --- websiteFunctions/website.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/websiteFunctions/website.py b/websiteFunctions/website.py index 751b52571..78a1555bc 100644 --- a/websiteFunctions/website.py +++ b/websiteFunctions/website.py @@ -153,7 +153,24 @@ class WebsiteManager: WPDelete = WPSites.objects.get(pk=DeleteID) if ACLManager.checkOwnership(WPDelete.owner.domain, admin, currentACL) == 1: - WPDelete.delete() + # Check if this is a staging site (referenced by WPStaging as wpsite) + staging_records = WPStaging.objects.filter(wpsite=WPDelete) + + if staging_records.exists(): + # This is a staging site - perform complete cleanup + staging_website = WPDelete.owner + + # Delete virtual host configurations before deleting records + from plogical.vhost import vhost + vhost.deleteVirtualHostConfigurations(staging_website.domain) + + # Delete all staging records + staging_records.delete() # Delete WPStaging records + WPDelete.delete() # Delete WPSites record + staging_website.delete() # Delete Websites record + else: + # Regular WP site deletion + WPDelete.delete() except BaseException as msg: pass @@ -223,7 +240,7 @@ class WebsiteManager: # Delete the staging Websites record and all associated data BEFORE deleting DB records from plogical.vhost import vhost - vhost.deleteVirtualHostConfigurations(staging_website.owner.domain) + vhost.deleteVirtualHostConfigurations(staging_website.domain) # Delete the WPStaging record wstagingDelete.delete()