Skip to content
Snippets Groups Projects
Commit bfe6c82a authored by Rasmus Fuhse's avatar Rasmus Fuhse
Browse files

add week_offset and end_offset

parent 7fd4be5d
No related branches found
No related tags found
No related merge requests found
...@@ -15,12 +15,22 @@ class CopyController extends PluginController ...@@ -15,12 +15,22 @@ class CopyController extends PluginController
"AND " . get_vis_query() . " " . "AND " . get_vis_query() . " " .
"AND auth_user_md5.perms = 'dozent' " . "AND auth_user_md5.perms = 'dozent' " .
"ORDER BY Vorname, Nachname", _("Lehrendennamen eingeben"), "user_id"); "ORDER BY Vorname, Nachname", _("Lehrendennamen eingeben"), "user_id");
$this->semesters = array_reverse(Semester::getAll());
$this->semester = UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_SEMESTER_ID
? Semester::find(UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_SEMESTER_ID)
: $this->semesters[0];
}
public function semester_start_und_ende_action($semester_id)
{
$this->semesters = array_reverse(Semester::getAll());
$this->semester = Semester::find($semester_id);
} }
public function process_action() public function process_action()
{ {
if (Request::isPost()) { if (Request::isPost()) {
foreach (array("semester_id", "dozent_id", "lock_copied_courses", "cycles", "resource_assignments") as $param) { foreach (array("semester_id", "dozent_id", "lock_copied_courses", "cycles", "resource_assignments", "week_offset", "end_offset") as $param) {
$config_name = "COURSECOPY_SETTINGS_".strtoupper($param); $config_name = "COURSECOPY_SETTINGS_".strtoupper($param);
UserConfig::get($GLOBALS['user']->id)->store($config_name, Request::get($param)); UserConfig::get($GLOBALS['user']->id)->store($config_name, Request::get($param));
} }
...@@ -128,6 +138,10 @@ class CopyController extends PluginController ...@@ -128,6 +138,10 @@ class CopyController extends PluginController
$newcycle->setData($cycledate->toArray()); $newcycle->setData($cycledate->toArray());
$newcycle->setId($newcycle->getNewId()); $newcycle->setId($newcycle->getNewId());
$newcycle['seminar_id'] = $newcourse->getId(); $newcycle['seminar_id'] = $newcourse->getId();
$newcycle['week_offset'] = Request::get("week_offset");
$newcycle['end_offset'] = Request::get("end_offset") !== 10000
? Request::get("end_offset")
: floor(($semester['vorles_ende'] - $semester['vorles_beginn']) / (86400 * 7));
$newcycle['mkdate'] = time(); $newcycle['mkdate'] = time();
$newcycle['chdate'] = time(); $newcycle['chdate'] = time();
$newcycle->store(); $newcycle->store();
......
...@@ -6,16 +6,16 @@ ...@@ -6,16 +6,16 @@
<fieldset> <fieldset>
<legend> <legend>
<?= _("Kopieroptionen") ?> <?= _("Allgemein") ?>
</legend> </legend>
<label> <label>
<?= _("In Semester") ?> <?= _("In Semester") ?>
<select name="semester_id" required> <select name="semester_id" required onChange="var week_offset = jQuery('select[name=week_offset]').val(); var end_offset = jQuery('select[name=end_offset]').val(); jQuery('#semester_start_und_ende').load(STUDIP.URLHelper.getURL('plugins.php/coursecopy/copy/semester_start_und_ende/' + this.value), function () { jQuery('select[name=week_offset]').val(week_offset); jQuery('select[name=end_offset]').val(end_offset); }); ">
<option value=""></option> <option value=""></option>
<? foreach (array_reverse(Semester::getAll()) as $semester) : ?> <? foreach ($semesters as $sem) : ?>
<option value="<?= htmlReady($semester->getId()) ?>"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_SEMESTER_ID == $semester->getId() ? " selected" : "" ?>> <option value="<?= htmlReady($sem->getId()) ?>"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_SEMESTER_ID == $sem->getId() ? " selected" : "" ?>>
<?= htmlReady($semester['name']) ?> <?= htmlReady($sem['name']) ?>
</option> </option>
<? endforeach ?> <? endforeach ?>
</select> </select>
...@@ -33,26 +33,39 @@ ...@@ -33,26 +33,39 @@
} }
echo $qs->render() echo $qs->render()
?> ?>
<label>
<input type="checkbox" name="lock_copied_courses" value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_LOCK_COPIED_COURSES ? " checked" : "" ?>>
<?= _('Kopierte Veranstaltungen sperren') ?>
</label>
</label> </label>
</fieldset>
<fieldset>
<legend>
<?= _("Termine") ?>
</legend>
<label> <label>
<input type="checkbox" <input type="checkbox"
name="cycles" name="cycles"
onChange="jQuery('#resource_assignments').toggle();" onChange="jQuery('#resource_assignments, #semester_start_und_ende').toggle();"
value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_CYCLES ? " checked" : "" ?>> value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_CYCLES ? " checked" : "" ?>>
<?= _("Regelmäßige Termine mit kopieren") ?> <?= _("Regelmäßige Termine mit kopieren") ?>
</label> </label>
<div id="semester_start_und_ende" style="<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_CYCLES ? "" : "display: none;" ?>">
<?= $this->render_partial("copy/semester_start_und_ende.php") ?>
</div>
<label id="resource_assignments" style="<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_CYCLES ? "" : "display: none;" ?>"> <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" : "" ?>> <input type="checkbox" name="resource_assignments" value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_RESOURCE_ASSIGNMENTS ? " checked" : "" ?>>
<?= _("Raumbuchungen mit übernehmen") ?> <?= _("Raumbuchungen mit übernehmen") ?>
</label> </label>
<label>
<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> </fieldset>
<div data-dialog-button> <div data-dialog-button>
<?= \Studip\Button::create(_("Kopieren"), "copy", array('onclick' => "return window.confirm('"._("Wirklich kopieren?")."');")) ?> <?= \Studip\Button::create(_("Kopieren"), "copy", array('onclick' => "return window.confirm('"._("Wirklich kopieren?")."');")) ?>
</div> </div>
......
<label>
<?= _("Startwoche") ?>
<select name="week_offset">
<? $i = 0 ?>
<? while ($semester['vorles_beginn'] + 86400 * 7 * $i < $semester['vorles_ende']) : ?>
<option value="<?= $i ?>"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_WEEK_OFFSET == $i ? " checked" : "" ?>>
<?= sprintf(_("%s. Semesterwoche (ab %s)"), $i + 1, date("d.m.Y", $semester['vorles_beginn'] + 86400 * 7 * $i)) ?>
</option>
<? $i++ ?>
<? endwhile ?>
</select>
</label>
<label>
<?= _("Endwoche") ?>
<select name="end_offset">
<option value="10000"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_END_OFFSET == 10000 ? " checked" : "" ?>>
<?= _("Letzte Semesterwoche") ?>
</option>
<? $i = floor(($semester['vorles_ende'] - $semester['vorles_beginn']) / (86400 * 7)) - 1 ?>
<? while ($i >= 0) : ?>
<option value="<?= $i ?>"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_END_OFFSET == $i ? " checked" : "" ?>>
<?= sprintf(_("%s. Semesterwoche (ab %s)"), $i + 1, date("d.m.Y", $semester['vorles_beginn'] + 86400 * 7 * $i)) ?>
</option>
<? $i-- ?>
<? endwhile ?>
</select>
</label>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment