From bd6febcec15466361389fdaad9127695da84a610 Mon Sep 17 00:00:00 2001 From: Ali Alam Date: Thu, 7 May 2026 11:51:06 +0800 Subject: [PATCH] Mastery Transcript: Added file cleanup feature after a record is deleted --- Mastery Transcript/CHANGEDB.php | 5 +++++ Mastery Transcript/CHANGELOG.txt | 4 ++++ Mastery Transcript/credits_manage_deleteProcess.php | 3 +++ Mastery Transcript/domains_manage_deleteProcess.php | 3 +++ Mastery Transcript/journey_manage_deleteProcess.php | 11 +++++++++++ Mastery Transcript/journey_record_deleteProcess.php | 10 ++++++++++ Mastery Transcript/manifest.php | 2 +- .../opportunities_manage_deleteProcess.php | 3 +++ Mastery Transcript/version.php | 2 +- 9 files changed, 41 insertions(+), 2 deletions(-) diff --git a/Mastery Transcript/CHANGEDB.php b/Mastery Transcript/CHANGEDB.php index 038899e..51c56a0 100644 --- a/Mastery Transcript/CHANGEDB.php +++ b/Mastery Transcript/CHANGEDB.php @@ -224,3 +224,8 @@ ++$count; $sql[$count][0] = '1.7.00'; $sql[$count][1] = ""; + +//v1.7.01 +++$count; +$sql[$count][0] = '1.7.01'; +$sql[$count][1] = ""; diff --git a/Mastery Transcript/CHANGELOG.txt b/Mastery Transcript/CHANGELOG.txt index 46986fa..aa69f28 100644 --- a/Mastery Transcript/CHANGELOG.txt +++ b/Mastery Transcript/CHANGELOG.txt @@ -1,5 +1,9 @@ CHANGELOG ========= +v1.7.01 +------- +Added file cleanup feature after a record is deleted + v1.7.00 ------- Added comprehensive file upload tracking system to monitor and manage all file uploads across the system diff --git a/Mastery Transcript/credits_manage_deleteProcess.php b/Mastery Transcript/credits_manage_deleteProcess.php index d184c0a..0c775c0 100644 --- a/Mastery Transcript/credits_manage_deleteProcess.php +++ b/Mastery Transcript/credits_manage_deleteProcess.php @@ -19,6 +19,7 @@ along with this program. If not, see . */ +use Gibbon\Contracts\Filesystem\FileHandler; use Gibbon\Module\MasteryTranscript\Domain\CreditGateway; use Gibbon\Module\MasteryTranscript\Domain\CreditMentorGateway; @@ -51,6 +52,8 @@ $deleted = $creditGateway->delete($masteryTranscriptCreditID); + $fileDeleted = $container->get(FileHandler::class)->deleteFile('masteryTranscriptCredit', $masteryTranscriptCreditID, 'logo'); + $creditMentorGateway = $container->get(CreditMentorGateway::class); $creditMentorGateway->deleteMentorsByCredit($masteryTranscriptCreditID); diff --git a/Mastery Transcript/domains_manage_deleteProcess.php b/Mastery Transcript/domains_manage_deleteProcess.php index 118fc1c..1bd25c6 100644 --- a/Mastery Transcript/domains_manage_deleteProcess.php +++ b/Mastery Transcript/domains_manage_deleteProcess.php @@ -19,6 +19,7 @@ along with this program. If not, see . */ +use Gibbon\Contracts\Filesystem\FileHandler; use Gibbon\Module\MasteryTranscript\Domain\DomainGateway; require_once '../../gibbon.php'; @@ -48,6 +49,8 @@ $deleted = $domainGateway->delete($masteryTranscriptDomainID); + $fileDeleted = $container->get(FileHandler::class)->deleteFile('masteryTranscriptDomain', $masteryTranscriptDomainID, 'logo'); + $URL .= !$deleted ? '&return=error2' : '&return=success0'; diff --git a/Mastery Transcript/journey_manage_deleteProcess.php b/Mastery Transcript/journey_manage_deleteProcess.php index ea826bb..8abd5ac 100644 --- a/Mastery Transcript/journey_manage_deleteProcess.php +++ b/Mastery Transcript/journey_manage_deleteProcess.php @@ -19,6 +19,8 @@ along with this program. If not, see . */ +use Gibbon\Contracts\Filesystem\FileHandler; +use Gibbon\Domain\System\DiscussionGateway; use Gibbon\Module\MasteryTranscript\Domain\JourneyGateway; require_once '../../gibbon.php'; @@ -59,6 +61,15 @@ exit(); } + $discussionGateway = $container->get(DiscussionGateway::class); + $discussions = $discussionGateway->selectBy(['foreignTable' => 'masteryTranscriptJourney', 'foreignTableID' => $masteryTranscriptJourneyID], ['gibbonDiscussionID'])->fetchAll(); + + foreach ($discussions as $discussion) { + $fileDeleted = $container->get(FileHandler::class)->deleteFile('gibbonDiscussion', $discussion['gibbonDiscussionID'], 'attachmentLocation'); + } + + $discussionGateway->deleteWhere(['foreignTable' => 'masteryTranscriptJourney', 'foreignTableID' => $masteryTranscriptJourneyID]); + $deleted = $journeyGateway->delete($masteryTranscriptJourneyID); $URL .= !$deleted diff --git a/Mastery Transcript/journey_record_deleteProcess.php b/Mastery Transcript/journey_record_deleteProcess.php index ca770d4..2e97b73 100644 --- a/Mastery Transcript/journey_record_deleteProcess.php +++ b/Mastery Transcript/journey_record_deleteProcess.php @@ -19,6 +19,8 @@ along with this program. If not, see . */ +use Gibbon\Contracts\Filesystem\FileHandler; +use Gibbon\Domain\System\DiscussionGateway; use Gibbon\Module\MasteryTranscript\Domain\JourneyGateway; require_once '../../gibbon.php'; @@ -53,6 +55,14 @@ exit; } + $discussionGateway = $container->get(DiscussionGateway::class); + $discussions = $discussionGateway->selectBy(['foreignTable' => 'masteryTranscriptJourney', 'foreignTableID' => $masteryTranscriptJourneyID], ['gibbonDiscussionID'])->fetchAll(); + + foreach ($discussions as $discussion) { + $fileDeleted = $container->get(FileHandler::class)->deleteFile('gibbonDiscussion', $discussion['gibbonDiscussionID'], 'attachmentLocation'); + } + $discussionGateway->deleteWhere(['foreignTable' => 'masteryTranscriptJourney', 'foreignTableID' => $masteryTranscriptJourneyID]); + $deleted = $journeyGateway->delete($masteryTranscriptJourneyID); $URL .= !$deleted diff --git a/Mastery Transcript/manifest.php b/Mastery Transcript/manifest.php index 567572f..6e203b0 100644 --- a/Mastery Transcript/manifest.php +++ b/Mastery Transcript/manifest.php @@ -27,7 +27,7 @@ $entryURL = 'index.php'; $type = 'Additional'; $category = 'Assess'; -$version = '1.7.00'; +$version = '1.7.01'; $author = "Gibbon Foundation"; $url = "https://gibbonedu.org"; diff --git a/Mastery Transcript/opportunities_manage_deleteProcess.php b/Mastery Transcript/opportunities_manage_deleteProcess.php index a799f5b..ca5bb99 100644 --- a/Mastery Transcript/opportunities_manage_deleteProcess.php +++ b/Mastery Transcript/opportunities_manage_deleteProcess.php @@ -19,6 +19,7 @@ along with this program. If not, see . */ +use Gibbon\Contracts\Filesystem\FileHandler; use Gibbon\Module\MasteryTranscript\Domain\OpportunityGateway; use Gibbon\Module\MasteryTranscript\Domain\OpportunityMentorGateway; use Gibbon\Module\MasteryTranscript\Domain\OpportunityCreditGateway; @@ -51,6 +52,8 @@ $deleted = $opportunityGateway->delete($masteryTranscriptOpportunityID); + $fileDeleted = $container->get(FileHandler::class)->deleteFile('masteryTranscriptOpportunity', $masteryTranscriptOpportunityID, 'logo'); + $opportunityMentorGateway = $container->get(OpportunityMentorGateway::class); $opportunityMentorGateway->deleteMentorsByOpportunity($masteryTranscriptOpportunityID); diff --git a/Mastery Transcript/version.php b/Mastery Transcript/version.php index 57b3fb7..04c414f 100644 --- a/Mastery Transcript/version.php +++ b/Mastery Transcript/version.php @@ -22,5 +22,5 @@ /** * Sets version information. */ -$moduleVersion = '1.7.00'; +$moduleVersion = '1.7.01'; $coreVersion = '31.0.00';