mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-25 00:24:35 +00:00
Merge branch 'feature-7772/Digitalisiertes_Pruefungsprotokoll'
This commit is contained in:
@@ -0,0 +1,223 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
*/
|
||||
class Pruefungsprotokoll extends Auth_Controller
|
||||
{
|
||||
private $_uid; // uid of the logged user
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// Set required permissions
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => '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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,232 @@
|
||||
<?php
|
||||
$this->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'
|
||||
)
|
||||
)
|
||||
);
|
||||
?>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<?php if (isset($abschlusspruefung)):
|
||||
$studiengangstyp_name = $abschlusspruefung->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;
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'protokoll') ?> <?php echo $pruefung_name ?>
|
||||
</h3>
|
||||
<p>
|
||||
<?php echo $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'abgehaltenAmBachelor') : $this->p->t('abschlusspruefung', 'abgehaltenAmMaster'); ?>
|
||||
<?php echo $language == 'German' ? $abschlusspruefung->studiengangbezeichnung : $abschlusspruefung->studiengangbezeichnung_englisch ?>, <?php echo $this->p->t('abschlusspruefung', 'studiengangskennzahl') ?>
|
||||
<?php echo $abschlusspruefung->studiengang_kz ?>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h4>
|
||||
<?php echo $abschlusspruefung->titelpre_student . ' ' . $abschlusspruefung->vorname_student . ' ' . $abschlusspruefung->nachname_student . ' ' . $abschlusspruefung->titelpost_student?>
|
||||
</h4>
|
||||
<p><?php echo $this->p->t('abschlusspruefung', 'personenkennzeichen') ?>: <?php echo $abschlusspruefung->matrikelnr ?></p>
|
||||
<br />
|
||||
<input type="hidden" name="abschlusspruefung_id" value="<?php echo $abschlusspruefung->abschlusspruefung_id;?>" id="abschlusspruefung_id">
|
||||
<form id="protocolform">
|
||||
<table class="table-condensed table-bordered table-responsive" id="protocoltbl">
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungssenat') ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'vorsitz') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo $abschlusspruefung->titelpre_vorsitz . ' ' . $abschlusspruefung->vorname_vorsitz . ' ' . $abschlusspruefung->nachname_vorsitz . ' ' . $abschlusspruefung->titelpost_vorsitz ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'erstpruefer') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo $abschlusspruefung->titelpre_erstpruefer . ' ' . $abschlusspruefung->vorname_erstpruefer . ' ' . $abschlusspruefung->nachname_erstpruefer . ' ' . $abschlusspruefung->titelpost_erstpruefer ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'zweitpruefer') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo $abschlusspruefung->titelpre_zweitpruefer . ' ' . $abschlusspruefung->vorname_zweitpruefer . ' ' . $abschlusspruefung->nachname_zweitpruefer . ' ' . $abschlusspruefung->titelpost_zweitpruefer ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="namecellwidth">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsdatum') ?>
|
||||
</td>
|
||||
<td class="datevalcellwidth">
|
||||
<?php echo date_format(date_create($abschlusspruefung->datum), 'd.m.Y'); ?>
|
||||
</td>
|
||||
<td class="cellbg namecellwidth">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsbeginn') ?>
|
||||
</td>
|
||||
<td class="timecellwidth">
|
||||
<input class="timepicker form-control" name="pruefungsbeginn" id="pruefungsbeginn" value="<?php echo isEmptyString($abschlusspruefung->pruefungsbeginn) ? '' : date_format(date_create($abschlusspruefung->pruefungsbeginn), 'H:i') ?>">
|
||||
</td>
|
||||
<td class="cellbg namecellwidth">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsende') ?>
|
||||
</td>
|
||||
<td class="timecellwidth">
|
||||
<input class="timepicker form-control" name="pruefungsende" id="pruefungsende" value="<?php echo isEmptyString($abschlusspruefung->pruefungsbeginn) ? '' : date_format(date_create($abschlusspruefung->pruefungsende), 'H:i') ?>">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsantritt') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo $language == 'German' ? $abschlusspruefung->pruefungsantritt_bezeichnung : $abschlusspruefung->pruefungsantritt_bezeichnung_english; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'einverstaendniserklaerungName') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<input type="checkbox" id="verfCheck">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'einverstaendniserklaerungText') ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'themaBeurteilung') ?> <?php echo $arbeit_name ?>
|
||||
</td>
|
||||
<td colspan="4">
|
||||
<?php echo isset($abschlusspruefung->abschlussarbeit_titel) ? $abschlusspruefung->abschlussarbeit_titel : '' ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo $this->p->t('lehre', 'note') ?>: <?php echo isset($abschlusspruefung->abschlussarbeit_note) ? $abschlusspruefung->abschlussarbeit_note : '' ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsgegenstand') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo ($abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'pruefungsgegenstandBachelor') : $this->p->t('abschlusspruefung', 'pruefungsgegenstandMaster')) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<?php echo ucfirst($this->p->t('global', 'notizen')); ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
|
||||
<textarea id="protokoll" name="protokoll" class="form-control" rows="15" cols="107"><?php echo $protokolltext ?></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<?php echo $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'beurteilungKriterienBachelor') : $this->p->t('abschlusspruefung', 'beurteilungKriterienMaster') ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<?php echo $abschlusspruefung->studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'beurteilungBachelor') : $this->p->t('abschlusspruefung', 'beurteilungMaster') ?>:
|
||||
<select name="abschlussbeurteilung_kurzbz" id="abschlussbeurteilung_kurzbz" class="form-control">
|
||||
<option value="">-- <?php echo $this->p->t('ui', 'bitteWaehlen'); ?> --</option>
|
||||
<?php foreach ($abschlussbeurteilung as $beurteilung):
|
||||
$selected = $beurteilung->abschlussbeurteilung_kurzbz == $abschlusspruefung->abschlussbeurteilung_kurzbz ? " selected" : "" ?>
|
||||
<option value="<?php echo $beurteilung->abschlussbeurteilung_kurzbz; ?>"<?php echo $selected ?>><?php echo $language == 'German' ? $beurteilung->bezeichnung : $beurteilung->bezeichnung_english; ?> </option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<span id="verfNotice"></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12 text-right">
|
||||
<p>
|
||||
<?php $freigegeben = isset($abschlusspruefung->freigabedatum); ?>
|
||||
<button id="saveProtocolBtn" class="btn btn-default"<?php echo $freigegeben ? " disabled" : "" ?>><?php echo $this->p->t('ui', 'speichern') ?></button>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<hr id="hrbottom">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<span id="freigegebenText">
|
||||
<?php
|
||||
if ($freigegeben)
|
||||
echo ' ' . $this->p->t('abschlusspruefung', 'freigegebenAm') . ' ' . date_format(date_create($abschlusspruefung->freigabedatum), 'd.m.Y')
|
||||
?>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="input-group">
|
||||
<input id="username" type="hidden" value=""><!-- this is to prevent Chrome autofilling a random input field with the username-->
|
||||
<input id="password" type="password" autocomplete="new-password" class="form-control" placeholder="CIS-<?php echo ucfirst($this->p->t('password', 'password')); ?>">
|
||||
<span class="input-group-btn">
|
||||
<button id="freigebenProtocolBtn" class="btn btn-default"><?php echo $this->p->t('abschlusspruefung', 'ueberpruefenFreigeben') ?></button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
$this->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')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
<?php echo $this->p->t('abschlusspruefung','pruefungsprotokoll'); ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo $this->p->t('abschlusspruefung','einfuehrungstext'); ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<?php $this->load->view('lehre/pruefungsprotokollUebersichtData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
$UID = getAuthUID();
|
||||
|
||||
$query = "
|
||||
SELECT
|
||||
tbl_abschlusspruefung.abschlusspruefung_id,
|
||||
tbl_person.nachname || ' ' || tbl_person.vorname as name,
|
||||
tbl_studiengangstyp.bezeichnung || ' ' || tbl_studiengang.bezeichnung,
|
||||
tbl_abschlusspruefung.datum,
|
||||
tbl_abschlusspruefung.freigabedatum
|
||||
FROM
|
||||
lehre.tbl_abschlusspruefung
|
||||
JOIN public.tbl_student USING(student_uid)
|
||||
JOIN public.tbl_benutzer ON(student_uid=uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN public.tbl_studiengang ON(tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz)
|
||||
JOIN public.tbl_studiengangstyp USING(typ);
|
||||
WHERE
|
||||
vorsitz='".$UID."'
|
||||
AND datum>='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(
|
||||
'<a href="%s?abschlusspruefung_id=%s" target="_blank">Protokoll ausfüllen</a>',
|
||||
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);
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user