From bf050c9297f0d6ce8df338076bc72e180cadd3f8 Mon Sep 17 00:00:00 2001 From: Ivymaster Date: Thu, 17 Sep 2026 11:02:35 +0200 Subject: [PATCH] Dropped calender group id column from notizzuordnung and update migrateKalender commands --- .../controllers/system/MigrateKalender.php | 42 ++++++------- system/dbupdate_3.4.php | 1 - .../dbupdate_3.4/78052_tempus_tag_events.php | 19 ------ .../dbupdate_3.4/83437_kalender_notiz_tbl.php | 62 +++++++++++++++++-- 4 files changed, 78 insertions(+), 46 deletions(-) delete mode 100644 system/dbupdate_3.4/78052_tempus_tag_events.php diff --git a/application/controllers/system/MigrateKalender.php b/application/controllers/system/MigrateKalender.php index 71a7d189f..d1d29e2ab 100644 --- a/application/controllers/system/MigrateKalender.php +++ b/application/controllers/system/MigrateKalender.php @@ -454,14 +454,14 @@ class MigrateKalender extends CLI_Controller $db->db->query("DELETE FROM public.tbl_notiz WHERE notiz_id IN ( SELECT notiz_id - FROM public.tbl_notizzuordnung + FROM lehre.tbl_kalender_notiz WHERE eindeutige_kalender_gruppen_id IN ( SELECT eindeutige_kalender_gruppen_id FROM lehre.tbl_kalender ) )"); - $db->db->query("DELETE FROM public.tbl_notizzuordnung + $db->db->query("DELETE FROM lehre.tbl_kalender_notiz WHERE eindeutige_kalender_gruppen_id IN ( SELECT eindeutige_kalender_gruppen_id FROM lehre.tbl_kalender @@ -771,7 +771,7 @@ class MigrateKalender extends CLI_Controller $this->load->model('person/Notiz_model', 'NotizModel'); $this->load->model('system/Notiztyp_model', 'NotiztypModel'); - $this->load->model('person/Notizzuordnung_model', 'NotizzuordnungModel'); + $this->load->model('ressource/KalenderNotiz_model', 'KalenderNotizModel'); $checkTyp = $this->NotiztypModel->loadWhere(array('typ_kurzbz' => $notizType)); @@ -788,16 +788,16 @@ class MigrateKalender extends CLI_Controller } - $this->NotizzuordnungModel->addJoin('tbl_notiz', 'tbl_notiz.notiz_id = tbl_notizzuordnung.notiz_id', 'LEFT'); - $this->NotizzuordnungModel->db->where('tbl_notiz.typ', $notizType); - $this->NotizzuordnungModel->db->where('tbl_notiz.insertvon', $insertvonMockUser); - $oldNotizZuordnung = $this->NotizzuordnungModel->loadWhere(array('eindeutige_kalender_gruppen_id' => $eindeutige_kalender_gruppen_id)); - if (isError($oldNotizZuordnung)) + $this->KalenderNotizModel->addJoin('tbl_notiz', 'tbl_notiz.notiz_id = tbl_kalender_notiz.notiz_id', 'LEFT'); + $this->KalenderNotizModel->db->where('tbl_notiz.typ', $notizType); + $this->KalenderNotizModel->db->where('tbl_notiz.insertvon', $insertvonMockUser); + $oldKalenderNotiz = $this->KalenderNotizModel->loadWhere(array('eindeutige_kalender_gruppen_id' => $eindeutige_kalender_gruppen_id)); + if (isError($oldKalenderNotiz)) { - error("Error occurred while checking Notizzuordnung: " . $oldNotizZuordnung->message); + error("Error occurred while checking KalenderNotiz: " . $oldKalenderNotiz->message); return false; } - if (hasData($oldNotizZuordnung)) + if (hasData($oldKalenderNotiz)) { return $this->updateTag($eindeutige_kalender_gruppen_id, $notizText, $lastUpdatedInOldSystem); } @@ -819,14 +819,14 @@ class MigrateKalender extends CLI_Controller return false; } - $insertZuordnung = $this->NotizzuordnungModel->insert(array( + $insertKalenderNotiz = $this->KalenderNotizModel->insert(array( 'notiz_id' => $insertResult->retval, 'eindeutige_kalender_gruppen_id' => $eindeutige_kalender_gruppen_id )); - if (isError($insertZuordnung)) + if (isError($insertKalenderNotiz)) { - error("Error occurred while inserting Notizzuordnung: " . $insertZuordnung->message); + error("Error occurred while inserting KalenderNotiz: " . $insertKalenderNotiz->message); return false; } @@ -838,18 +838,18 @@ class MigrateKalender extends CLI_Controller $notizType = 'hinweis'; $insertvonMockUser = 'oldToNewTempusMigration'; - $this->NotizzuordnungModel->addJoin('tbl_notiz', 'tbl_notiz.notiz_id = tbl_notizzuordnung.notiz_id', 'LEFT'); - $this->NotizzuordnungModel->db->where('tbl_notiz.typ', $notizType); - $this->NotizzuordnungModel->db->where('tbl_notiz.insertvon', $insertvonMockUser); - $notizZuordnungRes = $this->NotizzuordnungModel->loadWhere(array('eindeutige_kalender_gruppen_id' => $eindeutige_kalender_gruppen_id)); - if (isError($notizZuordnungRes)) + $this->KalenderNotizModel->addJoin('tbl_notiz', 'tbl_notiz.notiz_id = tbl_kalender_notiz.notiz_id', 'LEFT'); + $this->KalenderNotizModel->db->where('tbl_notiz.typ', $notizType); + $this->KalenderNotizModel->db->where('tbl_notiz.insertvon', $insertvonMockUser); + $kalenderNotizRes = $this->KalenderNotizModel->loadWhere(array('eindeutige_kalender_gruppen_id' => $eindeutige_kalender_gruppen_id)); + if (isError($kalenderNotizRes)) { - error("Error occurred while loading Notizzuordnung: " . $notizZuordnungRes->message); + error("Error occurred while loading KalenderNotiz: " . $kalenderNotizRes->message); return false; } - $tag = $this->NotizModel->loadWhere(array('notiz_id' => $notizZuordnungRes->retval[0]->notiz_id)); + $tag = $this->NotizModel->loadWhere(array('notiz_id' => $kalenderNotizRes->retval[0]->notiz_id)); if (isError($tag)) { error("Error occurred while loading Notiz: " . $tag->message); @@ -858,7 +858,7 @@ class MigrateKalender extends CLI_Controller if (!hasData($tag)) { - error("Error occurred while loading Notiz: " . $tag->message); + error("Error occurred while loading KalenderNotiz: " . $tag->message); return false; } diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php index d4c2a9975..ad1923b38 100644 --- a/system/dbupdate_3.4.php +++ b/system/dbupdate_3.4.php @@ -99,7 +99,6 @@ require_once('dbupdate_3.4/76150_perm_other_lv_plan.php'); require_once('dbupdate_3.4/68957_dashboard_bookmark_neue_Spalte_sort.php'); require_once('dbupdate_3.4/68530_Dashboard_Cleanup.php'); require_once('dbupdate_3.4/77375_ressourcen.php'); -require_once('dbupdate_3.4/78052_tempus_tag_events.php'); require_once('dbupdate_3.4/78318_rename_column_of_eindeutige_gruppen_id_to_eindeutige_kalender_gruppen_id_in_tbl_kalender.php'); require_once('dbupdate_3.4/75959_StudVw_Automatische_Tags.php'); require_once('dbupdate_3.4/76160_lvv_favorites.php'); diff --git a/system/dbupdate_3.4/78052_tempus_tag_events.php b/system/dbupdate_3.4/78052_tempus_tag_events.php deleted file mode 100644 index 64f47d57b..000000000 --- a/system/dbupdate_3.4/78052_tempus_tag_events.php +++ /dev/null @@ -1,19 +0,0 @@ -db_query("SELECT 1 - FROM information_schema.columns - WHERE table_schema = 'public' - AND table_name = 'tbl_notizzuordnung' - AND column_name = 'eindeutige_kalender_gruppen_id'"); - -if ($db->db_num_rows($result) === 0) -{ - $qry = "ALTER TABLE public.tbl_notizzuordnung - ADD COLUMN eindeutige_kalender_gruppen_id UUID NULL DEFAULT NULL"; - - if (!$db->db_query($qry)) - echo 'public.tbl_notizzuordnung: '.$db->db_last_error().'
'; - else - echo '
public.tbl_notizzuordnung: eindeutige_kalender_gruppen_id column added'; -} diff --git a/system/dbupdate_3.4/83437_kalender_notiz_tbl.php b/system/dbupdate_3.4/83437_kalender_notiz_tbl.php index 2d56e9837..0a7990df7 100644 --- a/system/dbupdate_3.4/83437_kalender_notiz_tbl.php +++ b/system/dbupdate_3.4/83437_kalender_notiz_tbl.php @@ -32,7 +32,16 @@ if (!$result = @$db->db_query('SELECT 0 FROM lehre.tbl_kalender_notiz WHERE 0 = echo '
Granted privileges to vilesci on lehre.tbl_kalender_notiz'; // Delete the related note when its calendar-note assignment no longer exists. - $qry = 'CREATE OR REPLACE FUNCTION lehre.cleanup_notiz_on_kalender_notiz_delete() + $result = $db->db_query("SELECT 1 + FROM pg_catalog.pg_proc AS p + JOIN pg_catalog.pg_namespace AS n ON n.oid = p.pronamespace + WHERE n.nspname = 'lehre' + AND p.proname = 'cleanup_notiz_on_kalender_notiz_delete' + AND p.proargtypes = ''::oidvector"); + + if ($db->db_num_rows($result) === 0) + { + $qry = 'CREATE FUNCTION lehre.cleanup_notiz_on_kalender_notiz_delete() RETURNS trigger LANGUAGE plpgsql SECURITY DEFINER @@ -50,9 +59,15 @@ if (!$result = @$db->db_query('SELECT 0 FROM lehre.tbl_kalender_notiz WHERE 0 = RETURN OLD; END; - $function$; + $function$;'; - CREATE TRIGGER cleanup_notiz_on_kalender_notiz_delete + if (!$db->db_query($qry)) + echo 'lehre.tbl_notiz cleanup function: '.$db->db_last_error().'
'; + else + echo '
lehre.tbl_notiz cleanup function created'; + } + + $qry = 'CREATE TRIGGER cleanup_notiz_on_kalender_notiz_delete AFTER DELETE ON lehre.tbl_kalender_notiz FOR EACH ROW EXECUTE PROCEDURE lehre.cleanup_notiz_on_kalender_notiz_delete();'; @@ -65,7 +80,16 @@ if (!$result = @$db->db_query('SELECT 0 FROM lehre.tbl_kalender_notiz WHERE 0 = // Delete note assignments after a physical delete or when every row in the // calendar group has an inactive status. -$qry = 'CREATE OR REPLACE FUNCTION lehre.cleanup_kalender_notiz() +$result = $db->db_query("SELECT 1 + FROM pg_catalog.pg_proc AS p + JOIN pg_catalog.pg_namespace AS n ON n.oid = p.pronamespace + WHERE n.nspname = 'lehre' + AND p.proname = 'cleanup_kalender_notiz' + AND p.proargtypes = ''::oidvector"); + +if ($db->db_num_rows($result) === 0) +{ + $qry = 'CREATE FUNCTION lehre.cleanup_kalender_notiz() RETURNS trigger LANGUAGE plpgsql SECURITY DEFINER @@ -113,6 +137,7 @@ $qry = 'CREATE OR REPLACE FUNCTION lehre.cleanup_kalender_notiz() echo 'lehre.tbl_kalender_notiz cleanup function: '.$db->db_last_error().'
'; else echo '
lehre.tbl_kalender_notiz cleanup function created'; +} $result = $db->db_query("SELECT 1 FROM pg_catalog.pg_trigger AS t @@ -138,7 +163,16 @@ if ($db->db_num_rows($result) === 0) // Delete resource assignments after a physical delete or when every row in the // calendar group has an inactive status. -$qry = 'CREATE OR REPLACE FUNCTION lehre.cleanup_betriebsmittel_kalender() +$result = $db->db_query("SELECT 1 + FROM pg_catalog.pg_proc AS p + JOIN pg_catalog.pg_namespace AS n ON n.oid = p.pronamespace + WHERE n.nspname = 'lehre' + AND p.proname = 'cleanup_betriebsmittel_kalender' + AND p.proargtypes = ''::oidvector"); + +if ($db->db_num_rows($result) === 0) +{ + $qry = 'CREATE FUNCTION lehre.cleanup_betriebsmittel_kalender() RETURNS trigger LANGUAGE plpgsql SECURITY DEFINER @@ -186,6 +220,7 @@ $qry = 'CREATE OR REPLACE FUNCTION lehre.cleanup_betriebsmittel_kalender() echo 'lehre.tbl_betriebsmittel_kalender cleanup function: '.$db->db_last_error().'
'; else echo '
lehre.tbl_betriebsmittel_kalender cleanup function created'; +} $result = $db->db_query("SELECT 1 FROM pg_catalog.pg_trigger AS t @@ -225,3 +260,20 @@ if ($db->db_num_rows($result) === 1) else echo '
public.tbl_notizzuordnung: eindeutige_kalender_gruppen_id column removed'; } + +$result = $db->db_query("SELECT 1 + FROM information_schema.columns + WHERE table_schema = 'public' + AND table_name = 'tbl_notizzuordnung' + AND column_name = 'eindeutige_gruppen_id'"); + +if ($db->db_num_rows($result) === 1) +{ + $qry = "ALTER TABLE public.tbl_notizzuordnung + DROP COLUMN eindeutige_gruppen_id"; + + if (!$db->db_query($qry)) + echo 'public.tbl_notizzuordnung: '.$db->db_last_error().'
'; + else + echo '
public.tbl_notizzuordnung: eindeutige_gruppen_id column removed'; +}