diff --git a/controllers/QuestgroupsController.inc b/controllers/QuestgroupsController.inc index 3ee7af06..b4ea02ac 100644 --- a/controllers/QuestgroupsController.inc +++ b/controllers/QuestgroupsController.inc @@ -729,7 +729,7 @@ { // Parent Questgroup if(is_null($questgroup['hierarchy']['parent_questgroup_id'])) { - $this->redirect($this->linker->link(array('simenaries', 'seminary', $seminary['url']))); + $this->redirect($this->linker->link(array('seminaries', 'seminary', $seminary['url']))); } else { diff --git a/db/create.sql b/db/create.sql index 5c402dcf..c7b28338 100644 --- a/db/create.sql +++ b/db/create.sql @@ -968,7 +968,7 @@ CREATE TABLE `quests` ( KEY `questgroup_id` (`questgroup_id`), CONSTRAINT `quests_ibfk_1` FOREIGN KEY (`created_user_id`) REFERENCES `users` (`id`), CONSTRAINT `quests_ibfk_2` FOREIGN KEY (`questtype_id`) REFERENCES `questtypes` (`id`), - CONSTRAINT `quests_ibfk_4` FOREIGN KEY (`questgroup_id`) REFERENCES `questgroups` (`id`), + CONSTRAINT `quests_ibfk_4` FOREIGN KEY (`questgroup_id`) REFERENCES `questgroups` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `quests_ibfk_5` FOREIGN KEY (`questsmedia_id`) REFERENCES `questsmedia` (`media_id`) ON DELETE SET NULL ON UPDATE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; diff --git a/models/QuestgroupsModel.inc b/models/QuestgroupsModel.inc index 9e659450..ddd28b29 100644 --- a/models/QuestgroupsModel.inc +++ b/models/QuestgroupsModel.inc @@ -741,11 +741,11 @@ */ public function deleteQuestgroup($questgroupId) { - $this->db->query( - 'DELETE FROM questgroups WHERE id = ?', - 'i', - $questgroupId - ); + // Delete Questgroup texts + $this->Questgrouptexts->deleteQuestgrouptexts($questgroupId); + + // Delete Questgroup + $this->db->query('DELETE FROM questgroups WHERE id = ?', 'i', $questgroupId); } @@ -760,13 +760,8 @@ $questgroups = $this->getQuestgroupsForSeminary($seminaryId); // Delete each Questgroup - foreach($questgroups as &$questgroup) - { - // Delete Questgroup texts - $this->Questgrouptexts->deleteQuestgrouptexts($questgroup['id']); - - // Delete Questgroup - $this->db->query('DELETE FROM questgroups WHERE id = ?', 'i', $questgroup['id']); + foreach($questgroups as &$questgroup) { + $this->deleteQuestgroup($questgroup['id']); } }