Skip to content
Snippets Groups Projects
Commit c7b7dc0c authored by Thomas Hackl's avatar Thomas Hackl
Browse files

Resolve "Fehlermeldungen nach Entfernen der Spalte sem_tree.studip_object_id"

Closes #3014

Merge request studip/studip!2016
parent f8f707aa
No related branches found
No related tags found
No related merge requests found
<?
final class RestoreStudipObjectId extends Migration
{
public function description()
{
return 'Restores the studip_object_id column for sem_tree';
}
protected function up()
{
// Add database column for sem_tree institute assignments.
DBManager::get()->exec("ALTER TABLE `sem_tree` ADD
`studip_object_id` CHAR(32) CHARACTER SET latin1 COLLATE latin1_bin NULL DEFAULT NULL AFTER `name`");
// Add index for studip_object_id.
DBManager::get()->exec("ALTER TABLE `sem_tree` ADD INDEX `studip_object_id` (`studip_object_id`)");
}
protected function down()
{
// Remove institute assignments for sem_tree entries.
DBManager::get()->exec("ALTER TABLE `sem_tree` DROP `studip_object_id`");
}
}
...@@ -76,12 +76,8 @@ class StudipSemTree extends TreeAbstract ...@@ -76,12 +76,8 @@ class StudipSemTree extends TreeAbstract
$db = $this->view->get_query("view:SEM_TREE_GET_DATA_NO_ENTRIES"); $db = $this->view->get_query("view:SEM_TREE_GET_DATA_NO_ENTRIES");
while ($db->next_record()){ while ($db->next_record()){
$this->tree_data[$db->f("sem_tree_id")] = ['type' => $db->f('type'), "info" => $db->f("info"),"studip_object_id" => $db->f("studip_object_id"), "entries" => 0]; $this->tree_data[$db->f("sem_tree_id")] = ['type' => $db->f('type'), "info" => $db->f("info"), "entries" => 0];
if ($db->f("studip_object_id")){ $name = $db->f("name");
$name = $db->f("studip_object_name");
} else {
$name = $db->f("name");
}
$this->storeItem($db->f("sem_tree_id"), $db->f("parent_id"), $name, $db->f("priority")); $this->storeItem($db->f("sem_tree_id"), $db->f("parent_id"), $name, $db->f("priority"));
} }
} }
...@@ -205,10 +201,8 @@ class StudipSemTree extends TreeAbstract ...@@ -205,10 +201,8 @@ class StudipSemTree extends TreeAbstract
if ($item_id == "root") if ($item_id == "root")
return "root"; return "root";
$ret_id = $item_id; $ret_id = $item_id;
while (!$this->tree_data[$ret_id]['studip_object_id']){ while ($ret_id != "root"){
$ret_id = $this->tree_data[$ret_id]['parent_id']; $ret_id = $this->tree_data[$ret_id]['parent_id'];
if ($ret_id == "root")
break;
} }
return $ret_id; return $ret_id;
} }
......
...@@ -36,8 +36,8 @@ $_views['sem_number_sql'] = "INTERVAL(start_time," . join(",",$sem_start_times) ...@@ -36,8 +36,8 @@ $_views['sem_number_sql'] = "INTERVAL(start_time," . join(",",$sem_start_times)
$_views['sem_number_end_sql'] = "IF(duration_time=-1,-1,INTERVAL(start_time+duration_time," . join(",",$sem_start_times) ."))"; $_views['sem_number_end_sql'] = "IF(duration_time=-1,-1,INTERVAL(start_time+duration_time," . join(",",$sem_start_times) ."))";
$_views["SEM_TREE_GET_DATA_NO_ENTRIES"] = ["pk"=>"sem_tree_id","temp_table_type"=>"HEAP", $_views["SEM_TREE_GET_DATA_NO_ENTRIES"] = ["pk"=>"sem_tree_id","temp_table_type"=>"HEAP",
"query"=>"SELECT a.*, c.Name AS studip_object_name "query"=>"SELECT a.*
FROM sem_tree a LEFT JOIN Institute c ON (a.studip_object_id = c.Institut_id) FROM sem_tree a
ORDER BY priority"]; ORDER BY priority"];
$_views["SEM_TREE_GET_ENTRIES"] = ["pk"=>"sem_tree_id","temp_table_type"=>"HEAP", $_views["SEM_TREE_GET_ENTRIES"] = ["pk"=>"sem_tree_id","temp_table_type"=>"HEAP",
"query" => "SELECT st.sem_tree_id, count(b.Seminar_id) AS entries "query" => "SELECT st.sem_tree_id, count(b.Seminar_id) AS entries
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment