diff --git a/app/controllers/course/statusgroups.php b/app/controllers/course/statusgroups.php index 9d40b8f086b68f40b9d6c79c974d4368d253a291..5e09f515d44a3d0a8eccb2810046a75fdef4e829 100644 --- a/app/controllers/course/statusgroups.php +++ b/app/controllers/course/statusgroups.php @@ -513,14 +513,29 @@ class Course_StatusgroupsController extends AuthenticatedController } } $position = Statusgruppen::find($group_id)->position; + $selfassign = Request::int('selfassign', 0); + // Exclusive entry makes sense only when selfassign is set in general. + if ($selfassign !== 0) { + $selfassign += Request::int('exclusive', 0); + // Selfassign is not set but exclusive selfassign or some timeframe -> show warning message + } else if (Request::int('exclusive', 0) !== 0 + || Request::get('selfassign_start', null) !== null + || Request::get('selfassign_end', null) !== null) { + PageLayout::postWarning(_('Einstellungen zum Eintrag in eine Gruppe oder zum Eintragszeitraum können ' . + 'nur gespeichert werden, wenn der Selbsteintrag aktiviert ist.')); + } $group = Statusgruppen::createOrUpdate( $group_id, Request::get('name'), $position, $this->course_id, Request::int('size', 0), - Request::int('selfassign', 0) + Request::int('exclusive', 0), - strtotime(Request::get('selfassign_start', 'now')), - Request::get('selfassign_end') ? strtotime(Request::get('selfassign_end')) : 0, + $selfassign, + Request::int('selfassign', 0) !== 0 + ? strtotime(Request::get('selfassign_start', 'now')) + : 0, + Request::int('selfassign', 0) && Request::get('selfassign_end') + ? strtotime(Request::get('selfassign_end')) + : 0, Request::int('makefolder', 0), Request::getArray('dates') );