public function index_action() { PageLayout::setHelpKeyword("Basis.MeineStudiengruppen"); PageLayout::setTitle(_("Meine Studiengruppen")); URLHelper::removeLinkParam('cid'); $this->studygroups = MyRealmModel::getStudygroups(); $this->nav_elements = MyRealmModel::calc_single_navigation($this->studygroups); $this->set_sidebar(); }
public function tabularasa_action($timestamp = null) { $institutes = MyRealmModel::getMyInstitutes(); foreach ($institutes as $index => $institut) { MyRealmModel::setObjectVisits($institutes[$index], $institut['institut_id'], $GLOBALS['user']->id, $timestamp); } PageLayout::postMessage(MessageBox::success(_('Alles als gelesen markiert!'))); $this->redirect('my_institutes/index'); }
<? if (Config::get()->ALLOW_DOZENT_VISIBILITY) : ?> <? $infotext .= _("Um die Studiengruppe sichtbar zu machen, wählen Sie den Punkt \"Sichtbarkeit\" im Administrationsbereich der Veranstaltung."); ?> <? else : ?> <? $infotext .= _("Um die Studiengruppe sichtbar zu machen, wenden Sie sich an die Admins."); ?> <? endif ?> <?php echo _("[versteckt]"); ?> <?php echo tooltipicon($infotext); ?> <? endif ?> </td> <td style="text-align: left"> <? if (!empty($group['navigation'])) : ?> <? foreach (MyRealmModel::array_rtrim($group['navigation']) as $key => $nav) : ?> <? if (isset($nav) && $nav->isVisible(true)) : ?> <a href="<?php echo UrlHelper::getLink('seminar_main.php', array('auswahl' => $group['seminar_id'], 'redirect_to' => strtr($nav->getURL(), '?', '&'))); ?> " <?php echo $nav->hasBadgeNumber() ? 'class="badge" data-badge-number="' . intval($nav->getBadgeNumber()) . '"' : ''; ?> > <?php echo $nav->getImage()->asImg(20, $nav->getLinkAttributes()); ?> </a> <? elseif (is_string($key)) : ?> <?php echo Assets::img('blank.gif', array('width' => 20, 'height' => 20));
/** * TODO: Caching * @param string $type * @param string $sem */ public function tabularasa_action($sem = 'all', $timestamp = null) { NotificationCenter::postNotification('OverviewWillClear', $GLOBALS['user']->id); $timestamp = $timestamp ?: time(); $deputies_enabled = Config::get()->DEPUTIES_ENABLE; $semesters = MyRealmModel::getSelectedSemesters($sem); $min_sem_key = min($semesters); $max_sem_key = max($semesters); $courses = MyRealmModel::getCourses($min_sem_key, $max_sem_key, compact('deputies_enabled')); $courses = $courses->toArray('seminar_id modules status'); $modules = new Modules(); foreach ($courses as $index => $course) { $courses[$index]['modules'] = $modules->getLocalModules($course['seminar_id'], 'sem', $course['modules'], $course['status']); $courses[$index]['obj_type'] = 'sem'; MyRealmModel::setObjectVisits($courses[$index], $course['seminar_id'], $GLOBALS['user']->id, $timestamp); } NotificationCenter::postNotification('OverviewDidClear', $GLOBALS['user']->id); $this->flash['tabularasa'] = $timestamp; $this->redirect('my_courses/index'); }
/** * Returns all courses matching set criteria. * * @param Array $params Additional parameters * @return Array of courses */ private function getCourses($params = array()) { // Init if ($GLOBALS['user']->cfg->MY_INSTITUTES_DEFAULT === "all") { $inst = new SimpleCollection($this->insts); $inst->filter(function ($a) use(&$inst_ids) { $inst_ids[] = $a->Institut_id; }); } else { $institut = new Institute($GLOBALS['user']->cfg->MY_INSTITUTES_DEFAULT); $inst_ids[] = $GLOBALS['user']->cfg->MY_INSTITUTES_DEFAULT; if ($institut->isFaculty()) { foreach ($institut->sub_institutes->pluck("Institut_id") as $institut_id) { $inst_ids[] = $institut_id; } } } $filter = AdminCourseFilter::get(true); $filter->where("sem_classes.studygroup_mode = '0'"); if (is_object($this->semester)) { $filter->filterBySemester($this->semester->getId()); } if ($params['typeFilter'] && $params['typeFilter'] !== "all") { list($class_filter, $type_filter) = explode('_', $params['typeFilter']); if (!$type_filter && !empty($GLOBALS['SEM_CLASS'][$class_filter])) { $type_filter = array_keys($GLOBALS['SEM_CLASS'][$class_filter]->getSemTypes()); } $filter->filterByType($type_filter); } if ($GLOBALS['user']->cfg->ADMIN_COURSES_SEARCHTEXT) { $filter->filterBySearchString($GLOBALS['user']->cfg->ADMIN_COURSES_SEARCHTEXT); } if ($GLOBALS['user']->cfg->ADMIN_COURSES_TEACHERFILTER && $GLOBALS['user']->cfg->ADMIN_COURSES_TEACHERFILTER !== "all") { $filter->filterByDozent($GLOBALS['user']->cfg->ADMIN_COURSES_TEACHERFILTER); } $filter->filterByInstitute($inst_ids); if ($params['sortby'] === "status") { $filter->orderBy(sprintf('sem_classes.name %s, sem_types.name %s, VeranstaltungsNummer', $params['sortFlag'], $params['sortFlag'], $params['sortFlag']), $params['sortFlag']); } elseif ($params['sortby'] === 'completion') { $filter->orderBy('is_complete', $params['sortFlag']); } elseif ($params['sortby']) { $filter->orderBy($params['sortby'], $params['sortFlag']); } $filter->storeSettings(); $this->count_courses = $filter->countCourses(); if ($this->count_courses && $this->count_courses <= $filter->max_show_courses) { $courses = $filter->getCourses(); } else { return array(); } if (in_array('contents', $params['view_filter'])) { $sem_types = SemType::getTypes(); $modules = new Modules(); } $seminars = array_map('reset', $courses); if (!empty($seminars)) { foreach ($seminars as $seminar_id => $seminar) { $dozenten = $this->getTeacher($seminar_id); $seminars[$seminar_id]['dozenten'] = $dozenten; if (in_array('teachers', $params['view_filter'])) { if (SeminarCategories::getByTypeId($seminar['status'])->only_inst_user) { $search_template = "user_inst_not_already_in_sem"; } else { $search_template = "user_not_already_in_sem"; } $sem_helper = new Seminar(Course::buildExisting($seminar)); $dozentUserSearch = new PermissionSearch($search_template, sprintf(_("%s suchen"), get_title_for_status('dozent', 1, $seminar['status'])), "user_id", array('permission' => 'dozent', 'seminar_id' => $this->course_id, 'sem_perm' => 'dozent', 'institute' => $sem_helper->getInstitutes())); $seminars[$seminar_id]['teacher_search'] = MultiPersonSearch::get("add_member_dozent" . $seminar_id)->setTitle(_('Mehrere Lehrende hinzufügen'))->setSearchObject($dozentUserSearch)->setDefaultSelectedUser(array_keys($dozenten))->setDataDialogStatus(Request::isXhr())->setExecuteURL(URLHelper::getLink('dispatch.php/course/basicdata/add_member/' . $seminar_id, array('from' => 'admin/courses'))); } if (in_array('contents', $params['view_filter'])) { $seminars[$seminar_id]['sem_class'] = $sem_types[$seminar['status']]->getClass(); $seminars[$seminar_id]['modules'] = $modules->getLocalModules($seminar_id, 'sem', $seminar['modules'], $seminar['status']); $seminars[$seminar_id]['navigation'] = MyRealmModel::getAdditionalNavigations($seminar_id, $seminars[$seminar_id], $seminars[$seminar_id]['sem_class'], $GLOBALS['user']->id); } if ($this->selected_action == 17) { $seminars[$seminar_id]['admission_locked'] = false; if ($seminar['course_set']) { $set = new CourseSet($seminar['course_set']); if (!is_null($set) && $set->hasAdmissionRule('LockedAdmission')) { $seminars[$seminar_id]['admission_locked'] = 'locked'; } else { $seminars[$seminar_id]['admission_locked'] = 'disable'; } unset($set); } } } } return $seminars; }
public static function getStudygroups() { $courses = array(); $modules = new Modules(); $studygroups = User::findCurrent()->course_memberships->filter(function ($c) { return $c->course->getSemClass()->offsetGet('studygroup_mode'); })->toGroupedArray('seminar_id'); $param_array = 'name seminar_id visible veranstaltungsnummer start_time duration_time status visible '; $param_array .= 'chdate admission_binding modules admission_prelim'; $courses = Course::findAndMapMany(function ($course) use($param_array, $studygroups, $modules) { $ret = $course->toArray($param_array); $ret['sem_class'] = $course->getSemClass(); $ret['start_semester'] = $course->start_semester->name; $ret['end_semester'] = $course->end_semester->name; $ret['obj_type'] = 'sem'; $ret['last_visitdate'] = object_get_visit($course->id, 'sem', 'last'); $ret['visitdate'] = object_get_visit($course->id, 'sem', ''); $ret['user_status'] = $studygroups[$course->id]['status']; $ret['gruppe'] = $studygroups[$course->id]['gruppe']; $ret['modules'] = $modules->getLocalModules($course->id, 'sem', $course->modules, $course->status); MyRealmModel::getObjectValues($ret); return $ret; }, array_keys($studygroups)); return $courses; }