/** * This method deletes a semester or a bundle of semesters. * * @param string $id Id of the semester (or 'bulk' for a bulk operation) */ public function delete_action($id) { $ids = $id === 'bulk' ? Request::optionArray('ids') : array($id); if (count($ids)) { $errors = array(); $deleted = 0; $semesters = Semester::findMany($ids); foreach ($semesters as $semester) { if ($semester->absolute_seminars_count > 0) { $errors[] = sprintf(_('Das Semester "%s" hat noch Veranstaltungen und kann daher nicht gelöscht werden.'), $semester->name); } elseif (!$semester->delete()) { $errors[] = sprintf(_('Fehler beim Löschen des Semesters "%s".'), $semester->name); } else { $deleted += 1; } } if (count($errors) === 1) { PageLayout::postMessage(MessageBox::error($errors[0])); } elseif (!empty($errors)) { $message = _('Beim Löschen der Semester sind folgende Fehler aufgetreten.'); PageLayout::postMessage(MessageBox::error($message, $errors)); } if ($deleted > 0) { $message = sprintf(_('%u Semester wurde(n) erfolgreich gelöscht.'), $deleted); PageLayout::postMessage(MessageBox::success($message)); } } $this->redirect('admin/semester'); }