diff --git a/application/config/message.php b/application/config/message.php
index 35d34124b..8232cdfb7 100644
--- a/application/config/message.php
+++ b/application/config/message.php
@@ -18,6 +18,8 @@ $config['ou_receivers'] = array('ass');
$config['ou_receivers_no_notice'] = array('infocenter');
// Organization units that will not send the notice email to the internal account, but to the private one
$config['ou_receivers_private'] = array('eac', 'ewu', 'scs');
+//
+$config['ou_function_whitelist'] = array('ass', 'Leitung', 'fachzuordnung', 'oezuordnung');
$config['message_redirect_url'] = array();
$config['message_redirect_url']['fallback'] = site_url('system/messages/ViewMessage/writeReply');
diff --git a/application/config/navigation.php b/application/config/navigation.php
index f44b297a5..84004b58e 100644
--- a/application/config/navigation.php
+++ b/application/config/navigation.php
@@ -72,11 +72,18 @@ $config['navigation_header'] = array(
'sort' => 40,
'requiredPermissions' => 'basis/vilesci:r',
'children'=> array(
+ 'messages' => array(
+ 'link' => site_url('system/messages/MessageClient/read'),
+ 'icon' => '',
+ 'target' => '_blank',
+ 'description' => 'Messages',
+ 'sort' => 10,
+ ),
'bpk' => array(
'link' => site_url('person/BPKWartung'),
'icon' => '',
'description' => 'BPK Wartung',
- 'sort' => 10,
+ 'sort' => 20,
'requiredPermissions' => 'admin:r'
)
)
diff --git a/application/controllers/api/v1/system/Message.php b/application/controllers/api/v1/system/Message.php
index 5c663e832..1825b7db9 100644
--- a/application/controllers/api/v1/system/Message.php
+++ b/application/controllers/api/v1/system/Message.php
@@ -149,10 +149,10 @@ class Message extends APIv1_Controller
if (isSuccess($postMessage))
{
$result = $this->messagelib->sendMessageUser(
- $this->post()['receiver_id']), // receiverPersonId
+ $this->post()['receiver_id'], // receiverPersonId
$this->post()['subject'], // subject
$this->post()['body'], // body
- $this->post()['person_id']) ? $this->post()['person_id'] : null, // sender_id
+ $this->post()['person_id'] ? $this->post()['person_id'] : null, // sender_id
isset($this->post()['oe_kurzbz']) ? $this->post()['oe_kurzbz'] : null, // senderOU
isset($this->post()['relationmessage_id']) ? $this->post()['relationmessage_id'] : null, // relationmessage_id
MSG_PRIORITY_NORMAL, // priority
diff --git a/application/controllers/jobs/OneTimeMessages.php b/application/controllers/jobs/OneTimeMessages.php
new file mode 100644
index 000000000..58bc1fb7c
--- /dev/null
+++ b/application/controllers/jobs/OneTimeMessages.php
@@ -0,0 +1,122 @@
+load->model('CL/Messages_model', 'CLMessagesModel');
+ }
+
+ /**
+ * Sends the same message to all the applicants whith:
+ * - Status set as "Wartender"
+ * - The given study course type (b = bachelor, m = master)
+ * - The given semester (ex WS2020)
+ * - How long since applicant (days)
+ * - The given template id to be used as message subject and body (vorlage_kurzbz)
+ * The sender of all the messages is specified by the parameter senderId (sender person_id)
+ */
+ public function sendMessageToApplicantsStillWaiting($senderId, $studyCourseType, $semester, $days, $messageTemplate)
+ {
+ $this->logInfo('Send message to applicants still waiting start');
+
+ $queryParams = array(
+ $semester,
+ $studyCourseType,
+ $semester,
+ $studyCourseType,
+ $semester,
+ $studyCourseType
+ );
+
+ $dbModel = new DB_Model();
+
+ $dbPrestudents = $dbModel->execReadOnlyQuery(
+ 'SELECT distinct on(person_id) p.prestudent_id
+ FROM public.tbl_prestudent p
+ JOIN public.tbl_prestudentstatus ps USING (prestudent_id)
+ JOIN public.tbl_studiengang s USING (studiengang_kz)
+ WHERE ps.status_kurzbz = \'Wartender\'
+ AND ps.studiensemester_kurzbz = ?
+ AND ps.datum <= NOW() - \''.$days.' days\'::interval
+ AND s.typ = ?
+ AND NOT EXISTS (
+ SELECT pp.person_id
+ FROM public.tbl_prestudent pp
+ JOIN public.tbl_prestudentstatus pss USING (prestudent_id)
+ JOIN public.tbl_studiengang ss USING (studiengang_kz)
+ WHERE pss.status_kurzbz = \'Aufgenommener\'
+ AND pss.studiensemester_kurzbz = ?
+ AND ss.typ = ?
+ AND pp.person_id = p.person_id
+ )
+ AND NOT EXISTS (
+ SELECT pp.person_id
+ FROM public.tbl_prestudent pp
+ JOIN public.tbl_prestudentstatus pss USING (prestudent_id)
+ JOIN public.tbl_studiengang ss USING (studiengang_kz)
+ WHERE pss.status_kurzbz = \'Student\'
+ AND pss.studiensemester_kurzbz = ?
+ AND ss.typ = ?
+ AND pp.person_id = p.person_id
+ )',
+ $queryParams
+ );
+
+ if (isError($dbPrestudents))
+ {
+ $this->logError(getError($dbPrestudents), $queryParams);
+ }
+ elseif (!hasData($dbPrestudents))
+ {
+ $this->logInfo('There were no users to send message');
+ }
+ else
+ {
+ $prestudentIdsArray = array();
+
+ foreach (getData($dbPrestudents) as $dbPrestudent)
+ {
+ $prestudentIdsArray[] = $dbPrestudent->prestudent_id;
+ }
+
+ $sendMessage = $this->CLMessagesModel->sendExplicitTemplateSenderId(
+ $senderId, // sender person id
+ $prestudentIdsArray, // prestudents id
+ null, // organization unit
+ $messageTemplate, // template id
+ null // extra variables
+ );
+
+ if (isError($sendMessage))
+ {
+ $this->logError(
+ getError($sendMessage),
+ array(
+ 'prestudents' => $prestudentIdsArray,
+ 'template' => $messageTemplate
+ )
+ );
+ }
+
+ $this->logInfo('Total amount of prestudents: '.count($prestudentIdsArray));
+ }
+
+ $this->logInfo('Send message to applicants still waiting end');
+ }
+}
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/controllers/lehre/lehrauftrag/Lehrauftrag.php b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php
index dade1fb21..b7140c7c3 100644
--- a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php
+++ b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php
@@ -52,7 +52,8 @@ class Lehrauftrag extends Auth_Controller
array(
'global',
'ui',
- 'lehre'
+ 'lehre',
+ 'table'
)
);
diff --git a/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php b/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php
index 4fc0a879b..6ac2da887 100644
--- a/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php
+++ b/application/controllers/lehre/lehrauftrag/LehrauftragAkzeptieren.php
@@ -8,180 +8,196 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
*/
class LehrauftragAkzeptieren extends Auth_Controller
{
- const APP = 'lehrauftrag';
- const LEHRAUFTRAG_URI = 'lehre/lehrauftrag/LehrauftragAkzeptieren'; // URL prefix for this controller
- const BERECHTIGUNG_LEHRAUFTRAG_AKZEPTIEREN = 'lehre/lehrauftrag_akzeptieren';
+ const APP = 'lehrauftrag';
+ const LEHRAUFTRAG_URI = 'lehre/lehrauftrag/LehrauftragAkzeptieren'; // URL prefix for this controller
+ const BERECHTIGUNG_LEHRAUFTRAG_AKZEPTIEREN = 'lehre/lehrauftrag_akzeptieren';
- private $_uid; // uid of the logged user
+ private $_uid; // uid of the logged user
- /**
- * Constructor
- */
- public function __construct()
- {
- // Set required permissions
- parent::__construct(
- array(
- 'index' => 'lehre/lehrauftrag_akzeptieren:r',
- 'acceptLehrauftrag' => 'lehre/lehrauftrag_akzeptieren:rw',
+ /**
+ * Constructor
+ */
+ public function __construct()
+ {
+ // Set required permissions
+ parent::__construct(
+ array(
+ 'index' => 'lehre/lehrauftrag_akzeptieren:r',
+ 'acceptLehrauftrag' => 'lehre/lehrauftrag_akzeptieren:rw',
'checkInkludierteLehre' => 'lehre/lehrauftrag_akzeptieren:rw'
- )
- );
+ )
+ );
- // Load models
- $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
- $this->load->model('accounting/Vertrag_model', 'VertragModel');
- $this->load->model('accounting/Vertragvertragsstatus_model', 'VertragvertragsstatusModel');
- $this->load->model('ressource/Mitarbeiter_model', 'MitarbeiterModel');
- $this->load->model('codex/Bisverwendung_model', 'BisverwendungModel');
- $this->load->model('person/Benutzer_model', 'BenutzerModel');
+ // Load models
+ $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
+ $this->load->model('accounting/Vertrag_model', 'VertragModel');
+ $this->load->model('accounting/Vertragvertragsstatus_model', 'VertragvertragsstatusModel');
+ $this->load->model('ressource/Mitarbeiter_model', 'MitarbeiterModel');
+ $this->load->model('codex/Bisverwendung_model', 'BisverwendungModel');
+ $this->load->model('person/Benutzer_model', 'BenutzerModel');
- // Load libraries
- $this->load->library('WidgetLib');
- $this->load->library('PermissionLib');
- $this->load->library('AuthLib');
+ // Load libraries
+ $this->load->library('WidgetLib');
+ $this->load->library('PermissionLib');
+ $this->load->library('AuthLib');
- // Load helpers
- $this->load->helper('array');
- $this->load->helper('url');
+ // Load helpers
+ $this->load->helper('array');
+ $this->load->helper('url');
- // Load language phrases
- $this->loadPhrases(
- array(
- 'global',
- 'ui',
- 'lehre'
- )
- );
+ // Load language phrases
+ $this->loadPhrases(
+ array(
+ 'global',
+ 'ui',
+ 'lehre',
+ 'password',
+ 'dms',
+ 'table'
+ )
+ );
- $this->_setAuthUID(); // sets property uid
+ $this->_setAuthUID(); // sets property uid
- $this->setControllerId(); // sets the controller id
- }
+ $this->setControllerId(); // sets the controller id
+ }
- // -----------------------------------------------------------------------------------------------------------------
- // Public methods
+ // -----------------------------------------------------------------------------------------------------------------
+ // Public methods
- /**
- * Main page of Lehrauftrag
- */
- public function index()
- {
- // Set studiensemester selected for studiengang dropdown
- $studiensemester_kurzbz = $this->input->get('studiensemester'); // if provided by selected studiensemester
- if (is_null($studiensemester_kurzbz)) // else set next studiensemester as default value
- {
- $studiensemester = $this->StudiensemesterModel->getAktOrNextSemester();
- if (hasData($studiensemester))
- {
- $studiensemester_kurzbz = $studiensemester->retval[0]->studiensemester_kurzbz;
- }
- elseif (isError($studiensemester))
- {
- show_error(getError($studiensemester));
- }
- }
+ /**
+ * Main page of Lehrauftrag
+ */
+ public function index()
+ {
+ // Set studiensemester selected for studiengang dropdown
+ $studiensemester_kurzbz = $this->input->get('studiensemester'); // if provided by selected studiensemester
+ if (is_null($studiensemester_kurzbz)) // else set next studiensemester as default value
+ {
+ $studiensemester = $this->StudiensemesterModel->getAktOrNextSemester();
+ if (hasData($studiensemester))
+ {
+ $studiensemester_kurzbz = $studiensemester->retval[0]->studiensemester_kurzbz;
+ }
+ elseif (isError($studiensemester))
+ {
+ show_error(getError($studiensemester));
+ }
+ }
- $view_data = array(
- 'studiensemester_selected' => $studiensemester_kurzbz
- );
+ // Check if user is external lector
+ $this->MitarbeiterModel->addJoin('public.tbl_benutzer', 'uid = mitarbeiter_uid');
+ $result = $this->MitarbeiterModel->loadWhere(array(
+ 'uid' => $this->_uid,
+ 'fixangestellt' => false,
+ 'personalnummer > ' => 0,
+ 'lektor' => true,
+ 'aktiv' => true
+ ));
+
+ $is_external_lector = hasData($result) ? true : false;
+
+ $view_data = array(
+ 'studiensemester_selected' => $studiensemester_kurzbz,
+ 'is_external_lector' => $is_external_lector
+ );
- $this->load->view('lehre/lehrauftrag/acceptLehrauftrag.php', $view_data);
- }
+ $this->load->view('lehre/lehrauftrag/acceptLehrauftrag.php', $view_data);
+ }
- /**
- * Set the contract status of Lehrauftrag to 'akzeptiert'.
- * Performed on ajax call.
- */
- public function acceptLehrauftrag()
- {
- // Verify password
- $password = $this->input->post('password');
- if (!isEmptyString($password))
- {
- $result = $this->authlib->checkUserAuthByUsernamePassword($this->_uid, $password);
- if (isError($result))
- {
- return $this->outputJsonError('Passwort ist inkorrekt'); // exit if password is incorrect
- }
- }
- else
- {
+ /**
+ * Set the contract status of Lehrauftrag to 'akzeptiert'.
+ * Performed on ajax call.
+ */
+ public function acceptLehrauftrag()
+ {
+ // Verify password
+ $password = $this->input->post('password');
+ if (!isEmptyString($password))
+ {
+ $result = $this->authlib->checkUserAuthByUsernamePassword($this->_uid, $password);
+ if (isError($result))
+ {
+ return $this->outputJsonError('Passwort ist inkorrekt'); // exit if password is incorrect
+ }
+ }
+ else
+ {
return $this->outputJsonError('Passwort fehlt');
- }
+ }
- // Loop through lehraufträge
- $lehrauftrag_arr = $this->input->post('selected_data');
+ // Loop through lehraufträge
+ $lehrauftrag_arr = $this->input->post('selected_data');
- if(is_array($lehrauftrag_arr))
- {
- foreach($lehrauftrag_arr as $lehrauftrag)
- {
- $vertrag_id = (!is_null($lehrauftrag['vertrag_id'])) ? $lehrauftrag['vertrag_id'] : null;
+ if(is_array($lehrauftrag_arr))
+ {
+ foreach($lehrauftrag_arr as $lehrauftrag)
+ {
+ $vertrag_id = (!is_null($lehrauftrag['vertrag_id'])) ? $lehrauftrag['vertrag_id'] : null;
- // Check if user is entitled to accept this Lehrauftrag
- // * first retrieve person_id of the contract
- $this->VertragModel->addSelect('person_id');
+ // Check if user is entitled to accept this Lehrauftrag
+ // * first retrieve person_id of the contract
+ $this->VertragModel->addSelect('person_id');
- if ($result = getData($this->VertragModel->load($vertrag_id)))
- {
- // * then find the uid of that contracts person_id
- $this->BenutzerModel->addSelect('uid');
+ if ($result = getData($this->VertragModel->load($vertrag_id)))
+ {
+ // * then find the uid of that contracts person_id
+ $this->BenutzerModel->addSelect('uid');
- if ($result = getData($this->BenutzerModel->getFromPersonId($result[0]->person_id)))
- {
- // * finally check uid of contract against the logged in user
+ if ($result = getData($this->BenutzerModel->getFromPersonId($result[0]->person_id)))
+ {
+ // * finally check uid of contract against the logged in user
$account_found = false;
- foreach($result as $row_accounts)
+ foreach ($result as $row_accounts)
{
- if($row_accounts->uid == $this->_uid)
+ if ($row_accounts->uid == $this->_uid)
{
$account_found = true;
}
}
- if (!$account_found)
- {
+ if (!$account_found)
+ {
return $this->outputJsonError('Sie haben keine Berechtigung für einen Vertrag');
- }
- }
- else
- {
+ }
+ }
+ else
+ {
return $this->outputJsonError('Fehler beim Laden der Benutzerdaten');
- }
- }
- else
- {
+ }
+ }
+ else
+ {
return $this->outputJsonError('Fehler beim Laden des Vertrags');
- }
+ }
- // Set status to accepted
- $result = $this->VertragvertragsstatusModel->setStatus($vertrag_id, $this->_uid, 'akzeptiert');
+ // Set status to accepted
+ $result = $this->VertragvertragsstatusModel->setStatus($vertrag_id, $this->_uid, 'akzeptiert');
- if ($result->retval)
- {
- $json []= array(
- 'row_index' => $lehrauftrag['row_index'],
- 'akzeptiert' => date('Y-m-d')
- );
- }
+ if ($result->retval)
+ {
+ $json []= array(
+ 'row_index' => $lehrauftrag['row_index'],
+ 'akzeptiert' => date('Y-m-d')
+ );
+ }
else
{
return $this->outputJsonError($result->retval);
}
- }
+ }
- // Output json to ajax
- if (isset($json) && !isEmptyArray($json))
- {
- $this->outputJsonSuccess($json);
- }
- }
+ // Output json to ajax
+ if (isset($json) && !isEmptyArray($json))
+ {
+ $this->outputJsonSuccess($json);
+ }
+ }
else
{
return $this->outputJsonError('Fehler beim Übertragen der Daten.');
}
- }
+ }
/**
* Check if lectors latest Verwendung has inkludierte Lehre
@@ -189,7 +205,7 @@ class LehrauftragAkzeptieren extends Auth_Controller
* - inkludierte_lehre -1: fix employed lector -> has inkludierte Lehre (all inclusive)
* - inkludierte_lehre > 0: fix employed lector -> has inkludierte Lehre (value is amount of hours included)
*/
- public function checkInkludierteLehre()
+ public function checkInkludierteLehre()
{
$result = $this->BisverwendungModel->getLast($this->_uid, false);
@@ -203,17 +219,17 @@ class LehrauftragAkzeptieren extends Auth_Controller
}
}
- // -----------------------------------------------------------------------------------------------------------------
- // Private methods
+ // -----------------------------------------------------------------------------------------------------------------
+ // Private methods
- /**
- * Retrieve the UID of the logged user and checks if it is valid
- */
- private function _setAuthUID()
- {
- $this->_uid = getAuthUID();
+ /**
+ * 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');
- }
+ if (!$this->_uid) show_error('User authentification failed');
+ }
}
diff --git a/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php b/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php
index b339c81a4..64a2be69b 100644
--- a/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php
+++ b/application/controllers/lehre/lehrauftrag/LehrauftragErteilen.php
@@ -50,7 +50,8 @@ class LehrauftragErteilen extends Auth_Controller
array(
'global',
'ui',
- 'lehre'
+ 'lehre',
+ 'table'
)
);
diff --git a/application/controllers/system/FAS_UDF.php b/application/controllers/system/FAS_UDF.php
index cd78d64d2..febe266c7 100644
--- a/application/controllers/system/FAS_UDF.php
+++ b/application/controllers/system/FAS_UDF.php
@@ -7,60 +7,34 @@ class FAS_UDF extends Auth_Controller
const FAS_UDF_SESSION_NAME = 'fasUdfSessionName';
public function __construct()
- {
- parent::__construct(
+ {
+ parent::__construct(
array(
'index' => 'basis/person:r',
'saveUDF' => 'basis/person:rw'
)
);
-
+
$this->load->model('person/Person_model', 'PersonModel');
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
- }
+ }
/**
*
*/
public function index()
{
- $fasUdfSession = getSession(self::FAS_UDF_SESSION_NAME);
-
$person_id = $this->input->get('person_id');
- if (isset($fasUdfSession['person_id']))
- {
- if (!isset($person_id))
- {
- $person_id = $fasUdfSession['person_id'];
- }
- unset($fasUdfSession['person_id']);
- }
-
$prestudent_id = $this->input->get('prestudent_id');
- if (isset($fasUdfSession['prestudent_id']))
- {
- if (!isset($prestudent_id))
- {
- $prestudent_id = $fasUdfSession['prestudent_id'];
- }
- unset($fasUdfSession['prestudent_id']);
- }
- $result = null;
- if (isset($fasUdfSession['result']))
- {
- $result = clone $fasUdfSession['result'];
- setSessionElement(self::FAS_UDF_SESSION_NAME, 'result', null);
- }
-
- $data = array('result' => $result);
+ $data = array();
if (isset($person_id) && is_numeric($person_id))
{
if ($this->PersonModel->hasUDF())
{
$personUdfs = $this->PersonModel->getUDFs($person_id);
- $personUdfs['person_id'] = $person_id;
+ $data['person_id'] = $person_id;
$data['personUdfs'] = $personUdfs;
}
}
@@ -70,61 +44,12 @@ class FAS_UDF extends Auth_Controller
if ($this->PrestudentModel->hasUDF())
{
$prestudentUdfs = $this->PrestudentModel->getUDFs($prestudent_id);
- $prestudentUdfs['prestudent_id'] = $prestudent_id;
+ $data['prestudent_id'] = $prestudent_id;
$data['prestudentUdfs'] = $prestudentUdfs;
}
}
$this->load->view('system/fas_udf', $data);
}
-
- /**
- *
- */
- public function saveUDF()
- {
- $udfs = $this->input->post();
- $validation = $this->_validate($udfs);
-
- $userdata = array(
- 'person_id' => $this->input->post('person_id'),
- 'prestudent_id' => $this->input->post('prestudent_id')
- );
-
- if (isSuccess($validation))
- {
- // Load model UDF_model
- $this->load->model('system/FAS_UDF_model', 'FASUDFModel');
-
- $result = $this->FASUDFModel->saveUDFs($udfs);
-
- $userdata['result'] = $result;
- }
- else
- {
- $userdata['result'] = $validation;
- }
-
- setSessionElement(self::FAS_UDF_SESSION_NAME, 'person_id', $userdata['person_id']);
- setSessionElement(self::FAS_UDF_SESSION_NAME, 'prestudent_id', $userdata['prestudent_id']);
- setSessionElement(self::FAS_UDF_SESSION_NAME, 'result', $userdata['result']);
-
- redirect('system/FAS_UDF');
- }
-
- /**
- *
- */
- private function _validate($udfs)
- {
- $validation = error('person_id or prestudent_id is missing');
-
- if((isset($udfs['person_id']) && !(is_null($udfs['person_id'])) && ($udfs['person_id'] != ''))
- || (isset($udfs['prestudent_id']) && !(is_null($udfs['prestudent_id'])) && ($udfs['prestudent_id'] != '')))
- {
- $validation = success(true);
- }
-
- return $validation;
- }
}
+
diff --git a/application/controllers/system/Phrases.php b/application/controllers/system/Phrases.php
index f589eaeb2..2bb003567 100644
--- a/application/controllers/system/Phrases.php
+++ b/application/controllers/system/Phrases.php
@@ -161,7 +161,7 @@ class Phrases extends Auth_Controller
$phrase_inhalt = $this->phraseslib->insertPhraseinhalt($data);
if ($phrase_inhalt->error)
- show_error(getError($phrase_inhalt);
+ show_error(getError($phrase_inhalt));
$phrase_inhalt_id = $phrase_inhalt->retval;
diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php
index 92636e6df..43de8bb60 100644
--- a/application/controllers/system/infocenter/InfoCenter.php
+++ b/application/controllers/system/infocenter/InfoCenter.php
@@ -1337,7 +1337,7 @@ class InfoCenter extends Auth_Controller
show_error(getError($prestudentWithZgv));
}
- $zgvpruefung = $prestudentWithZgv->retval[0];
+ $zgvpruefung = getData($prestudentWithZgv);
if (isset($zgvpruefung->prestudentstatus))
{
@@ -1362,11 +1362,15 @@ class InfoCenter extends Auth_Controller
$zgvpruefung->isRtFreigegeben = false;
$zgvpruefung->isStgFreigegeben = false;
$zgvpruefung->sendStgFreigabeMsg = true;//wether Stgudiengangfreigabemessage can be sent (for "exceptions", Studiengänge with no message sending)
- $this->PrestudentstatusModel->addSelect('bestaetigtam, statusgrund_id, tbl_status_grund.bezeichnung_mehrsprachig AS bezeichnung_statusgrund');
- $this->PrestudentstatusModel->addJoin('public.tbl_status_grund', 'statusgrund_id', 'LEFT');
- $isFreigegeben = $this->PrestudentstatusModel->loadWhere(array('studiensemester_kurzbz' => $zgvpruefung->prestudentstatus->studiensemester_kurzbz,
- 'tbl_prestudentstatus.status_kurzbz' => self::INTERESSENTSTATUS, 'prestudent_id' => $prestudent->prestudent_id));
+ $isFreigegeben = null;
+ if (isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz))
+ {
+ $this->PrestudentstatusModel->addSelect('bestaetigtam, statusgrund_id, tbl_status_grund.bezeichnung_mehrsprachig AS bezeichnung_statusgrund');
+ $this->PrestudentstatusModel->addJoin('public.tbl_status_grund', 'statusgrund_id', 'LEFT');
+ $isFreigegeben = $this->PrestudentstatusModel->loadWhere(array('studiensemester_kurzbz' => $zgvpruefung->prestudentstatus->studiensemester_kurzbz,
+ 'tbl_prestudentstatus.status_kurzbz' => self::INTERESSENTSTATUS, 'prestudent_id' => $prestudent->prestudent_id));
+ }
if (hasData($isFreigegeben))
{
@@ -1374,7 +1378,7 @@ class InfoCenter extends Auth_Controller
{
if (isset($prestudentstatus->bestaetigtam))
{
- //if statusgrund set - RTfreigabe, otherwise Stgfreigabe
+ //if statusgrund set - freigegeben for Studiengang, otherwise freigegeben for RT
if (isset($prestudentstatus->statusgrund_id))
{
if (isset($prestudentstatus->bezeichnung_statusgrund[0])
@@ -1388,23 +1392,37 @@ class InfoCenter extends Auth_Controller
$zgvpruefung->isRtFreigegeben = true;
}
}
- }
+ }
- //application priority change possible?
- $zgvpruefung->changeup = false;
- $zgvpruefung->changedown = false;
+ //application priority change possible?
+ $zgvpruefung->changeup = false;
+ $zgvpruefung->changedown = false;
+ $zgvpruefung->hasBewerber = false;
- if (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz == self::INTERESSENTSTATUS)
- {
- if (isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz))
- {
- $studiensemester = $zgvpruefung->prestudentstatus->studiensemester_kurzbz;
- $zgvpruefung->changeup = $this->PrestudentModel->checkPrioChange($zgvpruefung->prestudent_id, $studiensemester, -1);
- $zgvpruefung->changedown = $this->PrestudentModel->checkPrioChange($zgvpruefung->prestudent_id, $studiensemester, 1);
- }
- }
+ if (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz == self::INTERESSENTSTATUS)
+ {
+ if (isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz))
+ {
+ $studiensemester = $zgvpruefung->prestudentstatus->studiensemester_kurzbz;
+ //show warning if there is already another bewerber (RT result already exists)
+ $bewerber = $this->PersonModel->hasBewerber($person_id, $studiensemester, 'b');
- $zgvpruefungen[] = $zgvpruefung;
+ if (hasData($bewerber))
+ {
+ $bewerbercnt = getData($bewerber);
+
+ if (is_numeric($bewerbercnt[0]->anzahl_bewerber) && $bewerbercnt[0]->anzahl_bewerber > 0)
+ {
+ $zgvpruefung->hasBewerber = true;
+ }
+ }
+
+ $zgvpruefung->changeup = $this->PrestudentModel->checkPrioChange($zgvpruefung->prestudent_id, $studiensemester, -1);
+ $zgvpruefung->changedown = $this->PrestudentModel->checkPrioChange($zgvpruefung->prestudent_id, $studiensemester, 1);
+ }
+ }
+
+ $zgvpruefungen[] = $zgvpruefung;
}
$this->_sortPrestudents($zgvpruefungen);
@@ -1523,9 +1541,10 @@ class InfoCenter extends Auth_Controller
show_error(getError($prestudent));
}
- $person_id = $prestudent->retval[0]->person_id;
- $studiengang_kurzbz = $prestudent->retval[0]->studiengang;
- $studiengang_bezeichnung = $prestudent->retval[0]->studiengangbezeichnung;
+ $prestudentdata = getData($prestudent);
+ $person_id = $prestudentdata->person_id;
+ $studiengang_kurzbz = $prestudentdata->studiengang;
+ $studiengang_bezeichnung = $prestudentdata->studiengangbezeichnung;
return array('person_id' => $person_id, 'studiengang_kurzbz' => $studiengang_kurzbz, 'studiengang_bezeichnung' => $studiengang_bezeichnung);
}
@@ -1568,7 +1587,8 @@ class InfoCenter extends Auth_Controller
private function _sendFreigabeMail($prestudent_id)
{
//get data
- $prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent_id)->retval[0];
+ $prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent_id);
+ $prestudent = getData($prestudent);
$prestudentstatus = $prestudent->prestudentstatus;
$person_id = $prestudent->person_id;
$person = $this->PersonModel->getPersonStammdaten($person_id, true)->retval;
diff --git a/application/controllers/system/messages/MessageClient.php b/application/controllers/system/messages/MessageClient.php
index a0cc5c518..5adb49296 100644
--- a/application/controllers/system/messages/MessageClient.php
+++ b/application/controllers/system/messages/MessageClient.php
@@ -34,7 +34,7 @@ class MessageClient extends FHC_Controller
public function read()
{
// Loads the view to read messages
- $this->load->view('system/messages/ajaxRead');
+ $this->load->view('system/messages/ajaxRead', $this->CLMessagesModel->prepareAjaxRead());
}
/**
diff --git a/application/controllers/system/messages/Messages.php b/application/controllers/system/messages/Messages.php
index 7b48b1fcf..296022ca4 100644
--- a/application/controllers/system/messages/Messages.php
+++ b/application/controllers/system/messages/Messages.php
@@ -92,9 +92,9 @@ class Messages extends Auth_Controller
*/
public function parseMessageText()
{
- $receiver_id = $this->input->get('receiver_id');
- $text = $this->input->get('text');
- $type = $this->input->get('type');
+ $receiver_id = $this->input->post('receiver_id');
+ $text = $this->input->post('text');
+ $type = $this->input->post('type');
if ($type == Messages_model::TYPE_PERSONS)
{
diff --git a/application/controllers/widgets/Filters.php b/application/controllers/widgets/Filters.php
index b5cbc07ea..748272f09 100644
--- a/application/controllers/widgets/Filters.php
+++ b/application/controllers/widgets/Filters.php
@@ -4,7 +4,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
* This controller operates between (interface) the JS (GUI) and the FilterWidgetLib (back-end)
- * Provides data to the ajax get calls about the filter
+ * Provides data to the ajax get calls about the filter widget
* Accepts ajax post calls to change the filter data
* This controller works with JSON calls on the HTTP GET or POST and the output is always JSON
* NOTE: extends the FHC_Controller instead of the Auth_Controller because the FilterWidget has its
@@ -12,7 +12,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
*/
class Filters extends FHC_Controller
{
- const FILTER_UNIQUE_ID = 'filterUniqueId';
+ const FILTER_UNIQUE_ID = 'filterUniqueId'; // Name of the filter widget unique id
/**
* Calls the parent's constructor and loads the FilterWidgetLib
diff --git a/application/controllers/widgets/Tables.php b/application/controllers/widgets/Tables.php
index 21161ff9f..b3ea7d5a5 100644
--- a/application/controllers/widgets/Tables.php
+++ b/application/controllers/widgets/Tables.php
@@ -4,7 +4,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
* This controller operates between (interface) the JS (GUI) and the tablewidgetlib (back-end)
- * Provides data to the ajax get calls about the filter
+ * Provides data to the ajax get calls about the table widget
* Accepts ajax post calls to change the filter data
* This controller works with JSON calls on the HTTP GET or POST and the output is always JSON
* NOTE: extends the FHC_Controller instead of the Auth_Controller because the TableWidget has its
@@ -12,7 +12,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
*/
class Tables extends FHC_Controller
{
- const TABLE_UNIQUE_ID = 'tableUniqueId';
+ const TABLE_UNIQUE_ID = 'tableUniqueId'; // Name of the table widget unique id
/**
* Calls the parent's constructor and loads the tablewidgetlib
diff --git a/application/controllers/widgets/UDF.php b/application/controllers/widgets/UDF.php
new file mode 100644
index 000000000..5b4c45776
--- /dev/null
+++ b/application/controllers/widgets/UDF.php
@@ -0,0 +1,107 @@
+load->library('AuthLib');
+
+ // Loads the UDFLib with HTTP GET/POST parameters
+ $this->_loadUDFLib();
+
+ // Checks if the caller is allow to use this UDF widget
+ $this->_isAllowed();
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ // Public methods
+
+ /**
+ * Save data about the current UDFs and the result will be written on the output in JSON format
+ */
+ public function saveUDFs()
+ {
+ $udfUniqueId = $this->input->post(self::UDF_UNIQUE_ID);
+ $udfs = $this->input->post(UDFLib::UDFS_ARG_NAME);
+
+ if (!isEmptyString($udfs))
+ {
+ $jsonDecodedUDF = json_decode($udfs);
+ if ($jsonDecodedUDF != null)
+ {
+ $this->outputJson($this->udflib->saveUDFs($udfUniqueId, $jsonDecodedUDF));
+ }
+ else
+ {
+ $this->outputJsonError('No valid JSON format for UDF values');
+ }
+ }
+ else
+ {
+ $this->outputJsonError('UDFUniqueId, schema, table name, primary key name and primary key value are mandatory paramenters');
+ }
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ // Private methods
+
+ /**
+ * Checks if the user is allowed to use this UDFWidget
+ */
+ private function _isAllowed()
+ {
+ if (!$this->udflib->isAllowed())
+ {
+ $this->terminateWithJsonError('You are not allowed to access to this content');
+ }
+ }
+
+ /**
+ * Loads the UDFLib with the UDF_UNIQUE_ID parameter
+ * If the parameter UDF_UNIQUE_ID is not given then the execution of the controller is terminated and
+ * an error message is printed
+ */
+ private function _loadUDFLib()
+ {
+ // If the parameter UDF_UNIQUE_ID is present in the HTTP GET or POST
+ if (isset($_GET[self::UDF_UNIQUE_ID]) || isset($_POST[self::UDF_UNIQUE_ID]))
+ {
+ // If it is present in the HTTP GET
+ if (isset($_GET[self::UDF_UNIQUE_ID]))
+ {
+ $udfUniqueId = $this->input->get(self::UDF_UNIQUE_ID); // is retrieved from the HTTP GET
+ }
+ elseif (isset($_POST[self::UDF_UNIQUE_ID])) // Else if it is present in the HTTP POST
+ {
+ $udfUniqueId = $this->input->post(self::UDF_UNIQUE_ID); // is retrieved from the HTTP POST
+ }
+
+ // Loads the UDFLib that contains all the used logic
+ $this->load->library('UDFLib');
+
+ $this->udflib->setUDFUniqueId($udfUniqueId);
+ }
+ else // Otherwise an error will be written in the output
+ {
+ $this->terminateWithJsonError('Parameter "'.self::UDF_UNIQUE_ID.'" not provided!');
+ }
+ }
+}
diff --git a/application/core/DB_Model.php b/application/core/DB_Model.php
index ca760c662..4b89ae5bf 100644
--- a/application/core/DB_Model.php
+++ b/application/core/DB_Model.php
@@ -60,6 +60,20 @@ class DB_Model extends CI_Model
// ------------------------------------------------------------------------------------------
// Public methods
+ /**
+ * This method provides a way to setup a database model without declaring one that extends this class
+ */
+ public function setup($schema, $table, $primaryKey, $hasSequence = true)
+ {
+ //
+ if (!isEmptyString($schema) && !isEmptyString($table) && !isEmptyString($primaryKey) && is_bool($hasSequence))
+ {
+ $this->dbTable = $schema.'.'.$table;
+ $this->pk = $primaryKey;
+ $this->hasSequence = $hasSequence;
+ }
+ }
+
/**
* Insert Data into DB-Table
*
@@ -690,7 +704,7 @@ class DB_Model extends CI_Model
*/
public function hasUDF()
{
- if($this->fieldExists(UDFLib::COLUMN_NAME))
+ if ($this->fieldExists(UDFLib::COLUMN_NAME))
{
$resultUDFsDefinitions = $this->UDFModel->getUDFsDefinitions($this->dbTable);
if (hasData($resultUDFsDefinitions))
@@ -727,8 +741,8 @@ class DB_Model extends CI_Model
$cleanedQuery = trim(preg_replace('/\t|\n|\r|;/', '', $query)); //
//
- if (stripos($cleanedQuery, 'SELECT') == 0
- && (stripos($cleanedQuery, 'INSERT') > 0 || stripos($cleanedQuery, 'INSERT') == false)
+ if (
+ (stripos($cleanedQuery, 'INSERT') > 0 || stripos($cleanedQuery, 'INSERT') == false)
&& (stripos($cleanedQuery, 'UPDATE') > 0 || stripos($cleanedQuery, 'UPDATE') == false)
&& (stripos($cleanedQuery, 'CREATE') > 0 || stripos($cleanedQuery, 'CREATE') == false)
&& (stripos($cleanedQuery, 'DELETE') > 0 || stripos($cleanedQuery, 'DELETE') == false)
diff --git a/application/helpers/hlp_header_helper.php b/application/helpers/hlp_header_helper.php
index 1a0d9dc49..f8bbb9ad2 100644
--- a/application/helpers/hlp_header_helper.php
+++ b/application/helpers/hlp_header_helper.php
@@ -69,6 +69,8 @@ function generateCSSsInclude($CSSs)
*/
function generateJSDataStorageObject($indexPage, $calledPath, $calledMethod)
{
+ $user_language = getUserLanguage();
+
$toPrint = "\n";
$toPrint .= '
-
-
-
-
-
-
+
+
+
-
-
- '.$p->t('lvaliste/titel').' ( '.$stdsem.' )
';
- echo '
';
- if ($num_rows>0)
- {
-
- echo ''.$p->t('lvaliste/lehrveranstaltungen').'
';
- echo $p->t('lvaliste/anzahl').': '.$num_rows;
- echo '
-
-
- ';
- if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
- echo '| '.$p->t('lvaliste/gesamtnote').' | ';
-
-
- if($lvinfo)
- echo ''.$p->t('lvaliste/lvinfo').' | ';
-
- echo '
- '.$p->t('lvaliste/id').' |
- '.$p->t('lvaliste/lehrfach').' |
- '.$p->t('lvaliste/lehrform').' |
- '.$p->t('lvaliste/lvBezeichnung').' |
- '.$p->t('lvaliste/lektor').' |
- '.$p->t('lvaliste/studiengang').' |
- '.$p->t('lvaliste/semester').' |
- '.$p->t('lvaliste/gruppen').' |
- '.$p->t('lvaliste/raumtyp').' |
- '.$p->t('lvaliste/raumtypalternativ').' |
- '.$p->t('lvaliste/blockung').' |
- '.$p->t('lvaliste/wochenrythmus').' |
- '.$p->t('lvaliste/stunden').' |
- '.$p->t('lvaliste/kalenderwoche').' |
- Anm. von |
- Anm. bis | ';
- //'.$p->t('lvaliste/anmerkung').' | Lektoren sollen die Anmerkung dzt. nicht sehen, da nur für intern gedacht
-
- echo '
- ';
- $stg_obj = new studiengang();
- $stg_obj->getAll(null,null);
- $summe_std=0;
-
- for ($i=0; $i<$num_rows; $i++)
+ $("#t2").tablesorter(
{
- $row=$db->db_fetch_object($result);
- $lvangebot = new lvangebot();
- echo '';
- if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
- echo '| '.$p->t('lvaliste/gesamtnote').' | ';
-
- if($lvinfo)
- echo ''.$p->t('lvaliste/lvinfo').' | ';
-
- echo ''.$row->lehreinheit_id.' | ';
- echo ''.$row->lehrfach.' | ';
- echo ''.$row->le_lehrform_kurzbz.' | ';
- if ($row->lehrfach_bez!=$row->lv_bezeichnung)
- echo ''.$row->lv_bezeichnung.' ('.$p->t('lvaliste/lehrfach').': '.$row->lehrfach_bez.') | ';
- else
- echo ''.$row->lv_bezeichnung.' | ';
- echo ''.$row->lektor.' | ';
- echo ''.$row->stg_kurzbz.' | ';
- echo ''.$row->semester.' | ';
-
- $qry ="SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id);
- $gruppe='';
- if($result_grp = $db->db_query($qry))
- {
- while($row_grp = $db->db_fetch_object($result_grp))
- {
- if($row_grp->gruppe_kurzbz!='')
- $gruppe.= $row_grp->gruppe_kurzbz.'
';
- else
- $gruppe.= $stg_obj->kuerzel_arr[$row->studiengang_kz].'-'.$row_grp->semester.$row_grp->verband.$row_grp->gruppe.'
';
- }
- }
- echo ''.$gruppe.' | ';
- echo ''.$row->raumtyp.' | ';
- echo ''.$row->raumtypalternativ.' | ';
- echo ''.$row->stundenblockung.' | ';
- echo ''.$row->wochenrythmus.' | ';
- if(getSprache()=='German')
- {
- echo ''.number_format($row->semesterstunden,2,$dec_point=",",$thousands_sep=".").' | ';
- }
- else
- {
- echo ''.number_format($row->semesterstunden,2,$dec_point=".",$thousands_sep=",").' | ';
- }
- echo ''.$row->start_kw.' | ';
-
- $lvangebot->getAllFromLvId($row->lehrveranstaltung_id, $row->studiensemester_kurzbz);
- if(!empty($lvangebot->result))
- {
- echo ''.$datum->formatDatum($lvangebot->result[0]->anmeldefenster_start, "d.m.Y").' | ';
- echo ''.$datum->formatDatum($lvangebot->result[0]->anmeldefenster_ende, "d.m.Y").' | ';
- }
- else
- {
- echo ' |
- | ';
- }
- //echo ''.$row->le_anmerkung.' | '; Lektoren sollen die Anmerkung dzt. nicht sehen, da nur für intern gedacht
-
- echo '
';
- $summe_std+=$row->semesterstunden;
- }
- echo '';
- echo '';
- echo '';
- if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
- echo '| | ';
- if($lvinfo)
- echo ' | ';
-
- echo ' | ';
- echo ' | ';
- echo ' | ';
- echo ' | ';
- echo ' | ';
- echo ' | ';
- echo ' | ';
- echo ' | ';
- echo ' | ';
- echo ' | ';
- echo ' | ';
- echo ''.$p->t('lvaliste/summe').' | ';
- if(getSprache()=='German')
+ sortList: [[0,0],[1,0],[3,0]],
+ widgets: ["zebra"]
+ });
+ $("#t3").tablesorter(
{
- echo ''.number_format($summe_std,2,$dec_point=",",$thousands_sep=".").' | ';
- }
- else
- {
- echo ''.number_format($summe_std,2,$dec_point=".",$thousands_sep=",").' | ';
- }
- echo ' | ';
- echo '
';
- echo '';
- echo '
';
- }
+ sortList: [[0,0],[1,0],[3,0]],
+ widgets: ["zebra"]
+ });
+ });
+ -->
+
+
+
+'.$p->t('lvaliste/titel').' ( '.$stdsem.' )
';
+echo '
';
+if ($num_rows > 0)
+{
+ $anzahl_lvs = 0;
+ $lvtable = '
+
+
+ ';
+ if (!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
+ $lvtable .= '| '.$p->t('lvaliste/gesamtnote').' | ';
- //Betreuungen
-
- $mitarbeiter = new benutzer();
- $mitarbeiter->load($uid);
-
- $qry = "SELECT
- tbl_lehrveranstaltung.bezeichnung, tbl_projektarbeit.titel,
- (SELECT nachname || ' ' || vorname FROM public.tbl_benutzer JOIN public.tbl_person USING(person_id)
- WHERE uid=student_uid) as student, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester,
- tbl_studiengang.email, tbl_betreuerart.beschreibung AS beutreuerart_beschreibung, tbl_projektbetreuer.stunden
- FROM
- lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer, public.tbl_studiengang, lehre.tbl_betreuerart
- WHERE
- tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND
- tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
- tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND
- tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
- tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz AND
- tbl_projektbetreuer.betreuerart_kurzbz=tbl_betreuerart.betreuerart_kurzbz AND
- tbl_projektbetreuer.person_id=".$db->db_add_param($mitarbeiter->person_id, FHC_INTEGER);
+ if ($lvinfo)
+ $lvtable .= ''.$p->t('lvaliste/lvinfo').' | ';
+ $lvtable .= '
+ '.$p->t('lvaliste/id').' |
+ '.$p->t('lvaliste/lehrfach').' |
+ '.$p->t('lvaliste/lehrform').' |
+ '.$p->t('lvaliste/lvBezeichnung').' |
+ '.$p->t('lvaliste/lektor').' |
+ '.$p->t('lvaliste/studiengang').' |
+ '.$p->t('lvaliste/semester').' |
+ '.$p->t('lvaliste/gruppen').' |
+ '.$p->t('lvaliste/raumtyp').' |
+ '.$p->t('lvaliste/raumtypalternativ').' |
+ '.$p->t('lvaliste/blockung').' |
+ '.$p->t('lvaliste/wochenrythmus').' |
+ '.$p->t('lvaliste/stunden').' |
+ '.$p->t('lvaliste/kalenderwoche').' |
+ Anm. von |
+ Anm. bis |
+
+ ';
$stg_obj = new studiengang();
$stg_obj->getAll(null,null);
$summe_std = 0;
- if($result = $db->db_query($qry))
+ for ($i = 0; $i < $num_rows; $i++)
{
- if($db->db_num_rows($result)>0)
+ $row = $db->db_fetch_object($result);
+
+ // Nur erteilte Vertraege anzeigen wenn dies im Config hinterlegt ist.
+ if (defined('CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON')
+ && CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON != '')
{
- echo ''.$p->t('lvaliste/betreuungen').'
';
- echo $p->t('lvaliste/anzahl').': '.$db->db_num_rows($result);
- echo '';
- echo '';
- echo '| '.$p->t('lvaliste/studiengang').' | ';
- echo ''.$p->t('lvaliste/semester').' | ';
- echo ''.$p->t('lvaliste/stunden').' | ';
- echo ''.$p->t('lvaliste/lvBezeichnung').' | ';
- echo ''.$p->t('lvaliste/student').' | ';
- echo ''.$p->t('lvaliste/betreuungsart').' | ';
- echo ''.$p->t('lvaliste/titelProjektarbeit').' | ';
- echo '
';
- while($row = $db->db_fetch_object($result))
+ $vertrag = new vertrag();
+ if (!$vertrag->isVertragErteiltLV($row->lehrveranstaltung_id, $stdsem, $user))
{
- echo '';
- echo '| '.$stg_obj->kuerzel_arr[$row->studiengang_kz].' | ';
- echo ''.$row->semester.' | ';
- if(getSprache()=='German')
- {
- echo ''.number_format($row->stunden,2,$dec_point =",", $thousands_sep ="."). ' | ';
- }
+ continue;
+ }
+ }
+ $anzahl_lvs++;
+
+ $lvangebot = new lvangebot();
+ $lvtable .= '
';
+ if (!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
+ $lvtable .= '| '.$p->t('lvaliste/gesamtnote').' | ';
+
+ if ($lvinfo)
+ $lvtable .= ''.$p->t('lvaliste/lvinfo').' | ';
+
+ $lvtable .= ''.$row->lehreinheit_id.' | ';
+ $lvtable .= ''.$row->lehrfach.' | ';
+ $lvtable .= ''.$row->le_lehrform_kurzbz.' | ';
+ if ($row->lehrfach_bez != $row->lv_bezeichnung)
+ $lvtable .= ''.$row->lv_bezeichnung.' ('.$p->t('lvaliste/lehrfach').': '.$row->lehrfach_bez.') | ';
+ else
+ $lvtable .= ''.$row->lv_bezeichnung.' | ';
+ $lvtable .= ''.$row->lektor.' | ';
+ $lvtable .= ''.$row->stg_kurzbz.' | ';
+ $lvtable .= ''.$row->semester.' | ';
+
+ $qry = "
+ SELECT * FROM lehre.tbl_lehreinheitgruppe
+ WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id);
+
+ $gruppe = '';
+ if ($result_grp = $db->db_query($qry))
+ {
+ while ($row_grp = $db->db_fetch_object($result_grp))
+ {
+ if ($row_grp->gruppe_kurzbz != '')
+ $gruppe .= $row_grp->gruppe_kurzbz.'
';
else
- {
- echo ''.number_format($row->stunden,2,$dec_point =".", $thousands_sep =","). ' | ';
- }
- echo ''.$row->bezeichnung.' | ';
- echo ''.$row->student.' | ';
- echo ''.$row->beutreuerart_beschreibung.' | ';
- echo ''.$row->titel.' | ';
-
- $summe_std+=$row->stunden;
+ $gruppe .= $stg_obj->kuerzel_arr[$row->studiengang_kz].'-'.$row_grp->semester.$row_grp->verband.$row_grp->gruppe.'
';
}
- echo '
';
- echo '';
+ }
+ $lvtable .= ''.$gruppe.' | ';
+ $lvtable .= ''.$row->raumtyp.' | ';
+ $lvtable .= ''.$row->raumtypalternativ.' | ';
+ $lvtable .= ''.$row->stundenblockung.' | ';
+ $lvtable .= ''.$row->wochenrythmus.' | ';
+ if (getSprache() == 'German')
+ {
+ $lvtable .= ''.number_format($row->semesterstunden,2,$dec_point=",",$thousands_sep=".").' | ';
+ }
+ else
+ {
+ $lvtable .= ''.number_format($row->semesterstunden,2,$dec_point=".",$thousands_sep=",").' | ';
+ }
+ $lvtable .= ''.$row->start_kw.' | ';
+
+ $lvangebot->getAllFromLvId($row->lehrveranstaltung_id, $row->studiensemester_kurzbz);
+ if (!empty($lvangebot->result))
+ {
+ $lvtable .= ''.$datum->formatDatum($lvangebot->result[0]->anmeldefenster_start, "d.m.Y").' | ';
+ $lvtable .= ''.$datum->formatDatum($lvangebot->result[0]->anmeldefenster_ende, "d.m.Y").' | ';
+ }
+ else
+ {
+ $lvtable .= ' |
+ | ';
+ }
+
+ $lvtable .= '';
+ $summe_std += $row->semesterstunden;
+ }
+ $lvtable .= '';
+ $lvtable .= '';
+ $lvtable .= '';
+ if (!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
+ $lvtable .= '| | ';
+ if ($lvinfo)
+ $lvtable .= ' | ';
+
+ $lvtable .= ' | ';
+ $lvtable .= ' | ';
+ $lvtable .= ' | ';
+ $lvtable .= ' | ';
+ $lvtable .= ' | ';
+ $lvtable .= ' | ';
+ $lvtable .= ' | ';
+ $lvtable .= ' | ';
+ $lvtable .= ' | ';
+ $lvtable .= ' | ';
+ $lvtable .= ' | ';
+ $lvtable .= ''.$p->t('lvaliste/summe').' | ';
+ if (getSprache() == 'German')
+ {
+ $lvtable .= ''.number_format($summe_std, 2, $dec_point = ",", $thousands_sep = ".").' | ';
+ }
+ else
+ {
+ $lvtable .= ''.number_format($summe_std, 2, $dec_point = ".", $thousands_sep = ",").' | ';
+ }
+ $lvtable .= ' | ';
+ $lvtable .= '
';
+ $lvtable .= '';
+ $lvtable .= '
';
+
+ if($anzahl_lvs > 0)
+ {
+ echo ''.$p->t('lvaliste/lehrveranstaltungen').'
';
+ echo $p->t('lvaliste/anzahl').': '.$anzahl_lvs;
+ echo $lvtable;
+ }
+ else
+ {
+ echo $p->t('lvaliste/keineDatensaetze').'
';
+ }
+}
+else
+ echo $p->t('lvaliste/keineDatensaetze').'
';
+
+//Betreuungen
+$mitarbeiter = new benutzer();
+$mitarbeiter->load($uid);
+
+$qry = "SELECT
+ tbl_lehrveranstaltung.bezeichnung, tbl_projektarbeit.titel,
+ (SELECT nachname || ' ' || vorname FROM public.tbl_benutzer JOIN public.tbl_person USING(person_id)
+ WHERE uid=student_uid) as student, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester,
+ tbl_studiengang.email, tbl_betreuerart.beschreibung AS beutreuerart_beschreibung, tbl_projektbetreuer.stunden
+ FROM
+ lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer, public.tbl_studiengang, lehre.tbl_betreuerart
+ WHERE
+ tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND
+ tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
+ tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND
+ tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
+ tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz AND
+ tbl_projektbetreuer.betreuerart_kurzbz=tbl_betreuerart.betreuerart_kurzbz AND
+ tbl_projektbetreuer.person_id=".$db->db_add_param($mitarbeiter->person_id, FHC_INTEGER);
+
+$stg_obj = new studiengang();
+$stg_obj->getAll(null,null);
+$summe_std = 0;
+
+if ($result = $db->db_query($qry))
+{
+ if ($db->db_num_rows($result) > 0)
+ {
+ echo '
';
+ echo ''.$p->t('lvaliste/betreuungen').'
';
+ echo $p->t('lvaliste/anzahl').': '.$db->db_num_rows($result);
+ echo '';
+ echo '';
+ echo '| '.$p->t('lvaliste/studiengang').' | ';
+ echo ''.$p->t('lvaliste/semester').' | ';
+ echo ''.$p->t('lvaliste/stunden').' | ';
+ echo ''.$p->t('lvaliste/lvBezeichnung').' | ';
+ echo ''.$p->t('lvaliste/student').' | ';
+ echo ''.$p->t('lvaliste/betreuungsart').' | ';
+ echo ''.$p->t('lvaliste/titelProjektarbeit').' | ';
+ echo '
';
+ while ($row = $db->db_fetch_object($result))
+ {
echo '';
- if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
+ echo '| '.$stg_obj->kuerzel_arr[$row->studiengang_kz].' | ';
+ echo ''.$row->semester.' | ';
+ if (getSprache() == 'German')
{
- echo ' | ';
- }
- if($lvinfo)
-
- echo ''.$p->t('lvaliste/summe').' | ';
-
- if(getSprache()=='German')
- {
- echo ''.number_format($summe_std,2,$dec_point=",",$thousands_sep=".").' | ';
+ echo ''.number_format($row->stunden,2,$dec_point =",", $thousands_sep ="."). ' | ';
}
else
{
- echo ''.number_format($summe_std,2,$dec_point=".",$thousands_sep=",").' | ';
+ echo ''.number_format($row->stunden,2,$dec_point =".", $thousands_sep =","). ' | ';
}
+ echo ''.$row->bezeichnung.' | ';
+ echo ''.$row->student.' | ';
+ echo ''.$row->beutreuerart_beschreibung.' | ';
+ echo ''.$row->titel.' | ';
-
- echo ' | ';
-
- echo '
';
-
- echo '
';
+ $summe_std += $row->stunden;
}
- }
-
-
- //Koordination
-
- $qry = "SELECT
- distinct
- tbl_lehrveranstaltung.studiengang_kz, tbl_fachbereich.fachbereich_kurzbz, tbl_lehrveranstaltung.bezeichnung,
- tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.semester,tbl_lehrveranstaltung.koordinator,
- tbl_studiengang.email
- FROM
- lehre.tbl_lehrveranstaltung,
- lehre.tbl_lehreinheit,
- lehre.tbl_lehrveranstaltung as lehrfach,
- public.tbl_studiengang,
- public.tbl_fachbereich
- WHERE
- tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
- tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND
- tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND
- tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND
- (tbl_lehrveranstaltung.koordinator=".$db->db_add_param($uid)."
- OR
- ( tbl_lehrveranstaltung.koordinator is null and (tbl_lehrveranstaltung.studiengang_kz, fachbereich_kurzbz) IN (SELECT studiengang_kz, fachbereich_kurzbz
- FROM public.tbl_benutzerfunktion JOIN public.tbl_studiengang USING(oe_kurzbz)
- WHERE funktion_kurzbz='fbk' AND uid=".$db->db_add_param($uid)."
- and ( tbl_benutzerfunktion.datum_bis is null or now() between tbl_benutzerfunktion.datum_von and tbl_benutzerfunktion.datum_bis )
- ))
- ) AND
- tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz
- order by tbl_lehrveranstaltung.studiengang_kz,tbl_lehrveranstaltung.semester ,tbl_lehrveranstaltung.bezeichnung
- ";
-
-
- if($result = $db->db_query($qry))
- {
- if($db->db_num_rows($result)>0)
+ echo '';
+ echo '';
+ echo '';
+ if (!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN)
{
- echo ''.$p->t('lvaliste/koordination').'
';
- echo $p->t('lvaliste/anzahl').': '.$db->db_num_rows($result);
- echo '';
- echo '';
- echo '| '.$p->t('lvaliste/studiengang').' | ';
- echo ''.$p->t('lvaliste/semester').' | ';
- echo ''.$p->t('lvaliste/institut').' | ';
- echo ''.$p->t('lvaliste/lvBezeichnung').' | ';
- echo ''.$p->t('lvaliste/lektor').' | ';
- echo '
';
- while($row = $db->db_fetch_object($result))
- {
- //Fachbereichskoordinatoren holen
- $qry = "SELECT distinct
- uid,titelpre, titelpost, vorname, nachname
- FROM
- lehre.tbl_lehreinheitmitarbeiter,
- public.tbl_benutzer,
- public.tbl_person,
- lehre.tbl_lehreinheit
- WHERE
- tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
- tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id, FHC_INTEGER)." AND
- tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND
- tbl_benutzer.person_id=tbl_person.person_id AND
- tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem);
- $lektoren='';
- if($result_lkt = $db->db_query($qry))
- {
- while($row_lkt = $db->db_fetch_object($result_lkt))
- {
- if($lektoren!='')
- $lektoren.=',';
- $lektoren.=trim($row_lkt->titelpre.' '.$row_lkt->vorname.' '.$row_lkt->nachname.' '.$row_lkt->titelpost);
- }
- }
-
- echo '';
- echo '| '.$stg_obj->kuerzel_arr[$row->studiengang_kz].' | ';
- echo ''.$row->semester.' | ';
- echo ''.$row->stunden.' | ';
- echo ''.$row->fachbereich_kurzbz.' | ';
- echo ''.$row->bezeichnung.' | ';
- echo ''.$lektoren.' | ';
- echo '
';
- }
- echo '
';
+ echo ' | ';
}
+ if ($lvinfo)
+
+ echo ''.$p->t('lvaliste/summe').' | ';
+
+ if (getSprache() == 'German')
+ {
+ echo ''.number_format($summe_std, 2, $dec_point = ",", $thousands_sep = ".").' | ';
+ }
+ else
+ {
+ echo ''.number_format($summe_std, 2, $dec_point = ".", $thousands_sep = ",").' | ';
+ }
+
+ echo ' | ';
+ echo '
';
+ echo '
';
}
+}
+
+//Koordination
+$qry = "SELECT
+ distinct
+ tbl_lehrveranstaltung.studiengang_kz, tbl_fachbereich.fachbereich_kurzbz, tbl_lehrveranstaltung.bezeichnung,
+ tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.semester,tbl_lehrveranstaltung.koordinator,
+ tbl_studiengang.email
+ FROM
+ lehre.tbl_lehrveranstaltung,
+ lehre.tbl_lehreinheit,
+ lehre.tbl_lehrveranstaltung as lehrfach,
+ public.tbl_studiengang,
+ public.tbl_fachbereich
+ WHERE
+ tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
+ tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND
+ tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND
+ tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND
+ (
+ tbl_lehrveranstaltung.koordinator=".$db->db_add_param($uid)."
+ OR
+ ( tbl_lehrveranstaltung.koordinator is null
+ AND (tbl_lehrveranstaltung.studiengang_kz, fachbereich_kurzbz) IN (
+ SELECT studiengang_kz, fachbereich_kurzbz
+ FROM public.tbl_benutzerfunktion JOIN public.tbl_studiengang USING(oe_kurzbz)
+ WHERE funktion_kurzbz='fbk' AND uid=".$db->db_add_param($uid)."
+ AND (
+ tbl_benutzerfunktion.datum_bis is null
+ OR now() between tbl_benutzerfunktion.datum_von and tbl_benutzerfunktion.datum_bis )
+ )
+ )
+ )
+ AND tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz
+ ORDER BY
+ tbl_lehrveranstaltung.studiengang_kz,
+ tbl_lehrveranstaltung.semester,
+ tbl_lehrveranstaltung.bezeichnung
+ ";
+
+
+if ($result = $db->db_query($qry))
+{
+ if ($db->db_num_rows($result) > 0)
+ {
+ echo ''.$p->t('lvaliste/koordination').'
';
+ echo $p->t('lvaliste/anzahl').': '.$db->db_num_rows($result);
+ echo '';
+ echo '';
+ echo '| '.$p->t('lvaliste/studiengang').' | ';
+ echo ''.$p->t('lvaliste/semester').' | ';
+ echo ''.$p->t('lvaliste/institut').' | ';
+ echo ''.$p->t('lvaliste/lvBezeichnung').' | ';
+ echo ''.$p->t('lvaliste/lektor').' | ';
+ echo '
';
+ while ($row = $db->db_fetch_object($result))
+ {
+ //Fachbereichskoordinatoren holen
+ $qry = "SELECT distinct
+ uid,titelpre, titelpost, vorname, nachname
+ FROM
+ lehre.tbl_lehreinheitmitarbeiter,
+ public.tbl_benutzer,
+ public.tbl_person,
+ lehre.tbl_lehreinheit
+ WHERE
+ tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
+ tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id, FHC_INTEGER)." AND
+ tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND
+ tbl_benutzer.person_id=tbl_person.person_id AND
+ tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem);
+ $lektoren='';
+ if($result_lkt = $db->db_query($qry))
+ {
+ while($row_lkt = $db->db_fetch_object($result_lkt))
+ {
+ if($lektoren!='')
+ $lektoren.=',';
+ $lektoren.=trim($row_lkt->titelpre.' '.$row_lkt->vorname.' '.$row_lkt->nachname.' '.$row_lkt->titelpost);
+ }
+ }
+
+ echo '';
+ echo '| '.$stg_obj->kuerzel_arr[$row->studiengang_kz].' | ';
+ echo ''.$row->semester.' | ';
+ echo ''.$row->stunden.' | ';
+ echo ''.$row->fachbereich_kurzbz.' | ';
+ echo ''.$row->bezeichnung.' | ';
+ echo ''.$lektoren.' | ';
+ echo '
';
+ }
+ echo '
';
+ }
+}
echo '
'.$p->t('lvaliste/fehlerAnStudiengang').'
';
?>
diff --git a/cis/private/profile/urlaubstool.php b/cis/private/profile/urlaubstool.php
index fd8d65ec9..9d33b25ae 100644
--- a/cis/private/profile/urlaubstool.php
+++ b/cis/private/profile/urlaubstool.php
@@ -718,7 +718,11 @@ for ($i=0;$i<6;$i++)
else
{
echo ''.$tage[$j+7*$i].'
';
- if(isset($freigabeamum[$j+7*$i]))
+ if(!isset($freigabeamum[$j+7*$i]) && !isset($freigabevon[$j+7*$i]))
+ {
+ echo '
';
+ }
+ elseif(isset($freigabeamum[$j+7*$i]))
{
echo '
';
}
diff --git a/cis/private/tools/suche.php b/cis/private/tools/suche.php
index ecc072d81..693cc1894 100644
--- a/cis/private/tools/suche.php
+++ b/cis/private/tools/suche.php
@@ -587,7 +587,17 @@ function searchContent($searchItems)
// URL aus content parsen
$dom = new DOMDocument();
$dom->loadXML($row->content);
- $content = $dom->getElementsByTagName('url')->item(0)->nodeValue;
+ if($dom->getElementsByTagName('url')!=null
+ && $dom->getElementsByTagName('url')->item(0)!=null)
+ {
+ $content = $dom->getElementsByTagName('url')->item(0)->nodeValue;
+ }
+ else
+ {
+ // Wenn bei redirects keine URL vorhanden ist, dann handelt es sich um Fehlerhafte Einträge
+ // diese werden übersprungen
+ continue;
+ }
if (substr($content, 0, 1) == '#')
continue;
@@ -649,15 +659,33 @@ function searchContent($searchItems)
// URL aus content parsen
$dom = new DOMDocument();
$dom->loadXML($row->content);
- $content = $dom->getElementsByTagName('url')->item(0)->nodeValue;
-
+ if($dom->getElementsByTagName('url')!=null
+ && $dom->getElementsByTagName('url')->item(0)!=null)
+ {
+ $content = $dom->getElementsByTagName('url')->item(0)->nodeValue;
+ }
+ else
+ {
+ // Wenn bei redirects keine URL vorhanden ist, dann handelt es sich um Fehlerhafte Einträge
+ // diese werden übersprungen
+ continue;
+ }
if (substr($content, 0, 1) == '#')
continue;
else
{
- echo '';
+ if(mb_strpos($content, 'http') === 0)
+ {
+ echo '';
+ }
+ else
+ {
+ echo '';
+ }
}
}
else
diff --git a/cis/public/testtool_test/testseite.php b/cis/public/testtool_test/testseite.php
index 17b103be5..dd86d9de4 100644
--- a/cis/public/testtool_test/testseite.php
+++ b/cis/public/testtool_test/testseite.php
@@ -24,123 +24,146 @@ echo '';
Testsite MathML
+
+
+
+
+
+
+
-
-
-
- MathML |
- |
- Picture |
-
-
-
-
-
- |
- |
-
-
- |
-
-
- The formula on the left side should be equal to the picture on the right side. |
-
-
-
Audio-Testfile
-
- |
- ';
- ?>
-
-
+
+
+