diff --git a/.gitignore b/.gitignore
index 8ebe61e25..f2e4d7bdb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,4 @@ tests/codeception/tests/unit.suite.yml
/sparks/*
/webdav/google.php
system/sql/
+.ptp-sync*
\ No newline at end of file
diff --git a/application/controllers/person/Gradelist.php b/application/controllers/person/Gradelist.php
new file mode 100644
index 000000000..bf179ad35
--- /dev/null
+++ b/application/controllers/person/Gradelist.php
@@ -0,0 +1,349 @@
+ array('student:r', 'student/noten:r')
+ )
+ );
+
+ // Loads models
+ $this->load->model('person/person_model', 'PersonModel');
+ $this->load->model('organisation/studiengang_model', 'StudiengangModel');
+ $this->load->model('crm/student_model', 'StudentModel');
+ $this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel');
+ $this->load->model('education/zeugnisnote_model', 'ZeugnisnoteModel');
+ $this->load->model('education/lehrveranstaltung_model', 'LehrveranstaltungModel');
+ $this->load->model('codex/note_model', 'NoteModel');
+
+ $this->loadPhrases(
+ array(
+ 'global',
+ 'person',
+ 'lehre',
+ 'ui'
+ )
+ );
+
+ $result_noten = $this->NoteModel->load();
+ foreach ($result_noten->retval as $row)
+ {
+ $this->_grades[$row->note]['positiv'] = $row->positiv;
+ $this->_grades[$row->note]['anmerkung'] = $row->anmerkung;
+ $this->_grades[$row->note]['notenwert'] = $row->notenwert;
+ }
+ }
+
+ /**
+ * Print all Grades of a person
+ * @param $uid UID of the Person
+ */
+ public function index($uid = null)
+ {
+ if (is_null($uid))
+ $uid = getAuthUID();
+
+ // load student
+ $student = $this->StudentModel->load(array($uid));
+ if (!isSuccess($student) || !hasData($student))
+ {
+ echo "You have no Permission or User does not exists";
+ exit;
+ }
+
+ // Check if logged in User has permission to see grades of this person
+ $stg = $this->StudiengangModel->load($student->retval[0]->studiengang_kz);
+ if (!$this->hasPermission($uid, $stg->retval[0]->oe_kurzbz))
+ {
+ echo "You have no Permission or User does not exists";
+ exit;
+ }
+ $person = $this->PersonModel->getByUid($uid);
+
+ $courses = $this->loadCourseInformation($student->retval[0]->prestudent_id, $student->retval[0]->student_uid);
+
+ $data = array (
+ "user" => $uid,
+ "person" => $person->retval[0],
+ "courses" => $courses,
+ "grades" => $this->_grades
+ );
+
+ $this->load->view('person/gradelist/gradelist.php', $data);
+ }
+
+ /**
+ * Check if the Logged in User has permission to see the grades of this person
+ * @param $uid UID of the Person we want to see
+ * @param $oe_kurzbz Organisation Unit of the Person we want to see
+ * @return true if the logged in User is allowed to see the content, false if not
+ */
+ private function hasPermission($uid, $oe_kurzbz)
+ {
+ $loggedinUser = getAuthUID();
+ if($uid != $loggedinUser)
+ {
+ $this->load->library('PermissionLib');
+ if($this->permissionlib->isBerechtigt('student/noten','s',$oe_kurzbz))
+ {
+ return true;
+ }
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ /**
+ * Loads the Courses and Grades of the Student
+ *
+ * @param $prestudent_id of the Student
+ * @return array with the courses
+ */
+ private function loadCourseInformation($prestudent_id, $uid)
+ {
+ $this->load->library('StudienplanLib');
+
+ // Get status of Student
+ $result_status = $this->PrestudentstatusModel->getStatusByFilter($prestudent_id);
+
+ if (isError($result_status) || !hasData($result_status))
+ {
+ return error('No Status Found');
+ }
+
+ // Get Courses from studyplan for each semester of the student
+ foreach ($result_status->retval as $row_status)
+ {
+ if (in_array($row_status->status_kurzbz,
+ array('Student','Diplomand','Incoming','Abbrecher','Unterbrecher','Absolvent')))
+ {
+ // LVs fuer das Semester holen lt Studienplan
+ $lvtree = $this->studienplanlib->getLehrveranstaltungTree(
+ $row_status->studienplan_id,
+ $row_status->ausbildungssemester,
+ true
+ );
+ $courses['semester'][$row_status->studiensemester_kurzbz]['lvs'] = $lvtree;
+ $courses['semester'][$row_status->studiensemester_kurzbz]['lvs_nonstpl'] = array();
+
+ $result_stpl = $this->StudienplanModel->load($row_status->studienplan_id);
+ if(isSuccess($result_stpl) && hasData($result_stpl))
+ {
+ $stpl_bezeichnung = $result_stpl->retval[0]->bezeichnung;
+ }
+ else
+ $stpl_bezeichnung = 'unknown';
+
+ $courses['semester'][$row_status->studiensemester_kurzbz]['data'] = array(
+ 'status' => $row_status->status_kurzbz,
+ 'ausbildungssemester' => $row_status->ausbildungssemester,
+ 'studiensemester_kurzbz' => $row_status->studiensemester_kurzbz,
+ 'studienplan_id' => $row_status->studienplan_id,
+ 'studienplan_bezeichnung' => $stpl_bezeichnung,
+ );
+ }
+ }
+
+ // Load Grades and add to studyplan
+ $result_zeugnis = $this->ZeugnisnoteModel->loadWhere(array("student_uid" => $uid));
+
+ if (isSuccess($result_zeugnis) && hasData($result_zeugnis))
+ {
+ foreach ($courses['semester'] as $key=>$value)
+ {
+ $this->fillNotenPart(
+ $result_zeugnis,
+ $courses['semester'][$key]['lvs'],
+ $value['data']['studiensemester_kurzbz']
+ );
+ }
+ }
+
+ // Build Array of Courses that are not part of the studyplan
+ foreach ($result_zeugnis->retval as $row_noten)
+ {
+ if (!isset($row_noten->found))
+ {
+ $result_lv = $this->LehrveranstaltungModel->load($row_noten->lehrveranstaltung_id);
+ $courses['semester'][$row_noten->studiensemester_kurzbz]['lvs_nonstpl'][] = array(
+ 'lehrveranstaltung_id' => $row_noten->lehrveranstaltung_id,
+ 'lehrtyp_kurzbz' => $result_lv->retval[0]->lehrtyp_kurzbz,
+ 'pflicht' => false,
+ 'bezeichnung' => $result_lv->retval[0]->bezeichnung,
+ 'ects' => $result_lv->retval[0]->ects,
+ 'note' => $row_noten->note,
+ 'datum' => $row_noten->benotungsdatum
+ );
+ if(!isset($courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl']))
+ $courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl'] = 0;
+ $courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl'] += $result_lv->retval[0]->ects;
+ }
+ }
+
+ $sum_gradeweighted_overall = 0;
+ $sum_ectsweighted_overall = 0;
+ $sum_grades_overall = 0;
+ $num_grades_overall = 0;
+ $sum_ects_overall = 0;
+ $sum_ects_positiv_overall = 0;
+
+ // Calculate Sum and Average
+ foreach ($courses['semester'] as $stsem => $row_lvs)
+ {
+ $grades = $this->getGrades($row_lvs['lvs']);
+
+ $num_grades = 0;
+ $sum_ects = 0;
+ $sum_ects_positiv = 0;
+ $sum_grades = 0;
+ $notendurchschnitt = 0;
+ $sum_gradeweighted = 0;
+ $sum_ectsweighted = 0;
+
+ foreach ($grades as $row)
+ {
+ if ($this->_grades[$row['note']]['notenwert'] != '')
+ {
+ $num_grades++;
+ $sum_grades += $this->_grades[$row['note']]['notenwert'];
+
+ $sum_ectsweighted += $row['ects'];
+ $sum_gradeweighted += $row['ects'] * $this->_grades[$row['note']]['notenwert'];
+ }
+ $sum_ects += $row['ects'];
+ if ($this->_grades[$row['note']]['positiv'])
+ $sum_ects_positiv += $row['ects'];
+ }
+ if ($num_grades > 0)
+ $notendurchschnitt = $sum_grades / $num_grades;
+ else
+ $notendurchschnitt = 0;
+
+ if ($sum_ectsweighted > 0)
+ $notendurchschnittgewichtet = $sum_gradeweighted / $sum_ectsweighted;
+ else
+ $notendurchschnittgewichtet = 0;
+
+ $num_grades_overall += $num_grades;
+ $sum_grades_overall += $sum_grades;
+ $sum_gradeweighted_overall += $sum_gradeweighted;
+ $sum_ectsweighted_overall += $sum_ectsweighted;
+ $sum_ects_overall += $sum_ects;
+ $sum_ects_positiv_overall += $sum_ects_positiv;
+
+ $courses['semester'][$stsem]['data']['notendurchschnitt'] = number_format($notendurchschnitt, 2);
+ $courses['semester'][$stsem]['data']['notendurchschnittgewichtet'] = number_format($notendurchschnittgewichtet, 2);
+ $courses['semester'][$stsem]['data']['ectssumme'] = number_format($sum_ects,2);
+ $courses['semester'][$stsem]['data']['ectssumme_positiv'] = number_formaT($sum_ects_positiv,2);
+ }
+
+ if ($num_grades_overall > 0)
+ $notendurchschnitt = $sum_grades_overall / $num_grades_overall;
+ else
+ $notendurchschnitt = 0;
+
+ if ($sum_ectsweighted_overall > 0)
+ $notendurchschnittgewichtet = $sum_gradeweighted_overall / $sum_ectsweighted_overall;
+ else
+ $notendurchschnittgewichtet = 0;
+
+ $courses['overall'] = array(
+ 'notendurchschnitt' => number_format($notendurchschnitt, 2),
+ 'notendurchschnittgewichtet' => number_format($notendurchschnittgewichtet, 2),
+ 'ectssumme' => $sum_ects_overall,
+ 'ectssumme_positiv' => $sum_ects_positiv_overall
+ );
+ return $courses;
+ }
+
+ /**
+ * Combines the Studyplan Courses recursively with the Grades of the Student
+ * Grades that are found in the Studyplan are marked, the others are added to a separate list
+ * @param $noten reference to array of all grades.
+ * @param $courses reference to array of all courses.
+ * @param $studiensemester_kurzbz Studiensemester of the Course and Grades
+ */
+ private function fillNotenPart(&$noten, &$courses, $studiensemester_kurzbz)
+ {
+ foreach ($courses as $key => $value)
+ {
+ foreach ($noten->retval as $notenkey => $row_noten)
+ {
+ if ($row_noten->lehrveranstaltung_id == $value['lehrveranstaltung_id']
+ && $row_noten->studiensemester_kurzbz == $studiensemester_kurzbz)
+ {
+ $courses[$key]['note'] = $row_noten->note;
+ $courses[$key]['datum'] = $row_noten->benotungsdatum;
+ $noten->retval[$notenkey]->found = true;
+ }
+ if (isset($value['childs']))
+ $this->fillNotenPart($noten, $courses[$key]['childs'], $studiensemester_kurzbz);
+ }
+ }
+ }
+
+ /**
+ * Reads all the Courses recursivly and Returns an Array with the Grades and ECTS
+ * @param $courses array of courses
+ * @return array with grades and ects
+ */
+ public function getGrades($courses)
+ {
+ $grades = array();
+ foreach ($courses as $row)
+ {
+ if (isset($row['note']) && $row['note'] != '')
+ {
+ $grades[] = array(
+ 'note' => $row['note'],
+ 'ects' => $row['ects']
+ );
+ }
+
+ if ($row['childs'])
+ {
+ $childgrades = $this->getGrades($row['childs']);
+ $grades = array_merge($grades, $childgrades);
+ }
+ }
+ return $grades;
+ }
+
+ /**
+ * Helper Function to Display recursive Courses
+ * @param $course array if courses
+ * @param $depth integer defines the number parent elements
+ */
+ static function printRow($course, $depth)
+ {
+ $ci =& get_instance();
+ $ci->load->view('person/gradelist/course.php',
+ array(
+ 'course' => $course,
+ 'depth' => $depth
+ )
+ );
+
+ if (isset($course['childs']))
+ {
+ foreach ($course['childs'] as $row_course)
+ Gradelist::printRow($row_course, $depth + 1);
+ }
+ }
+}
diff --git a/application/libraries/StudienplanLib.php b/application/libraries/StudienplanLib.php
new file mode 100644
index 000000000..c40120721
--- /dev/null
+++ b/application/libraries/StudienplanLib.php
@@ -0,0 +1,72 @@
+ci =& get_instance();
+
+ // Loads model Organisationseinheit_model
+ $this->ci->load->model('organisation/Studienplan_model', 'StudienplanModel');
+ }
+
+ public function getLehrveranstaltungTree($studienplan_id, $semester, $studplan = null)
+ {
+ $tree = array();
+ $data = $this->ci->StudienplanModel->getStudienplanLehrveranstaltung($studienplan_id, $semester);
+ if(isSuccess($data) && hasData($data))
+ {
+ $this->lehrveranstaltungen = $data->retval;
+ foreach($this->lehrveranstaltungen as $row)
+ {
+ if (!is_null($studplan) && $row->export != $studplan)
+ continue;
+
+ if (is_null($row->studienplan_lehrveranstaltung_id_parent))
+ {
+ $treeitem = array(
+ 'lehrveranstaltung_id' => $row->lehrveranstaltung_id,
+ 'lehrtyp_kurzbz' => $row->lehrtyp_kurzbz,
+ 'pflicht' => $row->pflicht,
+ 'bezeichnung' => $row->bezeichnung,
+ 'ects' => $row->ects
+ );
+ $childs = $this->getChildElements($row->studienplan_lehrveranstaltung_id);
+ if(is_array($childs) && count($childs) > 0)
+ $treeitem['childs'] = $childs;
+ $tree[] = $treeitem;
+ }
+ }
+ }
+ return $tree;
+ }
+
+ private function getChildElements($studienplan_lehrveranstaltung_id)
+ {
+ $subtree = array();
+
+ foreach($this->lehrveranstaltungen as $row)
+ {
+ if($studienplan_lehrveranstaltung_id == $row->studienplan_lehrveranstaltung_id_parent)
+ {
+ $treeitem = array(
+ 'lehrveranstaltung_id' => $row->lehrveranstaltung_id,
+ 'lehrtyp_kurzbz' => $row->lehrtyp_kurzbz,
+ 'pflicht' => $row->pflicht,
+ 'bezeichnung' => $row->bezeichnung,
+ 'ects' => $row->ects
+ );
+ $childs = $this->getChildElements($row->studienplan_lehrveranstaltung_id);
+ if(is_array($childs))
+ $treeitem['childs'] = $childs;
+ $subtree[] = $treeitem;
+ }
+ }
+ return $subtree;
+ }
+}
diff --git a/application/models/crm/Student_model.php b/application/models/crm/Student_model.php
index 0d03fd50f..532658208 100644
--- a/application/models/crm/Student_model.php
+++ b/application/models/crm/Student_model.php
@@ -14,13 +14,13 @@ class Student_model extends DB_Model
}
// ****
-// * Generiert die Matrikelnummer
-// * FORMAT: 0710254001
-// * 07 = Jahr
-// * 1/2/0 = WS/SS/incoming
-// * 0254 = Studiengangskennzahl vierstellig
-// * 001 = Laufende Nummer
-// ****
+ // * Generiert die Matrikelnummer
+ // * FORMAT: 0710254001
+ // * 07 = Jahr
+ // * 1/2/0 = WS/SS/incoming
+ // * 0254 = Studiengangskennzahl vierstellig
+ // * 001 = Laufende Nummer
+ // ****
public function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz)
{
$jahr = mb_substr($studiensemester_kurzbz, 4);
diff --git a/application/models/organisation/Studienplan_model.php b/application/models/organisation/Studienplan_model.php
index 5fe7ef44d..2c3b36c03 100644
--- a/application/models/organisation/Studienplan_model.php
+++ b/application/models/organisation/Studienplan_model.php
@@ -11,35 +11,46 @@ class Studienplan_model extends DB_Model
$this->dbTable = "lehre.tbl_studienplan";
$this->pk = "studienplan_id";
}
-
+
public function getStudienplaene($studiengang_kz)
{
$this->addJoin("lehre.tbl_studienordnung", "studienordnung_id");
-
+
return $this->loadWhere(array("studiengang_kz" => $studiengang_kz));
}
-
+
public function getStudienplaeneBySemester($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester = null, $orgform_kurzbz = null)
{
$this->addJoin("lehre.tbl_studienordnung", "studienordnung_id");
$this->addJoin("lehre.tbl_studienplan_semester", "studienplan_id");
-
+
$whereArray = array(
"tbl_studienplan.aktiv" => "TRUE",
"tbl_studienordnung.studiengang_kz" => $studiengang_kz,
"tbl_studienplan_semester.studiensemester_kurzbz" => $studiensemester_kurzbz
);
-
+
if(!is_null($ausbildungssemester))
{
$whereArray["tbl_studienplan_semester.semester"] = $ausbildungssemester;
}
-
+
if(!is_null($orgform_kurzbz))
{
$whereArray["orgform_kurzbz"] = $orgform_kurzbz;
}
-
+
return $this->StudienplanModel->loadWhere($whereArray);
}
-}
\ No newline at end of file
+
+ public function getStudienplanLehrveranstaltung($studienplan_id, $semester)
+ {
+ $this->addJoin('lehre.tbl_studienplan_lehrveranstaltung', 'studienplan_id');
+ $this->addJoin('lehre.tbl_lehrveranstaltung', 'lehrveranstaltung_id');
+ $this->addOrder('tbl_lehrveranstaltung.sort');
+ return $this->loadWhere(array(
+ 'studienplan_id' => $studienplan_id,
+ 'tbl_studienplan_lehrveranstaltung.semester' => $semester
+ ));
+ }
+}
diff --git a/application/views/person/gradelist/course.php b/application/views/person/gradelist/course.php
new file mode 100644
index 000000000..1f1f1911b
--- /dev/null
+++ b/application/views/person/gradelist/course.php
@@ -0,0 +1,16 @@
+
+
+ |
+ |
+
+
+ |
+
diff --git a/application/views/person/gradelist/gradelist.php b/application/views/person/gradelist/gradelist.php
new file mode 100644
index 000000000..f00978294
--- /dev/null
+++ b/application/views/person/gradelist/gradelist.php
@@ -0,0 +1,52 @@
+load->view(
+ 'templates/FHC-Header',
+ array(
+ 'title' => 'Gradelist',
+ 'jquery' => true,
+ 'jqueryui' => true,
+ 'bootstrap' => true,
+ 'fontawesome' => true,
+ 'ajaxlib' => true,
+ 'customCSSs' => array(
+ 'public/css/tools/gradelist.css'
+ ),
+ 'customJSs' => array(
+ 'public/js/bootstrapper.js'
+ )
+ )
+ );
+?>
+
+
+
+
+
+
+ p->t('lehre', 'notendurchschnitt'); ?>:
+
+ p->t('lehre', 'gewichteternotendurchschnitt'); ?>:
+
+ p->t('lehre', 'ects'); ?>:
+
+
+ $row_semester)
+ {
+ $this->load->view('person/gradelist/semester.php', $row_semester);
+ }
+ ?>
+
+
+
+
+
+
+load->view('templates/FHC-Footer'); ?>
diff --git a/application/views/person/gradelist/semester.php b/application/views/person/gradelist/semester.php
new file mode 100644
index 000000000..ae9bbc5bc
--- /dev/null
+++ b/application/views/person/gradelist/semester.php
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+ 0):
+
+ echo '
Lehrveranstaltungen laut Studienplan '.$semesterdata['studienplan_bezeichnung'].'
';
+ ?>
+
+
+
+ | p->t('lehre','lehrveranstaltung');?> |
+ p->t('lehre','ects');?> |
+ p->t('lehre','note');?> |
+
+
+
+
+
+
+
+ |
+
+
+ |
+ |
+
+
+
+ 0):
+ ?>
+
p->t('lehre','nichtstudienplanrelevanteKurse'); ?>
+
+
+
+ | p->t('lehre','lehrveranstaltung');?> |
+ p->t('lehre','ects');?> |
+ p->t('lehre','note');?> |
+
+
+
+
+
+
+
+ |
+ |
+ |
+
+
+
+
+
+
+
+
+
+
diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php
index 9baac9ea6..67c4dcf38 100644
--- a/application/views/system/infocenter/infocenterData.php
+++ b/application/views/system/infocenter/infocenterData.php
@@ -9,6 +9,7 @@
$LOGDATA_NAME_PARKED = '\'Parked\'';
$LOGTYPE_KURZBZ = '\'Processstate\'';
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
+ $ADDITIONAL_STG = '10021,10027';
$query = '
WITH currentOrNextStudiensemester AS (
@@ -64,7 +65,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND NOT EXISTS (
SELECT 1
FROM tbl_prestudentstatus spss
@@ -83,7 +87,10 @@
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
@@ -104,7 +111,11 @@
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (
+ sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
@@ -125,7 +136,10 @@
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
@@ -146,7 +160,10 @@
AND pss.bewerbung_abgeschicktamum IS NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
@@ -166,7 +183,10 @@
WHERE pss.status_kurzbz IN ('.$STATUS_KURZBZ.')
AND pss.bewerbung_abgeschicktamum IS NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.start >= NOW())
AND NOT EXISTS (
SELECT 1
@@ -206,7 +226,10 @@
FROM public.tbl_prestudent sps
JOIN public.tbl_studiengang ssg USING(studiengang_kz)
WHERE sps.person_id = p.person_id
- AND ssg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (ssg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ ssg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND '.$INTERESSENT_STATUS.' = (
SELECT spss.status_kurzbz
FROM public.tbl_prestudentstatus spss
diff --git a/application/views/system/infocenter/infocenterDetails.php b/application/views/system/infocenter/infocenterDetails.php
index 2a64f2478..c59702a65 100644
--- a/application/views/system/infocenter/infocenterDetails.php
+++ b/application/views/system/infocenter/infocenterDetails.php
@@ -7,6 +7,7 @@
'bootstrap' => true,
'fontawesome' => true,
'jqueryui' => true,
+ 'dialoglib' => true,
'ajaxlib' => true,
'tablesorter' => true,
'tinymce' => true,
diff --git a/application/views/system/infocenter/infocenterFreigegebenData.php b/application/views/system/infocenter/infocenterFreigegebenData.php
index b3ee8c9e5..be8a4fe7f 100644
--- a/application/views/system/infocenter/infocenterFreigegebenData.php
+++ b/application/views/system/infocenter/infocenterFreigegebenData.php
@@ -6,6 +6,7 @@
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'New application\'';
$REJECTED_STATUS = '\'Abgewiesener\'';
+ $ADDITIONAL_STG = '10021,10027';
$query = '
SELECT
@@ -51,7 +52,10 @@
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.bestaetigtam is not null
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
@@ -65,7 +69,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
@@ -78,7 +85,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
AND NOT EXISTS (
SELECT 1
@@ -97,7 +107,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
LIMIT 1
) AS "StgAbgeschickt",
@@ -167,7 +180,10 @@
FROM public.tbl_prestudent ps
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND EXISTS (
SELECT 1
FROM public.tbl_prestudentstatus pss
diff --git a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php
index 2a976771b..fd1d2a607 100644
--- a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php
+++ b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php
@@ -5,6 +5,7 @@
$STUDIENGANG_TYP = '\'b\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'New application\'';
+ $ADDITIONAL_STG = '10021,10027';
$query = '
SELECT
@@ -41,7 +42,10 @@
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
@@ -54,7 +58,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
@@ -67,7 +74,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
LIMIT 1
) AS "AnzahlAbgeschickt",
@@ -79,7 +89,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
LIMIT 1
) AS "StgAbgeschickt",
@@ -167,7 +180,10 @@
FROM public.tbl_prestudent ps
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE ps.person_id = p.person_id
- AND sg.typ IN ('.$STUDIENGANG_TYP.')
+ AND (sg.typ IN ('.$STUDIENGANG_TYP.')
+ OR
+ sg.studiengang_kz in('.$ADDITIONAL_STG.')
+ )
AND EXISTS (
SELECT 1
FROM public.tbl_prestudentstatus pss
diff --git a/application/views/templates/FHC-Header.php b/application/views/templates/FHC-Header.php
index 785ac0184..6a96eb6f9 100644
--- a/application/views/templates/FHC-Header.php
+++ b/application/views/templates/FHC-Header.php
@@ -18,15 +18,16 @@
$addons = isset($addons) ? $addons : false;
$ajaxlib = isset($ajaxlib) ? $ajaxlib : false;
$bootstrap = isset($bootstrap) ? $bootstrap : false;
+ $dialoglib = isset($dialoglib) ? $dialoglib : false;
$filterwidget = isset($filterwidget) ? $filterwidget : false;
$fontawesome = isset($fontawesome) ? $fontawesome : false;
$jquery = isset($jquery) ? $jquery : false;
$jqueryui = isset($jqueryui) ? $jqueryui : false;
$jquerytreetable = isset($jquerytreetable) ? $jquerytreetable : false;
$navigationwidget = isset($navigationwidget) ? $navigationwidget : false;
+ $pivotui = isset($pivotui) ? $pivotui : false;
$sbadmintemplate = isset($sbadmintemplate) ? $sbadmintemplate : false;
$tablesorter = isset($tablesorter) ? $tablesorter : false;
- $pivotui = isset($pivotui) ? $pivotui : false;
$tinymce = isset($tinymce) ? $tinymce : false;
?>
@@ -51,16 +52,12 @@
// Bootstrap CSS
if ($bootstrap === true) generateCSSsInclude('vendor/twbs/bootstrap/dist/css/bootstrap.min.css');
+ // jQuery treetable
+ if ($jquerytreetable === true) generateCSSsInclude('vendor/ludo/jquery-treetable/css/jquery.treetable.css');
+
// Font Awesome CSS
if ($fontawesome === true) generateCSSsInclude('vendor/components/font-awesome/css/font-awesome.min.css');
- // Table sorter CSS
- if ($tablesorter === true)
- {
- generateCSSsInclude('vendor/mottie/tablesorter/dist/css/theme.default.min.css');
- generateCSSsInclude('vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css');
- }
-
// PivotUI CSS
if ($pivotui === true)
{
@@ -74,8 +71,12 @@
generateCSSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/css/sb-admin-2.min.css');
}
- // jQuery treetable
- if ($jquerytreetable === true) generateCSSsInclude('vendor/ludo/jquery-treetable/css/jquery.treetable.css');
+ // Table sorter CSS
+ if ($tablesorter === true)
+ {
+ generateCSSsInclude('vendor/mottie/tablesorter/dist/css/theme.default.min.css');
+ generateCSSsInclude('vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css');
+ }
// --------------------------------------------------------------------------------------------------------
// From public folder
@@ -83,16 +84,20 @@
// AjaxLib CSS
if ($ajaxlib === true) generateCSSsInclude('public/css/AjaxLib.css');
+ // DialogLib CSS
+ if ($dialoglib === true) generateCSSsInclude('public/css/DialogLib.css');
+
// FilterWidget CSS
if ($filterwidget === true) generateCSSsInclude('public/css/FilterWidget.css');
// NavigationWidget CSS
if ($navigationwidget === true) generateCSSsInclude('public/css/NavigationWidget.css');
+ generateCSSsInclude('public/css/fhcomplete.css');
+
// Eventually required CSS
generateCSSsInclude($customCSSs); // Eventually required CSS
-
// --------------------------------------------------------------------------------------------------------
// Javascripts
@@ -120,6 +125,16 @@
// Bootstrap JS
if ($bootstrap === true) generateJSsInclude('vendor/twbs/bootstrap/dist/js/bootstrap.min.js');
+ // jQuery treetable
+ // NOTE: keep it after jQuery includes
+ if ($jquerytreetable === true) generateJSsInclude('vendor/ludo/jquery-treetable/jquery.treetable.js');
+
+ // PivotUI CSS
+ if ($pivotui === true)
+ {
+ generateJSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.js');
+ }
+
// Table sorter JS
if ($tablesorter === true)
{
@@ -128,12 +143,6 @@
generateJSsInclude('vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js');
}
- // PivotUI CSS
- if ($pivotui === true)
- {
- generateJSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.js');
- }
-
// Tinymce JS
if ($tinymce === true) generateJSsInclude('vendor/tinymce/tinymce/tinymce.min.js');
@@ -146,29 +155,31 @@
generateBackwardCompatibleJSMsIe('vendor/scottjehl/Respond/dest/respond.min.js');
}
- // jQuery treetable
- if ($jquerytreetable === true) generateJSsInclude('vendor/ludo/jquery-treetable/jquery.treetable.js');
-
// --------------------------------------------------------------------------------------------------------
// From public folder
+ // DialogLib JS
+ if ($dialoglib === true) generateJSsInclude('public/js/DialogLib.js');
+
// AjaxLib JS
// NOTE: must be called before including others JS libraries that use it
if ($ajaxlib === true) generateJSsInclude('public/js/AjaxLib.js');
- // PhrasesLib JS
- if ($phrases != null) generateJSsInclude('public/js/PhrasesLib.js');
-
// FilterWidget JS
if ($filterwidget === true) generateJSsInclude('public/js/FilterWidget.js');
// NavigationWidget JS
if ($navigationwidget === true) generateJSsInclude('public/js/NavigationWidget.js');
+ // PhrasesLib JS
+ if ($phrases != null) generateJSsInclude('public/js/PhrasesLib.js');
+
// Load addon hooks JS
+ // NOTE: keep it as the latest but one
if ($addons === true) generateAddonsJSsInclude($calledPath.'/'.$calledMethod);
// Eventually required JS
+ // NOTE: keep it as the latest
generateJSsInclude($customJSs);
?>
diff --git a/cis/private/lehre/abgabe_student.php b/cis/private/lehre/abgabe_student.php
index 5935ad69c..963a11301 100644
--- a/cis/private/lehre/abgabe_student.php
+++ b/cis/private/lehre/abgabe_student.php
@@ -109,7 +109,11 @@ $sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tb
LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz)
WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom')
- AND (tbl_projektbetreuer.betreuerart_kurzbz='Betreuer' OR tbl_projektbetreuer.betreuerart_kurzbz='Begutachter' OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbetreuer' OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter')
+ AND (tbl_projektbetreuer.betreuerart_kurzbz='Betreuer'
+ OR tbl_projektbetreuer.betreuerart_kurzbz='Begutachter'
+ OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbetreuer'
+ OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter'
+ OR tbl_projektbetreuer.betreuerart_kurzbz='Zweitbegutachter')
AND tbl_projektarbeit.student_uid=".$db->db_add_param($uid)."
AND public.tbl_benutzer.aktiv
AND lehre.tbl_projektarbeit.note IS NULL
diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php
index c2e0672e8..4a80434a8 100644
--- a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php
+++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php
@@ -129,7 +129,7 @@ if (!empty($anmeldungen))
{
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
$date = strtotime($date);
- $date = $date+(60*$pruefungsintervall*($count));
+ $date = $date+(60*$pruefungsintervall*($anmeldung->reihung-1));
$date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("H:i",$date);
$count++;
}
diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php
index 0a35ba284..d647289fa 100644
--- a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php
+++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php
@@ -248,7 +248,7 @@ $rechte->getBerechtigungen($uid);
{
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
$date = strtotime($date);
- $date = $date+(60*$pruefungsintervall*($count));
+ $date = $date+(60*$pruefungsintervall*($anmeldung->reihung-1));
$date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("H:i",$date);
$count++;
}
diff --git a/cis/private/pers_in_grp.php b/cis/private/pers_in_grp.php
index b44b8db0d..8c3fea036 100644
--- a/cis/private/pers_in_grp.php
+++ b/cis/private/pers_in_grp.php
@@ -50,35 +50,142 @@ echo '
-
-
-
-
-
-
-
-
+ ';
+
+ include('../../include/meta/jquery.php');
+ include('../../include/meta/jquery-tablesorter.php');
+
+?>
+
- ' . $p->t('mailverteiler/personenImVerteiler') . '
+
+' . $p->t('mailverteiler/personenImVerteiler') . '
';
$qry = "SELECT
- uid, vorname, nachname
+ uid, vorname, nachname, geschlecht, fixangestellt
FROM
campus.vw_benutzer
JOIN
tbl_benutzergruppe USING (uid)
+ LEFT JOIN
+ public.tbl_mitarbeiter ON (uid = mitarbeiter_uid)
WHERE
gruppe_kurzbz=".$db->db_add_param($gruppe_kurzbz);
@@ -96,16 +203,29 @@ $qry = "SELECT
$qry .= " ORDER BY
nachname, vorname";
+
+echo ''.$p->t('mailverteiler/anleitungstextMailPersInGroup').'
';
+echo '' . $p->t('mailverteiler/mailAnAlleSenden') . '';
+
if ($result = $db->db_query($qry))
{
- echo '
' . $row = $db->db_num_rows($result) . ' ' . $p->t('mailverteiler/personen');
+ echo '
' . $row = $db->db_num_rows($result) . ' ' . $p->t('mailverteiler/personen') . '
';
}
-echo '
+echo '
+
+
+
+
+
+
+ |
' . $p->t('global/nachname') . ' |
' . $p->t('global/vorname') . ' |
+ ' . $p->t('global/geschlecht') . ' |
+ ' . $p->t('global/fixangestellt') . ' |
' . $p->t('global/mail') . ' |
';
@@ -113,11 +233,14 @@ if ($result = $db->db_query($qry))
{
while ($row = $db->db_fetch_object($result))
{
- echo "";
- echo " | $row->nachname | ";
- echo " $row->vorname | ";
- echo " $row->uid@" . DOMAIN . " | ";
- echo "
";
+ echo '';
+ echo ' | ';
+ echo ' '.$row->nachname.' | ';
+ echo ' '.$row->vorname.' | ';
+ echo ' '.strtoupper($row->geschlecht).' | ';
+ echo ' '.($row->fixangestellt != '' ? ($row->fixangestellt == 't' ? 'Ja' : 'Nein') :'-').' | ';
+ echo ' '.$row->uid .'@' . DOMAIN . ' | ';
+ echo '
';
}
}
echo '
diff --git a/cis/private/stud_in_grp.php b/cis/private/stud_in_grp.php
index 8854ebc11..abf3a67a1 100644
--- a/cis/private/stud_in_grp.php
+++ b/cis/private/stud_in_grp.php
@@ -32,26 +32,124 @@ echo '
-
-
-
-
-
-
-
-
-
+
+'.$p->t('mailverteiler/personenImVerteiler').'
';
@@ -64,7 +162,7 @@ if (!isset($_GET['kz']))
if (isset($_GET['all']))
{
$qry = "SELECT
- vorname, nachname, uid
+ vorname, nachname, uid, geschlecht
FROM
campus.vw_student
WHERE
@@ -77,7 +175,7 @@ if (isset($_GET['all']))
else
{
$qry = "SELECT
- vorname, nachname, uid
+ vorname, nachname, uid, geschlecht
FROM
campus.vw_student
WHERE
@@ -95,16 +193,25 @@ else
$qry.= ' ORDER BY nachname, vorname';
}
+echo ''.$p->t('mailverteiler/anleitungstextMailPersInGroup').'
';
+echo '' . $p->t('mailverteiler/mailAnAlleSenden') . '';
if ($result = $db->db_query($qry))
{
- echo '
'.$row=$db->db_num_rows($result).' '.$p->t('mailverteiler/personen');
+ echo '
'.$row=$db->db_num_rows($result).' '.$p->t('mailverteiler/personen').'
';
}
echo '
+
+
+
+
+
+ |
'.$p->t('global/nachname').' |
'.$p->t('global/vorname').' |
+ ' . $p->t('global/geschlecht') . ' |
'.$p->t('global/mail').' |
';
@@ -114,9 +221,11 @@ if ($result = $db->db_query($qry))
while ($row = $db->db_fetch_object($result))
{
echo "";
+ echo ' | ';
echo " $row->nachname | ";
echo " $row->vorname | ";
- echo " $row->uid@".DOMAIN." | ";
+ echo ' '.strtoupper($row->geschlecht).' | ';
+ echo ' '.$row->uid .'@' . DOMAIN . ' | ';
echo "
";
}
}
diff --git a/cis/private/tools/zeitaufzeichnung_projektliste.php b/cis/private/tools/zeitaufzeichnung_projektliste.php
old mode 100755
new mode 100644
diff --git a/cms/admin.php b/cms/admin.php
index ddf0dd34a..89308f019 100644
--- a/cms/admin.php
+++ b/cms/admin.php
@@ -144,7 +144,8 @@ if(isset($_POST['NewContent']))
protect: [ /\<\/?(audio[^>]+|audio)\>/g, // Protect und ],
/\<\/?(source[^>]+)\>/g, // Protect ],
/\<\/?(video[^>]+|video)\>/g // Protect und ],
- ],
+ ],
+ valid_elements: "*[*]", // Allow all attributes in all Tags. Documentation see: https://www.tiny.cloud/docs-3x/reference/configuration/Configuration3x@valid_elements/
file_browser_callback: "FHCFileBrowser",
diff --git a/content/Tempus.pdf b/content/Tempus.pdf
deleted file mode 100644
index 3cdd18de2..000000000
Binary files a/content/Tempus.pdf and /dev/null differ
diff --git a/content/fas.xul.php b/content/fas.xul.php
index 9f31ec1c3..6f6c3a19a 100644
--- a/content/fas.xul.php
+++ b/content/fas.xul.php
@@ -110,6 +110,7 @@ foreach($addon_obj->result as $addon)
+
@@ -371,6 +372,12 @@ foreach($addon_obj->result as $addon)
label = "&menu-statistic-notenspiegel.label;"
command = "menu-statistic-notenspiegel:command"
accesskey = "&menu-statistic-notenspiegel.accesskey;"/>
+
diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php
index a4a2c4347..0e8f5fb12 100644
--- a/content/fasoverlay.js.php
+++ b/content/fasoverlay.js.php
@@ -1077,6 +1077,26 @@ function StatistikPrintNotenspiegelErweitert(typ)
window.open('content/statistik/notenspiegel_erweitert.php?studiengang_kz='+studiengang_kz+'&semester='+semester+'&typ='+typ+'&orgform='+orgform,'Notenspiegel');
}
+function StatistikPrintNotenspiegelStudent()
+{
+ var tree = document.getElementById('student-tree');
+ var data='';
+ //Wenn nichts markiert wurde -> alle exportieren
+ if(tree.currentIndex==-1)
+ {
+ alert("Bitte zuerst einen Studenten markieren");
+ return;
+ }
+
+ var student_uid = getTreeCellText(tree, 'student-treecol-uid', tree.currentIndex);
+ if (student_uid == '')
+ {
+ alert('Markierte Person ist kein Student');
+ return;
+ }
+ window.open('index.ci.php/person/gradelist/index/'+student_uid,'Notenspiegel');
+}
+
// ****
// * Liefert eine statistik ueber die Anzahl der Interessenten/Bewerber Studenten
// ****
diff --git a/content/statistik/notenspiegel.php b/content/statistik/notenspiegel.php
index 7f5cfb20f..d9cb3dca0 100644
--- a/content/statistik/notenspiegel.php
+++ b/content/statistik/notenspiegel.php
@@ -164,6 +164,11 @@ if($typ=='xls')
$format_bold_center->setAlign('center');
$format_bold_center->setBorder(1);
+ $format_bold_left =& $workbook->addFormat();
+ $format_bold_left->setBold();
+ $format_bold_left->setAlign('left');
+ $format_bold_left->setBorder(1);
+
$format_number =& $workbook->addFormat();
$format_number->setNumFormat('0.00');
$format_number->setBorder(1);
@@ -208,9 +213,13 @@ if($typ=='xls')
$maxlength[$spalte]=10;
$worksheet->write($zeile,++$spalte,'Vorname', $format_bold);
$maxlength[$spalte]=10;
+ $worksheet->write($zeile, ++$spalte, 'V', $format_bold);
+ $maxlength[$spalte] = 2;
+ $worksheet->write($zeile, ++$spalte, 'G', $format_bold);
+ $maxlength[$spalte] = 2;
$worksheet->write($zeile,++$spalte,'Personenkennzeichen', $format_bold);
- $maxlength[$spalte]=20;
- $maxheaderheight=20;
+ $maxlength[$spalte] = 20;
+ $maxheaderheight = 20;
while($row_lva = $db->db_fetch_object($result_lva))
{
@@ -252,7 +261,9 @@ if($typ=='xls')
$worksheet->write($zeile,++$spalte,$row_student->vorname, $format_bold);
if($maxlength[$spalte]vorname))
$maxlength[$spalte]=strlen($row_student->vorname);
- $worksheet->write($zeile,++$spalte,$row_student->matrikelnr, $format_bold);
+ $worksheet->write($zeile, ++$spalte, $row_student->verband, $format_bold);
+ $worksheet->write($zeile, ++$spalte, $row_student->gruppe, $format_bold_left);
+ $worksheet->write($zeile, ++$spalte,$row_student->matrikelnr, $format_bold);
//Alle Zeugnisnoten des Studierenden holen
$noten = array();
@@ -341,7 +352,7 @@ if($typ=='xls')
}
$zeile++;
- $spalte=2;
+ $spalte = 4;
$worksheet->write($zeile,$spalte,'Notendurchschnitt', $format_bold);
$summe_schnitt=0;
@@ -385,8 +396,10 @@ if($typ=='xls')
//Zellen der 1. Zeile verbinden
$worksheet->setMerge(0,0,0,$spalte);
- //Hoehe der 2. Zeile anpassen damit die LVs alle sichtbar sind
- $worksheet->setRow(1,$maxheaderheight*5);
+ //Hoehe der 2. Zeile anpassen damit die LVs alle sichtbar sind, aber nicht größer als 300
+ if ($maxheaderheight * 5 > 300)
+ $maxheaderheight = 60;
+ $worksheet->setRow(1, $maxheaderheight * 5);
//Ausdruck auf 1 Seite anpassen
$worksheet->fitToPages(1,1);
diff --git a/content/statistik/notenspiegel_erweitert.php b/content/statistik/notenspiegel_erweitert.php
index 5975a89ea..acaa91611 100644
--- a/content/statistik/notenspiegel_erweitert.php
+++ b/content/statistik/notenspiegel_erweitert.php
@@ -236,6 +236,11 @@ if ($typ == 'xls')
$format_bold_center->setBold();
$format_bold_center->setAlign('center');
$format_bold_center->setBorder(1);
+
+ $format_bold_left =& $workbook->addFormat();
+ $format_bold_left->setBold();
+ $format_bold_left->setAlign('left');
+ $format_bold_left->setBorder(1);
$format_bold_noborder =& $workbook->addFormat();
$format_bold_noborder->setBold();
@@ -306,8 +311,13 @@ if ($typ == 'xls')
$maxlength[$spalte] = 10;
$worksheet->write($zeile, ++$spalte, 'Vorname', $format_bold);
$maxlength[$spalte] = 10;
+ $worksheet->write($zeile, ++$spalte, 'V', $format_bold);
+ $maxlength[$spalte] = 2;
+ $worksheet->write($zeile, ++$spalte, 'G', $format_bold);
+ $maxlength[$spalte] = 2;
$worksheet->write($zeile, ++$spalte, 'Personenkennzeichen', $format_bold);
- $maxlength[$spalte] = 32;
+ $maxlength[$spalte] = 35;
+
$maxheaderheight = 20;
while ($row_lva = $db->db_fetch_object($result_lva))
@@ -351,6 +361,8 @@ if ($typ == 'xls')
$worksheet->write($zeile, ++$spalte, $row_student->vorname, $format_bold);
if ($maxlength[$spalte] < strlen($row_student->vorname))
$maxlength[$spalte] = strlen($row_student->vorname);
+ $worksheet->write($zeile, ++$spalte, $row_student->verband, $format_bold);
+ $worksheet->write($zeile, ++$spalte, $row_student->gruppe, $format_bold_left);
$worksheet->write($zeile, ++$spalte, $row_student->matrikelnr, $format_bold);
//Alle Zeugnisnoten des Studierenden holen
@@ -479,7 +491,7 @@ if ($typ == 'xls')
}
}
$zeile++;
- $spalte = 2;
+ $spalte = 4;
$worksheet->write($zeile, $spalte, 'Notendurchschnitt', $format_bold);
$summe_schnitt = 0;
@@ -517,7 +529,7 @@ if ($typ == 'xls')
$zeile += 5;
$legendzeile = $zeile;
- $startcolumn = 2;
+ $startcolumn = 4;
//Farblegende
$bezeichnungen = array();
@@ -563,7 +575,7 @@ if ($typ == 'xls')
for($i = 1; $i <= $totalmergefarb; $i++)
$worksheet->write($legendzeile, $startcolumn + $i, "", $format_colored_nichtzugeteilt);
- $startcolumn = $currentcolumn = 9;
+ $startcolumn = $currentcolumn = 11;
//Notenlegende
//optimale Länge in kleinsten Einheiten - Notenspalten
@@ -651,7 +663,9 @@ if ($typ == 'xls')
for($i = 1; $i <= $spalte; $i++)
$worksheet->write(0, $i, "", $format_bold_center);
- //Hoehe der 2. Zeile anpassen damit die LVs alle sichtbar sind
+ //Hoehe der 2. Zeile anpassen damit die LVs alle sichtbar sind, aber nicht größer als 300
+ if ($maxheaderheight * 5 > 300)
+ $maxheaderheight = 60;
$worksheet->setRow(1, $maxheaderheight * 5);
//Ausdruck auf 1 Seite anpassen
diff --git a/content/statistik/studentenexportextended.xls.php b/content/statistik/studentenexportextended.xls.php
index 1743380f3..094132394 100644
--- a/content/statistik/studentenexportextended.xls.php
+++ b/content/statistik/studentenexportextended.xls.php
@@ -260,6 +260,8 @@ function draw_content($row)
$prestudent->getLastStatus($row->prestudent_id);
$status = $prestudent->status_kurzbz;
$orgform = $prestudent->orgform_kurzbz;
+ $prio_relativ = new prestudent();
+ $prio_relativ = $prio_relativ->getRelativePriorisierungFromAbsolut($row->prestudent_id, $row->priorisierung);
$i = 0;
@@ -647,10 +649,11 @@ function draw_content($row)
$worksheet->write($zeile, $i, $row->rt_gesamtpunkte);
$i++;
- //RT_Gesamtpunkte
- if (mb_strlen($row->priorisierung) > $maxlength[$i])
- $maxlength[$i] = mb_strlen($row->priorisierung);
- $worksheet->write($zeile, $i, $row->priorisierung);
+ //Priorisierung
+ $prio = $prio_relativ.' ('.$row->priorisierung.')';
+ if (mb_strlen($prio) > $maxlength[$i])
+ $maxlength[$i] = mb_strlen($prio);
+ $worksheet->write($zeile, $i, $prio);
$i++;
// UDF
diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php
index b509b2711..0a6f4f076 100644
--- a/content/student/studentenoverlay.xul.php
+++ b/content/student/studentenoverlay.xul.php
@@ -365,14 +365,14 @@ else
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/student/rdf#aufnahmegruppe_kurzbz" onclick="StudentTreeSort()"/>
-
-
+ -->
@@ -391,7 +391,7 @@ else
+ sort="rdf:http://www.technikum-wien.at/student/rdf#priorisierung_realtiv" onclick="StudentTreeSort()"/>
-->
-
-
+
-
+
diff --git a/content/student/studentprojektarbeit.js.php b/content/student/studentprojektarbeit.js.php
index 2c9e4f8b0..9187cb2ce 100644
--- a/content/student/studentprojektarbeit.js.php
+++ b/content/student/studentprojektarbeit.js.php
@@ -279,7 +279,7 @@ function StudentProjektarbeitTreeSelectID()
//In der globalen Variable ist die zu selektierende Eintrag gespeichert
if(StudentProjektarbeitSelectID!=null)
{
- for(var i=0;i';
@@ -437,14 +447,24 @@ echo '';
diff --git a/content/tempus.js.php b/content/tempus.js.php
index eb948c830..28b323be3 100644
--- a/content/tempus.js.php
+++ b/content/tempus.js.php
@@ -473,7 +473,7 @@ function SyncLVPlan()
// ****
function OpenManualTempus()
{
- window.open('content/Tempus.pdf','Manual');
+ window.open('https://fhcomplete.technikum-wien.at/dokuwiki/doku.php?id=tempus:allgemeines','Manual');
}
// ****
diff --git a/include/benutzer.class.php b/include/benutzer.class.php
index 3a17b0386..102c28a4b 100644
--- a/include/benutzer.class.php
+++ b/include/benutzer.class.php
@@ -30,6 +30,8 @@ class benutzer extends person
public $bn_ext_id;
public $aktivierungscode;
public $result = array();
+ public $updateaktivam;
+ public $updateaktivvon;
/**
* Konstruktor - Uebergibt die Connection und laedt optional einen Benutzer
@@ -65,6 +67,8 @@ class benutzer extends person
$this->bnaktiv = $this->db_parse_bool($row->aktiv);
$this->alias = $row->alias;
$this->aktivierungscode = $row->aktivierungscode;
+ $this->updateaktivam = $row->updateaktivam;
+ $this->updateaktivvon = $row->updateaktivvon;
if(!person::load($row->person_id))
return false;
diff --git a/include/prestudent.class.php b/include/prestudent.class.php
index eca7e22cf..d5a79460a 100644
--- a/include/prestudent.class.php
+++ b/include/prestudent.class.php
@@ -1982,4 +1982,62 @@ class prestudent extends person
}
}
+
+ /**
+ * Liefert die relative Priorität (zB 1, 2, 3) eines PreStudenten Anhand seiner absoluten Priorität (zB 9, 10, 11)
+
+ * @param integer $prestudent_id PrestudentID deren relative Priorität ermittelt werden soll
+ * @param string $priorisierungAbsolut Absolute Priorität deren relative Platzierung ermittelt werden soll
+
+ * @return integer Relative Platzierung des PreStudenten oder false im Fehlerfall
+ */
+ public function getRelativePriorisierungFromAbsolut($prestudent_id, $priorisierungAbsolut)
+ {
+ $qry = "SELECT count(*) AS prio_relativ
+ FROM (
+ SELECT *,
+ (
+ SELECT status_kurzbz
+ FROM PUBLIC.tbl_prestudentstatus
+ WHERE prestudent_id = pss.prestudent_id
+ ORDER BY datum DESC,
+ tbl_prestudentstatus.insertamum DESC LIMIT 1
+ ) AS laststatus
+ FROM PUBLIC.tbl_prestudent pss
+ JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
+ WHERE person_id = (
+ SELECT person_id
+ FROM PUBLIC.tbl_prestudent
+ WHERE prestudent_id = ".$this->db_add_param($prestudent_id, FHC_INTEGER)."
+ )
+ AND studiensemester_kurzbz = (
+ SELECT studiensemester_kurzbz
+ FROM PUBLIC.tbl_prestudentstatus
+ WHERE prestudent_id = ".$this->db_add_param($prestudent_id, FHC_INTEGER)."
+ AND status_kurzbz = 'Interessent' LIMIT 1
+ )
+ AND status_kurzbz = 'Interessent'
+ ) prest
+ WHERE laststatus NOT IN ('Abbrecher', 'Abgewiesener', 'Absolvent')
+ AND priorisierung <= ".$this->db_add_param($priorisierungAbsolut, FHC_INTEGER);
+
+ if($result = $this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object($result))
+ {
+ return $row->prio_relativ;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+
+ }
}
diff --git a/locale/de-AT/fas.dtd b/locale/de-AT/fas.dtd
index cad80671f..1fb4fde7f 100644
--- a/locale/de-AT/fas.dtd
+++ b/locale/de-AT/fas.dtd
@@ -114,6 +114,10 @@
+
+
+
+
diff --git a/locale/de-AT/global.php b/locale/de-AT/global.php
index e8308806a..2da93e384 100644
--- a/locale/de-AT/global.php
+++ b/locale/de-AT/global.php
@@ -144,6 +144,7 @@ $this->phrasen['global/hilfe']='Hilfe';
$this->phrasen['global/benutzer']='Benutzer';
$this->phrasen['global/anleitung']='Anleitung';
$this->phrasen['global/bericht']='Bericht';
+$this->phrasen['global/fixangestellt']='Fixangestellt';
// Statusmeldungen
$this->phrasen['global/erfolgreichgespeichert']='Erfolgreich gespeichert';
diff --git a/locale/de-AT/mailverteiler.php b/locale/de-AT/mailverteiler.php
index e83da22a8..cb659f839 100644
--- a/locale/de-AT/mailverteiler.php
+++ b/locale/de-AT/mailverteiler.php
@@ -30,4 +30,9 @@ $this->phrasen['mailverteiler/bestaetige']='Bestätige';
$this->phrasen['mailverteiler/personenImVerteiler']='Personen im Mailverteiler';
$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Beim Freischalten des Verteilers ist ein Fehler aufgetreten.
Bitte informieren Sie den Administrator';
$this->phrasen['mailverteiler/verteilerGenerieren']='Verteiler für Gruppe %1$s generieren';
+$this->phrasen['mailverteiler/anleitungstextMailPersInGroup']='Hier haben Sie die Möglichkeit, eine E-Mail an eine Teilmenge des Mailverteilers zu schicken.
+ Sie können die Liste mit den Textfeldern und Dropdowns bei den Überschriften filtern. Markieren Sie danach jene Personen, denen Sie eine E-Mail schicken wollen.
+
Hinweis: Aus technischen Gründen werden die Empfänger ab einer bestimmten Anzahl auf mehrere E-Mail-Fenster aufgeteilt';
+$this->phrasen['mailverteiler/mailAnMarkierteSenden']='Mail an alle markierten senden';
+$this->phrasen['mailverteiler/mailAnAlleSenden']='Mail an alle senden';
?>
diff --git a/locale/en-US/global.php b/locale/en-US/global.php
index 1c3b95910..fb71e6cab 100644
--- a/locale/en-US/global.php
+++ b/locale/en-US/global.php
@@ -143,6 +143,7 @@ $this->phrasen['global/hilfe']='Help';
$this->phrasen['global/benutzer']='User';
$this->phrasen['global/anleitung']='Manual';
$this->phrasen['global/bericht']='Report';
+$this->phrasen['global/fixangestellt']='Salaried';
// Statusmeldungen
$this->phrasen['global/erfolgreichgespeichert']='Successfully saved';
diff --git a/locale/en-US/mailverteiler.php b/locale/en-US/mailverteiler.php
index 88d087bdf..36307eb53 100644
--- a/locale/en-US/mailverteiler.php
+++ b/locale/en-US/mailverteiler.php
@@ -29,4 +29,7 @@ $this->phrasen['mailverteiler/bestaetige']='Confirm';
$this->phrasen['mailverteiler/personenImVerteiler']='People in this mailing list';
$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Failed to open mailing list.
Please inform your administrator.';
$this->phrasen['mailverteiler/verteilerGenerieren']='Generate mailing list for %1$s';
+$this->phrasen['mailverteiler/anleitungstextMailPersInGroup']='You have the option to filter the list and send an e-mail to the selected persons then.';
+$this->phrasen['mailverteiler/mailAnMarkierteSenden']='Send e-mail to selected persons';
+$this->phrasen['mailverteiler/mailAnAlleSenden']='Send e-mail to all persons';
?>
diff --git a/locale/en-US/tools.php b/locale/en-US/tools.php
index 9d2eb0bc9..50ba4506b 100644
--- a/locale/en-US/tools.php
+++ b/locale/en-US/tools.php
@@ -16,7 +16,7 @@ $this->phrasen['tools/alleStudiensemester']='All semester';
$this->phrasen['tools/abschlussdokumente']='Final documents/Transcripts';
$this->phrasen['tools/nochKeineAbschlussdokumenteVorhanden']='No final documents available yet';
$this->phrasen['tools/keinStatusImStudiensemester']='No status found for %1$s. Please select a valid semester from the dropdown.';
-$this->phrasen['tools/warnungDruckDigitaleSignatur']='Warning! Digitally signed documents are not displayed correctly in some browsers or PDF-readers.
Please use Adobe Acrobat Reader, if you want to print out the doument.'; // Nur grob übersetzt
+$this->phrasen['tools/warnungDruckDigitaleSignatur']='Note! Digitally signed documents are not displayed correctly in some browsers and PDF readers.
Please use the Adobe Acrobat Reader if you want to print the document.';
//Leistungsbeurteilung
$this->phrasen['tools/leistungsbeurteilung']='Performance Assessment ';
diff --git a/public/css/DialogLib.css b/public/css/DialogLib.css
new file mode 100644
index 000000000..113fab66e
--- /dev/null
+++ b/public/css/DialogLib.css
@@ -0,0 +1,11 @@
+.dialogmessage
+{
+ text-align: center;
+ font-size: 1.1em;
+ margin: 12px 0 10px 0;
+}
+
+.dialogmessage .glyphicon
+{
+ top: 3px;
+}
diff --git a/public/css/fhcomplete.css b/public/css/fhcomplete.css
new file mode 100644
index 000000000..1f8de48b9
--- /dev/null
+++ b/public/css/fhcomplete.css
@@ -0,0 +1,23 @@
+.page-header {
+ margin: 10px 0 5px;
+}
+h1 {
+ font-size: 2rem;
+}
+h2 {
+ font-size: 1.8rem;
+}
+h3 {
+ font-size: 1.6rem;
+}
+
+h4 {
+ font-size: 1.4rem;
+}
+h5 {
+ font-size: 1.2rem;
+}
+h6 {
+ font-size: 1rem;
+
+}
diff --git a/public/css/sbadmin2/tablesort_bootstrap.css b/public/css/sbadmin2/tablesort_bootstrap.css
index e190f77e3..d10d7306e 100644
--- a/public/css/sbadmin2/tablesort_bootstrap.css
+++ b/public/css/sbadmin2/tablesort_bootstrap.css
@@ -19,6 +19,10 @@
border-bottom: #ccc 2px solid !important;
}
+/* Remove black border at top of table footer */
+.tablesorter-default tfoot > tr > th {
+ border-top: #ccc 2px solid !important;
+}
/* set colors of zebra widget */
table.tablesorter tbody tr.even td, table.tablesorter tbody tr.even:hover, table.tablesorter tbody tr.even td:hover{
background-color: #ffff;
@@ -57,4 +61,4 @@ table.tablesort-hover tr:hover, .tablesort-active{
/* bring datepicker to front */
#ui-datepicker-div{
z-index: 9999 !important;
-}
\ No newline at end of file
+}
diff --git a/public/css/tools/gradelist.css b/public/css/tools/gradelist.css
new file mode 100644
index 000000000..68c7fff36
--- /dev/null
+++ b/public/css/tools/gradelist.css
@@ -0,0 +1,40 @@
+.gradetable > thead > tr > th{
+ border-bottom: 1px solid black;
+}
+.gradetable > tbody > tr > td{
+ border-bottom: 1px solid #eeeeee;
+}
+.gradetable > tfoot > tr > th {
+ border-top: 1px solid black;
+}
+.gradelist_row_lv {
+}
+.gradelist_row_modul > td {
+ border-bottom: 1px solid black;
+ background-color: #eeeeee;
+}
+
+.gradelist_row_grade_positiv {
+ color: green;
+}
+.gradelist_row_grade_negativ {
+ color: red;
+}
+.gradelist_row_depth_1 > td:first-child {
+ padding-left: 15px !important;
+}
+.gradelist_row_depth_2 > td:first-child {
+ padding-left: 30px !important;
+}
+.gradelist_row_depth_3 > td:first-child {
+ padding-left: 45px !important;
+}
+.gradelist_row_depth_4 > td:first-child {
+ padding-left: 60px !important;
+}
+.gradelist_row_depth_5 > td:first-child {
+ padding-left: 75px !important;
+}
+.gradelist_row_depth_6 > td:first-child {
+ padding-left: 90px !important;
+}
diff --git a/public/js/DialogLib.js b/public/js/DialogLib.js
new file mode 100644
index 000000000..934634af1
--- /dev/null
+++ b/public/js/DialogLib.js
@@ -0,0 +1,95 @@
+/**
+ * FH-Complete
+ *
+ * @package
+ * @author
+ * @copyright Copyright (c) 2016 fhcomplete.org
+ * @license GPLv3
+ * @link https://fhcomplete.org
+ * @since Version 1.0.0
+ */
+
+var FHC_DialogLib = {
+
+ /**
+ * Show success message as jQueryUI alert. Works only with bootstrap.
+ * @param message
+ */
+ alertSuccess: function(message)
+ {
+ var html = " "+message+"
";
+ FHC_DialogLib.alertDefault('Success', html);
+ $(".ui-dialog-titlebar").addClass("alert-success text-center");
+ $(".glyphicon-ok-sign").css("color", "#3c763d");
+ FHC_DialogLib._formatShortDialog();
+ },
+ /**
+ * Show error message as jQueryUI alert. Works only with bootstrap.
+ * @param message
+ */
+ alertError: function(message)
+ {
+ var html = " "+message+"
";
+ FHC_DialogLib.alertDefault('Error occured', html);
+ $(".ui-dialog-titlebar").addClass("alert-danger text-center");
+ $(".glyphicon-warning-sign").css("color", "#a94442");
+ FHC_DialogLib._formatShortDialog();
+ },
+ /**
+ * Show info message as jQueryUI alert. Works only with bootstrap.
+ * @param message
+ */
+ alertInfo: function(message)
+ {
+ var html = " "+message+"
";
+ FHC_DialogLib.alertDefault('Info', html);
+ $(".ui-dialog-titlebar").addClass("alert-info text-center");
+ $(".glyphicon-info-sign").css("color", "#245269");
+ FHC_DialogLib._formatShortDialog();
+ },
+ /**
+ * Default jQueryUI alert
+ * @param title shown as message box heading
+ * @param html shown inside message box
+ * @param width of the message box
+ */
+ alertDefault: function(title, html, width)
+ {
+ var strDivDialog = "";
+ strDivDialog += html;
+ strDivDialog += "
";
+
+ $(strDivDialog).appendTo("body"); // append the dialog div to the body
+
+ $("#fhc-dialoglib-dialog").dialog({
+ title: title,
+ dialogClass: "no-close",
+ autoOpen: true,
+ modal: true,
+ resizable: false,
+ height: "auto",
+ width: width,
+ minWidth: 300,
+ closeOnEscape: false,
+ buttons: [{
+ text: "Ok",
+ click: function() {
+ $(this).dialog("close");
+ }
+ }]
+ });
+ },
+ /**
+ * formats jQueryUI messagebox as "short", i.e. containing only one line of text,
+ * centers the text
+ * @private
+ */
+ _formatShortDialog: function()
+ {
+ $(".ui-dialog-title").width("100%");
+ $(".ui-dialog-buttonpane.ui-widget-content").css("padding", ".3em .4em .5em .4em");
+ $(".ui-dialog .ui-dialog-content").css("padding", "0");
+ $(".ui-dialog-buttonset button").css("margin", "0");
+ }
+
+};
diff --git a/public/js/PhrasesLib.js b/public/js/PhrasesLib.js
index 64b10759d..adedfa33d 100644
--- a/public/js/PhrasesLib.js
+++ b/public/js/PhrasesLib.js
@@ -25,7 +25,10 @@ var FHC_PhrasesLib = {
* @param {Object} params : parameters to be replaced instead of {} in phraseObj.text
* @returns {String} : phrase-text
*/
- t: function(category, phrase, params = {}) {
+ t: function(category, phrase, params) {
+
+ if (typeof(params)=='undefined')
+ params = {};
// Checks if FHC_JS_PHRASES_STORAGE_OBJECT is an array
if ($.isArray(FHC_JS_PHRASES_STORAGE_OBJECT))
diff --git a/public/js/infocenter/infocenterDetails.js b/public/js/infocenter/infocenterDetails.js
index 252647a71..27a6e9497 100644
--- a/public/js/infocenter/infocenterDetails.js
+++ b/public/js/infocenter/infocenterDetails.js
@@ -115,7 +115,7 @@ $(document).ready(function ()
var InfocenterDetails = {
genericSaveError: function() {
- alert("error when saving");
+ FHC_DialogLib.alertError("error when saving");
},
openZgvInfoForPrestudent: function(prestudent_id)
{
@@ -170,14 +170,11 @@ var InfocenterDetails = {
data,
{
successCallback: function(data, textStatus, jqXHR) {
- if (data === true)
+ if (data !== true)
{
- InfocenterDetails._refreshZgv(true);
- }
- else
- {
- alert("error when saving zgv Prio");
+ FHC_DialogLib.alertError("error when saving ZGV prio");
}
+ InfocenterDetails._refreshZgv(true);
}
}
);
@@ -260,7 +257,7 @@ var InfocenterDetails = {
}
else
{
- alert("error when saving Absage");
+ FHC_DialogLib.alertError("error when saving Absage");
}
}
}
@@ -284,13 +281,13 @@ var InfocenterDetails = {
}
else if (data.error === 2 && parseInt(data.retval.prestudent_id, 10))
{
- alert("error when setting accepted documents");
+ FHC_DialogLib.alertError("error when setting accepted documents");
InfocenterDetails._refreshZgv();
InfocenterDetails._refreshLog();
}
else
{
- alert("error when saving Freigabe");
+ FHC_DialogLib.alertError("error when saving Freigabe");
}
}
}
@@ -483,7 +480,8 @@ var InfocenterDetails = {
return;
// check if a prestudent in same semester is already freigegeben - then not send message again
- var freigegeben = false;
+ var rtFreigegeben = false;
+ var stgFreigegeben = false;
var receiverPrestudentstatus = null;
//get prestudentstatus of message receiver
@@ -512,8 +510,15 @@ var InfocenterDetails = {
&& prestudentstatus.bestaetigtam !== null && prestudentstatus.status_kurzbz === "Interessent"
&& prestudent.studiengangtyp === "b")
{
- freigegeben = true;
- break;
+ if (prestudentstatus.statusgrund_id === null)
+ {
+ rtFreigegeben = true;
+ break;
+ }
+ else if($.isNumeric(prestudentstatus.statusgrund_id))
+ {
+ stgFreigegeben = true;
+ }
}
}
}
@@ -523,46 +528,51 @@ var InfocenterDetails = {
var studiengangbezeichnung_englisch = receiverPrestudentstatus.studiengangbezeichnung_englisch;
var msgvars = {};
- if (freigegeben)
+ if (rtfreigabe)
{
- InfocenterDetails._refreshLog();
- //if already freigegeben, still send (shorter) message if Quereinsteiger
- if (ausbildungssemester > 1)
- {
- msgvars = {
- 'ausbildungssemester': ausbildungssemester,
- 'studiengangbezeichnung': studiengangbezeichnung,
- 'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
- };
- InfocenterDetails.sendFreigabeMessage(prestudentid, RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ, msgvars);
- }
- }
- else
- {
- var vorlage_kurzbz = null;
-
- if (rtfreigabe)
+ if (rtFreigegeben)
{
+ //if already for RT freigegeben, still send short message if Quereinsteiger
if (ausbildungssemester > 1)
{
- vorlage_kurzbz = RTFREIGABE_MESSAGE_VORLAGE_QUER;
msgvars = {
- /*'rtlink': FHC_JS_DATA_STORAGE_OBJECT.app_root + 'addons/bewerbung/cis/registration.php?active=aufnahme',*/
'ausbildungssemester': ausbildungssemester,
'studiengangbezeichnung': studiengangbezeichnung,
'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
- }
+ };
+
+ InfocenterDetails.sendFreigabeMessage(prestudentid, RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ, msgvars);
+ }
+ }
+ else //not already for RT freigegeben - send RTfreigabe message
+ {
+ var vorlage = null;
+ //send Quereinstiegsmessage if later Ausbildungssemester
+ if (ausbildungssemester > 1)
+ {
+ msgvars = {
+ 'ausbildungssemester': ausbildungssemester,
+ 'studiengangbezeichnung': studiengangbezeichnung,
+ 'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
+ };
+ vorlage = RTFREIGABE_MESSAGE_VORLAGE_QUER
}
else
{
- vorlage_kurzbz = RTFREIGABE_MESSAGE_VORLAGE;
+ //send normal RTfreigabe message
+ vorlage = RTFREIGABE_MESSAGE_VORLAGE
}
+
+ InfocenterDetails.sendFreigabeMessage(prestudentid, vorlage, msgvars);
}
- else
+ }
+ else if (rtfreigabe === false)
+ {
+ // if Freigabe to Studiengang, send StgFreigabe Message if not already sent
+ if (!stgFreigegeben)
{
- vorlage_kurzbz = STGFREIGABE_MESSAGE_VORLAGE;
+ InfocenterDetails.sendFreigabeMessage(prestudentid, STGFREIGABE_MESSAGE_VORLAGE, msgvars);
}
- InfocenterDetails.sendFreigabeMessage(prestudentid, vorlage_kurzbz, msgvars);
}
};
@@ -730,7 +740,7 @@ var InfocenterDetails = {
var prestudent_id = this.id.substr(this.id.indexOf("_") + 1);
var statusgrund_id = $("#frgstatusgrselect_" + prestudent_id + " select[name=frgstatusgrund]").val();
var data = {"prestudent_id": prestudent_id, "statusgrund_id": statusgrund_id};
- InfocenterDetails.saveFreigabe(data);//Studiengangfreigabe
+ InfocenterDetails.saveFreigabe(data, false);//Studiengangfreigabe
}
)
},
diff --git a/rdf/betreuerart.rdf.php b/rdf/betreuerart.rdf.php
index 484b77ca7..b32f025ba 100644
--- a/rdf/betreuerart.rdf.php
+++ b/rdf/betreuerart.rdf.php
@@ -24,7 +24,7 @@ require_once('../include/basis_db.class.php');
$oRdf = new rdf('BETREUERART','http://www.technikum-wien.at/betreuerart');
$oRdf->sendHeader();
-$qry = "SELECT * FROM lehre.tbl_betreuerart ORDER BY betreuerart_kurzbz";
+$qry = "SELECT * FROM lehre.tbl_betreuerart ORDER BY aktiv DESC, beschreibung";
$db = new basis_db();
if($db->db_query($qry))
{
@@ -34,6 +34,7 @@ if($db->db_query($qry))
//$oRdf->obj[$i]->setAttribut('id',$row->betreuerart_kurzbz,false);
$oRdf->obj[$i]->setAttribut('betreuerart_kurzbz',$row->betreuerart_kurzbz,true);
$oRdf->obj[$i]->setAttribut('beschreibung',$row->beschreibung,true);
+ $oRdf->obj[$i]->setAttribut('aktiv',($db->db_parse_bool($row->aktiv)?'true':'false'),true);
$oRdf->addSequence($row->betreuerart_kurzbz);
}
diff --git a/rdf/lehrauftrag.xml.php b/rdf/lehrauftrag.xml.php
index ea2876198..96565dac7 100644
--- a/rdf/lehrauftrag.xml.php
+++ b/rdf/lehrauftrag.xml.php
@@ -28,17 +28,17 @@ require_once('../include/functions.inc.php');
require_once('../include/benutzerberechtigung.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/lehreinheit.class.php');
-require_once('../include/fachbereich.class.php');
+require_once('../include/organisationseinheit.class.php');
require_once('../include/mitarbeiter.class.php');
require_once('../include/bisverwendung.class.php');
-if(isset($_SERVER['REMOTE_USER']))
+if (isset($_SERVER['REMOTE_USER']))
{
// Wenn das Script direkt aufgerufen wird muss es ein Admin sein
$user=get_uid();
$berechtigung = new benutzerberechtigung();
$berechtigung->getBerechtigungen($user);
- if(!$berechtigung->isBerechtigt('admin'))
+ if (!$berechtigung->isBerechtigt('admin'))
die('Sie haben keine Berechtigung fuer diese Seite');
}
@@ -51,16 +51,16 @@ header("Pragma: no-cache");
header("Content-type: application/xhtml+xml");
//Parameter holen
-if(isset($_GET['uid']))
+if (isset($_GET['uid']))
$uid = $_GET['uid'];
else
- $uid=null;
+ $uid = null;
-if(isset($_GET['stg_kz']))
+if (isset($_GET['stg_kz']))
$studiengang_kz = $_GET['stg_kz'];
else
die('Fehlerhafte Parameteruebergabe');
-if(isset($_GET['ss']))
+if (isset($_GET['ss']))
$ss = $_GET['ss'];
else
die('Fehlerhafte Parameteruebergabe');
@@ -77,20 +77,19 @@ foreach ($studiengang->result as $row)
//Studiengang laden
$studiengang = new studiengang($studiengang_kz);
-//Fachbereiche laden
-$fb_arr = array();
-$fachbereich_obj = new fachbereich();
-$fachbereich_obj->getAll();
-foreach ($fachbereich_obj->result as $fb)
+//Organisationseinheiten laden
+$oe_arr = array();
+$organisationseinheit_obj = new organisationseinheit();
+$organisationseinheit_obj->getAll();
+foreach ($organisationseinheit_obj->result as $oe)
{
- $fb_arr[$fb->oe_kurzbz] = $fb->bezeichnung;
- $fb_arr[$fb->fachbereich_kurzbz] = $fb->bezeichnung;
+ $oe_arr[$oe->oe_kurzbz] = $oe->bezeichnung;
}
//Studiengangsleiter holen
-$stgl='';
+$stgl = '';
$db = new basis_db();
-if($studiengang_kz!='')
+if ($studiengang_kz != '')
{
$studiengang_obj = new studiengang();
$stgleiter = $studiengang_obj->getLeitung($studiengang_kz);
@@ -102,7 +101,7 @@ if($studiengang_kz!='')
}
}
-if($uid==null)
+if ($uid == null)
{
$qry = "
SELECT
@@ -120,11 +119,11 @@ if($uid==null)
UNION
SELECT
tbl_benutzer.uid as mitarbeiter_uid
- FROM
- lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung,
+ FROM
+ lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung,
public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student, public.tbl_mitarbeiter
- WHERE
- tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND
+ WHERE
+ tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
student_uid=vw_student.uid AND
tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid AND
@@ -135,9 +134,9 @@ if($uid==null)
tbl_projektbetreuer.stunden!='0'
) as mitarbeiter ORDER BY mitarbeiter_uid";
- if($db->db_query($qry))
+ if ($db->db_query($qry))
{
- while($row = $db->db_fetch_object())
+ while ($row = $db->db_fetch_object())
{
drawLehrauftrag($row->mitarbeiter_uid);
}
@@ -145,11 +144,12 @@ if($uid==null)
}
else
drawLehrauftrag($uid);
+
function drawLehrauftrag($uid)
{
global $studiengang;
global $studiengang_kz;
- global $fb_arr;
+ global $oe_arr;
global $stg_arr;
global $ss;
global $xml;
@@ -161,17 +161,17 @@ function drawLehrauftrag($uid)
FH-';
//Studiengang
$typ='';
- if($studiengang->typ=='d')
+ if ($studiengang->typ=='d')
{
$xml.= 'Diplom-';
$typ = 'Diplom';
}
- elseif($studiengang->typ=='m')
+ elseif ($studiengang->typ=='m')
{
$xml.= 'Master-';
$typ = 'Master';
}
- elseif($studiengang->typ=='b')
+ elseif ($studiengang->typ=='b')
{
$xml.= 'Bachelor-';
$typ = 'Bachelor';
@@ -183,41 +183,58 @@ function drawLehrauftrag($uid)
$xml.= ''.$typ.'';
//Studiensemester
- if(substr($ss,0,2)=='WS')
+ if (substr($ss,0,2) == 'WS')
$studiensemester = 'Wintersemester '.substr($ss,2);
else
$studiensemester = 'Sommersemester '.substr($ss,2);
- $xml.="$ss
+ $xml .= "$ss
$studiensemester";
//Lektor
- $qry = "SELECT * FROM campus.vw_mitarbeiter LEFT JOIN public.tbl_adresse USING(person_id) WHERE uid=".$db->db_add_param($uid)."
- ORDER BY zustelladresse DESC, firma_id LIMIT 1";
+ $qry = "
+ SELECT
+ *
+ FROM
+ campus.vw_mitarbeiter
+ LEFT JOIN public.tbl_adresse USING(person_id)
+ WHERE
+ uid=".$db->db_add_param($uid)."
+ ORDER BY zustelladresse DESC, firma_id
+ LIMIT 1";
- if($result = $db->db_query($qry))
+ if ($result = $db->db_query($qry))
{
- if($row = $db->db_fetch_object($result))
+ if ($row = $db->db_fetch_object($result))
{
- $firmenanschrift=false;
- if($row->firma_id!='')
+ $firmenanschrift = false;
+ if ($row->firma_id != '')
{
- $qry ="SELECT tbl_firma.name, tbl_adresse.strasse, tbl_adresse.plz, tbl_adresse.ort FROM public.tbl_firma JOIN public.tbl_adresse USING(firma_id)
- WHERE tbl_firma.firma_id=".$db->db_add_param($row->firma_id)." AND person_id=".$db->db_add_param($row->person_id)." LIMIT 1";
- if($result_firma = $db->db_query($qry))
+ $qry ="
+ SELECT
+ tbl_firma.name, tbl_adresse.strasse, tbl_adresse.plz, tbl_adresse.ort
+ FROM
+ public.tbl_firma
+ JOIN public.tbl_adresse USING(firma_id)
+ WHERE
+ tbl_firma.firma_id=".$db->db_add_param($row->firma_id)."
+ AND person_id=".$db->db_add_param($row->person_id)."
+ LIMIT 1";
+
+ if ($result_firma = $db->db_query($qry))
{
- if($row_firma = $db->db_fetch_object($result_firma))
+ if ($row_firma = $db->db_fetch_object($result_firma))
{
$name_gesamt = $row_firma->name;
$strasse = $row_firma->strasse;
$plz = $row_firma->plz;
$ort = $row_firma->ort;
$zuhanden = "zu Handen ".trim($row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost);
- $firmenanschrift=true;
+ $firmenanschrift = true;
}
}
}
- if(!$firmenanschrift)
+ if (!$firmenanschrift)
{
$strasse = $row->strasse;
$plz = $row->plz;
@@ -229,7 +246,7 @@ function drawLehrauftrag($uid)
$bis = new bisverwendung();
$bis->getLastAktVerwendung($uid);
- $xml.='
+ $xml .= '
titelpre.']]>
vorname.']]>
@@ -248,65 +265,72 @@ function drawLehrauftrag($uid)
}
//Lehreinheiten
- $qry = "SELECT * FROM campus.vw_lehreinheit WHERE mitarbeiter_uid=".$db->db_add_param($uid)." AND studiensemester_kurzbz=".$db->db_add_param($ss);
+ $qry = "
+ SELECT
+ *
+ FROM
+ campus.vw_lehreinheit
+ WHERE
+ mitarbeiter_uid=".$db->db_add_param($uid)."
+ AND studiensemester_kurzbz=".$db->db_add_param($ss);
- if($studiengang_kz!='') //$studiengang_kz!='0' &&
+ if ($studiengang_kz != '') //$studiengang_kz!='0' &&
$qry .= "AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz);
- $qry.=" ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id";
+ $qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id";
$lv = array();
- $anzahl_lvs=0;
- if($result = $db->db_query($qry))
+ $anzahl_lvs = 0;
+ if ($result = $db->db_query($qry))
{
- $last_le='';
+ $last_le = '';
$gesamtkosten = 0;
$gesamtstunden = 0;
$gruppen = array();
- $grp='';
- $gruppen_getrennt='';
- $einzelgruppe='';
- while($row = $db->db_fetch_object($result))
+ $grp = '';
+ $gruppen_getrennt = '';
+ $einzelgruppe = '';
+ while ($row = $db->db_fetch_object($result))
{
- if($last_le!=$row->lehreinheit_id && $last_le!='')
+ if ($last_le != $row->lehreinheit_id && $last_le != '')
{
array_unique($gruppen);
sort($gruppen);
foreach ($gruppen as $gruppe)
{
- $grp.=$gruppe.' ';
- $gruppen_getrennt.= '';
+ $grp .= $gruppe.' ';
+ $gruppen_getrennt .= '';
}
$einzelgruppe = $gruppen_getrennt;
$lv[$anzahl_lvs]['lehreinheit_id'] = $lehreinheit_id;
$lv[$anzahl_lvs]['lehrveranstaltung'] = $lehrveranstaltung;
- $lv[$anzahl_lvs]['fachbereich'] = (isset($fb_arr[$fachbereich])?$fb_arr[$fachbereich]:'');
- $lv[$anzahl_lvs]['gruppe'] = ($grp!=''?trim($grp):' ');
- $lv[$anzahl_lvs]['stunden'] = ($stunden!=''?$stunden:' ');
- $lv[$anzahl_lvs]['satz'] = ($satz!=''?$satz:' ');
- $lv[$anzahl_lvs]['faktor'] = ($faktor!=''?$faktor:' ');
+ $lv[$anzahl_lvs]['fachbereich'] = (isset($oe_arr[$lehrfach_oe_kurzbz])?$oe_arr[$lehrfach_oe_kurzbz]:'');
+ $lv[$anzahl_lvs]['gruppe'] = ($grp != ''?trim($grp):' ');
+ $lv[$anzahl_lvs]['stunden'] = ($stunden != ''?$stunden:' ');
+ $lv[$anzahl_lvs]['satz'] = ($satz != ''?$satz:' ');
+ $lv[$anzahl_lvs]['faktor'] = ($faktor != ''?$faktor:' ');
$lv[$anzahl_lvs]['brutto'] = number_format($brutto,2,',','.');
- $lv[$anzahl_lvs]['einzelgruppe'] = ($gruppen_getrennt!=''?$gruppen_getrennt:' ');
+ $lv[$anzahl_lvs]['einzelgruppe'] = ($gruppen_getrennt != ''?$gruppen_getrennt:' ');
$anzahl_lvs++;
$gesamtkosten = $gesamtkosten + $brutto;
$gesamtstunden = $gesamtstunden + $stunden;
- $lehreinheit_id='';
+ $lehreinheit_id = '';
$lehrveranstaltung = '';
- $fachbereich = '';
- $gruppen= array();
+ $lehrfach_oe_kurzbz = '';
+ $gruppen = array();
$stunden = '';
$satz = '';
$faktor = '';
$brutto = '';
- $grp='';
- $gruppen_getrennt='';
+ $grp = '';
+ $gruppen_getrennt = '';
}
- $lehreinheit_id=$row->lehreinheit_id;
+ $lehreinheit_id = $row->lehreinheit_id;
$lehrveranstaltung = CutString($row->lv_bezeichnung, 30, '...').' '.$row->lehrform_kurzbz.' '.$row->lv_semester.'. Semester';
- $fachbereich = $row->fachbereich_kurzbz;
+ $lehrfach_oe_kurzbz = $row->lehrfach_oe_kurzbz;
- if($row->gruppe_kurzbz!='')
+ if ($row->gruppe_kurzbz != '')
$gruppen[] = $row->gruppe_kurzbz;
else
$gruppen[] = trim($stg_arr[$row->studiengang_kz].'-'.$row->semester.$row->verband.$row->gruppe).' ';
@@ -314,21 +338,21 @@ function drawLehrauftrag($uid)
$stunden = $row->semesterstunden;
$satz = $row->stundensatz;
$faktor = $row->faktor;
- $brutto = $row->semesterstunden*$row->stundensatz*$row->faktor;
- $last_le=$row->lehreinheit_id;
+ $brutto = $row->semesterstunden * $row->stundensatz * $row->faktor;
+ $last_le = $row->lehreinheit_id;
}
array_unique($gruppen);
sort($gruppen);
foreach ($gruppen as $gruppe)
{
- $grp.=$gruppe.' ';
- $gruppen_getrennt.= '';
+ $grp .= $gruppe.' ';
+ $gruppen_getrennt .= '';
}
- if(isset($lehreinheit_id))
+ if (isset($lehreinheit_id))
{
$lv[$anzahl_lvs]['lehreinheit_id'] = (isset($lehreinheit_id)?$lehreinheit_id:' ');
$lv[$anzahl_lvs]['lehrveranstaltung'] = (isset($lehrveranstaltung)?$lehrveranstaltung:' ');
- $lv[$anzahl_lvs]['fachbereich'] = (isset($fachbereich)?$fb_arr[$fachbereich]:' ');
+ $lv[$anzahl_lvs]['fachbereich'] = (isset($lehrfach_oe_kurzbz)?$oe_arr[$lehrfach_oe_kurzbz]:' ');
$lv[$anzahl_lvs]['gruppe'] = ($grp!=''?trim($grp):' ');
$lv[$anzahl_lvs]['stunden'] = (isset($stunden)?$stunden:' ');
$lv[$anzahl_lvs]['satz'] = (isset($satz)?$satz:' ');
@@ -337,9 +361,9 @@ function drawLehrauftrag($uid)
$lv[$anzahl_lvs]['einzelgruppe'] = ($gruppen_getrennt!=''?$gruppen_getrennt:' ');
$anzahl_lvs++;
- if(isset($brutto))
+ if (isset($brutto))
$gesamtkosten = $gesamtkosten + $brutto;
- if(isset($stunden))
+ if (isset($stunden))
$gesamtstunden = $gesamtstunden + $stunden;
}
}
@@ -357,8 +381,8 @@ function drawLehrauftrag($uid)
,lehre.tbl_lehreinheit
,lehre.tbl_lehrveranstaltung AS lehrfach
,lehre.tbl_lehrveranstaltung
- ,PUBLIC.tbl_organisationseinheit
- ,PUBLIC.tbl_benutzer
+ ,public.tbl_organisationseinheit
+ ,public.tbl_benutzer
,lehre.tbl_projektarbeit
,campus.vw_student
WHERE tbl_projektbetreuer.person_id = tbl_benutzer.person_id
@@ -370,27 +394,27 @@ function drawLehrauftrag($uid)
AND tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id
AND tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($ss)."
AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id";
- if($studiengang_kz!='')
- $qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
- if($result = $db->db_query($qry))
+ if ($studiengang_kz != '')
+ $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
+ if ($result = $db->db_query($qry))
{
- while($row = $db->db_fetch_object($result))
+ while ($row = $db->db_fetch_object($result))
{
$stg = new studiengang();
$stg->load($row->studiengang_kz);
$stg_kuerzel = $stg->kuerzel;
- $brutto = $row->stunden*$row->stundensatz*$row->faktor;
- if($row->stunden!=0)
+ $brutto = $row->stunden * $row->stundensatz * $row->faktor;
+ if ($row->stunden != 0)
{
- switch($row->projekttyp_kurzbz)
+ switch ($row->projekttyp_kurzbz)
{
- case 'Bachelor': $kuerzel='BA'; break;
- case 'Diplom': $kuerzel='DA'; break;
- case 'Projekt': $kuerzel='PJ'; break;
- case 'Praktikum': $kuerzel='PX'; break;
- case 'Praxis': $kuerzel='PX'; break;
- default: $kuerzel='PA'; break;
+ case 'Bachelor': $kuerzel = 'BA'; break;
+ case 'Diplom': $kuerzel = 'DA'; break;
+ case 'Projekt': $kuerzel = 'PJ'; break;
+ case 'Praktikum': $kuerzel = 'PX'; break;
+ case 'Praxis': $kuerzel = 'PX'; break;
+ default: $kuerzel = 'PA'; break;
}
$lv[$anzahl_lvs]['lehreinheit_id'] = (isset($row->projektarbeit_id)?$kuerzel.$row->projektarbeit_id:' ');
@@ -414,7 +438,7 @@ function drawLehrauftrag($uid)
foreach ($lv as $lv_row)
{
- $xml.='
+ $xml .= '
@@ -431,15 +455,15 @@ function drawLehrauftrag($uid)
};
// Gesamtstunden und Gesamtkosten
- $xml.="
+ $xml .= "
";
- $xml.="
+ $xml .= "
";
- $xml.= '
+ $xml .= '
';
diff --git a/rdf/lehrverbandsgruppe.rdf.php b/rdf/lehrverbandsgruppe.rdf.php
index 2b37cd2e0..40037ee43 100644
--- a/rdf/lehrverbandsgruppe.rdf.php
+++ b/rdf/lehrverbandsgruppe.rdf.php
@@ -138,12 +138,13 @@ function draw_orgformpart($stg_kz)
$orgform_sequence[$stg_kz]='';
- $qry = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz not in('VBB','ZGS')";
- if($stg_obj->db_query($qry))
+ $orgformen_studienplan = $stg_obj->getOrgForm($stg_kz);
+ //$qry = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz not in('VBB','ZGS')";
+ if(!empty($orgformen_studienplan))
{
- while($row = $stg_obj->db_fetch_object())
+ foreach ($orgformen_studienplan AS $row)
{
- draw_orgformsubmenu($stg_kz, $row->orgform_kurzbz);
+ draw_orgformsubmenu($stg_kz, $row);
}
}
}
@@ -240,15 +241,6 @@ function draw_orgformsubmenu($stg_kz, $orgform)
-
- Reihungstest angemeldet
-
-
- studiensemester_kurzbz.']]>
- reihungstestangemeldet
-
-
-
Nicht zum Reihungstest angemeldet
@@ -258,6 +250,15 @@ function draw_orgformsubmenu($stg_kz, $orgform)
+
+ Reihungstest angemeldet
+
+
+ studiensemester_kurzbz.']]>
+ reihungstestangemeldet
+
+
+
Bewerber
@@ -311,8 +312,8 @@ function draw_orgformsubmenu($stg_kz, $orgform)
$orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/bewerbungabgeschickt\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/zgv\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt\" />\n";
- $orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/reihungstestangemeldet\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/reihungstestnichtangemeldet\" />\n";
+ $orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/reihungstestangemeldet\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\t";
$orgform_sequence[$stg_kz].= "\n\t\t\t\n";
@@ -555,14 +556,6 @@ while ($row=$dbo->db_fetch_object())
-
-
- ]]>
- studiengang_kz; ?>]]>
- studiensemester_kurzbz; ?>]]>
-
-
-
]]>
@@ -571,6 +564,14 @@ while ($row=$dbo->db_fetch_object())
+
+
+ ]]>
+ studiengang_kz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+
+
+
]]>
@@ -778,8 +779,8 @@ draw_orgformpart($stg_kz);
echo "\t\t\t\tstudiensemester_kurzbz/interessenten/bewerbungabgeschickt\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/interessenten/zgv\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt\" />\n";
- echo "\t\t\t\tstudiensemester_kurzbz/interessenten/reihungstestangemeldet\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/interessenten/reihungstestnichtangemeldet\" />\n";
+ echo "\t\t\t\tstudiensemester_kurzbz/interessenten/reihungstestangemeldet\" />\n";
echo "\t\t\t\t";
echo "\n\t\t\t\n";
diff --git a/rdf/projekttyp.rdf.php b/rdf/projekttyp.rdf.php
index 36ef352bd..2713a84c9 100644
--- a/rdf/projekttyp.rdf.php
+++ b/rdf/projekttyp.rdf.php
@@ -44,7 +44,7 @@ echo '
';
//Daten holen
-$qry = 'SELECT * FROM lehre.tbl_projekttyp ORDER BY bezeichnung';
+$qry = 'SELECT * FROM lehre.tbl_projekttyp ORDER BY aktiv DESC, bezeichnung';
$db = new basis_db();
if($db->db_query($qry))
@@ -56,6 +56,7 @@ if($db->db_query($qry))
projekttyp_kurzbz.']]>
bezeichnung.']]>
+ db_parse_bool($row->aktiv)?'true':'false').']]>
';
}
diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php
index edfd1e0b8..795e98ff3 100644
--- a/rdf/student.rdf.php
+++ b/rdf/student.rdf.php
@@ -315,6 +315,8 @@ function draw_prestudent($row)
global $rdf_url, $datum_obj, $stg_arr;
$reihungstest = new reihungstest($row->reihungstest_id);
$rt_datum = $reihungstest->datum;
+ $prioRelativ = new prestudent();
+ $prioRelativ = $prioRelativ->getRelativePriorisierungFromAbsolut($row->prestudent_id, $row->priorisierung);
if($row->prestudent_id!='')
{
echo '
@@ -338,10 +340,10 @@ function draw_prestudent($row)
ausstellungsstaat.']]>
aufnahmeschluessel.']]>
facheinschlberuf?'true':'false').']]>
- reihungstest_id.']]>
+
punkte.']]>
bismelden?'true':'false').']]>
dual?'true':'false').']]>
@@ -351,6 +353,7 @@ function draw_prestudent($row)
gsstudientyp_kurzbz.']]>
aufnahmegruppe_kurzbz.']]>
priorisierung.']]>
+ priorisierung.')'.']]>
';
}
diff --git a/system/checksystem.php b/system/checksystem.php
index 73b16e3b3..7bdf96446 100644
--- a/system/checksystem.php
+++ b/system/checksystem.php
@@ -92,6 +92,7 @@ $beschreibung=1;
$berechtigungen = array(
array('admin','Super User Rechte'),
array('assistenz','Assistenz'),
+ array('student','Defaultberechtigung für Studierende'),
array('basis/addon','Addons verwalten'),
array('basis/ampel','Ampeln Administrieren'),
array('basis/ampeluebersicht','Ampel Übersicht für Leiter'),
diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php
index e55831733..052467098 100644
--- a/system/dbupdate_3.3.php
+++ b/system/dbupdate_3.3.php
@@ -2525,11 +2525,212 @@ if(!$result = @$db->db_query("SELECT direktinskription FROM public.tbl_gruppe LI
echo '
public.tbl_gruppe: Spalte direktinskription hinzugefuegt';
}
+// Spalte aktiv für tbl_betreuerart
+if(!$result = @$db->db_query("SELECT aktiv FROM lehre.tbl_betreuerart LIMIT 1"))
+{
+ $qry = "ALTER TABLE lehre.tbl_betreuerart ADD COLUMN aktiv boolean NOT NULL DEFAULT TRUE;";
+
+ if(!$db->db_query($qry))
+ echo 'lehre.tbl_betreuerart: '.$db->db_last_error().'
';
+ else
+ echo '
lehre.tbl_betreuerart: Spalte aktiv hinzugefuegt';
+}
+
+// Spalte aktiv für tbl_projekttyp
+if(!$result = @$db->db_query("SELECT aktiv FROM lehre.tbl_projekttyp LIMIT 1"))
+{
+ $qry = "ALTER TABLE lehre.tbl_projekttyp ADD COLUMN aktiv boolean NOT NULL DEFAULT TRUE;";
+
+ if(!$db->db_query($qry))
+ echo 'lehre.tbl_projekttyp: '.$db->db_last_error().'
';
+ else
+ echo '
lehre.tbl_projekttyp: Spalte aktiv hinzugefuegt';
+}
+
+// Remove NOT NULL constraint on aufmerksamdurch_kurzbz on public.tbl_prestudent
+if($result = @$db->db_query("SELECT is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_prestudent' AND COLUMN_NAME = 'aufmerksamdurch_kurzbz' AND is_nullable = 'NO'"))
+{
+ if($db->db_num_rows($result) > 0)
+ {
+ $qry = "ALTER TABLE public.tbl_prestudent ALTER COLUMN aufmerksamdurch_kurzbz DROP NOT NULL;";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_prestudent '.$db->db_last_error().'
';
+ else
+ echo '
Removed NOT NULL constraint on "aufmerksamdurch_kurzbz" from public.tbl_prestudent
';
+ }
+}
+
+// Spalte Zugangscode zu vw_msg_vars hinzufügen
+if(!$result = @$db->db_query('SELECT "Zugangscode" FROM public.vw_msg_vars LIMIT 1'))
+{
+ $qry = '
+ CREATE OR REPLACE VIEW public.vw_msg_vars AS (
+ SELECT DISTINCT ON(p.person_id, pr.prestudent_id) p.person_id,
+ pr.prestudent_id AS prestudent_id,
+ p.nachname AS "Nachname",
+ p.vorname AS "Vorname",
+ p.anrede AS "Anrede",
+ a.strasse AS "Strasse",
+ a.ort AS "Ort",
+ a.plz AS "PLZ",
+ a.gemeinde AS "Gemeinde",
+ a.langtext AS "Nation",
+ ke.kontakt AS "Email",
+ kt.kontakt AS "Telefon",
+ s.bezeichnung AS "Studiengang DE",
+ s.english AS "Studiengang EN",
+ st.bezeichnung AS "Typ",
+ orgform_kurzbz AS "Orgform",
+ p.zugangscode AS "Zugangscode"
+ FROM public.tbl_person p
+ LEFT JOIN (
+ SELECT person_id,
+ kontakt
+ FROM public.tbl_kontakt
+ WHERE zustellung = TRUE
+ AND kontakttyp = \'email\'
+ ORDER BY kontakt_id DESC
+ ) ke USING(person_id)
+ LEFT JOIN (
+ SELECT person_id,
+ kontakt
+ FROM public.tbl_kontakt
+ WHERE zustellung = TRUE
+ AND kontakttyp IN (\'telefon\', \'mobil\')
+ ORDER BY kontakt_id DESC
+ ) kt USING(person_id)
+ LEFT JOIN (
+ SELECT person_id,
+ strasse,
+ ort,
+ plz,
+ gemeinde,
+ langtext
+ FROM public.tbl_adresse
+ LEFT JOIN bis.tbl_nation ON(bis.tbl_nation.nation_code = public.tbl_adresse.nation)
+ WHERE public.tbl_adresse.heimatadresse = TRUE
+ ORDER BY adresse_id DESC
+ ) a USING(person_id)
+ LEFT JOIN public.tbl_prestudent pr USING(person_id)
+ INNER JOIN public.tbl_studiengang s USING(studiengang_kz)
+ INNER JOIN public.tbl_studiengangstyp st USING(typ)
+ WHERE p.aktiv = TRUE
+ ORDER BY p.person_id ASC, pr.prestudent_id ASC
+ );
+ ';
+
+ if(!$db->db_query($qry))
+ echo 'public.vw_msg_vars: '.$db->db_last_error().'
';
+ else
+ echo '
public.vw_msg_vars zugangscode added';
+}
+
+// Spalte Zugangscode zu vw_msg_vars_person hinzufügen
+if(!$result = @$db->db_query('SELECT "Zugangscode" FROM public.vw_msg_vars_person LIMIT 1'))
+{
+ $qry = '
+ CREATE OR REPLACE VIEW public.vw_msg_vars_person AS (
+ SELECT DISTINCT ON(p.person_id) p.person_id,
+ p.nachname AS "Nachname",
+ p.vorname AS "Vorname",
+ p.anrede AS "Anrede",
+ a.strasse AS "Strasse",
+ a.ort AS "Ort",
+ a.plz AS "PLZ",
+ a.gemeinde AS "Gemeinde",
+ a.langtext AS "Nation",
+ ke.kontakt AS "Email",
+ kt.kontakt AS "Telefon",
+ ( SELECT tbl_studiensemester.bezeichnung
+ FROM tbl_studiensemester
+ WHERE "substring"(tbl_studiensemester.studiensemester_kurzbz::text, 1, 2) = \'WS\'::text AND (tbl_studiensemester.start >= now() AND tbl_studiensemester.ende >= now() OR tbl_studiensemester.start <= now() AND tbl_studiensemester.ende >= now())
+ ORDER BY tbl_studiensemester.start
+ LIMIT 1) AS "WS naechstes",
+ ( SELECT tbl_studiensemester.bezeichnung
+ FROM tbl_studiensemester
+ WHERE "substring"(tbl_studiensemester.studiensemester_kurzbz::text, 1, 2) = \'WS\'::text AND (tbl_studiensemester.start >= now() AND tbl_studiensemester.ende >= now() OR tbl_studiensemester.start <= now() AND tbl_studiensemester.ende >= now())
+ ORDER BY tbl_studiensemester.start
+ OFFSET 1
+ LIMIT 1) AS "WS uebernaechstes",
+ p.zugangscode as "Zugangscode"
+ FROM public.tbl_person p
+ LEFT JOIN (
+ SELECT person_id,
+ kontakt
+ FROM public.tbl_kontakt
+ WHERE zustellung = TRUE
+ AND kontakttyp = \'email\'
+ ORDER BY kontakt_id DESC
+ ) ke USING(person_id)
+ LEFT JOIN (
+ SELECT person_id,
+ kontakt
+ FROM public.tbl_kontakt
+ WHERE zustellung = TRUE
+ AND kontakttyp IN (\'telefon\', \'mobil\')
+ ORDER BY kontakt_id DESC
+ ) kt USING(person_id)
+ LEFT JOIN (
+ SELECT person_id,
+ strasse,
+ ort,
+ plz,
+ gemeinde,
+ langtext
+ FROM public.tbl_adresse
+ LEFT JOIN bis.tbl_nation ON(bis.tbl_nation.nation_code = public.tbl_adresse.nation)
+ WHERE public.tbl_adresse.heimatadresse = TRUE
+ ORDER BY adresse_id DESC
+ ) a USING(person_id)
+ ORDER BY p.person_id ASC
+ );';
+
+ if(!$db->db_query($qry))
+ echo 'public.vw_msg_vars_person: '.$db->db_last_error().'
';
+ else
+ echo '
public.vw_msg_vars_person zugangscode added';
+}
+
+// Spalte Zugangscode zu vw_msg_vars_person hinzufügen
+// Fachbereich entfernen
+if(!$result = @$db->db_query('SELECT lehrfach_oe_kurzbz FROM campus.vw_lehreinheit LIMIT 1'))
+{
+ $qry = "
+ DROP VIEW campus.vw_lehreinheit;
+ CREATE OR REPLACE VIEW campus.vw_lehreinheit as
+ SELECT
+ tbl_lehrveranstaltung.studiengang_kz AS lv_studiengang_kz, tbl_lehrveranstaltung.semester AS lv_semester, tbl_lehrveranstaltung.kurzbz AS lv_kurzbz, tbl_lehrveranstaltung.bezeichnung AS lv_bezeichnung, tbl_lehrveranstaltung.ects AS lv_ects, tbl_lehrveranstaltung.lehreverzeichnis AS lv_lehreverzeichnis,
+ tbl_lehrveranstaltung.planfaktor AS lv_planfaktor, tbl_lehrveranstaltung.planlektoren AS lv_planlektoren, tbl_lehrveranstaltung.planpersonalkosten AS lv_planpersonalkosten, tbl_lehrveranstaltung.plankostenprolektor AS lv_plankostenprolektor, tbl_lehrveranstaltung.orgform_kurzbz AS lv_orgform_kurzbz,
+ tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrveranstaltung_id, tbl_lehreinheit.studiensemester_kurzbz, tbl_lehreinheit.lehrform_kurzbz, tbl_lehreinheit.stundenblockung, tbl_lehreinheit.wochenrythmus, tbl_lehreinheit.start_kw, tbl_lehreinheit.raumtyp, tbl_lehreinheit.raumtypalternativ, tbl_lehreinheit.lehre,
+ tbl_lehreinheit.unr, tbl_lehreinheit.lvnr, tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz, tbl_lehreinheit.insertamum, tbl_lehreinheit.insertvon, tbl_lehreinheit.updateamum, tbl_lehreinheit.updatevon,
+ lehrfach.lehrveranstaltung_id AS lehrfach_id,
+ lehrfach.oe_kurzbz as lehrfach_oe_kurzbz,
+ lehrfach.kurzbz AS lehrfach, lehrfach.bezeichnung AS lehrfach_bez, lehrfach.farbe,
+ tbl_lehrveranstaltung.aktiv, lehrfach.sprache, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehreinheitmitarbeiter.semesterstunden, tbl_lehrveranstaltung.semesterstunden AS lv_semesterstunden, tbl_lehreinheitmitarbeiter.planstunden, tbl_lehreinheitmitarbeiter.stundensatz, tbl_lehreinheitmitarbeiter.faktor,
+ tbl_lehreinheit.anmerkung, tbl_mitarbeiter.kurzbz AS lektor, tbl_lehreinheitgruppe.studiengang_kz, tbl_lehreinheitgruppe.semester, tbl_lehreinheitgruppe.verband, tbl_lehreinheitgruppe.gruppe, tbl_lehreinheitgruppe.gruppe_kurzbz,
+ tbl_studiengang.kurzbz AS stg_kurzbz, tbl_studiengang.kurzbzlang AS stg_kurzbzlang, tbl_studiengang.bezeichnung AS stg_bez, tbl_studiengang.typ AS stg_typ, tbl_lehreinheitmitarbeiter.anmerkung AS anmerkunglektor, tbl_lehrveranstaltung.lehrform_kurzbz AS lv_lehrform_kurzbz,
+ tbl_lehrveranstaltung.bezeichnung_english AS lv_bezeichnung_english, tbl_lehrveranstaltung.lehrtyp_kurzbz
+ FROM lehre.tbl_lehreinheit
+ JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id)
+ JOIN lehre.tbl_lehrveranstaltung lehrfach ON (tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
+ JOIN lehre.tbl_lehreinheitmitarbeiter USING (lehreinheit_id)
+ JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid)
+ JOIN lehre.tbl_lehreinheitgruppe USING (lehreinheit_id)
+ JOIN public.tbl_studiengang ON tbl_lehreinheitgruppe.studiengang_kz = tbl_studiengang.studiengang_kz;
+ GRANT SELECT ON campus.vw_lehreinheit TO admin;
+ GRANT SELECT ON campus.vw_lehreinheit TO vilesci;
+ GRANT SELECT ON campus.vw_lehreinheit TO web;
+ ";
+ if(!$db->db_query($qry))
+ echo 'campus.vw_lehreinheit: '.$db->db_last_error().'
';
+ else
+ echo '
campus.vw_lehreinheit lehrfach_oe_kurzbz added, fachbereich_kurzbz removed';
+}
+
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo 'Pruefe Tabellen und Attribute!
';
-echo '
';
-
$tabellen=array(
"bis.tbl_bisorgform" => array("bisorgform_kurzbz","code","bezeichnung"),
"bis.tbl_archiv" => array("archiv_id","studiensemester_kurzbz","meldung","html","studiengang_kz","insertamum","insertvon","typ"),
@@ -2628,7 +2829,7 @@ $tabellen=array(
"lehre.tbl_akadgrad" => array("akadgrad_id","akadgrad_kurzbz","studiengang_kz","titel","geschlecht"),
"lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id"),
"lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"),
- "lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung"),
+ "lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung","aktiv"),
"lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"),
"lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old","gewicht"),
"lehre.tbl_lehreinheitgruppe" => array("lehreinheitgruppe_id","lehreinheit_id","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id"),
@@ -2649,7 +2850,7 @@ $tabellen=array(
"lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe","positiv","notenwert","aktiv","lehre","offiziell","bezeichnung_mehrsprachig","lkt_ueberschreibbar"),
"lehre.tbl_projektarbeit" => array("projektarbeit_id","projekttyp_kurzbz","titel","lehreinheit_id","student_uid","firma_id","note","punkte","beginn","ende","faktor","freigegeben","gesperrtbis","stundensatz","gesamtstunden","themenbereich","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","titel_english","seitenanzahl","abgabedatum","kontrollschlagwoerter","schlagwoerter","schlagwoerter_en","abstract", "abstract_en", "sprache","final"),
"lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id","vertrag_id"),
- "lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung"),
+ "lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung","aktiv"),
"lehre.tbl_pruefung" => array("pruefung_id","lehreinheit_id","student_uid","mitarbeiter_uid","note","pruefungstyp_kurzbz","datum","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","pruefungsanmeldung_id","vertrag_id", "punkte"),
"lehre.tbl_pruefungstyp" => array("pruefungstyp_kurzbz","beschreibung","abschluss","sort"),
"lehre.tbl_studienordnung" => array("studienordnung_id","studiengang_kz","version","gueltigvon","gueltigbis","bezeichnung","ects","studiengangbezeichnung","studiengangbezeichnung_englisch","studiengangkurzbzlang","akadgrad_id","insertamum","insertvon","updateamum","updatevon","ext_id", "status_kurzbz", "standort_id"),
@@ -2815,6 +3016,7 @@ $tabellen=array(
$tabs=array_keys($tabellen);
//print_r($tabs);
$i=0;
+$errors = 0;
foreach ($tabellen AS $attribute)
{
$sql_attr='';
@@ -2823,12 +3025,19 @@ foreach ($tabellen AS $attribute)
$sql_attr=substr($sql_attr, 0, -1);
if (!@$db->db_query('SELECT '.$sql_attr.' FROM '.$tabs[$i].' LIMIT 1;'))
+ {
echo '
'.$tabs[$i].': '.$db->db_last_error().'
';
- else
- echo $tabs[$i].': OK - ';
+ $errors++;
+ }
+ /*else
+ echo $tabs[$i].': OK - ';*/
flush();
$i++;
}
+if ($errors == 0)
+{
+ echo 'Keine Fehler aufgetreten';
+}
echo 'Gegenpruefung!
';
$error=false;
diff --git a/system/filtersupdate.php b/system/filtersupdate.php
index d8788b292..27dbce891 100644
--- a/system/filtersupdate.php
+++ b/system/filtersupdate.php
@@ -36,6 +36,7 @@ $filters = array(
{"name": "StgAbgeschickt"},
{"name": "Studiensemester"},
{"name": "LastAction"},
+ {"name": "LastActionType"},
{"name": "User/Operator"},
{"name": "LockUser"}
],
@@ -68,6 +69,7 @@ $filters = array(
{"name": "StgAbgeschickt"},
{"name": "Studiensemester"},
{"name": "LastAction"},
+ {"name": "LastActionType"},
{"name": "User/Operator"},
{"name": "LockUser"}
],
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index 4f9d885d0..95cefaa85 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -1519,7 +1519,6 @@ $phrases = array(
)
)
),
-
array(
'app' => 'core',
'category' => 'filter',
@@ -1541,9 +1540,6 @@ $phrases = array(
)
),
-
-
-
//**************************** CORE/person
array(
'app' => 'core',
@@ -2207,8 +2203,126 @@ $phrases = array(
)
)
),
-
-
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'ects',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'notendurchschnitt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Notendurchschnitt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Grade average',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'gewichteternotendurchschnitt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'gewichteter Notendurchschnitt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'weighted grade point average',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'note',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Note',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Grade',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'lehrveranstaltung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Lehrveranstaltung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Course',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'nichtstudienplanrelevanteKurse',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Nicht studienplanrelevante Lehrveranstaltung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'additional Courses',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
//********************** INFOCENTER/infocenter
array(
diff --git a/system/xsl/Ausbildungsver_0.xsl b/system/xsl/Ausbildungsver_0.xsl
index 62ccd3b70..f1ba53bf4 100644
--- a/system/xsl/Ausbildungsver_0.xsl
+++ b/system/xsl/Ausbildungsver_0.xsl
@@ -544,7 +544,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
ab dem
-3. Semester gleichzeitig mit der Studiengebühr vor Beginn des Semesters zu entrichten.
+3. Semester gleichzeitig mit dem Studienbeitrag vor Beginn des Semesters zu entrichten.
Bei Vertragsauflösung vor Studienabschluss aus Gründen, die die Studentin bzw. der Student zu vertreten hat, oder auf deren bzw. dessen Wunsch, wird der Unkostenbeitrag zur Abdeckung der dem Erhalter erwachsenen administrativen Zusatzkosten einbehalten.
6.2.6 Lehr- und Lernbehelfe
diff --git a/system/xsl/Ausbildungsver_9005.xsl b/system/xsl/Ausbildungsver_9005.xsl
index af22bdb71..db74f0dbf 100644
--- a/system/xsl/Ausbildungsver_9005.xsl
+++ b/system/xsl/Ausbildungsver_9005.xsl
@@ -500,7 +500,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
6.2.3 ÖH-Beitrag
Gemäß § 4 Abs 10 FHStG sind ao. Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die ao. Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum ao. Studium bzw. für dessen Fortsetzung.
6.2.4 Unkostenbeitrag
- Pro Semester ist ein Unkostenbeitrag zu entrichten. Die Höhe des Unkostenbeitrages beträgt € 75,– pro Semester. Eine allfällige Anpassung wird durch Aushang bekannt gemacht. Der Unkostenbeitrag ist gleichzeitig mit der Studiengebühr vor Beginn des Semesters zu entrichten. Bei Vertragsauflösung vor dem Ende der besuchten Lehrveranstaltungen aus Gründen, die die ao. Studentin bzw. der ao. Student zu vertreten hat, oder auf deren bzw. dessen Wunsch, wird der Unkostenbeitrag zur Abdeckung der dem Erhalter erwachsenen administrativen Zusatzkosten einbehalten.
+ Pro Semester ist ein Unkostenbeitrag zu entrichten. Die Höhe des Unkostenbeitrages beträgt € 75,– pro Semester. Eine allfällige Anpassung wird durch Aushang bekannt gemacht. Der Unkostenbeitrag ist gleichzeitig mit dem Studienbeitrag vor Beginn des Semesters zu entrichten. Bei Vertragsauflösung vor dem Ende der besuchten Lehrveranstaltungen aus Gründen, die die ao. Studentin bzw. der ao. Student zu vertreten hat, oder auf deren bzw. dessen Wunsch, wird der Unkostenbeitrag zur Abdeckung der dem Erhalter erwachsenen administrativen Zusatzkosten einbehalten.
6.2.5 Lehr- und Lernbehelfe
Die Anschaffung unterrichtsbezogener Literatur und individueller Lernbehelfe ist durch den Unkostenbeitrag nicht abgedeckt. Eventuelle zusätzliche Kosten, die sich beispielsweise durch die lehrveranstaltungsbezogene, gemeinsame Anschaffung von Lehr- bzw. Lernbehelfen (Skripten, CDs, Bücher, Projektmaterialien, Kopierpapier etc.) oder durch Exkursionen ergeben, werden von jedem Studiengang individuell eingehoben.
6.2.6 Beibringung persönlicher Daten
diff --git a/system/xsl/PrProtBAEng_0.xsl b/system/xsl/PrProtBAEng_0.xsl
index 8b746377d..6550712d9 100644
--- a/system/xsl/PrProtBAEng_0.xsl
+++ b/system/xsl/PrProtBAEng_0.xsl
@@ -346,7 +346,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
- Topic and Assessment of Bachelor Paper 1
+ Topic and Assessment of Bachelor Paper
@@ -362,31 +362,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
-
-
- Topic and Assessment of Bachelor Paper 2
-
-
-
-
-
-
-
-
-
-
- Grade
- (Information)
-
-
-
Subject of the Examination
- Presentation and Examination interview on the Bachelor Paper and its links to subjects of the curriculum
+ Presentation and Examination interview on the Bachelor Paper
@@ -401,18 +383,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
-
+
Presentation of the Bachelor Paper
- Examination interview on the Bachelor Paper and its links to
-
-
-
-
- subjects of the curriculum
-
+
+ Examination interview on the Bachelor Paper
@@ -423,14 +400,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
-
-
-
-
-
-
-
- Notes on the presentation of the Bachelor Paper – Bachelor Paper 1 / Bachelor Paper 2
+ Notes on the presentation of the Bachelor Paper
diff --git a/system/xsl/PrProtBA_0.xsl b/system/xsl/PrProtBA_0.xsl
index 5bcd37dce..3a45c9eaa 100644
--- a/system/xsl/PrProtBA_0.xsl
+++ b/system/xsl/PrProtBA_0.xsl
@@ -346,7 +346,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
- Thema und Beurteilung der Bachelorarbeit 1
+ Thema und Beurteilung der Bachelorarbeit
@@ -362,31 +362,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
-
-
- Thema und Beurteilung der Bachelorarbeit 2
-
-
-
-
-
-
-
-
-
-
- Note
- (Information)
-
-
-
Prüfungsgegenstand
- Prüfungsgespräch über die Bachelorarbeit und deren Querverbindungen zu Fächern des Studienplans
+ Prüfungsgespräch über die Bachelorarbeit
@@ -400,9 +382,8 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
- Präsentation der Bachelorarbeit
- Prüfungsgespräch über die Bachelorarbeit und Querverbindungen
- zu Fächern des Studienplans
+ Präsentation der Bachelorarbeit
+ Prüfungsgespräch über die Bachelorarbeit
@@ -412,7 +393,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
- Notizen zur Präsentation der Bachelorarbeit – Bachelorarbeit 1 / Bachelorarbeit 2
+ Notizen zur Präsentation der Bachelorarbeit
diff --git a/system/xsl/lehrauftrag_0.xsl b/system/xsl/lehrauftrag_0.xsl
index 94873a2fb..c7c39af47 100644
--- a/system/xsl/lehrauftrag_0.xsl
+++ b/system/xsl/lehrauftrag_0.xsl
@@ -1,60 +1,60 @@
-
-
@@ -340,7 +340,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
-
@@ -374,7 +374,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- Lehrauftrag
+ Lehrauftrag
-Studiengang
@@ -403,7 +403,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
Lehrveranstaltung
- Institut
+ Department
Gruppe(n)
@@ -419,9 +419,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
Brutto
-
+
-
+
@@ -450,13 +450,13 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
€
-
+
- Die angeführten Stundensätze sind Bruttobeträge, von denen gegebenenfalls die DienstnehmerInnenanteile für Steuern und Sozialversicherung abgezogen werden.
- Die angeführte Stundenzahl ist die maximal vorgesehene; abgerechnet werden jedoch nur die tatsächlich gehaltenen Stunden laut Anwesenheitslisten.
+ Die angeführten Stundensätze sind Bruttobeträge, von denen gegebenenfalls die DienstnehmerInnenanteile für Steuern und Sozialversicherung abgezogen werden.
+ Die angeführte Stundenzahl ist die maximal vorgesehene; abgerechnet werden jedoch nur die tatsächlich gehaltenen Stunden laut Anwesenheitslisten.
Außerdem besteht die Verpflichtung zur Teilnahme an LektorInnenkonferenzen.
@@ -514,9 +514,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
-
+
-
+
@@ -530,7 +530,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
-
+
@@ -541,7 +541,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
€
-
+
diff --git a/system/xsl/lehrauftrag_Lehrgaenge.xsl b/system/xsl/lehrauftrag_Lehrgaenge.xsl
index c370f721f..69bbee003 100644
--- a/system/xsl/lehrauftrag_Lehrgaenge.xsl
+++ b/system/xsl/lehrauftrag_Lehrgaenge.xsl
@@ -1,60 +1,60 @@
-
-
@@ -336,7 +336,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
-
@@ -396,7 +396,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
Lehrveranstaltung
- Institut
+ Department
Gruppe(n)
@@ -412,9 +412,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
Brutto
-
+
-
+
@@ -447,8 +447,8 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- Die angeführten Stundensätze sind Bruttobeträge, von denen gegebenenfalls die DienstnehmerInnenanteile für Steuern und Sozialversicherung abgezogen werden.
- Die angeführte Stundenzahl ist die maximal vorgesehene; abgerechnet werden jedoch nur die tatsächlich gehaltenen Stunden laut Anwesenheitslisten.
+ Die angeführten Stundensätze sind Bruttobeträge, von denen gegebenenfalls die DienstnehmerInnenanteile für Steuern und Sozialversicherung abgezogen werden.
+ Die angeführte Stundenzahl ist die maximal vorgesehene; abgerechnet werden jedoch nur die tatsächlich gehaltenen Stunden laut Anwesenheitslisten.
Außerdem besteht die Verpflichtung zur Teilnahme an LektorInnenkonferenzen.
@@ -506,9 +506,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
-
+
-
+
diff --git a/vilesci/personen/import/mitarbeiterimport.php b/vilesci/personen/import/mitarbeiterimport.php
index 7a6a938f3..8da54208f 100644
--- a/vilesci/personen/import/mitarbeiterimport.php
+++ b/vilesci/personen/import/mitarbeiterimport.php
@@ -447,6 +447,8 @@ if(isset($_POST['save']))
}
else
{
+ $zugangscode = substr(md5(openssl_random_pseudo_bytes(20)), 0, 15);
+
$person->new = true;
$person->anrede = $anrede;
$person->titelpre = $titel;
@@ -462,7 +464,7 @@ if(isset($_POST['save']))
$person->geburtsnation = 'A';
$person->staatsbuergerschaft = 'A';
$person->familienstand = 'l';
- $person->zugangscode= uniqid();
+ $person->zugangscode= $zugangscode;
if($person->save())
{
diff --git a/vilesci/personen/suche.php b/vilesci/personen/suche.php
index b0a174eaa..6d2cf3cde 100644
--- a/vilesci/personen/suche.php
+++ b/vilesci/personen/suche.php
@@ -114,7 +114,9 @@ echo '
+
+
-
-
@@ -771,7 +772,7 @@ if(isset($_GET['excel']))
{
$("#"+v.id).tablesorter(
{
- widgets: ["zebra"],
+ widgets: ["zebra", "filter", "stickyHeaders"],
sortList: [[3,0],[4,0]],
headers: {0: { sorter: false}}
});
@@ -970,7 +971,7 @@ if(isset($_GET['excel']))
.studienplan_listitem
{
background-color: lightgray;
- padding: 0 5px 0 6px;
+ padding: 2px 5px 2px 6px;
border-radius: 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
@@ -979,7 +980,7 @@ if(isset($_GET['excel']))
.ort_listitem
{
background-color: lightgray;
- padding: 0 5px 0 6px;
+ padding: 2px 5px 2px 6px;
border-radius: 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
@@ -1027,12 +1028,6 @@ $messageError = '';
// Speichern eines Termines
if(isset($_POST['speichern']) || isset($_POST['kopieren']))
{
-
- if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'sui'))
- {
- die($rechte->errormsg);
- }
-
$reihungstest = new reihungstest();
if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='' && !isset($_POST['kopieren']))
@@ -1052,6 +1047,13 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren']))
$reihungstest->insertvon = $user;
$reihungstest->insertamum = date('Y-m-d H:i:s');
}
+
+ // OE über Studiengang des Reihungstests laden und Berechtigung prüfen
+ $stg_rechtecheck = new studiengang($reihungstest->studiengang_kz);
+ if(!$rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'sui'))
+ {
+ die($rechte->errormsg);
+ }
//Datum und Uhrzeit pruefen
if($_POST['datum']!='' && !$datum_obj->checkDatum($_POST['datum']))
@@ -1089,7 +1091,7 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren']))
{
$reihungstest->freigeschaltet = isset($_POST['freigeschaltet']);
$reihungstest->max_teilnehmer = filter_input(INPUT_POST, 'max_teilnehmer', FILTER_VALIDATE_INT);
- if ($rechte->isBerechtigt('lehre/reihungstestOeffentlich', $_POST['studiengang_kz'], 'suid'))
+ if ($rechte->isBerechtigt('lehre/reihungstestOeffentlich', $stg_rechtecheck->oe_kurzbz, 'suid'))
{
$reihungstest->oeffentlich = (isset($_POST['oeffentlich']) ? true : false);
}
@@ -1116,7 +1118,7 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren']))
$messageError .= 'Die Bezeichnung des Ortes ist ungueltig oder wurde nicht gefunden
';
else
{
- if($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui'))
+ if($rechte->isBerechtigt('lehre/reihungstestOrt', $stg_rechtecheck->oe_kurzbz, 'sui'))
{
$orte_zugeteilt = new reihungstest();
$orte_zugeteilt->getOrteReihungstest($reihungstest->reihungstest_id);
@@ -1281,11 +1283,6 @@ if ($reihungstest_id != '' || isset($_POST['reihungstest_id']))
if(isset($_POST['raumzuteilung_speichern']))
{
- if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'su'))
- {
- die($rechte->errormsg);
- }
-
$raumzuteilung = new reihungstest();
if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='')
@@ -1295,6 +1292,14 @@ if(isset($_POST['raumzuteilung_speichern']))
{
die($raumzuteilung->errormsg);
}
+
+ // OE über Studiengang des Reihungstests laden und Berechtigung prüfen
+ $stg_rechtecheck = new studiengang($raumzuteilung->studiengang_kz);
+ if(!$rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'su'))
+ {
+ die($rechte->errormsg);
+ }
+
if (isset($_POST['checkbox']))
{
$person_ids = $_POST['checkbox'];
@@ -1522,13 +1527,15 @@ if(isset($_GET['type']) && $_GET['type']=='informAssistance')
// Verteilt alle BewerberInnen gleichmaessig auf die Raeume
if(isset($_GET['type']) && $_GET['type']=='verteilen')
{
- if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'sui'))
- {
- die($rechte->errormsg);
- }
-
if($reihungstest_id!='')
{
+ $rt_rechtecheck = new reihungstest($reihungstest_id);
+ // OE über Studiengang des Reihungstests laden und Berechtigung prüfen
+ $stg_rechtecheck = new studiengang($rt_rechtecheck->studiengang_kz);
+ if(!$rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'sui'))
+ {
+ die($rechte->errormsg);
+ }
$errormsg='';
$qry = "SELECT
person_id,
@@ -1617,13 +1624,16 @@ if(isset($_GET['type']) && $_GET['type']=='verteilen')
// Fuellt die Raeume aufsteigend mit BewerberInnen an
if(isset($_GET['type']) && $_GET['type']=='auffuellen')
{
- if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'sui'))
- {
- die($rechte->errormsg);
- }
-
if($reihungstest_id!='')
{
+ $rt_rechtecheck = new reihungstest($reihungstest_id);
+ // OE über Studiengang des Reihungstests laden und Berechtigung prüfen
+ $stg_rechtecheck = new studiengang($rt_rechtecheck->studiengang_kz);
+ if(!$rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'sui'))
+ {
+ die($rechte->errormsg);
+ }
+
$orte = new Reihungstest();
$orte->getOrteReihungstest($reihungstest_id);
@@ -1699,16 +1709,18 @@ if(isset($_GET['type']) && $_GET['type']=='auffuellen')
if(isset($_POST['aufsicht']) && $_POST['aufsicht']!='' && !isset($_POST['kopieren']))
{
-
- if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'su'))
- {
- die($rechte->errormsg);
- }
-
$save_aufsicht = new reihungstest();
if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='')
{
+ $rt_rechtecheck = new reihungstest($_POST['reihungstest_id']);
+ // OE über Studiengang des Reihungstests laden und Berechtigung prüfen
+ $stg_rechtecheck = new studiengang($rt_rechtecheck->studiengang_kz);
+ if(!$rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'su'))
+ {
+ die($rechte->errormsg);
+ }
+
//Reihungstest laden
if(!$save_aufsicht->load($_POST['reihungstest_id']))
{
@@ -1745,13 +1757,16 @@ if(isset($_POST['aufsicht']) && $_POST['aufsicht']!='' && !isset($_POST['kopiere
if(isset($_POST['delete_ort']))
{
- if(!$rechte->isBerechtigt('lehre/reihungstestOrt', null, 'suid'))
- {
- die($rechte->errormsg);
- }
-
if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='')
{
+ $rt_rechtecheck = new reihungstest($_POST['reihungstest_id']);
+ // OE über Studiengang des Reihungstests laden und Berechtigung prüfen
+ $stg_rechtecheck = new studiengang($rt_rechtecheck->studiengang_kz);
+ if(!$rechte->isBerechtigt('lehre/reihungstestOrt', $stg_rechtecheck->oe_kurzbz, 'suid'))
+ {
+ die($rechte->errormsg);
+ }
+
$delete_ort = new reihungstest();
$delete_ort->getPersonReihungstestOrt($_POST['reihungstest_id'], $_POST['delete_ort']);
@@ -2067,6 +2082,7 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
';
}
+ $stg_rechtecheck = new studiengang($reihungstest->studiengang_kz);
if($neu)
{
echo '';
@@ -2123,9 +2139,17 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
{
//echo ' | ';
@@ -2149,7 +2176,8 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
{
echo '
| Ort | ';
//echo '';
- if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui'))
+
+ if ($rechte->isBerechtigt('lehre/reihungstestOrt', $stg_rechtecheck->oe_kurzbz, 'sui'))
{
echo ' | ';
echo ' | ';
@@ -2157,7 +2185,7 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
}
else
{
- echo 'Keine Berechtigung zum zuteilen von Räumen | ';
+ echo 'Keine Berechtigung zum Zuteilen von Räumen | ';
}
$orte = new Reihungstest();
$orte->getOrteReihungstest($reihungstest->reihungstest_id);
@@ -2175,9 +2203,14 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
if(defined('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND') && REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND > 0)
echo '*';
echo ')';
- echo ' ';
- if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'suid'))
+ if ($rechte->isBerechtigt('lehre/reihungstestOrt', $stg_rechtecheck->oe_kurzbz, 'sui'))
+ {
+ echo ' ';
+ }
+ if ($rechte->isBerechtigt('lehre/reihungstestOrt', $stg_rechtecheck->oe_kurzbz, 'suid'))
+ {
echo '';
+ }
echo ' |
';
$arbeitsplaetze_sum = $arbeitsplaetze_sum + $orte_array[$row->ort_kurzbz];
}
@@ -2227,7 +2260,7 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
?>
- isBerechtigt('lehre/reihungstestOeffentlich', $reihungstest->studiengang_kz, 'suid') ? '' : 'style="display:none"') ?>>
+
isBerechtigt('lehre/reihungstestOeffentlich', $stg_rechtecheck->oe_kurzbz, 'suid') ? '' : 'style="display:none"') ?>>
| Öffentlich |
oeffentlich ? 'checked="checked"' : '' ?>>
@@ -2245,19 +2278,24 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
|
| |
-
|
-
- Kopie erstellen';
-
- if($rechte->isBerechtigt('lehre/reihungstest', null, 'suid'))
+ {
+ if($rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'sui'))
+ {
+ echo '';
+ echo '';
+ }
+ }
+ else
+ {
+ echo '';
+ }
+
+ if($rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'suid'))
{
$anzahl_teilnehmer = new reihungstest();
$anzahl_teilnehmer = $anzahl_teilnehmer->getTeilnehmerAnzahl($reihungstest_id);
|