diff --git a/controllers/copy.php b/controllers/copy.php index fdac17709cb871c2045a9b0f2094a6fd9ec7b27d..c40e0f46abd5eac7d7ab484ea33defac4c712f16 100755 --- a/controllers/copy.php +++ b/controllers/copy.php @@ -14,12 +14,17 @@ class CopyController extends PluginController "OR auth_user_md5.username LIKE :input) " . "AND " . get_vis_query() . " " . "AND auth_user_md5.perms = 'dozent' " . - "ORDER BY Vorname, Nachname", _("Dozentennamen eingeben"), "user_id"); + "ORDER BY Vorname, Nachname", _("Lehrendennamen eingeben"), "user_id"); } public function process_action() { if (Request::isPost()) { + foreach (array("semester_id", "dozent_id", "lock_copied_courses", "cycles", "resource_assignments") as $param) { + $config_name = "COURSECOPY_SETTINGS_".strtoupper($param); + UserConfig::get($GLOBALS['user']->id)->store($config_name, Request::get($param)); + } + $dozent = null; if (Request::option("dozent_id")) { $dozent = User::find(Request::option("dozent_id")); @@ -126,6 +131,29 @@ class CopyController extends PluginController $newcycle['mkdate'] = time(); $newcycle['chdate'] = time(); $newcycle->store(); + + if (Request::get("resource_assignments")) { + $statement = DBManager::get()->prepare(" + SELECT resource_id + FROM ( + SELECT resource_id, COUNT(*) AS number + FROM termine + INNER JOIN resources_assign ON (resources_assign.assign_user_id = termine.termin_id) + WHERE termine.metadate_id = :metadate_id + GROUP BY resources_assign.resource_id + ) AS counter + ORDER BY number DESC + LIMIT 1 + "); + $statement->execute(array('metadate_id' => $cycledate->getId())); + $resource_id = $statement->fetch(PDO::FETCH_COLUMN, 0); + if ($resource_id) { + foreach ($newcycle->dates as $newdate) { + $singledate = new SingleDate($newdate); + $singledate->bookRoom($resource_id); + } + } + } } } } diff --git a/plugin.manifest b/plugin.manifest index d0913f8a6544affa43f47fc35e42d9a9a8f5c931..c5825ae36ba51477d7e25f37f74d613dbc00118d 100755 --- a/plugin.manifest +++ b/plugin.manifest @@ -1,6 +1,6 @@ pluginname=CourseCopy pluginclassname=CourseCopy -version=1.2.0 +version=1.3.0 origin=data-quest studipMinVersion=4.0 studipMaxVersion=4.99.99 \ No newline at end of file diff --git a/views/copy/info.php b/views/copy/info.php index 1e31ee0e835cf6ac39405637edfe32a266834431..b6df41f9cd28083270c6f85c47d18aedfe2a9682 100755 --- a/views/copy/info.php +++ b/views/copy/info.php @@ -14,22 +14,42 @@ <select name="semester_id" required> <option value=""></option> <? foreach (array_reverse(Semester::getAll()) as $semester) : ?> - <option value="<?= htmlReady($semester->getId()) ?>"><?= htmlReady($semester['name']) ?></option> + <option value="<?= htmlReady($semester->getId()) ?>"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_SEMESTER_ID == $semester->getId() ? " selected" : "" ?>> + <?= htmlReady($semester['name']) ?> + </option> <? endforeach ?> </select> </label> <label> - <?= _("Dozenten ersetzen durch ...") ?> - <?= QuickSearch::get("dozent_id", $dozentensearch)->render() ?> + <?= _("Lehrende ersetzen durch ...") ?> + <? + $qs = QuickSearch::get("dozent_id", $dozentensearch); + if (UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_DOZENT_ID) { + $qs->defaultValue( + UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_DOZENT_ID, + get_fullname(UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_DOZENT_ID) + ); + } + echo $qs->render() + ?> </label> <label> - <input type="checkbox" name="cycles" value="1" checked> + <input type="checkbox" + name="cycles" + onChange="jQuery('#resource_assignments').toggle();" + value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_CYCLES ? " checked" : "" ?>> <?= _("Regelmäßige Termine mit kopieren") ?> </label> + + <label id="resource_assignments" style="<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_CYCLES ? "" : "display: none;" ?>"> + <input type="checkbox" name="resource_assignments" value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_RESOURCE_ASSIGNMENTS ? " checked" : "" ?>> + <?= _("Raumbuchungen mit übernehmen") ?> + </label> + <label> - <input type="checkbox" name="lock_copied_courses" value="1"> + <input type="checkbox" name="lock_copied_courses" value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_LOCK_COPIED_COURSES ? " checked" : "" ?>> <?= _('Kopierte Veranstaltungen sperren') ?> </label> </fieldset>