diff --git a/application/controllers/lehre/Pruefungsprotokoll.php b/application/controllers/lehre/Pruefungsprotokoll.php new file mode 100644 index 000000000..594d3a9e1 --- /dev/null +++ b/application/controllers/lehre/Pruefungsprotokoll.php @@ -0,0 +1,223 @@ + 'lehre/pruefungsbeurteilung:r', + 'Protokoll' => 'lehre/pruefungsbeurteilung:r', + 'saveProtokoll' => 'lehre/pruefungsbeurteilung:rw', + ) + ); + + // Load models + $this->load->model('education/Abschlusspruefung_model', 'AbschlusspruefungModel'); + $this->load->model('education/Abschlussbeurteilung_model', 'AbschlussbeurteilungModel'); + + $this->load->library('PermissionLib'); + $this->load->library('AuthLib'); + + // Load language phrases + $this->loadPhrases( + array( + 'ui', + 'global', + 'person', + 'abschlusspruefung', + 'password', + 'lehre' + ) + ); + + $this->_setAuthUID(); // sets property uid + + $this->setControllerId(); // sets the controller id + } + + // ----------------------------------------------------------------------------------------------------------------- + // Public methods + public function index() + { + $this->load->library('WidgetLib'); + $this->load->view('lehre/pruefungsprotokollUebersicht.php'); + } + + /** + * Show Pruefungsprotokoll. + */ + public function Protokoll() + { + $abschlusspruefung_id = $this->input->get('abschlusspruefung_id'); + + if (!is_numeric($abschlusspruefung_id)) + show_error('invalid abschlusspruefung'); + + $abschlusspruefung_saved = false; + $abschlusspruefung = $this->_getAbschlusspruefungBerechtigt($abschlusspruefung_id); + + if (isError($abschlusspruefung)) + show_error(getError($abschlusspruefung)); + else + { + $abschlusspruefung = getData($abschlusspruefung); + $abschlusspruefung_saved = isset($abschlusspruefung->protokoll) && isset($abschlusspruefung->abschlussbeurteilung_kurzbz); + } + + $this->AbschlussbeurteilungModel->addOrder("sort", "ASC"); + $this->AbschlussbeurteilungModel->addOrder("(CASE WHEN abschlussbeurteilung_kurzbz = 'ausgezeichnet' THEN 1 + WHEN abschlussbeurteilung_kurzbz = 'gut' THEN 2 + WHEN abschlussbeurteilung_kurzbz = 'bestanden' THEN 3 + WHEN abschlussbeurteilung_kurzbz = 'angerechnet' THEN 4 + ELSE 5 + END + )"); + $abschlussbeurteilung = $this->AbschlussbeurteilungModel->load(); + + if (isError($abschlussbeurteilung)) + show_error(getError($abschlussbeurteilung)); + else + $abschlussbeurteilung = getData($abschlussbeurteilung); + + $language = getUserLanguage(); + + $data = array( + 'abschlusspruefung' => $abschlusspruefung, + 'abschlussbeurteilung' => $abschlussbeurteilung, + 'abschlusspruefung_saved' => $abschlusspruefung_saved, + 'language' => $language + ); + + $this->load->view('lehre/pruefungsprotokoll.php', $data); + } + + /** + * Save Pruefungsprotokoll (including possible Freigabe) + */ + public function saveProtokoll() + { + $abschlusspruefung_id = $this->input->post('abschlusspruefung_id'); + $data = $this->input->post('protocoldata'); + + if (isset($abschlusspruefung_id) && is_numeric($abschlusspruefung_id) && isset($data)) + { + // check permission + $berechtigt = $this->_getAbschlusspruefungBerechtigt($abschlusspruefung_id); + if (isError($berechtigt)) + $this->outputJsonError(getError($berechtigt)); + else + { + $freigabe = isset($data['freigabedatum']) && $data['freigabedatum']; + + if ($freigabe) + { + // Verify password + $password = $data['password']; + unset($data['password']); + if (!isEmptyString($password)) + { + $result = $this->authlib->checkUserAuthByUsernamePassword($this->_uid, $password); + if (isError($result)) + { + return $this->outputJsonError($this->p->t('password', 'wrongPassword')); // exit if password is incorrect + } + } + else + { + return $this->outputJsonError($this->p->t('password', 'passwordMissing')); + } + } + + $data = $this->_prepareAbschlusspruefungDataForSave($data); + $result = $this->AbschlusspruefungModel->update($abschlusspruefung_id, $data); + + if (hasData($result)) + { + $abschlusspruefung_id = getData($result); + $updateresult = array('abschlusspruefung_id' => $abschlusspruefung_id); + if ($freigabe) + $updateresult['freigabedatum'] = date_format(date_create($data['freigabedatum']), 'd.m.Y'); + + $this->outputJsonSuccess($updateresult); + } + else + $this->outputJsonError('Fehler beim Speichern des Prüfungsprotokolls'); + } + } + else + $this->outputJsonError($this->p->t('ui', 'ungueltigeParameter')); + } + + // ----------------------------------------------------------------------------------------------------------------- + // Private methods + + /** + * Retrieve the UID of the logged user and checks if it is valid + */ + private function _setAuthUID() + { + $this->_uid = getAuthUID(); + + if (!$this->_uid) show_error('User authentification failed'); + } + + /** + * Retrieves an Abschlussprüfung, with permission check + * permission: admin, assistance of study programe or Vorsitz of the Prüfung + * @param $abschlusspruefung_id + * @return object success or error + */ + private function _getAbschlusspruefungBerechtigt($abschlusspruefung_id) + { + $result = error('Error when getting Abschlusspruefung'); + + if (isset($this->_uid)) + { + $abschlusspruefung = $this->AbschlusspruefungModel->getAbschlusspruefung($abschlusspruefung_id); + + if (hasData($abschlusspruefung)) + { + $abschlusspruefung_data = getData($abschlusspruefung); + if ($this->permissionlib->isBerechtigt('admin') || + (isset($abschlusspruefung_data->studiengang_kz) && $this->permissionlib->isBerechtigt('assistenz', 'suid', $abschlusspruefung_data->studiengang_kz)) + || $this->_uid === $abschlusspruefung_data->uid_vorsitz) + $result = $abschlusspruefung; + else + $result = error('Permission denied'); + } + } + + return $result; + } + + /** + * Prepares Abschlussprüfung for save in database, replaces '' with null, sets Freigabedatum + * @param $data + * @return array + */ + private function _prepareAbschlusspruefungDataForSave($data) + { + $nullfields = array('uhrzeit', 'endezeit', 'abschlussbeurteilung_kurzbz', 'protokoll'); + foreach ($data as $idx => $item) + { + if (in_array($idx, $nullfields) & $item === '') + $data[$idx] = null; + } + + if (isset($data['freigabedatum']) && $data['freigabedatum']) + $data['freigabedatum'] = date('Y-m-d'); + + return $data; + } +} diff --git a/application/models/education/Abschlusspruefung_model.php b/application/models/education/Abschlusspruefung_model.php index aef5f67c3..2762496f9 100644 --- a/application/models/education/Abschlusspruefung_model.php +++ b/application/models/education/Abschlusspruefung_model.php @@ -11,4 +11,93 @@ class Abschlusspruefung_model extends DB_Model $this->dbTable = 'lehre.tbl_abschlusspruefung'; $this->pk = 'abschlusspruefung_id'; } + + /** + * Gets data of an Abschlusspruefung, including Abschlussarbeit. + * @param $abschlusspruefung_id + * @return object + */ + public function getAbschlusspruefung($abschlusspruefung_id) + { + $this->load->model('crm/Student_model', 'StudentModel'); + $this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel'); + $this->load->model('education/Projektarbeit_model', 'ProjektarbeitModel'); + $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); + + $abschlusspruefungdata = array(); + + $this->addSelect('tbl_abschlusspruefung.abschlusspruefung_id, tbl_abschlusspruefung.datum, tbl_abschlusspruefung.abschlussbeurteilung_kurzbz, tbl_abschlusspruefung.uhrzeit AS pruefungsbeginn, tbl_abschlusspruefung.endezeit AS pruefungsende, + tbl_abschlusspruefung.freigabedatum, tbl_abschlusspruefung_antritt.bezeichnung AS pruefungsantritt_bezeichnung, tbl_abschlusspruefung_antritt.bezeichnung_english AS pruefungsantritt_bezeichnung_english, tbl_abschlusspruefung.protokoll, + studentpers.vorname AS vorname_student, studentpers.nachname AS nachname_student, studentpers.titelpre AS titelpre_student, studentpers.titelpost AS titelpost_student, studentben.uid AS uid_student, matrikelnr, + vorsitzenderben.uid AS uid_vorsitz, vorsitzenderpers.vorname AS vorname_vorsitz, vorsitzenderpers.nachname AS nachname_vorsitz, vorsitzenderpers.titelpre AS titelpre_vorsitz, vorsitzenderpers.titelpost AS titelpost_vorsitz, + erstprueferpers.vorname AS vorname_erstpruefer, erstprueferpers.nachname AS nachname_erstpruefer, erstprueferpers.titelpre AS titelpre_erstpruefer, erstprueferpers.titelpost AS titelpost_erstpruefer, + zweitprueferpers.vorname AS vorname_zweitpruefer, zweitprueferpers.nachname AS nachname_zweitpruefer, zweitprueferpers.titelpre AS titelpre_zweitpruefer, zweitprueferpers.titelpost AS titelpost_zweitpruefer + '); + $this->addJoin('lehre.tbl_abschlusspruefung_antritt', 'pruefungsantritt_kurzbz', 'LEFT'); + $this->addJoin('public.tbl_benutzer studentben', 'tbl_abschlusspruefung.student_uid = studentben.uid'); + $this->addJoin('public.tbl_person studentpers', 'studentben.person_id = studentpers.person_id'); + $this->addJoin('public.tbl_student', 'studentben.uid = tbl_student.student_uid'); + $this->addJoin('public.tbl_benutzer vorsitzenderben', 'vorsitz = vorsitzenderben.uid', 'LEFT'); + $this->addJoin('public.tbl_person vorsitzenderpers', 'vorsitzenderben.person_id = vorsitzenderpers.person_id', 'LEFT'); + $this->addJoin('public.tbl_person erstprueferpers', 'pruefer1 = erstprueferpers.person_id', 'LEFT'); + $this->addJoin('public.tbl_person zweitprueferpers', 'pruefer2 = zweitprueferpers.person_id', 'LEFT'); + + $abschlusspruefung = $this->load($abschlusspruefung_id); + + if (isError($abschlusspruefung)) + return $abschlusspruefung; + elseif (hasData($abschlusspruefung)) + { + $abschlusspruefungdata = getData($abschlusspruefung)[0]; + + // get Studiengang of Student + $student_uid = $abschlusspruefungdata->uid_student; + $this->StudentModel->addSelect('prestudent_id'); + $prestudent_id = $this->StudentModel->load(array('student_uid' => $student_uid)); + + if (isError($prestudent_id)) + return $prestudent_id; + elseif (hasData($prestudent_id)) + { + //get Studiengangname from Studienplan and -ordnung + $studienordnung = $this->PrestudentstatusModel->getStudienordnungFromPrestudent(getData($prestudent_id)[0]->prestudent_id); + + if (isError($studienordnung)) + return $studienordnung; + elseif (hasData($studienordnung)) + { + $studienordnungdata = getData($studienordnung)[0]; + + $abschlusspruefungdata->studiengang_kz = $studienordnungdata->studiengang_kz; + $abschlusspruefungdata->studiengangbezeichnung = $studienordnungdata->studiengangbezeichnung; + $abschlusspruefungdata->studiengangbezeichnung_englisch = $studienordnungdata->studiengangbezeichnung_englisch; + + $this->StudiengangModel->addSelect('typ'); + $typ = $this->StudiengangModel->load($studienordnungdata->studiengang_kz); + if (isError($typ)) + return $typ; + elseif (hasData($typ)) + { + $abschlusspruefungdata->studiengangstyp = getData($typ)[0]->typ; + } + + // get Abschlussarbeit + $projekttyp = array('Bachelor','Diplom','Master','Dissertation','Lizenziat','Magister'); + $abschlussarbeit = $this->ProjektarbeitModel->getProjektarbeit($student_uid, $studienordnungdata->studiengang_kz, null, $projekttyp, true); + + if (isError($abschlussarbeit)) + return $abschlussarbeit; + if (hasData($abschlussarbeit)) + { + $abschlussarbeit = getData($abschlussarbeit)[0]; + $abschlusspruefungdata->projektarbeit_studiengangstyp_name = $abschlussarbeit->projekttyp_kurzbz; + $abschlusspruefungdata->abschlussarbeit_titel = $abschlussarbeit->titel; + $abschlusspruefungdata->abschlussarbeit_note = $abschlussarbeit->note; + } + } + } + } + + return success($abschlusspruefungdata); + } } diff --git a/application/models/education/Projektarbeit_model.php b/application/models/education/Projektarbeit_model.php index e5652d6ff..109e23373 100644 --- a/application/models/education/Projektarbeit_model.php +++ b/application/models/education/Projektarbeit_model.php @@ -11,4 +11,62 @@ class Projektarbeit_model extends DB_Model $this->dbTable = 'lehre.tbl_projektarbeit'; $this->pk = 'projektarbeit_id'; } + + /** + * Gets Projektarbeit(en) of a student for a Studiengang, Semester, Projekttyp, final. + * @param $student_uid + * @param $studiengang_kz + * @param $studiensemester_kurzbz + * @param $projekttyp + * @param $final + * @return object + */ + public function getProjektarbeit($student_uid, $studiengang_kz = null, $studiensemester_kurzbz = null, $projekttyp = null, $final = null) + { + $qry = "SELECT + tbl_projektarbeit.* , tbl_projekttyp.bezeichnung + FROM + lehre.tbl_projektarbeit + JOIN + lehre.tbl_projekttyp USING (projekttyp_kurzbz), lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung + + WHERE + tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND + tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND + tbl_projektarbeit.student_uid = ?"; + + $params = array($student_uid); + + if (isset($studiengang_kz)) + { + $qry .= ' AND tbl_lehrveranstaltung.studiengang_kz=?'; + $params[] = $studiengang_kz; + } + + if (isset($studiensemester_kurzbz)) + { + $qry .= ' AND tbl_lehreinheit.studiensemester_kurzbz=?'; + $params[] = $studiensemester_kurzbz; + } + + if (isset($projekttyp)) + { + if (is_array($projekttyp)) + $qry .= ' AND tbl_projektarbeit.projekttyp_kurzbz IN ?'; + else + $qry .= ' AND tbl_projektarbeit.projekttyp_kurzbz=?'; + + $params[] = $projekttyp; + } + + if (isset($final)) + { + $qry .= ' AND tbl_projektarbeit.final=?'; + $params[] = $final; + } + + $qry .= ' ORDER BY beginn DESC, projektarbeit_id DESC'; + + return $this->execQuery($qry, $params); + } } diff --git a/application/views/lehre/pruefungsprotokoll.php b/application/views/lehre/pruefungsprotokoll.php new file mode 100644 index 000000000..7a06f3286 --- /dev/null +++ b/application/views/lehre/pruefungsprotokoll.php @@ -0,0 +1,232 @@ +load->view( + 'templates/FHC-Header', + array( + 'title' => 'Pruefungsprotokoll', + 'jquery' => true, + 'jqueryui' => true, + 'bootstrap' => true, + 'fontawesome' => true, + 'dialoglib' => true, + 'ajaxlib' => true, + 'sbadmintemplate' => true, + 'phrases' => array( + 'abschlusspruefung' => array( + 'freigegebenAm', + 'pruefungGespeichert', + 'pruefungSpeichernFehler', + 'abschlussbeurteilungLeer', + 'beginnzeitLeer', + 'beginnzeitFormatError', + 'endezeitLeer', + 'endezeitFormatError', + 'endezeitBeforeError', + 'verfNotice' + ), + 'ui' => array( + 'stunde', + 'minute' + ) + ), + 'customCSSs' => array( + 'public/css/sbadmin2/admintemplate_contentonly.css', + 'vendor/fgelinas/timepicker/jquery.ui.timepicker.css', + 'public/css/lehre/pruefungsprotokoll.css' + ), + 'customJSs' => array( + 'vendor/fgelinas/timepicker/jquery.ui.timepicker.js', + 'public/js/lehre/pruefungsprotokoll.js' + ) + ) +); +?> + +
+
+
+ studiengangstyp == 'b' ? 'Bachelor' : 'Master'; + $pruefung_name = $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'pruefungBachelor') : $this->p->t('abschlusspruefung', 'pruefungMaster'); + $arbeit_name = $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'arbeitBachelor') : $this->p->t('abschlusspruefung', 'arbeitMaster'); + $protokolltextvorlage = $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'pruefungsnotizenBachelor') : $this->p->t('abschlusspruefung', 'pruefungsnotizenMaster'); + $protokolltext = isset($abschlusspruefung->protokoll) ? $abschlusspruefung->protokoll : $protokolltextvorlage; + ?> +
+
+ +

+ studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'abgehaltenAmBachelor') : $this->p->t('abschlusspruefung', 'abgehaltenAmMaster'); ?> + studiengangbezeichnung : $abschlusspruefung->studiengangbezeichnung_englisch ?>, p->t('abschlusspruefung', 'studiengangskennzahl') ?>  + studiengang_kz ?> +

+
+
+
+
+

+ titelpre_student . ' ' . $abschlusspruefung->vorname_student . ' ' . $abschlusspruefung->nachname_student . ' ' . $abschlusspruefung->titelpost_student?> +

+

p->t('abschlusspruefung', 'personenkennzeichen') ?>: matrikelnr ?>

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + p->t('abschlusspruefung', 'pruefungssenat') ?> +
+ p->t('abschlusspruefung', 'vorsitz') ?> + + titelpre_vorsitz . ' ' . $abschlusspruefung->vorname_vorsitz . ' ' . $abschlusspruefung->nachname_vorsitz . ' ' . $abschlusspruefung->titelpost_vorsitz ?> +
+ p->t('abschlusspruefung', 'erstpruefer') ?> + + titelpre_erstpruefer . ' ' . $abschlusspruefung->vorname_erstpruefer . ' ' . $abschlusspruefung->nachname_erstpruefer . ' ' . $abschlusspruefung->titelpost_erstpruefer ?> +
+ p->t('abschlusspruefung', 'zweitpruefer') ?> + + titelpre_zweitpruefer . ' ' . $abschlusspruefung->vorname_zweitpruefer . ' ' . $abschlusspruefung->nachname_zweitpruefer . ' ' . $abschlusspruefung->titelpost_zweitpruefer ?> +
+ p->t('abschlusspruefung', 'pruefungsdatum') ?> + + datum), 'd.m.Y'); ?> + + p->t('abschlusspruefung', 'pruefungsbeginn') ?> + + + + p->t('abschlusspruefung', 'pruefungsende') ?> + + +
+ p->t('abschlusspruefung', 'pruefungsantritt') ?> + + pruefungsantritt_bezeichnung : $abschlusspruefung->pruefungsantritt_bezeichnung_english; ?> +
+ p->t('abschlusspruefung', 'einverstaendniserklaerungName') ?> + + + p->t('abschlusspruefung', 'einverstaendniserklaerungText') ?> +
+ p->t('abschlusspruefung', 'themaBeurteilung') ?>  + + abschlussarbeit_titel) ? $abschlusspruefung->abschlussarbeit_titel : '' ?> + + p->t('lehre', 'note') ?>: abschlussarbeit_note) ? $abschlusspruefung->abschlussarbeit_note : '' ?> +
+ p->t('abschlusspruefung', 'pruefungsgegenstand') ?> + + studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'pruefungsgegenstandBachelor') : $this->p->t('abschlusspruefung', 'pruefungsgegenstandMaster')) ?> +
+ p->t('global', 'notizen')); ?> +
+ + +
+ studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'beurteilungKriterienBachelor') : $this->p->t('abschlusspruefung', 'beurteilungKriterienMaster') ?> +
+ studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'beurteilungBachelor') : $this->p->t('abschlusspruefung', 'beurteilungMaster') ?>: + + +
+
+
+
+
+
+
+

+ freigabedatum); ?> + +

+
+
+
+
+
+ + p->t('abschlusspruefung', 'freigegebenAm') . ' ' . date_format(date_create($abschlusspruefung->freigabedatum), 'd.m.Y') + ?> + +
+
+
+
+
+
+ + + + + +
+
+
+
+
+ +
+
+
\ No newline at end of file diff --git a/application/views/lehre/pruefungsprotokollUebersicht.php b/application/views/lehre/pruefungsprotokollUebersicht.php new file mode 100644 index 000000000..d14ec670a --- /dev/null +++ b/application/views/lehre/pruefungsprotokollUebersicht.php @@ -0,0 +1,46 @@ +load->view( + 'templates/FHC-Header', + array( + 'title' => 'Prüfungsprotokoll', + 'jquery' => true, + 'jqueryui' => true, + 'jquerycheckboxes' => true, + 'bootstrap' => true, + 'fontawesome' => true, + 'tablesorter' => true, + 'ajaxlib' => true, + 'dialoglib' => true, + 'tablewidget' => true, + 'phrases' => array( + 'ui' => array( + 'keineDatenVorhanden', + ) + ), + 'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css'), + 'customJSs' => array('public/js/bootstrapper.js') + ) + ); +?> + + +
+
+
+
+ +
+
+ p->t('abschlusspruefung','einfuehrungstext'); ?> +
+
+ load->view('lehre/pruefungsprotokollUebersichtData.php'); ?> +
+
+
+
+ + +load->view('templates/FHC-Footer'); ?> diff --git a/application/views/lehre/pruefungsprotokollUebersichtData.php b/application/views/lehre/pruefungsprotokollUebersichtData.php new file mode 100644 index 000000000..d7bf3c9d0 --- /dev/null +++ b/application/views/lehre/pruefungsprotokollUebersichtData.php @@ -0,0 +1,67 @@ +='2020-05-27' +ORDER BY datum, nachname, vorname +"; + +$filterWidgetArray = array( + 'query' => $query, + 'tableUniqueId' => 'pruefungsprotokoll', + 'requiredPermissions' => 'lehre/pruefungsbeurteilung', + 'datasetRepresentation' => 'tablesorter', + 'columnsAliases' => array( + ucfirst($this->p->t('global', 'details')), + ucfirst($this->p->t('global', 'name')), + ucfirst($this->p->t('lehre', 'studiengang')), + ucfirst($this->p->t('global', 'datum')), + ucfirst($this->p->t('global', 'status')), + ), + 'formatRow' => function($datasetRaw) { + + /* NOTE: Dont use $this here for PHP Version compatibility */ + $datasetRaw->{'abschlusspruefung_id'} = sprintf( + 'Protokoll ausfüllen', + site_url('lehre/Pruefungsprotokoll/Protokoll'), + $datasetRaw->{'abschlusspruefung_id'} + ); + + if ($datasetRaw->{'datum'} == null) + { + $datasetRaw->{'datum'} = '-'; + } + else + { + $datasetRaw->{'datum'} = date_format(date_create($datasetRaw->{'datum'}),'d.m.Y'); + } + if ($datasetRaw->{'freigabedatum'} == null) + { + $datasetRaw->{'freigabedatum'} = 'offen'; + } + else + { + $datasetRaw->{'freigabedatum'} = 'Freigegeben am: '.date_format(date_create($datasetRaw->{'freigabedatum'}),'d.m.Y'); + } + return $datasetRaw; + }, +); + +echo $this->widgetlib->widget('TableWidget', $filterWidgetArray); + +?> diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 9916f6fc5..9967de169 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -3776,6 +3776,9 @@ if(!$error) $pruefung->pruefer2 = $_POST['pruefer2']; $pruefung->pruefer3 = $_POST['pruefer3']; $pruefung->abschlussbeurteilung_kurzbz = $_POST['abschlussbeurteilung_kurzbz']; + if(isset($_POST['pruefungsantritt_kurzbz'])) + $pruefung->pruefungsantritt_kurzbz = $_POST['pruefungsantritt_kurzbz']; + $pruefung->note = $_POST['notekommpruef']; $pruefung->akadgrad_id = $_POST['akadgrad_id']; $pruefung->pruefungstyp_kurzbz = $_POST['pruefungstyp_kurzbz']; @@ -3815,10 +3818,25 @@ if(!$error) if(isset($_POST['abschlusspruefung_id']) && is_numeric($_POST['abschlusspruefung_id'])) { $pruefung = new abschlusspruefung(); - - if($pruefung->delete($_POST['abschlusspruefung_id'])) + if($pruefung->load($_POST['abschlusspruefung_id'])) { - $return = true; + if ($pruefung->freigabedatum == '') + { + if($pruefung->delete($_POST['abschlusspruefung_id'])) + { + $return = true; + } + else + { + $errormsg = $pruefung->errormsg; + $return = false; + } + } + else + { + $errormsg = 'Löschen ist nicht möglich da bereits ein freigegebenes Protokoll vorhanden ist'; + $return = false; + } } else { diff --git a/content/student/studentabschlusspruefung.js.php b/content/student/studentabschlusspruefung.js.php index cac9cb78a..caaa32051 100644 --- a/content/student/studentabschlusspruefung.js.php +++ b/content/student/studentabschlusspruefung.js.php @@ -163,6 +163,7 @@ function StudentAbschlusspruefungDetailDisableFields(val) document.getElementById('student-abschlusspruefung-menulist-pruefer2').disabled=val; document.getElementById('student-abschlusspruefung-menulist-pruefer3').disabled=val; document.getElementById('student-abschlusspruefung-menulist-abschlussbeurteilung').disabled=val; + document.getElementById('student-abschlusspruefung-menulist-pruefungsantritt').disabled=val; document.getElementById('student-abschlusspruefung-menulist-notekommpruef').disabled=val; document.getElementById('student-abschlusspruefung-menulist-akadgrad').disabled=val; document.getElementById('student-abschlusspruefung-menulist-typ').disabled=val; @@ -186,6 +187,7 @@ function StudentAbschlusspruefungResetFields() document.getElementById('student-abschlusspruefung-menulist-pruefer2').value=''; document.getElementById('student-abschlusspruefung-menulist-pruefer3').value=''; document.getElementById('student-abschlusspruefung-menulist-abschlussbeurteilung').value=''; + document.getElementById('student-abschlusspruefung-menulist-pruefungsantritt').value=''; document.getElementById('student-abschlusspruefung-menulist-notekommpruef').value=''; //document.getElementById('student-abschlusspruefung-menulist-akadgrad').value=''; //document.getElementById('student-abschlusspruefung-menulist-typ').value='Bachelor'; @@ -342,6 +344,7 @@ function StudentAbschlusspruefungAuswahl() pruefer3 = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#pruefer3" )); pruefer3_nachname = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#pruefer3_nachname" )); abschlussbeurteilung_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#abschlussbeurteilung_kurzbz" )); + pruefungsantritt_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#pruefungsantritt_kurzbz" )); notekommpruef = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#notekommpruef" )); akadgrad_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#akadgrad_id" )); datum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#datum" )); @@ -395,6 +398,7 @@ function StudentAbschlusspruefungAuswahl() MenulistSelectItemOnValue('student-abschlusspruefung-menulist-pruefer2', pruefer2); MenulistSelectItemOnValue('student-abschlusspruefung-menulist-pruefer3', pruefer3); document.getElementById('student-abschlusspruefung-menulist-abschlussbeurteilung').value=abschlussbeurteilung_kurzbz; + document.getElementById('student-abschlusspruefung-menulist-pruefungsantritt').value=pruefungsantritt_kurzbz; document.getElementById('student-abschlusspruefung-menulist-notekommpruef').value=notekommpruef; document.getElementById('student-abschlusspruefung-menulist-akadgrad').value=akadgrad_id; document.getElementById('student-abschlusspruefung-datum-datum').value=datum; @@ -424,6 +428,7 @@ function StudentAbschlusspruefungSpeichern() var pruefer2 = MenulistGetSelectedValue('student-abschlusspruefung-menulist-pruefer2'); var pruefer3 = MenulistGetSelectedValue('student-abschlusspruefung-menulist-pruefer3'); var abschlussbeurteilung_kurzbz = document.getElementById('student-abschlusspruefung-menulist-abschlussbeurteilung').value; + var pruefungsantritt_kurzbz = document.getElementById('student-abschlusspruefung-menulist-pruefungsantritt').value; var notekommpruef = document.getElementById('student-abschlusspruefung-menulist-notekommpruef').value; var akadgrad_id = document.getElementById('student-abschlusspruefung-menulist-akadgrad').value; var datum = document.getElementById('student-abschlusspruefung-datum-datum').value; @@ -482,6 +487,7 @@ function StudentAbschlusspruefungSpeichern() req.add('pruefer2', pruefer2); req.add('pruefer3', pruefer3); req.add('abschlussbeurteilung_kurzbz', abschlussbeurteilung_kurzbz); + req.add('pruefungsantritt_kurzbz', pruefungsantritt_kurzbz); req.add('notekommpruef', notekommpruef); req.add('akadgrad_id', akadgrad_id); req.add('datum', ConvertDateToISO(datum)); diff --git a/content/student/studentabschlusspruefungoverlay.xul.php b/content/student/studentabschlusspruefungoverlay.xul.php index 3c915e270..e281a7a16 100644 --- a/content/student/studentabschlusspruefungoverlay.xul.php +++ b/content/student/studentabschlusspruefungoverlay.xul.php @@ -97,6 +97,14 @@ echo ''; class="sortDirectionIndicator" sort="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#uhrzeit" onclick="StudentAbschlusspruefungTreeSort()"/> +