This commit is contained in:
kindlm
2017-04-06 16:02:26 +02:00
120 changed files with 6500 additions and 5429 deletions
+5
View File
@@ -3,10 +3,15 @@
## [Unreleased]
### Added
- **[CIS]** Reservierungen im Stundenplan prüft nun die Verfügbarkeit des Raums im Stundenplandev
- **[FAS]** Projektarbeiten können als Final markiert werden
- **[FAS]** Verwaltung von Rechnungsadressen
- **[CIS]** Mitarbeiter und Studierende können nach dem Login im CIS zur Passwortänderung umgeleitet werden wenn dieses seit über einem Jahr nicht geändert wurde
- **[FAS]** Bei Statuswechsel von Studierenden können Gründe für den Statuswechsel angegeben werden
### CHANGED
- **[CORE]** Berechtigungsprüfung wurde angepasst damit deaktiverte Benutzer keine Berechtigungen mehr haben
## [3.2]
### Added
+1 -3
View File
@@ -58,9 +58,7 @@ $autoload['packages'] = array();
|
| $autoload['libraries'] = array('user_agent' => 'ua');
*/
//$autoload['libraries'] = array();
$autoload['libraries'] = array('Session', 'FHC_Auth', 'TemplateLib');
$autoload['libraries'] = array('Session', 'FHC_Auth');
/*
| -------------------------------------------------------------------
Regular → Executable
+2 -1
View File
@@ -8,6 +8,7 @@ $config['email_number_to_sent'] = 1000; // Number of emails to sent each time se
$config['email_number_per_time_range'] = 1; // Number of emails to sent before pause
$config['email_time_range'] = 1; // Length of the pause in seconds
$config['email_from_system'] = 'no-reply@technikum-wien.at';
$config['alias_from_system'] = 'No Reply';
// Smtp: if the CI email library has to connect to a smtp server
// Mail: if the system is setup to send emails with the standard php mail function
@@ -28,4 +29,4 @@ $config['wordwrap'] = true; // {unwrap}http://example.com/a_long_link_that_shoul
$config['wrapchars'] = 76; // Character count to wrap at.
$config['mailtype'] = 'html'; // html or text
$config['priority'] = 3; // Email Priority. 1 = highest. 5 = lowest. 3 = normal
$config['validate'] = false; // If true then the email address will be validated
$config['validate'] = false; // If true then the email address will be validated
+34 -5
View File
@@ -14,6 +14,10 @@
if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* NOTE: in this controller is not possible to include/call everything
* that automatically call the authentication system, like the most of models or libraries
*/
class ViewMessage extends CI_Controller
{
/**
@@ -22,27 +26,52 @@ class ViewMessage extends CI_Controller
public function __construct()
{
parent::__construct();
// Loading config file message
$this->config->load('message');
// Load model MessageToken_model
// Load model MessageToken_model, not calling the authentication system
$this->load->model('system/MessageToken_model', 'MessageTokenModel');
}
/**
* Using the MessageTokenModel instead of MessageLib to allow
* viewing the message without prompting the login
*/
public function toHTML($token)
{
$msg = $this->MessageTokenModel->getMessageByToken($token);
if ($msg->error)
{
show_error($msg->retval);
}
if (is_array($msg->retval) && count($msg->retval) > 0)
{
$setReadMessageStatusByToken = $this->MessageTokenModel->setReadMessageStatusByToken($token);
if (isError($setReadMessageStatusByToken))
{
show_error($msg->$setReadMessageStatusByToken);
}
$sender_id = $msg->retval[0]->sender_id;
$receiver_id = $msg->retval[0]->receiver_id;
$sender = $this->MessageTokenModel->getSenderData($sender_id);
// To decide how to change the redirection
$isEmployee = $this->MessageTokenModel->isEmployee($receiver_id);
if (!is_bool($isEmployee) && isError($isEmployee))
{
show_error($isEmployee);
}
$data = array (
'sender_id' => $sender_id,
'sender' => $sender->retval[0],
'message' => $msg->retval[0],
'isEmployee' => $isEmployee,
'href' => APP_ROOT . $this->config->item('redirect_view_message_url') . $token
);
@@ -89,17 +89,15 @@ class Studiengang2 extends APIv1_Controller
$person_id = $this->get('person_id');
$studiensemester_kurzbz = $this->get('studiensemester_kurzbz');
$titel = $this->get('titel');
$status_kurzbz = $this->get('status_kurzbz');
if (isset($person_id) && isset($studiensemester_kurzbz) && isset($titel) && isset($status_kurzbz))
if (isset($person_id) && isset($studiensemester_kurzbz) && isset($titel))
{
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
$result = $this->StudiengangModel->getAppliedStudiengang(
$person_id,
$studiensemester_kurzbz,
$titel,
$status_kurzbz
$titel
);
$this->response($result, REST_Controller::HTTP_OK);
@@ -7,7 +7,13 @@ class Messages extends VileSci_Controller
public function __construct()
{
parent::__construct();
// Loads the message library
$this->load->library('MessageLib');
// Loads the widget library
$this->load->library('WidgetLib');
$this->load->model('person/Person_model', 'PersonModel');
}
@@ -7,8 +7,13 @@ class Phrases extends FHC_Controller
public function __construct()
{
parent::__construct();
// Loads the phrases library
$this->load->library('PhrasesLib');
// Loads the widget library
$this->load->library('WidgetLib');
// Loads helper message to manage returning messages
$this->load->helper('message');
}
-212
View File
@@ -1,212 +0,0 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class Users extends VileSci_Controller
{
public function __construct()
{
parent::__construct();
// Loads helper message to manage returning messages
$this->load->helper('message');
// Load the library to use the widgets
$this->load->library('TemplateLib');
}
public function index()
{
$studiengang = $this->input->post('studiengang');
$studiensemester = $this->input->post('studiensemester');
$gruppe = $this->input->post('gruppe');
$reihungstest = $this->input->post('reihungstest');
$stufe = $this->input->post('stufe');
$returnUsers = null;
if ($studiengang != null || $studiensemester != null || $gruppe!= null
|| $reihungstest != null || $stufe != null)
{
$returnUsers = $this->_getUsers($studiengang, $studiensemester, $gruppe, $reihungstest, $stufe);
}
$users = null;
if (hasData($returnUsers))
{
$users = $returnUsers->retval;
}
// Gruppen
$this->load->model('organisation/Gruppe_model', 'GruppeModel');
$this->GruppeModel->addOrder('beschreibung');
$gruppen = $this->GruppeModel->loadWhere(array('aktiv' => true, 'aufnahmegruppe' => true));
if (hasData($gruppen))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->gruppe_kurzbz = '-1';
$emptyElement->beschreibung = 'Select a group...';
array_unshift($gruppen->retval, $emptyElement);
}
else
{
show_error($gruppen->retval);
}
// Stufe
$this->load->model('crm/Reihungstest_model', 'ReihungstestModel');
$this->ReihungstestModel->addSelect('DISTINCT ON(stufe) stufe, stufe AS beschreibung');
$this->ReihungstestModel->addOrder('stufe');
$stufen = $this->ReihungstestModel->loadWhere('stufe IS NOT NULL');
if (hasData($stufen))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->stufe = '-1';
$emptyElement->beschreibung = 'Select a stufe...';
array_unshift($stufen->retval, $emptyElement);
}
else
{
show_error($stufen->retval);
}
if ($returnUsers == null || isSuccess($returnUsers))
{
$viewData = array(
'studiengang' => $studiengang,
'studiensemester' => $studiensemester,
'gruppe' => $gruppe,
'reihungstest' => $reihungstest,
'stufe' => $stufe,
'users' => $users,
'gruppen' => $gruppen->retval,
'stufen' => $stufen->retval
);
$this->load->view('system/users', $viewData);
}
else if (isError($returnUsers))
{
show_error($returnUsers->retval);
}
}
public function linkToStufe()
{
$prestudentIdArray = $this->input->post('prestudent_id');
$stufe = $this->input->post('stufe');
// Load model PrestudentstatusModel
$this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel');
$result = $this->PrestudentstatusModel->updateStufe($prestudentIdArray, $stufe);
if (isSuccess($result))
{
$href = str_replace("/system/Users/linkToStufe", "/system/Users", $_SERVER["REQUEST_URI"]);
echo "<div>Data correctly saved - <a href=\"" . $href . "\">Back</a></div>";
}
else
{
echo "<div>Error occurred while saving data, please contact the administrator.</div>";
}
}
public function linkToAufnahmegruppe()
{
$prestudentIdArray = $this->input->post('prestudent_id');
$aufnahmegruppe = $this->input->post('aufnahmegruppe');
// Load model PrestudentstatusModel
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
$result = $this->PrestudentModel->updateAufnahmegruppe($prestudentIdArray, $aufnahmegruppe);
if (isSuccess($result))
{
$href = str_replace("/system/Users/linkToAufnahmegruppe", "/system/Users", $_SERVER["REQUEST_URI"]);
echo "<div>Data correctly saved - <a href=\"" . $href . "\">Back</a></div>";
}
else
{
echo "<div>Error occurred while saving data, please contact the administrator.</div>";
}
}
private function _getUsers($studiengang, $studiensemester, $gruppe, $reihungstest, $stufe)
{
// Load model prestudentm_model
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
$this->PrestudentModel->addSelect(
'DISTINCT ON(p.person_id, prestudent_id) p.person_id,
prestudent_id,
p.nachname,
p.vorname,
p.geschlecht,
p.gebdatum,
k.kontakt AS email,
sg.kurzbzlang,
sg.bezeichnung,
sg.orgform_kurzbz,
sgt.bezeichnung AS typ,
s.bezeichnung AS studienplan,
ps.rt_stufe,
aufnahmegruppe_kurzbz,
rtp.punkte'
);
$this->PrestudentModel->addJoin('public.tbl_rt_person rtp', 'person_id');
$this->PrestudentModel->addJoin('public.tbl_person p', 'person_id', 'LEFT');
$this->PrestudentModel->addJoin(
'(
SELECT person_id,
kontakt
FROM public.tbl_kontakt
WHERE zustellung = TRUE
AND kontakttyp = \'email\'
ORDER BY kontakt_id DESC
) k',
'person_id',
'LEFT'
);
$this->PrestudentModel->addJoin('public.tbl_prestudentstatus ps', 'prestudent_id');
$this->PrestudentModel->addJoin('lehre.tbl_studienplan s', 's.studienplan_id = ps.studienplan_id');
$this->PrestudentModel->addJoin('lehre.tbl_studienordnung so', 'studienordnung_id');
$this->PrestudentModel->addJoin('public.tbl_studiengang sg', 'sg.studiengang_kz = so.studiengang_kz');
$this->PrestudentModel->addJoin('public.tbl_studiengangstyp sgt', 'typ');
$this->PrestudentModel->addOrder('p.person_id', 'ASC');
$this->PrestudentModel->addOrder('prestudent_id', 'ASC');
$parametersArray = array('p.aktiv' => true, 'ps.status_kurzbz' => 'Interessent');
if ($studiengang != null && $studiengang != '-1')
{
$parametersArray['sg.studiengang_kz'] = $studiengang;
}
if ($studiensemester != null && $studiensemester != '-1')
{
$parametersArray['ps.studiensemester_kurzbz'] = $studiensemester;
}
if ($gruppe != null && $gruppe != '-1')
{
$parametersArray['aufnahmegruppe_kurzbz'] = $gruppe;
}
if ($reihungstest != null && $reihungstest != '-1')
{
$parametersArray['rtp.rt_id'] = $reihungstest;
}
if ($stufe != null && $stufe != '-1')
{
$parametersArray['ps.rt_stufe'] = $stufe;
}
return $this->PrestudentModel->loadWhere($parametersArray);
}
}
@@ -1,108 +1,122 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class Templates extends FHC_Controller
class Vorlage extends VileSci_Controller
{
public function __construct()
{
parent::__construct();
// Loads the vorlage library
$this->load->library('VorlageLib');
// Loads the widget library
$this->load->library('WidgetLib');
}
public function index()
{
$this->load->view('system/templates.php');
$this->load->view('system/vorlage/templates.php');
}
public function table()
{
$mimetype = $this->input->post('mimetype', TRUE);
$mimetype = $this->input->post('mimetype');
if (is_null($mimetype))
$mimetype = 'text/html';
if ($mimetype == '')
$mimetype = null;
$vorlage = $this->vorlagelib->getVorlageByMimetype($mimetype);
if ($vorlage->error)
show_error($vorlage->retval);
//var_dump($vorlage);
$data = array
(
$data = array (
'mimetype' => $mimetype,
'vorlage' => $vorlage->retval
);
$v = $this->load->view('system/templatesList.php', $data);
$v = $this->load->view('system/vorlage/templatesList.php', $data);
}
public function view($vorlage_kurzbz = null)
{
if (empty($vorlage_kurzbz))
exit;
if (empty($vorlage_kurzbz)) exit;
$vorlagentext = $this->vorlagelib->getVorlagetextByVorlage($vorlage_kurzbz);
if ($vorlagentext->error)
show_error($vorlagentext->retval);
//var_dump($vorlagentext);
$data = array
(
$data = array (
'vorlage_kurzbz' => $vorlage_kurzbz,
'vorlagentext' => $vorlagentext->retval
);
$v = $this->load->view('system/templatetextList.php', $data);
$v = $this->load->view('system/vorlage/templatetextList.php', $data);
}
public function edit($vorlage_kurzbz = null)
{
if (empty($vorlage_kurzbz))
exit;
if (empty($vorlage_kurzbz)) exit;
$vorlage = $this->vorlagelib->getVorlage($vorlage_kurzbz);
//var_dump($vorlage);
if ($vorlage->error)
show_error($vorlage->retval);
if (count($vorlage->retval) != 1)
show_error('Nachricht nicht vorhanden! ID: '.$vorlage_kurzbz);
$data = array
(
$data = array (
'vorlage' => $vorlage->retval[0]
);
//var_dump($data['message']);
$v = $this->load->view('system/templatesEdit', $data);
$v = $this->load->view('system/vorlage/templatesEdit', $data);
}
public function write($vorlage_kurzbz = null)
{
$data = array
(
$data = array (
'subject' => 'TestSubject',
'body' => 'TestDevelopmentBodyText'
);
$v = $this->load->view('system/messageWrite', $data);
);
$v = $this->load->view('system/vorlage/messageWrite', $data);
}
public function save()
{
$vorlage_kurzbz = $this->input->post('vorlage_kurzbz', TRUE);
$data['bezeichnung'] = $this->input->post('bezeichnung', TRUE);
$data['anmerkung'] = $this->input->post('anmerkung', TRUE);
$data['mimetype'] = $this->input->post('mimetype', TRUE);
$data['attribute'] = $this->input->post('attribute', TRUE);
$vorlage_kurzbz = $this->input->post('vorlage_kurzbz');
$data = array(
'bezeichnung' => $this->input->post('bezeichnung'),
'anmerkung' => $this->input->post('anmerkung'),
'mimetype' => $this->input->post('mimetype'),
'attribute' => $this->input->post('attribute')
);
$vorlage = $this->vorlagelib->saveVorlage($vorlage_kurzbz, $data);
if ($vorlage->error)
show_error($vorlage->retval);
$vorlage_kurzbz = $vorlage->retval;
redirect('/system/Templates/edit/'.$vorlage_kurzbz);
redirect('/system/vorlage/edit/'.$vorlage_kurzbz);
}
public function newText()
{
$vorlage_kurzbz = $this->input->post('vorlage_kurzbz', true);
$vorlage_kurzbz = $this->input->post('vorlage_kurzbz');
$this->load->model('organisation/Organisationseinheit_model', 'OrganisationseinheitModel');
$this->OrganisationseinheitModel->addLimit(1);
$this->OrganisationseinheitModel->addOrder('oe_kurzbz');
$resultOE = $this->OrganisationseinheitModel->loadWhere(array('aktiv' => true, 'oe_parent_kurzbz' => null));
if ($resultOE->error)
@@ -120,105 +134,127 @@ class Templates extends FHC_Controller
);
$vorlagetext = $this->vorlagelib->insertVorlagetext($data);
if ($vorlagetext->error)
show_error($vorlagetext->retval);
$vorlagestudiengang_id = $vorlagetext->retval;
redirect('/system/Templates/editText/'.$vorlagestudiengang_id);
redirect('/system/vorlage/editText/'.$vorlagestudiengang_id);
}
else
{
show_error('No valid organisation unit found');
}
}
public function editText($vorlagestudiengang_id)
{
$vorlagetext = $this->vorlagelib->getVorlagetextById($vorlagestudiengang_id);
if ($vorlagetext->error)
show_error($vorlagetext->retval);
$data = $vorlagetext->retval[0];
// Preview-Data
$schema = $this->vorlagelib->getVorlage($data->vorlage_kurzbz);
$data->schema = $schema->retval[0]->attribute;
$this->load->view('system/templatetextEdit', $data);
$this->load->view('system/vorlage/templatetextEdit', $data);
}
public function linkDocuments($vorlagestudiengang_id)
{
$this->load->model('system/vorlagedokument_model');
$return = $this->vorlagedokument_model->loadDokumenteFromVorlagestudiengang($vorlagestudiengang_id);
$data = array();
$this->load->model('system/Vorlagedokument_model', 'VorlagedokumentModel');
$return = $this->VorlagedokumentModel->loadDokumenteFromVorlagestudiengang($vorlagestudiengang_id);
$data['documents'] = $return->retval;
$this->load->model('system/dokument_model');
$this->dokument_model->addOrder("bezeichnung");
$return = $this->dokument_model->load();
$this->load->model('system/Dokument_model', 'DokumentModel');
$this->DokumentModel->addOrder('bezeichnung');
$return = $this->DokumentModel->load();
$data['allDocuments'] = $return->retval;
$data['vorlagestudiengang_id'] = $vorlagestudiengang_id;
$this->load->view('system/templateLinkDocuments', $data);
$this->load->view('system/vorlage/templateLinkDocuments', $data);
}
public function saveDocuments($vorlagestudiengang_id, $dokument_kurzbz, $sort)
{
$this->load->model('system/vorlagedokument_model');
$insert = array();
$insert['vorlagestudiengang_id'] = $vorlagestudiengang_id;
$insert['dokument_kurzbz'] = $dokument_kurzbz;
$insert['sort'] = $sort;
$this->vorlagedokument_model->insert($insert);
$insert['sort'] = $sort;
$this->load->model('system/Vorlagedokument_model', 'VorlagedokumentModel');
$this->VorlagedokumentModel->insert($insert);
}
public function deleteDocumentLink($vorlagestudiengang_id)
{
$this->load->model('system/vorlagedokument_model');
$this->vorlagedokument_model->delete($vorlagestudiengang_id);
$this->load->model('system/Vorlagedokument_model', 'VorlagedokumentModel');
$this->VorlagedokumentModel->delete($vorlagestudiengang_id);
}
public function changeSort($vorlagestudiengang_id, $sort)
{
$this->load->model('system/vorlagedokument_model');
$this->vorlagedokument_model->update($vorlagestudiengang_id, array("sort"=>$sort));
$this->load->model('system/Vorlagedokument_model', 'VorlagedokumentModel');
$this->VorlagedokumentModel->update($vorlagestudiengang_id, array('sort' => $sort));
}
public function saveText()
{
$vorlagestudiengang_id = $this->input->post('vorlagestudiengang_id', TRUE);
$data['studiengang_kz'] = $this->input->post('studiengang_kz', TRUE);
$data['version'] = $this->input->post('version', TRUE);
$data['oe_kurzbz'] = $this->input->post('oe_kurzbz', TRUE);
$data = array(
'studiengang_kz' => $this->input->post('studiengang_kz'),
'version' => $this->input->post('version'),
'oe_kurzbz' => $this->input->post('oe_kurzbz'),
'aktiv' => $this->input->post('aktiv'),
'text' => $this->input->post('text'),
'vorlagestudiengang_id' => $this->input->post('vorlagestudiengang_id')
);
if ($this->input->post('sprache') == '')
$data['sprache'] = null;
else
$data['sprache'] = $this->input->post('sprache', TRUE);
$data['sprache'] = $this->input->post('sprache');
if ($this->input->post('orgform_kurzbz') == '')
$data['orgform_kurzbz'] = null;
else
$data['orgform_kurzbz'] = $this->input->post('orgform_kurzbz', TRUE);
$data['text'] = $this->input->post('text', TRUE);
$data['aktiv'] = $this->input->post('aktiv', TRUE);
$vorlagetext = $this->vorlagelib->updateVorlagetext($vorlagestudiengang_id, $data);
$data['orgform_kurzbz'] = $this->input->post('orgform_kurzbz');
$vorlagetext = $this->vorlagelib->updateVorlagetext($data['vorlagestudiengang_id'], $data);
if ($vorlagetext->error)
show_error($vorlagetext->retval);
$data['vorlagestudiengang_id'] = $vorlagestudiengang_id;
redirect('/system/Templates/editText/'.$vorlagestudiengang_id);
//$this->load->view('system/templatetextEdit', $data);
redirect('/system/vorlage/editText/'.$data['vorlagestudiengang_id']);
}
public function preview($vorlagestudiengang_id)
{
$formdata = $this->input->post('formdata', FALSE);
$daten = json_decode($formdata, TRUE);
$jsonDecodedForm = json_decode($this->input->post('formdata'), true);
$vorlagetext = $this->vorlagelib->getVorlagetextById($vorlagestudiengang_id);
if ($vorlagetext->error)
show_error($vorlagetext->retval);
$data = array
(
'text' => $this->vorlagelib->parseVorlagetext($vorlagetext->retval[0]->text, $daten)
$data = array(
'text' => $this->vorlagelib->parseVorlagetext($vorlagetext->retval[0]->text, $jsonDecodedForm)
);
$this->load->view('system/templatetextPreview', $data);
$this->load->view('system/vorlage/templatetextPreview', $data);
}
}
}
@@ -0,0 +1,157 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class PrestudentMultiAssign extends VileSci_Controller
{
public function __construct()
{
parent::__construct();
// Loads helper message to manage returning messages
$this->load->helper('message');
// Loads the widget library
$this->load->library('WidgetLib');
}
public function index()
{
$studiengang = $this->input->post('studiengang');
$studiensemester = $this->input->post('studiensemester');
$aufnahmegruppe = $this->input->post('aufnahmegruppe');
$reihungstest = $this->input->post('reihungstest');
$stufe = $this->input->post('stufe');
$returnUsers = null;
if ($studiengang != null || $studiensemester != null || $aufnahmegruppe!= null
|| $reihungstest != null || $stufe != null)
{
$returnUsers = $this->_getPrestudents($studiengang, $studiensemester, $aufnahmegruppe, $reihungstest, $stufe);
}
$users = null;
if (hasData($returnUsers))
{
$users = $returnUsers->retval;
}
if ($returnUsers == null || isSuccess($returnUsers))
{
$viewData = array(
'studiengang' => $studiengang,
'studiensemester' => $studiensemester,
'aufnahmegruppe' => $aufnahmegruppe,
'reihungstest' => $reihungstest,
'stufe' => $stufe,
'users' => $users
);
$this->load->view('system/aufnahme/prestudentMultiAssign', $viewData);
}
else if (isError($returnUsers))
{
show_error($returnUsers->retval);
}
}
/**
* To assign a stufe to one or more prestudents
*/
public function linkToStufe()
{
$prestudentIdArray = $this->input->post('prestudent_id');
$stufe = $this->input->post('stufe');
// Load model PrestudentstatusModel
$this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel');
$result = error("No valid parameters");
if (isset($stufe) && isset($prestudentIdArray) && is_array($prestudentIdArray) && count($prestudentIdArray) >0)
{
$result = $this->PrestudentstatusModel->updateStufe($prestudentIdArray, $stufe);
}
$this->output->set_header('Content-Type: application/json; charset=utf-8');
if (isSuccess($result))
{
echo '{"msg": "Data correctly saved"}';
}
else
{
echo '{"msg": "Error occurred while saving data, please contact the administrator"}';
}
}
/**
* To assign one or more prestudents to a gruppe
*/
public function linkToAufnahmegruppe()
{
$prestudentIdArray = $this->input->post('prestudent_id');
$aufnahmegruppe = $this->input->post('aufnahmegruppe');
// Load model PrestudentstatusModel
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
$result = error("No valid parameters");
if (isset($aufnahmegruppe) && isset($prestudentIdArray) && is_array($prestudentIdArray) && count($prestudentIdArray) >0)
{
$result = $this->PrestudentModel->updateAufnahmegruppe($prestudentIdArray, $aufnahmegruppe);
}
$this->output->set_header('Content-Type: application/json; charset=utf-8');
if (isSuccess($result))
{
echo '{"msg": "Data correctly saved"}';
}
else
{
echo '{"msg": "Error occurred while saving data, please contact the administrator"}';
}
}
/**
* Get the prestudents using search parameters
*/
private function _getPrestudents($studiengang, $studiensemester, $aufnahmegruppe, $reihungstest, $stufe)
{
// Load model prestudentm_model
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
if ($studiengang == '' || empty($studiengang))
{
$studiengang = null;
}
if ($studiensemester == '' || empty($studiensemester))
{
$studiensemester = null;
}
if ($aufnahmegruppe == '' || empty($aufnahmegruppe))
{
$aufnahmegruppe = null;
}
if ($reihungstest == '' || empty($reihungstest))
{
$reihungstest = null;
}
if ($stufe == '' || empty($stufe))
{
$stufe = null;
}
return $this->PrestudentModel->getPrestudentMultiAssign(
$studiengang,
$studiensemester,
$aufnahmegruppe,
$reihungstest,
$stufe
);
}
}
+1 -1
View File
@@ -9,6 +9,6 @@ class APIv1_Controller extends REST_Controller
parent::__construct();
// Loads return messages
$this->load->helper('Message');
$this->load->helper('message');
}
}
+84 -3
View File
@@ -8,6 +8,7 @@ class DB_Model extends FHC_Model
const PGSQL_BOOLEAN_TRUE = 't';
const PGSQL_BOOLEAN_FALSE = 'f';
const MODEL_POSTFIX = '_model';
const DEFAULT_SCHEMA = 'public';
protected $dbTable; // Name of the DB-Table for CI-Insert, -Update, ...
protected $pk; // Name of the PrimaryKey for DB-Update, Load, ...
@@ -226,6 +227,8 @@ class DB_Model extends FHC_Model
* - Adding support for composed primary key
* - Adding support for cascading side tables (useful?)
*
* NOTE: sub queries are not supported in the from clause
*
* @return array
*/
public function loadTree($mainTable, $sideTables, $where = null, $sideTablesAliases = null)
@@ -246,13 +249,26 @@ class DB_Model extends FHC_Model
$select = '';
for ($t = 0; $t < count($tables); $t++)
{
$fields = $this->db->list_fields($tables[$t]); // list of the columns of the current table
// Get the schema if it is specified
$schemaAndTable = $this->getSchemaAndTable($tables[$t]);
// Discard the schema, not needed in the next steps
$tables[$t] = $schemaAndTable->table;
// List of the columns of the current table
// NOTE: $this->db->list_fields($tables[$t]) doesn't work if there are two tables with
// the same name in two different schemas, use this workaround
$fields = array();
if (isSuccess($lstColumns = $this->_list_columns($schemaAndTable->schema, $schemaAndTable->table)))
{
$fields = $lstColumns->retval;
}
for ($f = 0; $f < count($fields); $f++)
{
// To avoid overwriting of the properties within the object returned by CI
// will be given an alias to every column, that will be composed with the following schema
// <table name>.<column name> AS <table_name>_<column name>
$select .= $tables[$t] . '.' . $fields[$f] . ' AS ' . $tables[$t] . '_' . $fields[$f];
$select .= $tables[$t] . '.' . $fields[$f]->column_name . ' AS ' . $tables[$t] . '_' . $fields[$f]->column_name;
if ($f < count($fields) - 1) $select .= ', ';
}
@@ -452,6 +468,26 @@ class DB_Model extends FHC_Model
return success(true);
}
/** ---------------------------------------------------------------
* Add one or more fields in the group by clause
*
* @return void
*/
public function addGroupBy($fields)
{
if (!isset($fields)
|| (!is_array($fields) && !is_string($fields))
|| (is_array($fields) && count($fields) == 0)
|| (is_string($fields) && $fields == ''))
{
return error(FHC_MODEL_ERROR, FHC_MODEL_ERROR);
}
$this->db->group_by($fields);
return success(true);
}
/** ---------------------------------------------------------------
* Reset the query builder state
*
@@ -640,6 +676,32 @@ class DB_Model extends FHC_Model
return $result;
}
/**
* Get schema and table name from the parameter
* If no schema are specified it will returns the parameter as table name,
* and the default schema as schema
* Ex:
* If the parameters is 'lehre.tbl_studienplan' it will returns the following object:
* obj
* |--->schema: lehre
* |--->table: tbl_studienplan
*/
protected function getSchemaAndTable($schemaAndTable)
{
$result = new stdClass();
$result->schema = DB_Model::DEFAULT_SCHEMA;
$result->table = $schemaAndTable;
// If a schema is specified
if (($pos = strpos($schemaAndTable, '.')) !== false)
{
$result->schema = substr($schemaAndTable, 0, $pos);
$result->table = substr($schemaAndTable, $pos + 1);
}
return $result;
}
/**
* Checks if the caller is entitled to perform this operation with this right
*/
@@ -651,9 +713,13 @@ class DB_Model extends FHC_Model
substr(get_called_class(), -6) == DB_Model::MODEL_POSTFIX) ||
$permission != PermissionLib::SELECT_RIGHT)
{
// If true is not returned, then an error has occurred
if (($isEntitled = $this->isEntitled($this->dbTable, $permission, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
{
// TODO: resetQuery
// Before returning the object containing the error, reset the build query
// This is for preventing that other parts of the query will be built before of the next execution
$this->resetQuery();
return $isEntitled;
}
}
@@ -751,4 +817,19 @@ class DB_Model extends FHC_Model
return false;
}
/**
* Workaround of CI_DB_driver->_list_columns
* CI_DB_driver->list_fields($tableName), that calls CI_DB_postgre_driver->_list_columns,
* doesn't work if there are two tables with the same name in two different schemas
*/
private function _list_columns($schema, $table)
{
$query = 'SELECT column_name
FROM information_schema.columns
WHERE LOWER(table_schema) = ?
AND LOWER(table_name) = ?';
return $this->execQuery($query, array(strtolower($schema), strtolower($table)));
}
}
+1 -1
View File
@@ -7,7 +7,7 @@ class FHC_Controller extends CI_Controller
public function __construct()
{
parent::__construct();
$this->load->library('session');
$this->load->helper('fhcauth');
}
}
+29 -23
View File
@@ -8,13 +8,13 @@ if (! defined("BASEPATH")) exit("No direct script access allowed");
class MailLib
{
private $sended; // Sended email counter
// Properties for storing the configuration
private $email_number_to_sent;
private $email_number_per_time_range;
private $email_time_range;
private $email_from_system;
/**
* Class constructor
*/
@@ -22,26 +22,27 @@ class MailLib
{
// Set the counter to 0
$this->sended = 0;
// Get CI instance
$this->ci =& get_instance();
// The second parameter is used to avoiding name collisions in the config array
$this->ci->config->load("mail", true);
// CI Email library
$this->ci->load->library("email");
// Initializing email library with the loaded configurations
$this->ci->email->initialize($this->ci->config->config["mail"]);
// Set the configuration properties with the standard configuration values
$this->email_number_to_sent = $this->getEmailCfgItem("email_number_to_sent");
$this->email_number_per_time_range = $this->getEmailCfgItem("email_number_per_time_range");
$this->email_time_range = $this->getEmailCfgItem("email_time_range");
$this->email_from_system = $this->getEmailCfgItem("email_from_system");
$this->alias_from_system = $this->getEmailCfgItem("alias_from_system");
}
/**
* Sends a single email
*/
@@ -51,10 +52,15 @@ class MailLib
if (is_null($from) || $from == "")
{
$from = $this->email_from_system;
// If alias is not specified then use the standard one
if (is_null($alias) || $alias == "")
{
$alias = $this->alias_from_system;
}
}
$this->ci->email->from($from, $alias);
// Check if the email address of the debug recipient is a valid one
$recipient = $to;
$recipientCC = $cc;
@@ -66,17 +72,17 @@ class MailLib
$recipientCC = MAIL_DEBUG;
$recipientBCC = MAIL_DEBUG;
}
$this->ci->email->to($recipient);
if (!is_null($recipientCC)) $this->ci->email->cc($recipientCC);
if (!is_null($recipientBCC)) $this->ci->email->bcc($recipientBCC);
$this->ci->email->subject($subject);
$this->ci->email->message($message);
if (!empty($altMessage)) $this->ci->email->set_alt_message($altMessage);
// Avoid printing on standard output ugly error messages
$result = @$this->ci->email->send();
// If the email was succesfully sended then increment the counter
// and checks if it has to wait until the sending of the next
if ($result)
@@ -84,10 +90,10 @@ class MailLib
$this->sended++;
$this->wait();
}
return $result;
}
/**
* To ovveride the configurations
*/
@@ -113,7 +119,7 @@ class MailLib
}
}
}
/**
* Returns the current configuration
*/
@@ -124,25 +130,25 @@ class MailLib
$cfg->email_number_per_time_range = $this->email_number_per_time_range;
$cfg->email_time_range = $this->email_time_range;
$cfg->email_from_system = $this->email_from_system;
return $cfg;
}
/**
* Validates an email address
*/
public function validateEmailAddress($emailAddress)
{
$valid = false;
if (!empty($emailAddress))
{
$valid = filter_var($emailAddress, FILTER_VALIDATE_EMAIL);
}
return $valid;
}
/**
* Checks if it has to wait until the sending of the next
*/
@@ -153,7 +159,7 @@ class MailLib
sleep($this->email_time_range); // Wait!!!
}
}
/**
* Gets an item from the email configuration array
*/
@@ -161,4 +167,4 @@ class MailLib
{
return $this->ci->config->item($itemName, EMAIL_CONFIG_INDEX);
}
}
}
+90 -90
View File
@@ -8,15 +8,15 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
class MessageLib
{
const MSG_INDX_PREFIX = 'message_';
public function __construct()
{
// Get code igniter instance
$this->ci =& get_instance();
// Loads message configuration
$this->ci->config->load('message');
// CI Parser library
$this->ci->load->library('parser');
// Loads LogLib
@@ -25,22 +25,22 @@ class MessageLib
$this->ci->load->library('VorlageLib');
// Loads Mail library
$this->ci->load->library('MailLib');
// Loading models
$this->ci->load->model('system/Message_model', 'MessageModel');
$this->ci->load->model('system/MsgStatus_model', 'MsgStatusModel');
$this->ci->load->model('system/Recipient_model', 'RecipientModel');
$this->ci->load->model('system/Attachment_model', 'AttachmentModel');
// Loads fhc helper
$this->ci->load->helper('fhc');
// Loads helper message to manage returning messages
$this->ci->load->helper('message');
// Loads phrases
$this->ci->lang->load('message');
}
/**
* getMessage() - returns the spicified received message for a specified person
*
@@ -54,12 +54,12 @@ class MessageLib
return $this->_error('', MSG_ERR_INVALID_MSG_ID);
if (empty($person_id))
return $this->_error('', MSG_ERR_INVALID_RECIPIENTS);
$msg = $this->ci->RecipientModel->getMessage($msg_id, $person_id);
return $msg;
}
/**
* getMessagesByUID() - will return all messages, including the latest status for specified user. It don´t returns Attachments.
*
@@ -70,12 +70,12 @@ class MessageLib
{
if (empty($uid))
return $this->_error('', MSG_ERR_INVALID_MSG_ID);
$msg = $this->ci->RecipientModel->getMessagesByUID($uid, $all);
return $msg;
}
/**
* getMessagesByPerson() - will return all messages, including the latest status for specified user. It don´t returns Attachments.
*
@@ -86,12 +86,12 @@ class MessageLib
{
if (empty($person_id))
return $this->_error('', MSG_ERR_INVALID_MSG_ID);
$msg = $this->ci->RecipientModel->getMessagesByPerson($person_id, $all);
return $msg;
}
/**
* getSentMessagesByPerson() - Get all sent messages from a person identified by person_id
*
@@ -102,12 +102,12 @@ class MessageLib
{
if (empty($person_id))
return $this->_error('', MSG_ERR_INVALID_MSG_ID);
$msg = $this->ci->MessageModel->getMessagesByPerson($person_id, $all);
return $msg;
}
/**
* getMessageByToken
*
@@ -118,7 +118,7 @@ class MessageLib
{
if (empty($token))
return $this->_error('', MSG_ERR_INVALID_TOKEN);
$result = $this->ci->RecipientModel->getMessageByToken($token);
if (hasData($result))
{
@@ -132,7 +132,7 @@ class MessageLib
break;
}
}
// If not found then insert the read status
if ($found == -1)
{
@@ -141,7 +141,7 @@ class MessageLib
'person_id' => $result->retval[0]->receiver_id,
'status' => MSG_STATUS_READ
);
$resultIns = $this->ci->MsgStatusModel->insert($statusKey);
// If an error occured while writing on data base, then return it
if (isError($resultIns))
@@ -150,10 +150,10 @@ class MessageLib
}
}
}
return $result;
}
/**
* getCountUnreadMessages
*
@@ -164,12 +164,12 @@ class MessageLib
{
if (!is_numeric($person_id))
return $this->_error('', MSG_ERR_INVALID_RECIPIENTS);
$msg = $this->ci->RecipientModel->getCountUnreadMessages($person_id);
return $msg;
}
/**
* updateMessageStatus() - will change status on message for particular user
*
@@ -184,18 +184,18 @@ class MessageLib
{
return $this->_error('', MSG_ERR_INVALID_MSG_ID);
}
if (empty($person_id))
{
return $this->_error('', MSG_ERR_INVALID_USER_ID);
}
// Not use empty otherwise if status is 0 it returns an error
if (!isset($status))
{
return $this->_error('', MSG_ERR_INVALID_STATUS_ID);
}
// Searches if the status is already present
$result = $this->ci->MsgStatusModel->load(array($message_id, $person_id, $status));
if (hasData($result))
@@ -210,13 +210,13 @@ class MessageLib
'person_id' => $person_id,
'status' => $status
);
$result = $this->ci->MsgStatusModel->insert($statusKey);
}
return $result;
}
/**
* sendMessage() - sends new internal message. This function will create a new thread
*
@@ -227,9 +227,9 @@ class MessageLib
{
$sender_id = $this->ci->config->item('system_person_id');
}
$receivers = $this->_getReceivers($receiver_id, $oe_kurzbz);
// If everything went ok
if (isSuccess($receivers) && is_array($receivers->retval))
{
@@ -238,12 +238,12 @@ class MessageLib
{
$result = $this->_error($receivers->retval, MSG_ERR_OU_CONTACTS_NOT_FOUND);
}
// Looping on receivers
for ($i = 0; $i < count($receivers->retval); $i++)
{
$receiver_id = $receivers->retval[$i]->person_id;
// Checks if the receiver exists
if ($this->_checkReceiverId($receiver_id))
{
@@ -289,10 +289,10 @@ class MessageLib
{
$result = $receivers;
}
return $result;
}
/**
* sendMessageVorlage() - sends new internal message using a template
*
@@ -309,9 +309,9 @@ class MessageLib
{
$sender_id = $this->ci->config->item('system_person_id');
}
$receivers = $this->_getReceivers($receiver_id, $oe_kurzbz);
// If everything went ok
if (isSuccess($receivers) && is_array($receivers->retval))
{
@@ -325,12 +325,12 @@ class MessageLib
// Load reveiver data to get its relative language
$this->ci->load->model('person/Person_model', 'PersonModel');
}
// Looping on receivers
for ($i = 0; $i < count($receivers->retval); $i++)
{
$receiver_id = $receivers->retval[$i]->person_id;
$result = $this->ci->PersonModel->load($receiver_id);
if (hasData($result))
{
@@ -341,7 +341,7 @@ class MessageLib
{
$sprache = $result->retval[0]->sprache;
}
// Loads template data
$result = $this->ci->vorlagelib->loadVorlagetext($vorlage_kurzbz, $oe_kurzbz, $orgform_kurzbz, $sprache);
if (isSuccess($result))
@@ -353,7 +353,7 @@ class MessageLib
// Parses template text
$parsedText = $this->ci->vorlagelib->parseVorlagetext($result->retval[0]->text, $data);
$subject = $result->retval[0]->subject;
// Save message
$result = $this->_saveMessage($sender_id, $receiver_id, $subject, $parsedText, $relationmessage_id, $oe_kurzbz);
// If no errors were occurred
@@ -413,27 +413,27 @@ class MessageLib
{
$result = $receivers;
}
return $result;
}
/**
* Gets all the messages from DB and sends them via email
*/
public function sendAll($numberToSent = null, $numberPerTimeRange = null, $email_time_range = null, $email_from_system = null)
{
$sent = true; // optimistic expectation
// Gets standard configs
$cfg = $this->ci->maillib->getConfigs();
$cfg->email_number_to_sent = $numberToSent;
$cfg->email_number_per_time_range = $numberPerTimeRange;
$cfg->email_time_range = $email_time_range;
$cfg->email_from_system = $email_from_system;
// Overrides configs with the parameters
$this->ci->maillib->overrideConfigs($cfg);
// Gets a number ($this->ci->maillib->getMaxEmailToSent()) of unsent messages from DB
// having EMAIL_KONTAKT_TYPE as relative contact type
$result = $this->ci->RecipientModel->getMessages(
@@ -468,7 +468,7 @@ class MessageLib
{
$this->ci->loglib->logError('Error while parsing the mail template');
}
// Using a template for the plain text email body
$altBody = $this->ci->parser->parse(
'templates/mailTXT',
@@ -483,9 +483,9 @@ class MessageLib
{
$this->ci->loglib->logError('Error while parsing the mail template');
}
// If the sender kontakt does not exist, then use system
$sender = $this->ci->maillib->getConfigs()->email_from_system;
// If the sender kontakt does not exist, then system-sender is used if empty
$sender = '';
if (!is_null($result->retval[0]->sender) && $result->retval[0]->sender != '')
{
$sender = $result->retval[0]->sender;
@@ -505,7 +505,7 @@ class MessageLib
if (!$sent)
{
$this->ci->loglib->logError('Error while sending an email');
// Writing errors in tbl_message_status
// Writing errors in tbl_message_recipient
$sme = $this->setMessageError(
$result->retval[$i]->message_id,
$result->retval[$i]->receiver_id,
@@ -531,7 +531,7 @@ class MessageLib
else
{
$this->ci->loglib->logError('This person does not have an email account');
// Writing errors in tbl_message_status
// Writing errors in tbl_message_recipient
$sme = $this->setMessageError(
$result->retval[$i]->message_id,
$result->retval[$i]->receiver_id,
@@ -557,17 +557,17 @@ class MessageLib
$this->ci->loglib->logError('Something went wrong while getting data from DB');
$sent = false;
}
return $sent;
}
/**
* Gets one message from DB and sends it via email
*/
public function sendOne($message_id, $subject = null, $body = null, $multiPartMime = true)
{
$sent = true; // optimistic expectation
// Get a specific message from DB having EMAIL_KONTAKT_TYPE as relative contact type
$result = $this->ci->RecipientModel->getMessages(
EMAIL_KONTAKT_TYPE,
@@ -603,7 +603,7 @@ class MessageLib
// $body = $result->retval[0]->body;
$this->ci->loglib->logError('Error while parsing the html mail template');
}
// Using a template for the plain text email body
$altBody = $this->ci->parser->parse(
'templates/mailTXT',
@@ -623,14 +623,14 @@ class MessageLib
{
$bodyMsg = $altBody = $body;
}
// If the sender kontakt does not exist, then use system
$sender = $this->ci->maillib->getConfigs()->email_from_system;
// If the sender kontakt does not exist, then system-sender is used if empty
$sender = '';
if (!is_null($result->retval[0]->sender) && $result->retval[0]->sender != '')
{
$sender = $result->retval[0]->sender;
}
// Sending email
$sent = $this->ci->maillib->send(
$sender,
@@ -697,21 +697,21 @@ class MessageLib
$this->ci->loglib->logError('Something went wrong while getting data from DB');
$sent = false;
}
return $sent;
}
// ------------------------------------------------------------------------
// Private Functions from here out!
// ------------------------------------------------------------------------
/**
* Update the table tbl_message_recipient
*/
private function _updateMessageRecipient($message_id, $receiver_id, $parameters)
{
$updated = false;
// Changes the status of the message from unread to read
$resultUpdate = $this->ci->RecipientModel->update(array($receiver_id, $message_id), $parameters);
// Checks if errors were occurred
@@ -719,20 +719,20 @@ class MessageLib
{
$updated = true;
}
return $updated;
}
/**
* Changes the status of the message from unsent to sent
*/
private function setMessageSent($message_id, $receiver_id)
{
$parameters = array('sent' => 'NOW()', 'sentinfo' => null);
return $this->_updateMessageRecipient($message_id, $receiver_id, $parameters);
}
/**
* Sets the sentInfo with the error
*/
@@ -742,12 +742,12 @@ class MessageLib
{
$sentInfo = $prevSentInfo . SENT_INFO_NEWLINE . $sentInfo;
}
$parameters = array('sent' => null, 'sentinfo' => $sentInfo);
return $this->_updateMessageRecipient($message_id, $receiver_id, $parameters);
}
/**
* Gets the receivers id that are enabled to read messages for that oe_kurzbz
*/
@@ -763,17 +763,17 @@ class MessageLib
' AND funktion_kurzbz = \'' . $this->ci->config->item('assistent_function') . '\'' .
' AND (NOW() BETWEEN COALESCE(datum_von, NOW()) AND COALESCE(datum_bis, NOW()))'
);
return $receivers;
}
/**
* Gets the receivers id
*/
private function _getReceivers($receiver_id, $oe_kurzbz = null)
{
$receivers = null;
// If no receiver_id is given...
if (is_null($receiver_id))
{
@@ -793,10 +793,10 @@ class MessageLib
$receivers = $this->_success(array(new stdClass()));
$receivers->retval[0]->person_id = $receiver_id;
}
return $receivers;
}
/**
* Checks if the given receiver id is a valid person
*/
@@ -809,10 +809,10 @@ class MessageLib
{
return true;
}
return false;
}
/**
* Save a message in DB
**/
@@ -820,7 +820,7 @@ class MessageLib
{
// Starts db transaction
$this->ci->db->trans_start(false);
// Save Message
$msgData = array(
'person_id' => $sender_id,
@@ -852,9 +852,9 @@ class MessageLib
$result = $this->ci->MsgStatusModel->insert($statusData);
}
}
$this->ci->db->trans_complete();
if ($this->ci->db->trans_status() === false || isError($result))
{
$this->ci->db->trans_rollback();
@@ -865,10 +865,10 @@ class MessageLib
$this->ci->db->trans_commit();
$result = $this->_success($msg_id);
}
return $result;
}
/**
* Wrapper for function error
*/
@@ -876,7 +876,7 @@ class MessageLib
{
return error($retval, $code, MessageLib::MSG_INDX_PREFIX);
}
/**
* Wrapper for function success
*/
@@ -884,12 +884,12 @@ class MessageLib
{
return success($retval, $code, MessageLib::MSG_INDX_PREFIX);
}
/**
*
*
*/
public function parseMessageText($text, $data = array())
{
return $this->ci->parser->parse_string($text, $data, true);
}
}
}
+17 -5
View File
@@ -126,12 +126,24 @@ class PhrasesLib
for ($i = 0; $i < count($result->retval); $i++)
{
// If no <p> tags required
if ($blockTags == "no")
if ($blockTags == 'no')
{
// Removes tags <p> and </p> from the beginning and from the end of the string
$tmpText = $parser->textileThis($result->retval[$i]->text);
$tmpText = substr($tmpText, 3, strlen($tmpText));
$tmpText = substr($tmpText, 0, strlen($tmpText) - 4);
$tmpText = $parser->textileThis($result->retval[$i]->text); // Parse
// Removes tags <p> and </p> from the beginning and from the end of the string if they are present
// NOTE: Those tags are usually, but not always, added by the textile parser
if (strlen($tmpText) >= 7)
{
if (substr($tmpText, 0, 3) == '<p>')
{
$tmpText = substr($tmpText, 3, strlen($tmpText));
}
if (substr($tmpText, -4, strlen($tmpText)) == '</p>')
{
$tmpText = substr($tmpText, 0, strlen($tmpText) - 4);
}
}
$result->retval[$i]->text = $tmpText;
}
else
@@ -24,12 +24,10 @@
* THE SOFTWARE.
*/
if (!defined("BASEPATH"))
exit("No direct script access allowed");
if (!defined("BASEPATH")) exit("No direct script access allowed");
class TemplateLib
class WidgetLib
{
/* default values */
private $_template = 'template';
private $_parser = FALSE;
@@ -181,9 +179,11 @@ class TemplateLib
* Can be usefull to use straight from the template file
* @param string $name
* @param array $data
* @param array $htmlArgs
* @return Widget
*/
public function widget($name, $data = array()) {
public function widget($name, $data = array(), $htmlArgs = array())
{
$class = str_replace('.php', '', trim($name, '/'));
// determine path and widget class name
@@ -210,7 +210,7 @@ class TemplateLib
show_error("Widget '" . $class . "' was not found.");
}
return new $class($class, $data);
return new $class($class, $data, $htmlArgs);
}
/**
@@ -335,7 +335,6 @@ class TemplateLib
class Partial
{
protected $_ci, $_content, $_name, $_cache_ttl = 0, $_cached = false, $_identifier, $_trigger;
protected $_args = array();
@@ -343,7 +342,8 @@ class Partial
* Construct with optional parameters
* @param array $args
*/
public function __construct($name, $args = array()) {
public function __construct($name, $args = array())
{
$this->_ci = &get_instance();
$this->_args = $args;
$this->_name = $name;
@@ -602,28 +602,196 @@ class Partial
}
}
/**
* The mother of all widgets
* it represent a generic HTML element
*/
class Widget extends Partial
{
// The name of the array present in the data array given to the view that will render this widget
const HTML_ARG_NAME = 'HTML';
const HTML_DEFAULT_VALUE = ''; // Default value of the html element
const HTML_NAME = 'name'; // HTML name attribute
const HTML_ID = 'id'; // HTML id attribute
/* (non-PHPdoc)
* @see Partial::content()
/**
* It gets also the htmlArgs array as parameter, it will be used to set the HTML properties
*/
public function content() {
if (!$this->_cached) {
if (method_exists($this, 'display')) {
// capture output
ob_start();
$this->display($this->_args);
$buffer = ob_get_clean();
// if no content is produced but there was direct ouput we set
// that output as content
if (!$this->_content && $buffer) {
$this->set($buffer);
}
}
}
public function __construct($name, $args, $htmlArgs = array())
{
parent::__construct($name, $args);
// Initialising HTML properties
$this->_setHtmlProperties($htmlArgs);
return parent::content();
// Loads helper message to manage returning messages
$this->load->helper('message');
}
/**
* (non-PHPdoc)
* @see Partial::content()
*/
public function content()
{
if (!$this->_cached)
{
if (method_exists($this, 'display'))
{
// capture output
ob_start();
$this->display($this->_args);
$buffer = ob_get_clean();
// if no content is produced but there was direct ouput we set
// that output as content
if (!$this->_content && $buffer)
{
$this->set($buffer);
}
}
}
return parent::content();
}
/**
* Initialising html properties, such as the id and name attributes of the HTML element
*/
private function _setHtmlProperties($htmlArgs)
{
if (isset($htmlArgs) && is_array($htmlArgs))
{
$this->_args[Widget::HTML_ARG_NAME] = array();
// Avoids that the elements of a same HTML page have the same name or id
$randomIdentifier = uniqid(rand(0, 1000));
if (isset($htmlArgs[Widget::HTML_ID]) && trim($htmlArgs[Widget::HTML_ID]) != '')
{
$this->_args[Widget::HTML_ARG_NAME][Widget::HTML_ID] = $htmlArgs[Widget::HTML_ID];
}
else
{
$this->_args[Widget::HTML_ARG_NAME][Widget::HTML_ID] = $randomIdentifier;
}
if (isset($htmlArgs[Widget::HTML_NAME]) && trim($htmlArgs[Widget::HTML_NAME]) != '')
{
$this->_args[Widget::HTML_ARG_NAME][Widget::HTML_NAME] = $htmlArgs[Widget::HTML_NAME];
}
else
{
$this->_args[Widget::HTML_ARG_NAME][Widget::HTML_NAME] = $randomIdentifier;
}
}
}
}
/**
* It exends the Widget class to represent an HTML dropdown
*/
class DropdownWidget extends Widget
{
// The name of the element of the data array given to the view
// this element is an array of elements to be place inside the dropdown
const WIDGET_DATA_ELEMENTS_ARRAY_NAME = 'ELEMENTS_ARRAY';
// Name of the property that will be used to store the value attribute of the option tag
const ID_FIELD = 'id';
// Name of the property that will be used to store the value between the option tags
const DESCRIPTION_FIELD = 'description'; //
// The name of the element of the data array given to the view
// this element is used to tell what element of the dropdown is selected
const SELECTED_ELEMENT = 'selectedElement'; //
private $elementsArray; // Array of elements to be place inside the dropdown
/**
* Loads the dropdown view with all the elements to be displayed
*/
protected function loadDropDownView($widgetData)
{
$widgetData[DropdownWidget::WIDGET_DATA_ELEMENTS_ARRAY_NAME] = $this->elementsArray->retval;
if (!isset($widgetData[DropdownWidget::SELECTED_ELEMENT]))
{
$widgetData[DropdownWidget::SELECTED_ELEMENT] = Widget::HTML_DEFAULT_VALUE;
}
$this->view('widgets/dropdown', $widgetData);
}
/**
* Add the correct select to the model used to load a list of elemets for this dropdown
* @param model $model the model used to load elements
* @param string $idName the name of the field that will used to be the value of the option tag
* @param string $descriptionName the name of the field that will used to be displayed in the dropdown
*/
protected function addSelectToModel($model, $idName, $descriptionName)
{
$model->addSelect(
sprintf(
'%s AS %s, %s AS %s',
$idName,
DropdownWidget::ID_FIELD,
$descriptionName,
DropdownWidget::DESCRIPTION_FIELD
)
);
}
/**
* Set the array used to populate the dropdown
* @param array $elements list used to populate this dropdown
* @param boolean $emptyElement if an empty element must be added at the beginning of the dropdown
* @param string $stdDescription description of the empty element
* @param string $noDataDescription description if no data are found
* @param string $id value of the attribute value of the empty element
*/
protected function setElementsArray(
$elements, $emptyElement = false, $stdDescription = '' , $noDataDescription = '' , $id = Widget::HTML_DEFAULT_VALUE
)
{
if (isError($elements))
{
if (is_object($elements) && isset($elements->retval))
{
show_error($elements->retval);
}
else if (is_string($elements))
{
show_error($elements);
}
else
{
show_error('Generic error occurred');
}
}
else
{
$this->elementsArray = $elements;
if ($emptyElement === true)
{
$this->addElementAtBeginning($stdDescription, $noDataDescription, $id);
}
}
}
/**
* Adds an element to the beginning of the array
*/
protected function addElementAtBeginning($stdDescription, $noDataDescription, $id)
{
$element = new stdClass();
$element->id = $id;
$element->description = $stdDescription;
if (!hasData($this->elementsArray))
{
$element->description = $noDataDescription;
}
array_unshift($this->elementsArray->retval, $element);
}
}
+103
View File
@@ -74,4 +74,107 @@ class Prestudent_model extends DB_Model
)
);
}
/**
* Returns a list of prestudent with additional information:
* - person_id
* - name, surname, gender and birthday
* - email
* - studiengang and orgform
* - studienplan
* - stufe and aufnahmegruppe
* - reihungstest score
*/
public function getPrestudentMultiAssign($studiengang = null, $studiensemester = null, $gruppe = null, $reihungstest = null, $stufe = null)
{
$this->addSelect(
'p.person_id,
prestudent_id,
p.nachname,
p.vorname,
p.geschlecht,
p.gebdatum,
k.kontakt AS email,
sg.kurzbzlang,
sg.bezeichnung,
sg.orgform_kurzbz,
sgt.bezeichnung AS typ,
s.bezeichnung AS studienplan,
ps.rt_stufe,
aufnahmegruppe_kurzbz,
SUM(rtp.punkte) AS punkte'
);
$this->addJoin('public.tbl_person p', 'person_id', 'LEFT');
$this->addJoin(
'(
SELECT DISTINCT ON(person_id) person_id,
kontakt
FROM public.tbl_kontakt
WHERE zustellung = TRUE
AND kontakttyp = \'email\'
ORDER BY person_id, kontakt_id DESC
) k',
'person_id',
'LEFT'
);
$this->addJoin('public.tbl_prestudentstatus ps', 'prestudent_id');
$this->addJoin('lehre.tbl_studienplan s', 's.studienplan_id = ps.studienplan_id');
$this->addJoin('lehre.tbl_studienordnung so', 'studienordnung_id');
$this->addJoin('public.tbl_studiengang sg', 'sg.studiengang_kz = so.studiengang_kz');
$this->addJoin('public.tbl_studiengangstyp sgt', 'typ');
$this->addJoin('public.tbl_rt_person rtp', 'rtp.person_id = p.person_id AND rtp.studienplan_id = s.studienplan_id', 'LEFT');
$this->addOrder('p.person_id', 'ASC');
$this->addOrder('prestudent_id', 'ASC');
$parametersArray = array('p.aktiv' => true, 'ps.status_kurzbz' => 'Interessent');
if ($studiengang != null)
{
$parametersArray['public.tbl_prestudent.studiengang_kz'] = $studiengang;
}
if ($studiensemester != null)
{
$parametersArray['ps.studiensemester_kurzbz'] = $studiensemester;
}
if ($gruppe != null)
{
$parametersArray['aufnahmegruppe_kurzbz'] = $gruppe;
}
if ($reihungstest != null)
{
$parametersArray['rtp.rt_id'] = $reihungstest;
}
if ($stufe != null)
{
$parametersArray['ps.rt_stufe'] = $stufe;
}
$this->addGroupBy(
array(
'p.person_id',
'prestudent_id',
'p.nachname',
'p.vorname',
'p.geschlecht',
'p.gebdatum',
'k.kontakt',
'sg.kurzbzlang',
'sg.bezeichnung',
'sg.orgform_kurzbz',
'sgt.bezeichnung',
's.bezeichnung',
'ps.rt_stufe',
'aufnahmegruppe_kurzbz'
)
);
return $this->loadWhere($parametersArray);
}
}
@@ -11,32 +11,38 @@ class Organisationseinheit_model extends DB_Model
$this->pk = 'oe_kurzbz';
}
public function getRecursiveList($typ)
public function getRecursiveList($typ = null)
{
$qry = "WITH RECURSIVE tree (oe_kurzbz, bezeichnung, path, organisationseinheittyp_kurzbz) AS
(
SELECT
oe_kurzbz,
bezeichnung||' ('||organisationseinheittyp_kurzbz||')' AS bezeichnung,
oe_kurzbz||'|' AS path,
organisationseinheittyp_kurzbz
FROM tbl_organisationseinheit
WHERE oe_parent_kurzbz IS NULL AND aktiv
UNION ALL
SELECT
oe.oe_kurzbz,
oe.bezeichnung||' ('||oe.organisationseinheittyp_kurzbz||')' AS bezeichnung,
tree.path ||oe.oe_kurzbz||'|' AS path,
oe.organisationseinheittyp_kurzbz
FROM tree
JOIN tbl_organisationseinheit oe ON (tree.oe_kurzbz=oe.oe_parent_kurzbz)
$qry = "WITH RECURSIVE tree (oe_kurzbz, bezeichnung, path, organisationseinheittyp_kurzbz) AS (
SELECT oe_kurzbz,
bezeichnung || ' (' || organisationseinheittyp_kurzbz || ')' AS bezeichnung,
oe_kurzbz || '|' AS path,
organisationseinheittyp_kurzbz
FROM tbl_organisationseinheit
WHERE oe_parent_kurzbz IS NULL
AND aktiv = true
UNION ALL
SELECT oe.oe_kurzbz,
oe.bezeichnung || ' (' || oe.organisationseinheittyp_kurzbz || ')' AS bezeichnung,
tree.path || oe.oe_kurzbz || '|' AS path,
oe.organisationseinheittyp_kurzbz
FROM tree JOIN tbl_organisationseinheit oe ON (tree.oe_kurzbz = oe.oe_parent_kurzbz)
)
SELECT oe_kurzbz AS value, substring(regexp_replace(path, '[A-z]+\|', '-','g')||bezeichnung,2) AS name, path FROM tree ";
if (!empty($typ))
$qry .= 'WHERE organisationseinheittyp_kurzbz IN ('.$typ.') ';
$qry .= 'ORDER BY path;';
return $this->execQuery($qry);
SELECT oe_kurzbz AS id,
SUBSTRING(REGEXP_REPLACE(path, '[A-z]+\|', '-', 'g') || bezeichnung, 2) AS description
FROM tree";
$parametersArray = array();
if (is_array($typ) && count($typ) > 0)
{
$parametersArray[] = $typ;
$qry .= ' WHERE organisationseinheittyp_kurzbz IN ?';
}
$qry .= ' ORDER BY path';
return $this->execQuery($qry, $parametersArray);
}
/**
@@ -116,9 +116,9 @@ class Studiengang_model extends DB_Model
$this->addOrder('lehre.tbl_studienplan.studienplan_id');
$result = $this->loadTree(
'tbl_studiengang',
'public.tbl_studiengang',
array(
'tbl_studienplan'
'lehre.tbl_studienplan'
),
array(
'lehre.tbl_studienplan_semester.studiensemester_kurzbz' => $studiensemester_kurzbz,
@@ -158,10 +158,10 @@ class Studiengang_model extends DB_Model
$this->addOrder('lehre.tbl_studienplan.studienplan_id');
$result = $this->loadTree(
'tbl_studiengang',
'public.tbl_studiengang',
array(
'tbl_studienplan',
'tbl_akadgrad'
'lehre.tbl_studienplan',
'lehre.tbl_akadgrad'
),
'public.tbl_studiengang.aktiv = TRUE
AND public.tbl_studiengang.onlinebewerbung = TRUE
@@ -180,22 +180,23 @@ class Studiengang_model extends DB_Model
}
/**
* TODO
*
*/
public function getAppliedStudiengang($person_id, $studiensemester_kurzbz, $titel, $status_kurzbz)
public function getAppliedStudiengang($person_id, $studiensemester_kurzbz, $titel)
{
// Then join with table
// Then join with table public.tbl_prestudent
$this->addJoin('public.tbl_prestudent', 'studiengang_kz');
// Join table
// Join table public.tbl_prestudentstatus
$this->addJoin('public.tbl_prestudentstatus', 'prestudent_id');
// Then join with table
// Then join with table lehre.tbl_studienplan
$this->addJoin('lehre.tbl_studienplan', 'studienplan_id');
// Then join with table
// Then join with table public.tbl_notizzuordnung + public.tbl_notiz
$this->addJoin(
'(
SELECT *
FROM public.tbl_notizzuordnung INNER JOIN public.tbl_notiz n USING(notiz_id)
WHERE n.titel = \''.$titel.'\') tbl_nn',
SELECT public.tbl_notiz.*, public.tbl_notizzuordnung.prestudent_id
FROM public.tbl_notiz JOIN public.tbl_notizzuordnung USING(notiz_id)
WHERE titel = '.$this->escape($titel).
') tbl_notiz',
'prestudent_id',
'LEFT'
);
@@ -204,17 +205,16 @@ class Studiengang_model extends DB_Model
$this->addOrder('public.tbl_studiengang.bezeichnung');
$result = $this->loadTree(
'tbl_studiengang',
'public.tbl_studiengang',
array(
'tbl_prestudent',
'tbl_prestudentstatus',
'tbl_studienplan',
'tbl_nn'
'public.tbl_prestudent',
'public.tbl_prestudentstatus',
'lehre.tbl_studienplan',
'public.tbl_notiz'
),
'public.tbl_prestudent.person_id = '.$person_id.
' AND public.tbl_prestudentstatus.studiensemester_kurzbz = \''.$studiensemester_kurzbz.'\''.
' AND (public.tbl_prestudentstatus.status_kurzbz = \'Interessent\' OR public.tbl_prestudentstatus.status_kurzbz = \'Bewerber\')'
,
'public.tbl_prestudent.person_id = '.$this->escape($person_id).
' AND public.tbl_prestudentstatus.studiensemester_kurzbz = '.$this->escape($studiensemester_kurzbz).
' AND (public.tbl_prestudentstatus.status_kurzbz = \'Interessent\' OR public.tbl_prestudentstatus.status_kurzbz = \'Bewerber\')',
array(
'prestudenten',
'prestudentstatus',
@@ -235,8 +235,6 @@ class Studiengang_model extends DB_Model
return $isEntitled;
if (($isEntitled = $this->isEntitled('lehre.tbl_studienplan', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
return $isEntitled;
/*if (($isEntitled = $this->isEntitled('public.tbl_rt_studienplan', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
return $isEntitled;*/
if (($isEntitled = $this->isEntitled('public.tbl_reihungstest', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
return $isEntitled;
if (($isEntitled = $this->isEntitled('public.tbl_prestudentstatus', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
@@ -244,11 +242,6 @@ class Studiengang_model extends DB_Model
if (($isEntitled = $this->isEntitled('public.tbl_prestudent', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
return $isEntitled;
$this->addFrom(
'(SELECT * FROM public.tbl_reihungstest LEFT JOIN public.tbl_rt_studienplan USING(reihungstest_id))',
'tbl_reihungstest'
);
$this->addJoin('lehre.tbl_studienordnung', 'studiengang_kz');
$this->addJoin('lehre.tbl_studienplan', 'studienordnung_id');
@@ -257,11 +250,16 @@ class Studiengang_model extends DB_Model
$this->addJoin('public.tbl_prestudent', 'prestudent_id');
$this->addFrom(
'(SELECT * FROM public.tbl_reihungstest LEFT JOIN public.tbl_rt_studienplan USING(reihungstest_id))',
'tbl_reihungstest'
);
$this->addOrder('tbl_studiengang.bezeichnung, tbl_reihungstest.stufe, tbl_reihungstest.datum');
return $this->loadTree(
'tbl_studiengang',
array('tbl_reihungstest'),
'public.tbl_studiengang',
array('public.tbl_reihungstest'),
'tbl_prestudentstatus.status_kurzbz = \'Interessent\'
AND (tbl_prestudentstatus.rt_stufe >= tbl_reihungstest.stufe OR tbl_reihungstest.stufe IS NULL)
AND (tbl_prestudent.aufnahmegruppe_kurzbz = tbl_reihungstest.aufnahmegruppe_kurzbz OR tbl_reihungstest.aufnahmegruppe_kurzbz IS NULL)
@@ -273,15 +271,15 @@ class Studiengang_model extends DB_Model
tbl_reihungstest.max_teilnehmer,
(
SELECT SUM(arbeitsplaetze)
FROM public.tbl_ort JOIN public.tbl_rt_ort USING(ort_kurzbz)
WHERE rt_id = tbl_reihungstest.reihungstest_id
FROM public.tbl_ort JOIN public.tbl_rt_ort USING(ort_kurzbz)
WHERE rt_id = tbl_reihungstest.reihungstest_id
)
) - (
SELECT COUNT(*)
FROM public.tbl_rt_person
WHERE rt_id = tbl_reihungstest.reihungstest_id
FROM public.tbl_rt_person
WHERE rt_id = tbl_reihungstest.reihungstest_id
) > 0
AND person_id = ' . $person_id,
AND person_id = ' . $this->escape($person_id),
array('reihungstest')
);
}
+168 -5
View File
@@ -1,5 +1,9 @@
<?php
/**
* This model was implemented to let to operate with messages
* without authentication. It's ugly but useful.
*/
class MessageToken_model extends CI_Model
{
/**
@@ -8,17 +12,17 @@ class MessageToken_model extends CI_Model
public function __construct()
{
parent::__construct();
// Loads config file message
$this->config->load('message');
// Load return message helper
$this->load->helper('message');
// Loads the database object
$this->load->database();
}
/**
* Get a received message identified by token
*/
@@ -41,9 +45,168 @@ class MessageToken_model extends CI_Model
) s ON (r.message_id = s.message_id AND r.person_id = s.person_id)
WHERE r.token = ?
LIMIT 1';
$result = $this->db->query($sql, array(MSG_STATUS_DELETED, $token));
// If no errors occurred
if ($result)
{
return success($result->result());
}
else
{
return error($this->db->error());
}
}
/**
* Set the status of a message to read. If the status of the message
* is already read, than update updateamum
*/
public function setReadMessageStatusByToken($token)
{
$sql = 'SELECT r.message_id,
m.person_id as sender_id,
r.person_id as receiver_id,
m.subject,
m.body,
m.insertamum,
m.relationmessage_id,
m.oe_kurzbz,
s.status,
s.statusinfo,
s.insertamum as statusamum
FROM public.tbl_msg_recipient r JOIN public.tbl_msg_message m USING (message_id)
JOIN (
SELECT * FROM public.tbl_msg_status WHERE status < ? ORDER BY insertamum DESC, status DESC
) s ON (r.message_id = s.message_id AND r.person_id = s.person_id)
WHERE r.token = ?
LIMIT 1';
$msgs = $this->db->query($sql, array(MSG_STATUS_ARCHIVED, $token));
// If no errors occurred
if ($msgs)
{
// If at least a record is present
if (count($msgs->result()) > 0)
{
$msg = $msgs->result()[0];
$msgStatusResult = false; // pessimistic expectation
// If the status of the message is unread
if ($msg->status == MSG_STATUS_UNREAD)
{
// Insert the read status
$msgStatusResult = $this->db->insert(
'public.tbl_msg_status',
array(
'message_id' => $msg->message_id,
'person_id' => $msg->receiver_id,
'status' => MSG_STATUS_READ,
'statusinfo' => $msg->statusinfo,
'insertamum' => 'NOW()',
'insertvon' => null,
'updateamum' => 'NOW()',
'updatevon' => null
)
);
}
// If the status of the message is read
else if ($msg->status == MSG_STATUS_READ)
{
// Update updateamum to current date
$this->db->set('updateamum', 'NOW()');
$this->db->where('message_id', $msg->message_id);
$this->db->where('person_id', $msg->receiver_id);
$this->db->where('status', MSG_STATUS_READ);
$msgStatusResult = $this->db->update('public.tbl_msg_status');
}
// If some of the previous DB manipulation (update or insert) has failed
if (!$msgStatusResult)
{
return error($this->db->error());
}
}
return success($msgs->result());
}
else
{
return error($this->db->error());
}
return success($result->result());
}
/**
* Get data of the message sender
*/
public function getSenderData($person_id)
{
$sql = 'SELECT p.vorname,
p.nachname,
p.anrede,
p.titelpost,
p.titelpre,
p.vornamen,
m.mitarbeiter_uid
FROM public.tbl_person p
LEFT JOIN public.tbl_benutzer b USING(person_id)
LEFT JOIN public.tbl_mitarbeiter m ON(b.uid = m.mitarbeiter_uid)
WHERE p.person_id = ?';
$result = $this->db->query($sql, array($person_id));
// If no errors occurred
if ($result)
{
return success($result->result());
}
else
{
return error($this->db->error());
}
}
/**
*
*/
public function isEmployee($person_id)
{
$sql = 'SELECT m.mitarbeiter_uid
FROM public.tbl_person p
LEFT JOIN public.tbl_benutzer b USING(person_id)
LEFT JOIN public.tbl_mitarbeiter m ON(b.uid = m.mitarbeiter_uid)
WHERE p.person_id = ?
AND b.aktiv = TRUE';
$result = $this->db->query($sql, array($person_id));
// If no errors occurred
if ($result)
{
// If data are present
if (is_array($result->result()) && count($result->result()) > 0)
{
$person = $result->result()[0];
// If it is an employee
if ($person->mitarbeiter_uid != null)
{
return true;
}
}
return false;
}
else
{
return error($this->db->error());
}
}
}
@@ -0,0 +1,323 @@
<?php $this->load->view("templates/header", array("title" => "Users manager", "jquery" => true, "tablesort" => true, "jquery_checkboxes" => true, "jquery_custom" => true)); ?>
<body>
<form id="usersFiltersForm" action="" method="post">
<table>
<tr>
<td>
<?php
echo $this->widgetlib->widget(
'Studiengang_widget',
array(DropdownWidget::SELECTED_ELEMENT => $studiengang),
array('name' => 'studiengang', 'id' => 'studiengangFilter')
);
?>
</td>
<td>
<?php
echo $this->widgetlib->widget(
'Studiensemester_widget',
array(DropdownWidget::SELECTED_ELEMENT => $studiensemester),
array('name' => 'studiensemester', 'id' => 'studiensemesterFilter')
);
?>
</td>
<td>
<?php
echo $this->widgetlib->widget(
'Reihungstest_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $reihungstest,
'studiengang' => $studiengang,
'studiensemester' => $studiensemester
),
array('name' => 'reihungstest', 'id' => 'reihungstestFilter')
);
?>
</td>
<td>
<?php
echo $this->widgetlib->widget(
'Aufnahmegruppe_widget',
array(DropdownWidget::SELECTED_ELEMENT => $aufnahmegruppe),
array('name' => 'aufnahmegruppe', 'id' => 'aufnahmegruppeFilter')
);
?>
</td>
<td>
<?php
echo $this->widgetlib->widget(
'Stufe_widget',
array(DropdownWidget::SELECTED_ELEMENT => $stufe),
array('name' => 'stufe', 'id' => 'stufeFilter')
);
?>
</td>
</tr>
</table>
</form>
<br>
<form id="linkUsersForm" action="" method="post">
<?php
if ($users != null)
{
?>
<table>
<tr>
<td colspan="2">
<strong>Assign to:</strong>
</td>
</tr>
<tr>
<td height="3px" colspan="2"></td>
</tr>
<tr>
<td>
<?php
echo $this->widgetlib->widget(
'Stufe_widget',
array('stufe' => $stufe),
array('name' => 'stufe', 'id' => 'stufeAssign')
);
?>
</td>
<td>&nbsp;</td>
<td>
<input type="button" id="linkToStufe" value="Assign this stufe">
</td>
</tr>
<tr>
<td>
<?php
echo $this->widgetlib->widget(
'Aufnahmegruppe_widget',
array('aufnahmegruppe' => $aufnahmegruppe),
array('name' => 'aufnahmegruppe', 'id' => 'aufnahmegruppeAssign')
);
?>
<td>&nbsp;</td>
<td>
<input type="button" id="linkToGruppe" value="Assign to this group">
</td>
</tr>
</table>
<?php
}
?>
<br>
<br>
<div>
<?php
if ($users != null)
{
?>
<table id="t0" class="tablesorter">
<thead>
<tr>
<th>&nbsp;</th>
<th class="clm_prestudent_id header">Prestudent ID</th>
<th class="clm_person_id header">Person ID</th>
<th class="header headerSortDown">Vorname</th>
<th>Nachname</th>
<th>Geschlecht</th>
<th>Studiengang</th>
<th>OrgForm</th>
<th>Studienplan</th>
<th>Geburtsdatum</th>
<th>Email</th>
<th>Stufe</th>
<th>Gruppe</th>
<th>Punkte</th>
</tr>
</thead>
<tbody>
<?php
for ($i = 0; $i < count($users); $i++)
{
$user = $users[$i];
?>
<tr>
<td>
<input type="checkbox" name="prestudent_id[]" value="<?php echo $user->prestudent_id ?>">
</td>
<td>
<?php echo $user->prestudent_id; ?>
</td>
<td>
<?php echo $user->person_id; ?>
</td>
<td>
<?php echo $user->vorname; ?>
</td>
<td>
<?php echo $user->nachname; ?>
</td>
<td>
<?php echo $user->geschlecht; ?>
</td>
<td>
<?php echo $user->kurzbzlang; ?>
</td>
<td>
<?php echo $user->orgform_kurzbz; ?>
</td>
<td>
<?php echo $user->studienplan; ?>
</td>
<td>
<?php echo $user->gebdatum; ?>
</td>
<td>
<?php echo $user->email; ?>
</td>
<td>
<?php echo $user->rt_stufe; ?>
</td>
<td>
<?php echo $user->aufnahmegruppe_kurzbz; ?>
</td>
<td>
<?php echo $user->punkte; ?>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
}
else
{
echo 'No users found.';
}
?>
</div>
</form>
<?php
$hrefLinkToStufe = str_replace("/system/aufnahme/PrestudentMultiAssign", "/system/aufnahme/PrestudentMultiAssign/linkToStufe", $_SERVER["REQUEST_URI"]);
$hrefLinkToAufnahmegruppe = str_replace("/system/aufnahme/PrestudentMultiAssign", "/system/aufnahme/PrestudentMultiAssign/linkToAufnahmegruppe", $_SERVER["REQUEST_URI"]);
?>
<script>
$(document).ready(function() {
if ($("#linkToStufe"))
{
$("#linkToStufe").click(function() {
$.ajax({
type: "POST",
dataType: "json",
url: "<?php echo $hrefLinkToStufe; ?>",
data: $("#linkUsersForm").serialize(),
success: function(data, textStatus, jqXHR) {
alert(data.msg);
$("#usersFiltersForm").submit();
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText);
}
});
});
}
if ($("#linkToGruppe"))
{
$("#linkToGruppe").click(function() {
$.ajax({
type: "POST",
dataType: "json",
url: "<?php echo $hrefLinkToAufnahmegruppe; ?>",
data: $("#linkUsersForm").serialize(),
success: function(data, textStatus, jqXHR) {
alert(data.msg);
$("#usersFiltersForm").submit();
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText);
}
});
});
}
if ($('#studiengangFilter'))
{
$('#studiengangFilter').change(function() {
$('#usersFiltersForm').submit();
});
}
if ($('#studiensemesterFilter'))
{
$('#studiensemesterFilter').change(function() {
$('#usersFiltersForm').submit();
});
}
if ($('#aufnahmegruppeFilter'))
{
$('#aufnahmegruppeFilter').change(function() {
$('#usersFiltersForm').submit();
});
}
if ($('#stufeFilter'))
{
$('#stufeFilter').change(function() {
$('#usersFiltersForm').submit();
});
}
if ($('#reihungstestFilter'))
{
$('#reihungstestFilter').change(function() {
$('#usersFiltersForm').submit();
});
}
$(".tablesorter").each(function(i, v) {
$("#"+v.id).tablesorter(
{
widgets: ["zebra"],
sortList: [[3,0],[4,0]],
headers: {0: { sorter: false}}
});
$("#toggle_"+v.id).on('click', function(e) {
$("#"+v.id).checkboxes('toggle');
e.preventDefault();
if ($("input.chkbox:checked").size() > 0)
$("#mailSendButton").html('Mail an markierte Personen senden');
else
$("#mailSendButton").html('Mail an alle senden');
});
$("#uncheck_"+v.id).on('click', function(e) {
$("#"+v.id).checkboxes('uncheck');
e.preventDefault();
if ($("input.chkbox:checked").size() > 0)
$("#mailSendButton").html('Mail an markierte Personen senden');
else
$("#mailSendButton").html('Mail an alle senden');
});
$("#"+v.id).checkboxes('range', true);
});
$('.chkbox').change(function()
{
if ($("input.chkbox:checked").size() > 0)
$("#mailSendButton").html('Mail an markierte Personen senden');
else
$("#mailSendButton").html('Mail an alle senden');
});
});
</script>
</body>
<?php $this->load->view("templates/footer"); ?>
+57 -9
View File
@@ -1,9 +1,57 @@
<div>
S: <?php echo $message->subject; ?>
</div>
<div>
B: <?php echo $message->body; ?>
</div>
<div>
<a href="<?php echo $href; ?>">Reply</a>
</div>
<?php $this->load->view("templates/header", array("title" => "Message viewer")); ?>
<body>
<center>
<br><br>
<table width="70%;" style="border: solid 1px gray; background-color:white; padding:5px;">
<tr style=''>
<td style="width: 80px;">
<b>From:</b>
</td>
<td>
&nbsp;
</td>
<td>
<?php echo $sender->vorname.' '.$sender->nachname; ?>
</td>
</tr>
<tr>
<td style="width: 80px;">
<b>Subject:</b>
</td>
<td>
&nbsp;
</td>
<td>
<?php echo $message->subject; ?>
</td>
</tr>
<tr>
<td>
<b>Message:</b>
</td>
<td>
&nbsp;
</td>
<td>
<?php echo $message->body; ?>
</td>
</tr>
<?php
if ($isEmployee === false)
{
?>
<tr>
<td colspan="3" align="center" style="background-color:#dddddd; padding:5px;">
<a href="<?php echo $href; ?>">Reply</a>
</td>
</tr>
<?php
}
?>
</table>
</center>
</body>
<?php $this->load->view("templates/footer"); ?>
+28 -15
View File
@@ -18,7 +18,13 @@
<div class="span4">
<button type="submit">Send</button>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<?php echo $this->templatelib->widget("Vorlage_widget", array("title" => "Vorlage")); ?>
<?php
echo $this->widgetlib->widget(
'Vorlage_widget',
null,
array('name' => 'vorlage', 'id' => 'vorlageDnD')
);
?>
</div>
</div>
@@ -34,19 +40,26 @@
$url = str_replace("/system/Messages/reply", "/system/Messages/getVorlage", $_SERVER["REQUEST_URI"]);
?>
function getVorlageText(vorlage_kurzbz)
{
$.ajax({
dataType: "json",
url: "<?php echo $url; ?>",
data: {"vorlage_kurzbz": vorlage_kurzbz},
success: function(data, textStatus, jqXHR) {
tinyMCE.activeEditor.setContent(data.retval[0].text + "<?php echo $message->body; ?>");
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + " - " + errorThrown);
}
});
}
$(document).ready(function() {
if ($("#vorlageDnD"))
{
$("#vorlageDnD").change(function() {
if (this.value != '')
{
$.ajax({
dataType: "json",
url: "<?php echo $url; ?>",
data: {"vorlage_kurzbz": this.value},
success: function(data, textStatus, jqXHR) {
tinyMCE.activeEditor.setContent(data.retval[0].text + "<?php echo $message->body; ?>");
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + " - " + errorThrown);
}
});
}
});
}
});
</script>
</html>
+33 -22
View File
@@ -72,7 +72,13 @@
<table>
<tr>
<td>
<?php echo $this->templatelib->widget("Vorlage_widget", array("title" => "Vorlage")); ?>
<?php
echo $this->widgetlib->widget(
'Vorlage_widget',
null,
array('name' => 'vorlage', 'id' => 'vorlageDnD')
);
?>
</td>
<td>
&nbsp;
@@ -186,6 +192,31 @@
}
});
}
if ($("#vorlageDnD"))
{
$("#vorlageDnD").change(function() {
if (this.value != '')
{
<?php
$url = str_replace("/system/Messages/write", "/system/Messages/getVorlage", $_SERVER["REQUEST_URI"]);
?>
$.ajax({
dataType: "json",
url: "<?php echo $url; ?>",
data: {"vorlage_kurzbz": this.value},
success: function(data, textStatus, jqXHR) {
tinyMCE.get("bodyTextArea").setContent(data.retval[0].text);
$("#subject").val(data.retval[0].subject);
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + " - " + errorThrown);
}
});
}
});
}
});
function tinymcePreviewSetContent()
@@ -222,25 +253,5 @@
}
});
}
function getVorlageText(vorlage_kurzbz)
{
<?php
$url = str_replace("/system/Messages/write", "/system/Messages/getVorlage", $_SERVER["REQUEST_URI"]);
?>
$.ajax({
dataType: "json",
url: "<?php echo $url; ?>",
data: {"vorlage_kurzbz": vorlage_kurzbz},
success: function(data, textStatus, jqXHR) {
tinyMCE.get("bodyTextArea").setContent(data.retval[0].text);
$("#subject").val(data.retval[0].subject);
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + " - " + errorThrown);
}
});
}
</script>
</html>
</html>
+36 -4
View File
@@ -11,11 +11,43 @@
<table>
<tr>
<td>OE</td>
<td><?php echo $this->templatelib->widget("organisationseinheit_widget", array('oe_kurzbz' => $orgeinheit_kurzbz)); ?></td>
<td>
<?php
echo $this->widgetlib->widget(
'Organisationseinheit_widget',
array(DropdownWidget::SELECTED_ELEMENT => $orgeinheit_kurzbz),
array('name' => 'organisationseinheit', 'id' => 'organisationseinheitDnD')
);
?>
</td>
<td>Preview</td>
</tr>
<tr><td>Orgform</td><td><?php echo $this->templatelib->widget("orgform_widget", array('orgform_kurzbz' => $orgform_kurzbz)); ?></td><td></td></tr>
<tr><td>Sprache</td><td><?php echo $this->templatelib->widget("sprache_widget", array('sprache' => $sprache)); ?></td><td></td></tr>
<tr>
<td>Orgform</td>
<td>
<?php
echo $this->widgetlib->widget(
'Orgform_widget',
array(DropdownWidget::SELECTED_ELEMENT => $orgform_kurzbz),
array('name' => 'orgform', 'id' => 'orgformDnD')
);
?>
</td>
<td></td>
</tr>
<tr>
<td>Sprache</td>
<td>
<?php
echo $this->widgetlib->widget(
'Sprache_widget',
array(DropdownWidget::SELECTED_ELEMENT => $sprache),
array('name' => 'sprache', 'id' => 'spracheDnD')
);
?>
</td>
<td></td>
</tr>
<tr><td>Text</td><td><textarea name="text" style="width:500px; height:300px;" id="markitup"><?php echo $text ?></textarea></td>
<td valign="top">
<div id="textile-preview" style="width:500px; height:300px; border: 1px solid gray; overflow: auto;"></div>
@@ -35,7 +67,7 @@
</td></tr>
<?php
// This is an example to show that you can load stuff from inside the template file
//echo $this->templatelib->widget("tinymce_widget", array('name' => 'text', 'text' => $text));
//echo $this->widgetlib->widget("tinymce_widget", array('name' => 'text', 'text' => $text));
?>
<tr><td colspan="2" align="right"><button type="submit">Save</button></td></tr>
</table>
+1 -1
View File
@@ -9,7 +9,7 @@
App: aufnahme
<?php
// This is an example to show that you can load stuff from inside the template file
//echo $this->templatelib->widget("mimetype_widget", array('mimetype' => $mimetype));
//echo $this->widgetlib->widget("mimetype_widget", array('mimetype' => $mimetype));
?>
<button type="submit">Filter</button>
</form>
-289
View File
@@ -1,289 +0,0 @@
<?php $this->load->view("templates/header", array("title" => "Users manager", "jquery" => true, "tablesort" => true, "jquery_checkboxes" => true, "jquery_custom" => true)); ?>
<body>
<div>
<form id="usersFiltersForm" action="" method="post">
<?php
echo $this->templatelib->widget(
'Usersfilters_widget',
array(
'studiengang' => $studiengang,
'studiensemester' => $studiensemester,
'gruppe' => $gruppe,
'reihungstest' => $reihungstest,
'stufe' => $stufe
)
);
?>
</form>
</div>
<br>
<form id="linkUsersForm" action="" method="post">
<?php
if ($users != null)
{
?>
<table>
<tr>
<td colspan="2">
<strong>Assign to:</strong>
</td>
</tr>
<tr>
<td height="3px" colspan="2"></td>
</tr>
<tr>
<td>
<select name="stufe">
<?php foreach($stufen as $v): ?>
<?php
$selected = '';
if ($v->stufe == $selectedStufe)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->stufe; ?>" <?php echo $selected; ?>>
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
</td>
<td>&nbsp;</td>
<td>
<input type="button" id="linkToStufe" value="Assign this stufe">
</td>
</tr>
<tr>
<td>
<select name="aufnahmegruppe">
<?php foreach($gruppen as $v): ?>
<?php
$selected = '';
if ($v->gruppe_kurzbz == $selectedGruppe)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->gruppe_kurzbz; ?>" <?php echo $selected; ?>>
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
<td>&nbsp;</td>
<td>
<input type="button" id="linkToGruppe" value="Assign to this group">
</td>
</tr>
</table>
<?php
}
?>
<br>
<br>
<div>
<?php
if ($users != null)
{
?>
<table id="t0" class="tablesorter">
<thead>
<tr>
<th>&nbsp;</th>
<th class="clm_prestudent_id header">Prestudent ID</th>
<th class="clm_person_id header">Person ID</th>
<th class="header headerSortDown">Vorname</th>
<th>Nachname</th>
<th>Geschlecht</th>
<th>Studiengang</th>
<th>OrgForm</th>
<th>Studienplan</th>
<th>Geburtsdatum</th>
<th>Email</th>
<th>Stufe</th>
<th>Gruppe</th>
<th>Punkte</th>
</tr>
</thead>
<tbody>
<?php
for ($i = 0; $i < count($users); $i++)
{
$user = $users[$i];
echo "<tr>";
echo "<td>";
echo '<input type="checkbox" name="prestudent_id[]" value="' . $user->prestudent_id . '">';
echo "</td>";
echo "<td>";
echo $user->prestudent_id;
echo "</td>";
echo "<td>";
echo $user->person_id;
echo "</td>";
echo "<td>";
echo $user->vorname;
echo "</td>";
echo "<td>";
echo $user->nachname;
echo "</td>";
echo "<td>";
echo $user->geschlecht;
echo "</td>";
echo "<td>";
echo $user->kurzbzlang;
echo "</td>";
echo "<td>";
echo $user->orgform_kurzbz;
echo "</td>";
echo "<td>";
echo $user->studienplan;
echo "</td>";
echo "<td>";
echo $user->gebdatum;
echo "</td>";
echo "<td>";
echo $user->email;
echo "</td>";
echo "<td>";
echo $user->rt_stufe;
echo "</td>";
echo "<td>";
echo $user->aufnahmegruppe_kurzbz;
echo "</td>";
echo "<td>";
echo $user->punkte;
echo "</td>";
echo "</tr>";
}
?>
</tbody>
</table>
<?php
}
else
{
echo 'No users found.';
}
?>
</div>
</form>
<?php
$hrefLinkToStufe = str_replace("/system/Users", "/system/Users/linkToStufe", $_SERVER["REQUEST_URI"]);
$hrefLinkToAufnahmegruppe = str_replace("/system/Users", "/system/Users/linkToAufnahmegruppe", $_SERVER["REQUEST_URI"]);
?>
<script>
$(document).ready(function() {
if ($("#linkToStufe"))
{
$("#linkToStufe").click(function() {
if ($("#linkUsersForm"))
{
$("#linkUsersForm").attr("action", "<?php echo $hrefLinkToStufe; ?>");
$("#linkUsersForm").submit();
}
});
}
if ($("#linkToGruppe"))
{
$("#linkToGruppe").click(function() {
if ($("#linkUsersForm"))
{
$("#linkUsersForm").attr("action", "<?php echo $hrefLinkToAufnahmegruppe; ?>");
$("#linkUsersForm").submit();
}
});
}
$(".tablesorter").each(function(i, v) {
$("#"+v.id).tablesorter(
{
widgets: ["zebra"],
sortList: [[3,0],[4,0]],
headers: {0: { sorter: false}}
});
$("#toggle_"+v.id).on('click', function(e) {
$("#"+v.id).checkboxes('toggle');
e.preventDefault();
if ($("input.chkbox:checked").size() > 0)
$("#mailSendButton").html('Mail an markierte Personen senden');
else
$("#mailSendButton").html('Mail an alle senden');
});
$("#uncheck_"+v.id).on('click', function(e) {
$("#"+v.id).checkboxes('uncheck');
e.preventDefault();
if ($("input.chkbox:checked").size() > 0)
$("#mailSendButton").html('Mail an markierte Personen senden');
else
$("#mailSendButton").html('Mail an alle senden');
});
$("#"+v.id).checkboxes('range', true);
});
$('.chkbox').change(function()
{
if ($("input.chkbox:checked").size() > 0)
$("#mailSendButton").html('Mail an markierte Personen senden');
else
$("#mailSendButton").html('Mail an alle senden');
});
});
function studiengangSelected(value)
{
submitUsersFiltersForm();
}
function studiensemesterSelected(value)
{
submitUsersFiltersForm();
}
function reihungstestSelected(value)
{
submitUsersFiltersForm();
}
function gruppeSelected(value)
{
submitUsersFiltersForm();
}
function stufeSelected(value)
{
submitUsersFiltersForm();
}
function submitUsersFiltersForm()
{
document.getElementById("usersFiltersForm").submit();
}
</script>
</body>
<?php $this->load->view("templates/footer"); ?>
@@ -2,17 +2,17 @@
<html lang="de_AT">
<head>
<title>VileSci - Templates</title>
<title>VileSci - Vorlage</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<frameset rows="30%,*">
<frame src="Templates/table" id="TemplatesTop" name="TemplatesTop" frameborder="0" />
<frame src="Templates/edit" id="TemplatesBottom" name="TemplatesBottom" frameborder="0" />
<frame src="Vorlage/table" id="VorlageTop" name="VorlageTop" frameborder="0" />
<frame src="Vorlage/edit" id="VorlageBottom" name="VorlageBottom" frameborder="0" />
<noframes>
<body bgcolor="#FFFFFF">
This application works only with a frames-enabled browser.<br />
<a href="TemplatesList">Use without frames</a>
<a href="VorlageList">Use without frames</a>
</body>
</noframes>
</frameset>
@@ -1,5 +1,5 @@
<?php
$this->load->view('templates/header', array('title' => 'TemplateEdit', 'jsoneditor' => true));
$this->load->view('templates/header', array('title' => 'VorlageEdit', 'jsoneditor' => true));
?>
<div class="row">
<div class="span4">
@@ -8,9 +8,9 @@
Bezeichnung: <input type="text" name="bezeichnung" value="<?php echo $vorlage->bezeichnung; ?>" />
Anmerkung: <input type="text" name="anmerkung" value="<?php echo $vorlage->anmerkung; ?>" /><br/>
MimeType:<?php echo $this->templatelib->widget("mimetype_widget", array('mimetype' => $vorlage->mimetype)); ?>
MimeType:<?php echo $this->widgetlib->widget("mimetype_widget", array('mimetype' => $vorlage->mimetype)); ?>
Attribute: <?php echo $this->templatelib->widget("jsoneditor_widget", array('json' => $vorlage->attribute)); ?>
Attribute: <?php echo $this->widgetlib->widget("jsoneditor_widget", array('json' => $vorlage->attribute)); ?>
<input type="hidden" name="attribute" id="attribute" value="<?=$vorlage->attribute?>" />
<input type="hidden" name="vorlage_kurzbz" value="<?php echo $vorlage->vorlage_kurzbz; ?>" />
@@ -1,5 +1,5 @@
<?php
$this->load->view('templates/header', array('title' => 'TemplatesList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '4:{sorter:false}'));
$this->load->view('templates/header', array('title' => 'VorlageList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '4:{sorter:false}'));
?>
<div class="row">
<div class="span4">
@@ -8,7 +8,7 @@
MimeType
<?php
// This is an example to show that you can load stuff from inside the template file
echo $this->templatelib->widget("mimetype_widget", array('mimetype' => $mimetype));
echo $this->widgetlib->widget("mimetype_widget", array('mimetype' => $mimetype));
?>
<button type="submit">Filter</button>
</form>
@@ -23,7 +23,7 @@ MimeType
</thead>
<tbody>
<?php foreach ($vorlage as $v): ?>
<tr><td><a href="edit/<?php echo $v->vorlage_kurzbz; ?>" target="TemplatesBottom"><?php echo $v->vorlage_kurzbz; ?></a></td>
<tr><td><a href="edit/<?php echo $v->vorlage_kurzbz; ?>" target="VorlageBottom"><?php echo $v->vorlage_kurzbz; ?></a></td>
<td><?php echo $v->bezeichnung; ?></td>
<td><?php echo $v->anmerkung; ?></td>
<td><?php echo $v->mimetype; ?></td>
@@ -1,5 +1,5 @@
<?php
$this->load->view('templates/header', array('title' => 'TemplateEdit', 'tinymce' => true, 'jsonforms' => true));
$this->load->view('templates/header', array('title' => 'VorlageEdit', 'tinymce' => true, 'jsonforms' => true));
?>
<div class="row">
@@ -7,22 +7,44 @@
<h2>Vorlagetext: <?=$vorlagestudiengang_id?></h2>
<!--StudiengangKZ: <?=$studiengang_kz?>-->
<form method="post" action="../saveText/<?=$vorlagestudiengang_id?>">
OE:<?php echo $this->templatelib->widget("organisationseinheit_widget", array('oe_kurzbz' => $oe_kurzbz, 'typ' => "'Erhalter','Studienzentrum','Studiengang','Lehrgang'")); ?>
Sprache:<?php echo $this->templatelib->widget("sprache_widget", array('sprache' => $sprache)); ?>
OrgForm:<?php echo $this->templatelib->widget("orgform_widget", array('orgform' => $orgform_kurzbz)); ?>
OE: <?php
echo $this->widgetlib->widget(
'Organisationseinheit_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $oe_kurzbz,
'typ' => array('Erhalter', 'Studienzentrum', 'Studiengang', 'Lehrgang')
),
array('name' => 'organisationseinheit', 'id' => 'organisationseinheitDnD')
);
?>
Sprache: <?php
echo $this->widgetlib->widget(
'Sprache_widget',
array(DropdownWidget::SELECTED_ELEMENT => $sprache),
array('name' => 'sprache', 'id' => 'spracheDnD')
);
?>
OrgForm: <?php
echo $this->widgetlib->widget(
'Orgform_widget',
array(DropdownWidget::SELECTED_ELEMENT => $orgform_kurzbz),
array('name' => 'orgform', 'id' => 'orgformDnD')
);
?>
Version: <input type="text" name="version" value="<?php echo $version; ?>" size="1" />
Aktiv: <input type="text" name="aktiv" value="<?php echo $aktiv; ?>" size="1" />
<input type="hidden" name="vorlagestudiengang_id" value="<?php echo $vorlagestudiengang_id; ?>" />
<input type="hidden" name="studiengang_kz" value="<?php echo $studiengang_kz; ?>" />
<?php
// This is an example to show that you can load stuff from inside the template file
echo $this->templatelib->widget("tinymce_widget", array('name' => 'text', 'text' => $text));
echo $this->widgetlib->widget("tinymce_widget", array('name' => 'text', 'text' => $text));
?>
<button type="submit">Save</button>
</form>
<hr/><h2>Preview-Data</h2>
<form method="post" action="../preview/<?=$vorlagestudiengang_id?>" target="TemplatePreview">
<?php echo $this->templatelib->widget("jsonforms_widget", array('id' => 'dataform', 'schema' => $schema)); ?>
<form method="post" action="../preview/<?=$vorlagestudiengang_id?>" target="VorlagePreview">
<?php echo $this->widgetlib->widget("jsonforms_widget", array('id' => 'dataform', 'schema' => $schema)); ?>
<input type="hidden" name="formdata" id="formdata" value="" />
<button type="submit" onclick="getFormdata(this.form);">Preview</button>
</form>
@@ -38,6 +60,6 @@
}
</script>
<iframe name="TemplatePreview" width="100%" src=""/>
<iframe name="VorlagePreview" width="100%" src=""/>
</body>
</html>
@@ -1,11 +1,11 @@
<?php
$this->load->view('templates/header', array('title' => 'TemplatetextList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '7:{sorter:false},8:{sorter:false},9:{sorter:false}'));
$this->load->view('templates/header', array('title' => 'VorlagetextList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '7:{sorter:false},8:{sorter:false},9:{sorter:false}'));
?>
<div class="row">
<div class="span4">
<h2>Vorlagentext - <?php echo $vorlage_kurzbz; ?></h2>
<form method="post" action="../newtext" target="TemplatesBottom">
<form method="post" action="../newtext" target="VorlageBottom">
<input type="hidden" name="vorlage_kurzbz" value="<?php echo $vorlage_kurzbz; ?>"/>
<button type="submit">Neu</button>
</form>
@@ -28,16 +28,16 @@
<tbody>
<?php foreach ($vorlagentext as $v): ?>
<tr>
<td><a href="../edittext/<?php echo $v->vorlagestudiengang_id; ?>" target="TemplatesBottom"><?php echo $v->vorlagestudiengang_id; ?></a></td>
<td><a href="../edittext/<?php echo $v->vorlagestudiengang_id; ?>" target="TemplatesBottom"><?php echo $v->vorlage_kurzbz; ?></a></td>
<td><a href="../edittext/<?php echo $v->vorlagestudiengang_id; ?>" target="VorlageBottom"><?php echo $v->vorlagestudiengang_id; ?></a></td>
<td><a href="../edittext/<?php echo $v->vorlagestudiengang_id; ?>" target="VorlageBottom"><?php echo $v->vorlage_kurzbz; ?></a></td>
<td><?php echo $v->version; ?></td>
<td><?php echo $v->oe_kurzbz; ?></td>
<td></td>
<td><?php echo implode(',', $v->berechtigung); ?></td>
<td><?php echo $v->anmerkung_vorlagestudiengang; ?></td>
<td><?php echo $v->aktiv; ?></td>
<td><a href="../editText/<?php echo $v->vorlagestudiengang_id; ?>" target="TemplatesBottom">Edit Text</a></td>
<td><a href="../linkDocuments/<?php echo $v->vorlagestudiengang_id; ?>" target="TemplatesBottom">Edit Documents</a></td>
<td><a href="../editText/<?php echo $v->vorlagestudiengang_id; ?>" target="VorlageBottom">Edit Text</a></td>
<td><a href="../linkDocuments/<?php echo $v->vorlagestudiengang_id; ?>" target="VorlageBottom">Edit Documents</a></td>
</tr>
<?php endforeach ?>
</tbody>
@@ -47,4 +47,4 @@
<?php
$this->load->view('templates/footer');
?>
?>
+14
View File
@@ -0,0 +1,14 @@
<select id="<?php echo ${Widget::HTML_ARG_NAME}[Widget::HTML_ID]; ?>" name="<?php echo ${Widget::HTML_ARG_NAME}[Widget::HTML_NAME]; ?>">
<?php foreach(${DropdownWidget::WIDGET_DATA_ELEMENTS_ARRAY_NAME} as $element): ?>
<?php
$selected = '';
if ($element->{DropdownWidget::ID_FIELD} == ${DropdownWidget::SELECTED_ELEMENT})
{
$selected = 'selected';
}
?>
<option value="<?php echo $element->{DropdownWidget::ID_FIELD}; ?>" <?php echo $selected; ?>>
<?php echo $element->{DropdownWidget::DESCRIPTION_FIELD}; ?>
</option>
<?php endforeach; ?>
</select>
@@ -1,7 +0,0 @@
<select name="<?php echo $htmltagname; ?>">
<?php foreach($items as $item): ?>
<option value="<?php echo $item['value']; ?>" <?php if ($item['selected']) echo 'selected'?>>
<?php echo $item['name']; ?>
</option>
<?php endforeach; ?>
</select>
-7
View File
@@ -1,7 +0,0 @@
<select name="<?php echo $htmltagname; ?>">
<?php foreach($items as $item): ?>
<option value="<?php echo $item['value']; ?>" <?php if ($item['selected']) echo 'selected'?>>
<?php echo $item['name']; ?>
</option>
<?php endforeach; ?>
</select>
-7
View File
@@ -1,7 +0,0 @@
<select name="<?php echo 'sprache'; ?>">
<?php foreach($items as $item): ?>
<option value="<?php echo $item['sprache']; ?>" <?php if ($item['selected']) echo 'selected'?>>
<?php echo $item['sprache']; ?>
</option>
<?php endforeach; ?>
</select>
-107
View File
@@ -1,107 +0,0 @@
<?php
if (isset($errors) && is_array($errors) && count($errors) > 0)
{
?>
<div class="errors">
<?php foreach($errors as $e): ?>
<?php echo $e->retval; ?><br>
<?php endforeach; ?>
</div>
<?php
}
?>
<table>
<tr>
<td>
<select id="studiengang" name="studiengang">
<?php foreach($studiengaenge as $v): ?>
<?php
$selected = '';
if ($v->studiengang_kz == $selectedStudiengang)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->studiengang_kz; ?>" <?php echo $selected; ?> onClick="studiengangSelected(this.value)">
<?php
if ($v->studiengang_kz == '-1')
{
echo $v->kurzbzlang;
}
else
{
echo $v->kurzbzlang . ' (' . $v->bezeichnung . ')';
}
?>
</option>
<?php endforeach; ?>
</select>
</td>
<td>
<select id="studiensemester" name="studiensemester">
<?php foreach($studiensemester as $v): ?>
<?php
$selected = '';
if ($v->studiensemester_kurzbz == $selectedStudiensemester)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->studiensemester_kurzbz; ?>" <?php echo $selected; ?> onClick="studiensemesterSelected(this.value)">
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
</td>
<td>
<select id="reihungstest" name="reihungstest">
<?php foreach($reihungstest as $v): ?>
<?php
$selected = '';
if ($v->reihungstest_id == $selectedReihungstest)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->reihungstest_id; ?>" <?php echo $selected; ?> onClick="reihungstestSelected(this.value)">
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
</td>
</tr>
<tr>
<td>
<select id="gruppe" name="gruppe">
<?php foreach($gruppen as $v): ?>
<?php
$selected = '';
if ($v->gruppe_kurzbz == $selectedGruppe)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->gruppe_kurzbz; ?>" <?php echo $selected; ?> onClick="gruppeSelected(this.value)">
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
</td>
<td colspan="2">
<select id="stufe" name="stufe">
<?php foreach($stufen as $v): ?>
<?php
$selected = '';
if ($v->stufe == $selectedStufe)
{
$selected = 'selected';
}
?>
<option value="<?php echo $v->stufe; ?>" <?php echo $selected; ?> onClick="stufeSelected(this.value)">
<?php echo $v->beschreibung; ?>
</option>
<?php endforeach; ?>
</select>
</td>
</tr>
</table>
-16
View File
@@ -1,16 +0,0 @@
<select name="vorlage">
<?php foreach($vorlage as $v): ?>
<option value="<?php echo $v->vorlage_kurzbz; ?>" onClick="getVorlageText(this.value)">
<?php
if ($v->vorlage_kurzbz == '-1')
{
echo $v->bezeichnung;
}
else
{
echo $v->vorlage_kurzbz . (isset($v->bezeichnung) ? " - " . $v->bezeichnung : "");
}
?>
</option>
<?php endforeach; ?>
</select>
@@ -0,0 +1,22 @@
<?php
class Aufnahmegruppe_widget extends DropdownWidget
{
public function display($widgetData)
{
// Gruppen
$this->load->model('organisation/Gruppe_model', 'GruppeModel');
$this->GruppeModel->addOrder('beschreibung');
$this->addSelectToModel($this->GruppeModel, 'gruppe_kurzbz', 'beschreibung');
$this->setElementsArray(
$this->GruppeModel->loadWhere(array('aktiv' => true, 'aufnahmegruppe' => true)),
true,
'Select a group...',
'No aufnahmegruppe found'
);
$this->loadDropDownView($widgetData);
}
}
+21
View File
@@ -0,0 +1,21 @@
<?php
class Organisationseinheit_widget extends DropdownWidget
{
public function display($widgetData)
{
$this->load->model('organisation/Organisationseinheit_model', 'OrganisationseinheitModel');
if (isset($widgetData['typ']))
$typ = $widgetData['typ'];
else
$typ = null;
// NOTE: no need to call addSelectToModel because getRecursiveList already returns
// the correct names of the fields
$this->setElementsArray($this->OrganisationseinheitModel->getRecursiveList($typ));
$this->loadDropDownView($widgetData);
}
}
+16
View File
@@ -0,0 +1,16 @@
<?php
class Orgform_widget extends DropdownWidget
{
public function display($widgetData)
{
$this->load->model('codex/Orgform_model', 'OrgFormModel');
$this->OrgFormModel->addOrder('bezeichnung');
$this->addSelectToModel($this->OrgFormModel, 'orgform_kurzbz', 'bezeichnung');
$this->setElementsArray($this->OrgFormModel->load());
$this->loadDropDownView($widgetData);
}
}
@@ -0,0 +1,43 @@
<?php
class Reihungstest_widget extends DropdownWidget
{
public function display($widgetData)
{
$this->load->model('crm/Reihungstest_model', 'ReihungstestModel');
$this->ReihungstestModel->addOrder('datum', 'DESC');
$this->addSelectToModel($this->ReihungstestModel, 'reihungstest_id', 'CONCAT(datum, \' \', uhrzeit, \' \', anmerkung)');
$parametersArray = array();
// If the parameters studiengang or studiensemester are given and are not empty
if (isset($widgetData) && is_array($widgetData)
&& ((isset($widgetData['studiengang']) && !empty($widgetData['studiengang']))
|| (isset($widgetData['studiensemester']) && !empty($widgetData['studiensemester']))))
{
if ($widgetData['studiengang'] != null)
{
$parametersArray['studiengang_kz'] = $widgetData['studiengang'];
}
if ($widgetData['studiensemester'] != null)
{
$parametersArray['studiensemester_kurzbz'] = $widgetData['studiensemester'];
}
}
else
{
// To NOT select anything
// Set 0 = 1 in the where clause of the query
$parametersArray['0'] = '1';
}
$this->setElementsArray(
$this->ReihungstestModel->loadWhere($parametersArray),
true,
'Select a reihungstest...',
'No reihungstest found'
);
$this->loadDropDownView($widgetData);
}
}
+16
View File
@@ -0,0 +1,16 @@
<?php
class Sprache_widget extends DropdownWidget
{
public function display($widgetData)
{
$this->load->model('system/Sprache_model', 'SpracheModel');
$this->SpracheModel->addOrder('sprache');
$this->addSelectToModel($this->SpracheModel, 'sprache', 'sprache');
$this->setElementsArray($this->SpracheModel->load());
$this->loadDropDownView($widgetData);
}
}
@@ -0,0 +1,22 @@
<?php
class Studiengang_widget extends DropdownWidget
{
public function display($widgetData)
{
// Studiengaenge
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
$this->StudiengangModel->addOrder('kurzbzlang');
$this->addSelectToModel($this->StudiengangModel, 'studiengang_kz', '\'(\' || kurzbzlang || \') \' || bezeichnung');
$this->setElementsArray(
$this->StudiengangModel->loadWhere(array('aktiv' => true)),
true,
'Select a studiengang...',
'No studiengaenge found'
);
$this->loadDropDownView($widgetData);
}
}
@@ -0,0 +1,22 @@
<?php
class Studiensemester_widget extends DropdownWidget
{
public function display($widgetData)
{
// Studiensemester
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
$this->StudiensemesterModel->addOrder('studiensemester_kurzbz', 'DESC');
$this->addSelectToModel($this->StudiensemesterModel, 'studiensemester_kurzbz', 'studiensemester_kurzbz');
$this->setElementsArray(
$this->StudiensemesterModel->load(),
true,
'Select a studiensemester...',
'No studiensemester found'
);
$this->loadDropDownView($widgetData);
}
}
+23
View File
@@ -0,0 +1,23 @@
<?php
class Stufe_widget extends DropdownWidget
{
public function display($widgetData)
{
// Stufe
$this->load->model('crm/Reihungstest_model', 'ReihungstestModel');
$this->ReihungstestModel->addSelect('DISTINCT ON(stufe) stufe');
$this->ReihungstestModel->addOrder('stufe');
$this->addSelectToModel($this->ReihungstestModel, 'stufe', 'stufe');
$this->setElementsArray(
$this->ReihungstestModel->loadWhere('stufe IS NOT NULL'),
true,
'Select a stufe...',
'No stufen found'
);
$this->loadDropDownView($widgetData);
}
}
-183
View File
@@ -1,183 +0,0 @@
<?php
class Usersfilters_widget extends Widget
{
// Properties containing parameters given by the view
private $studiengang;
private $studiensemester;
private $gruppe;
private $reihungstest;
private $stufe;
public function __construct($name, $args)
{
// Calling daddy
parent::__construct($name, $args);
// Loads helper message to manage returning messages
$this->load->helper('message');
// Initialising properties
$this->_setProperties($args);
}
public function display($widgetData)
{
$errors = array(); // Array containing possible errors
// Studiengaenge
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
$this->StudiengangModel->addOrder('kurzbzlang');
$studiengaenge = $this->StudiengangModel->loadWhere(array('aktiv' => true));
if (hasData($studiengaenge))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->studiengang_kz = '-1';
$emptyElement->kurzbzlang = 'Select a studiengang...';
$emptyElement->bezeichnung = '';
array_unshift($studiengaenge->retval, $emptyElement);
}
else
{
$errors[] = $studiengaenge; // Adding the error to the array of errors
}
// Studiensemester
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
$this->StudiengangModel->addSelect('studiensemester_kurzbz, studiensemester_kurzbz AS beschreibung');
$this->StudiengangModel->addOrder('studiensemester_kurzbz', 'DESC');
$studiensemester = $this->StudiensemesterModel->load();
if (hasData($studiensemester))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->studiensemester_kurzbz = '-1';
$emptyElement->beschreibung = 'Select a studiensemester...';
array_unshift($studiensemester->retval, $emptyElement);
}
else
{
$errors[] = $studiensemester; // Adding the error to the array of errors
}
// Gruppen
$this->load->model('organisation/Gruppe_model', 'GruppeModel');
$this->GruppeModel->addOrder('beschreibung');
$gruppen = $this->GruppeModel->loadWhere(array('aktiv' => true, 'aufnahmegruppe' => true));
if (hasData($gruppen))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->gruppe_kurzbz = '-1';
$emptyElement->beschreibung = 'Select a group...';
array_unshift($gruppen->retval, $emptyElement);
}
else
{
$errors[] = $gruppen; // Adding the error to the array of errors
}
// Stufe
$this->load->model('crm/Reihungstest_model', 'ReihungstestModel');
$this->ReihungstestModel->addSelect('DISTINCT ON(stufe) stufe, stufe AS beschreibung');
$this->ReihungstestModel->addOrder('stufe');
$stufen = $this->ReihungstestModel->loadWhere('stufe IS NOT NULL');
if (hasData($stufen))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->stufe = '-1';
$emptyElement->beschreibung = 'Select a stufe...';
array_unshift($stufen->retval, $emptyElement);
}
else
{
$errors[] = $stufen; // Adding the error to the array of errors
}
// Reihungstest
$reihungstest = success(array()); // default value empty array
// If the parameters studiengang or studiensemester are given and are not empty
if (($this->studiengang != null && !empty($this->studiengang))
|| ($this->studiensemester != null && !empty($this->studiensemester)))
{
$this->ReihungstestModel->resetQuery(); // cleans any previous setting
$this->ReihungstestModel->addSelect('reihungstest_id, concat(datum, \' \', uhrzeit, \' \', anmerkung) AS beschreibung');
$this->ReihungstestModel->addOrder('datum', 'DESC');
$parametersArray = array();
if ($this->studiengang != null)
{
$parametersArray['studiengang_kz'] = $this->studiengang;
}
if ($this->studiensemester != null)
{
$parametersArray['studiensemester_kurzbz'] = $this->studiensemester;
}
$reihungstest = $this->ReihungstestModel->loadWhere($parametersArray);
if (isError($reihungstest))
{
$errors[] = $reihungstest; // Adding the error to the array of errors
}
}
if (!isError($reihungstest))
{
// Adding an empty element at the beginning
$emptyElement = new stdClass();
$emptyElement->reihungstest_id = '-1';
$emptyElement->beschreibung = 'Select a reihungstest...';
array_unshift($reihungstest->retval, $emptyElement);
}
// Data to be used in the widget view
$viewData = array(
'studiengaenge' => $studiengaenge->retval,
'studiensemester' => $studiensemester->retval,
'gruppen' => $gruppen->retval,
'stufen' => $stufen->retval,
'reihungstest' => $reihungstest->retval,
'errors' => $errors,
'selectedStudiengang' => $this->studiengang,
'selectedStudiensemester' => $this->studiensemester,
'selectedGruppe' => $this->gruppe,
'selectedReihungstest' => $this->reihungstest,
'selectedStufe' => $this->stufe
);
// Loads widget view
$this->view('widgets/usersfilters', $viewData);
}
/**
* Initialising properties
*/
private function _setProperties($args)
{
if (isset($args) && is_array($args))
{
if (isset($args['studiengang']) && $args['studiengang'] != '-1')
{
$this->studiengang = $args['studiengang'];
}
if (isset($args['studiensemester']) && $args['studiensemester'] != '-1')
{
$this->studiensemester = $args['studiensemester'];
}
if (isset($args['gruppe']) && $args['gruppe'] != '-1')
{
$this->gruppe = $args['gruppe'];
}
if (isset($args['reihungstest']) && $args['reihungstest'] != '-1')
{
$this->reihungstest = $args['reihungstest'];
}
if (isset($args['stufe']) && $args['stufe'] != '-1')
{
$this->stufe = $args['stufe'];
}
}
}
}
@@ -1,43 +0,0 @@
<?php
/*
* OE widget
*/
class organisationseinheit_widget extends Widget
{
protected $_htmltagname = 'oe_kurzbz';
public function display($data)
{
$this->load->model('organisation/Organisationseinheit_model');
if (isset($data['typ']))
$typ = $data['typ'];
else
$typ = null;
$res = $this->Organisationseinheit_model->getRecursiveList($typ);
// *** set data ***
if (isset($data['htmltagname']))
$this->_htmltagname = $data['htmltagname'];
// items from db
foreach ($res->retval as $obj)
{
$item = array
(
'name' => $obj->name,
'value' => $obj->value
);
if (isset($data['oe_kurzbz']) && $data['oe_kurzbz'] == $obj->value)
$item['selected'] = true;
else
$item['selected'] = false;
$data['items'][] = $item;
}
$data['htmltagname'] = $this->_htmltagname;
$this->view('widgets/organisationseinheit', $data);
}
}
-49
View File
@@ -1,49 +0,0 @@
<?php
/*
* OrgForm widget
*/
class orgform_widget extends Widget
{
protected $_htmltagname = 'orgform_kurzbz';
public function display($data)
{
$this->load->model('codex/Orgform_model', 'OrgFormModel');
$res = $this->OrgFormModel->load();
// set data
if (isset($data['htmltagname']))
$this->_htmltagname = $data['htmltagname'];
// empty item for null values
$item = array
(
'name' => ' - ',
'value' => ''
);
if (empty($data['oe_kurzbz']))
$item['selected'] = true;
else
$item['selected'] = false;
$data['items'][] = $item;
// items from db
foreach ($res->retval as $obj)
{
$item = array
(
'name' => $obj->orgform_kurzbz.' ('.$obj->bezeichnung.')',
'value' => $obj->orgform_kurzbz
);
if (isset($data['orgform_kurzbz']) && $obj->orgform_kurzbz == $data['orgform_kurzbz'])
$item['selected'] = true;
else
$item['selected'] = false;
$data['items'][] = $item;
}
$data['htmltagname'] = $this->_htmltagname;
$this->view('widgets/orgform', $data);
}
}
-27
View File
@@ -1,27 +0,0 @@
<?php
/*
* OE widget
*/
class sprache_widget extends Widget
{
public function display($data)
{
$this->load->model('system/Sprache_model');
$res = $this->Sprache_model->load();
//var_dump($res);
foreach ($res->retval as $obj)
{
$item = array('sprache' => $obj->sprache);
if (isset($data['sprache']) && $obj->sprache == $data['sprache'])
$item['selected'] = true;
else
$item['selected'] = false;
$data['items'][] = $item;
}
if (! isset($data['sprache']))
$data['sprache'] = 'German';
$this->view('widgets/sprache', $data);
}
}
+14 -16
View File
@@ -1,23 +1,21 @@
<?php
class Vorlage_widget extends Widget
class Vorlage_widget extends DropdownWidget
{
public function display($data)
public function display($widgetData)
{
$this->load->model("system/Vorlage_model", "VorlageModel");
$this->VorlageModel->addOrder("vorlage_kurzbz");
$result = $this->VorlageModel->loadWhere(array("mimetype" => "text/html"));
$this->load->model('system/Vorlage_model', 'VorlageModel');
$this->VorlageModel->addOrder('vorlage_kurzbz');
if (is_object($result) && $result->error == EXIT_SUCCESS)
{
// Adding an empty element
$emptyVorlage = new stdClass();
$emptyVorlage->vorlage_kurzbz = '-1';
$emptyVorlage->bezeichnung = 'Select a template...';
array_unshift($result->retval, $emptyVorlage);
$data = array("vorlage" => $result->retval);
$this->view("widgets/vorlage", $data);
}
$this->addSelectToModel($this->VorlageModel, 'vorlage_kurzbz', 'bezeichnung');
$this->setElementsArray(
$this->VorlageModel->loadWhere(array('mimetype' => 'text/html')),
true,
'Select a vorlage...',
'No vorlage found'
);
$this->loadDropDownView($widgetData);
}
}
@@ -135,7 +135,12 @@ if(!empty($anmeldungen))
$date = $datum->formatDatum($prfTermin->von,"d.m.Y - H:i");
$count++;
}
$date = $datum->formatDatum($prfTermin->von,"d.m.Y");
// Es soll das Datum der Anmeldung angezeigt werden
if ($anmeldung->datum_anmeldung)
$date = $datum->formatDatum($anmeldung->datum_anmeldung, "d.m.Y");
else
$date = '';
$data[] = array('student'=>array(
'count' => $count,
'vorname' => $student->vorname,
+145 -151
View File
@@ -20,7 +20,9 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Simane-Sequens <gerald.simane@technikum-wien.at>.
*/
/**
* Das Script dient zum Navigieren im Stundenplan und zur Reservierung von Raeumen
*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/wochenplan.class.php');
@@ -28,6 +30,7 @@ require_once('../../../include/reservierung.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/ort.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/stundenplan.class.php');
$sprache = getSprache();
$p=new phrasen($sprache);
@@ -37,14 +40,6 @@ if (!$db = new basis_db())
$uid=get_uid();
//$type='ort';
//$ort_kurzbz='EDV6.08';
//$datum=1102260015;
// Deutsche Umgebung
//$loc_de=setlocale(LC_ALL, 'de_AT@euro', 'de_AT','de_DE@euro', 'de_DE');
//setlocale(LC_ALL, $loc_de);
// Variablen uebernehmen
if (isset($_GET['type']))
$type=$_GET['type'];
@@ -117,23 +112,24 @@ if (isset($_POST['beschreibung']))
if (isset($_POST['titel']))
$titel=$_POST['titel'];
?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
?><!DOCTYPE html>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META charset="UTF-8">
<TITLE><?php echo $p->t('lvplan/lehrveranstaltungsplan').' '.CAMPUS_NAME;?></TITLE>
<script src="../../../include/js/jquery1.9.min.js" type="text/javascript"></script>
<?php include('../../../include/meta/jquery.php');?>
<script type="text/javascript">
<!--
function MM_jumpMenu(targ,selObj,restore)
{ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore)
selObj.selectedIndex=0;
{
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore)
selObj.selectedIndex=0;
}
function toggle_checkboxes(obj)
{
function toggle_checkboxes(obj)
{
var f = obj.form;
var regExp = /reserve[1-7]_[1-9][1-6]?/;
for (var i = 0; i < f.elements.length; i++)
@@ -144,85 +140,85 @@ if (isset($_POST['titel']))
}
}
$(document).ready(function() {
$("select[name='studiengang_kz']").change(function() {
var studiengang_kz = $("select[name='studiengang_kz']").val();
$.ajax({
url: "lvplan_autocomplete.php",
data: { 'autocomplete':'getSemester',
'stg_kz':studiengang_kz
},
type: "POST",
dataType: "json",
success: function(data)
{
$("select[name='semester']").empty();
$("select[name='semester']").append('<option value="">*</option>');
$.each(data, function(i, data){
$("select[name='semester']").append('<option value="'+data+'">'+data+'</option>');
});
},
error: function(data)
{
alert("Fehler beim Laden der Daten");
}
});
})
$(document).ready(function() {
$("select[name='studiengang_kz']").change(function() {
var studiengang_kz = $("select[name='studiengang_kz']").val();
$.ajax({
url: "lvplan_autocomplete.php",
data: { 'autocomplete':'getSemester',
'stg_kz':studiengang_kz
},
type: "POST",
dataType: "json",
success: function(data)
{
$("select[name='semester']").empty();
$("select[name='semester']").append('<option value="">*</option>');
$.each(data, function(i, data){
$("select[name='semester']").append('<option value="'+data+'">'+data+'</option>');
});
},
error: function(data)
{
alert("Fehler beim Laden der Daten");
}
});
})
$("select[name='semester']").change(function() {
var studiengang_kz = $("select[name='studiengang_kz']").val();
var semester = $("select[name='semester']").val();
$.ajax({
url: "lvplan_autocomplete.php",
data: { 'autocomplete':'getVerband',
'stg_kz':studiengang_kz,
'sem':semester
},
type: "POST",
dataType: "json",
success: function(data)
{
$("select[name='verband']").empty();
$("select[name='verband']").append('<option value="">*</option>');
$.each(data, function(i, data){
$("select[name='verband']").append('<option value="'+data+'">'+data+'</option>');
});
},
error: function(data)
{
alert("Fehler beim Laden der Daten");
}
});
})
$("select[name='semester']").change(function() {
var studiengang_kz = $("select[name='studiengang_kz']").val();
var semester = $("select[name='semester']").val();
$.ajax({
url: "lvplan_autocomplete.php",
data: { 'autocomplete':'getVerband',
'stg_kz':studiengang_kz,
'sem':semester
},
type: "POST",
dataType: "json",
success: function(data)
{
$("select[name='verband']").empty();
$("select[name='verband']").append('<option value="">*</option>');
$.each(data, function(i, data){
$("select[name='verband']").append('<option value="'+data+'">'+data+'</option>');
});
},
error: function(data)
{
alert("Fehler beim Laden der Daten");
}
});
})
$("select[name='verband']").change(function() {
var studiengang_kz = $("select[name='studiengang_kz']").val();
var semester = $("select[name='semester']").val();
var verband = $("select[name='verband']").val();
$.ajax({
url: "lvplan_autocomplete.php",
data: { 'autocomplete':'getGruppe',
'stg_kz':studiengang_kz,
'sem':semester,
'ver':verband
},
type: "POST",
dataType: "json",
success: function(data)
{
$("select[name='gruppe']").empty();
$("select[name='gruppe']").append('<option value="">*</option>');
$.each(data, function(i, data){
$("select[name='gruppe']").append('<option value="'+data+'">'+data+'</option>');
});
},
error: function(data)
{
alert("Fehler beim Laden der Daten");
}
});
})
});
$("select[name='verband']").change(function() {
var studiengang_kz = $("select[name='studiengang_kz']").val();
var semester = $("select[name='semester']").val();
var verband = $("select[name='verband']").val();
$.ajax({
url: "lvplan_autocomplete.php",
data: { 'autocomplete':'getGruppe',
'stg_kz':studiengang_kz,
'sem':semester,
'ver':verband
},
type: "POST",
dataType: "json",
success: function(data)
{
$("select[name='gruppe']").empty();
$("select[name='gruppe']").append('<option value="">*</option>');
$.each(data, function(i, data){
$("select[name='gruppe']").append('<option value="'+data+'">'+data+'</option>');
});
},
error: function(data)
{
alert("Fehler beim Laden der Daten");
}
});
})
});
-->
</script>
<?php
@@ -234,11 +230,11 @@ if (isset($_POST['titel']))
if(file_exists('../../../addons/'.$addon->kurzbz.'/cis/init.js.php'))
echo '<script type="application/x-javascript" src="../../../addons/'.$addon->kurzbz.'/cis/init.js.php" ></script>';
}
// Wenn Seite fertig geladen ist Addons aufrufen
echo '
<script>
$( document ).ready(function()
$( document ).ready(function()
{
if(typeof addon !== \'undefined\')
{
@@ -265,17 +261,6 @@ if (isset($_POST['titel']))
</table>
<?php
/****************************************************************************
* Script: stpl_week.php
* Descr: Das Script dient zum Navigieren im Stundenplan.
* Ein Lektor kann auch einen Saal reservieren
* Verzweigungen: nach stpl_detail.php
* von index.php
* Author: Christian Paminger
* Erstellt: 21.8.2001
* Update: 15.11.2004 von Christian Paminger
*****************************************************************************/
//Parameter pruefen
if($stg_kz!='' && !is_numeric($stg_kz))
die('Studiengang ist ungueltig');
@@ -305,11 +290,9 @@ elseif (check_lektor($uid))
else
{
die($p->t('global/userNichtGefunden'));
//GastAccountHack
//$user='student';
}
// User bestimmen
// User bestimmen
if (!isset($type))
$type=$user;
if (!isset($pers_uid))
@@ -344,47 +327,59 @@ if (isset($reserve) && $raumres)
{
$datum_res=$_REQUEST[$var];
$reservierung = new reservierung();
// Pruefen ob der Raum im Stundenplan und Stundenplandev frei ist
$stpl = new stundenplan('stundenplan');
$stpldev = new stundenplan('stundenplandev');
if(!$reservierung->isReserviert($ort_kurzbz, $datum_res, $stunde))
if(!$stpl->isBelegt($ort_kurzbz, $datum_res, $stunde)
&& !$stpldev->isBelegt($ort_kurzbz, $datum_res, $stunde))
{
if (empty($_REQUEST['titel']) && empty($_REQUEST['beschreibung']))
echo "<br>".$p->t('lvplan/titelUndBeschreibungFehlt')."! <br>";
else if (empty($_REQUEST['titel']) )
echo "<br>".$p->t('lvplan/titelFehlt')."! <br>";
else if ( empty($_REQUEST['beschreibung']))
echo "<br>".$p->t('lvplan/beschreibungFehlt')."! <br>";
$reservierung = new reservierung();
if(!$reservierung->isReserviert($ort_kurzbz, $datum_res, $stunde))
{
if (empty($_REQUEST['titel']) && empty($_REQUEST['beschreibung']))
echo "<br>".$p->t('lvplan/titelUndBeschreibungFehlt')."! <br>";
else if (empty($_REQUEST['titel']) )
echo "<br>".$p->t('lvplan/titelFehlt')."! <br>";
else if ( empty($_REQUEST['beschreibung']))
echo "<br>".$p->t('lvplan/beschreibungFehlt')."! <br>";
else
{
$reservierung = new reservierung();
$reservierung->datum = $datum_res;
$reservierung->ort_kurzbz = $ort_kurzbz;
$reservierung->stunde = $stunde;
$reservierung->beschreibung = $_REQUEST['beschreibung'];
$reservierung->titel = $_REQUEST['titel'];
$reservierung->insertamum=date('Y-m-d H:i:s');
$reservierung->insertvon=$uid;
if(isset($_REQUEST['studiengang_kz']))
{
$reservierung->studiengang_kz = $_REQUEST['studiengang_kz'];
$reservierung->semester = $_REQUEST['semester'];
$reservierung->verband = $_REQUEST['verband'];
$reservierung->gruppe = $_REQUEST['gruppe'];
$reservierung->gruppe_kurzbz = $_REQUEST['gruppe_kurzbz'];
$reservierung->uid = $_REQUEST['user_uid'];
}
else
{
$reservierung->studiengang_kz='0';
$reservierung->uid = $uid;
}
if(!$reservierung->save(true))
echo $reservierung->errormsg;
else
$count++;
}
}
else
{
$reservierung = new reservierung();
$reservierung->datum = $datum_res;
$reservierung->ort_kurzbz = $ort_kurzbz;
$reservierung->stunde = $stunde;
$reservierung->beschreibung = $_REQUEST['beschreibung'];
$reservierung->titel = $_REQUEST['titel'];
$reservierung->insertamum=date('Y-m-d H:i:s');
$reservierung->insertvon=$uid;
if(isset($_REQUEST['studiengang_kz']))
{
$reservierung->studiengang_kz = $_REQUEST['studiengang_kz'];
$reservierung->semester = $_REQUEST['semester'];
$reservierung->verband = $_REQUEST['verband'];
$reservierung->gruppe = $_REQUEST['gruppe'];
$reservierung->gruppe_kurzbz = $_REQUEST['gruppe_kurzbz'];
$reservierung->uid = $_REQUEST['user_uid'];
}
else
{
$reservierung->studiengang_kz='0';
$reservierung->uid = $uid;
}
if(!$reservierung->save(true))
echo $reservierung->errormsg;
else
$count++;
}
echo "<br>$ort_kurzbz ".$p->t('lvplan/bereitsReserviert').": $datum_res - Stunde $stunde <br>";
}
}
else
{
@@ -411,7 +406,6 @@ if (! $stdplan->load_data($type,$pers_uid,$ort_kurzbz,$stg_kz,$sem,$ver,$grp,$gr
die($stdplan->errormsg);
}
//echo 'Datum:'.$datum.'<BR>';
// Stundenplan einer Woche laden
if (! $stdplan->load_week($datum))
{
@@ -426,9 +420,9 @@ if (! $stdplan->draw_header())
// Stundenplan der Woche drucken
if($ort_kurzbz == 'all')
$stdplan->draw_week ($raumres, $uid, false);
$stdplan->draw_week ($raumres, $uid, false);
else
$stdplan->draw_week($raumres,$uid);
$stdplan->draw_week($raumres,$uid);
if (isset($count))
echo "Es wurde".($count!=1?'n':'')." $count Stunde".($count!=1?'n':'')." reserviert!<BR>";
+20 -17
View File
@@ -2,39 +2,42 @@
ini_set('display_errors','1');
error_reporting(E_ALL);
mb_internal_encoding("UTF-8");
mb_regex_encoding("UTF-8");
mb_internal_encoding('UTF-8');
mb_regex_encoding('UTF-8');
setlocale (LC_ALL, 'de_DE.UTF8','de_DE@euro', 'de_DE', 'de','DE', 'ge','German');
date_default_timezone_set('Europe/Vienna');
// Connection Strings zur Datenbank
define("DB_SYSTEM","pgsql");
define("DB_HOST","localhost");
define("DB_PORT","5432");
define("DB_NAME","fhcomplete");
define("DB_USER","fhcomplete");
define("DB_PASSWORD","fhcomplete");
define("DB_CONNECT_PERSISTENT",FALSE);
define('DB_SYSTEM','pgsql');
define('DB_HOST','localhost');
define('DB_PORT','5432');
define('DB_NAME','fhcomplete');
define('DB_USER','fhcomplete');
define('DB_PASSWORD','fhcomplete');
define('DB_CONNECT_PERSISTENT',FALSE);
define('CONN_CLIENT_ENCODING','UTF-8' );
// Dokumentenmanagement
define('DMS_PATH','/var/fhcomplete/documents/dms/');
// Pfad zu Document Root
define('DOC_ROOT','/var/www/html/build/');
// Fuer Mails etc
define('DOMAIN','technikum-wien.at');
// Default Sprache
define('DEFAULT_LANGUAGE','German' );
// Authentifizierungsmethode
// Moegliche Werte:
// auth_mixed - htaccess mit LDAP (Default)
// auth_demo - Demo Modus (.htaccess)
// auth_demo - Demo Modus (.htaccess)
// auth_session - Sessions mit LDAP (Testbetrieb)
define("AUTH_SYSTEM", "auth_demo");
define('AUTH_SYSTEM', 'auth_demo');
// Gibt den Namen fuer die htaccess Authentifizierung an (muss mit dem Attribut AuthName im htaccess uebereinstimmen)
define("AUTH_NAME","FH-Complete");
define('AUTH_NAME','FH-Complete');
// DatenbankRollen fuer Grants
define('DB_CIS_USER_GROUP','web');
define('DB_FAS_USER_GROUP','admin');
+5
View File
@@ -118,6 +118,10 @@ echo ']>
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/messages/rdf#recipient_id"/>
<splitter class="tree-splitter"/>
<treecol id="messages-tree-status" label="Status" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/messages/rdf#status"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
@@ -132,6 +136,7 @@ echo ']>
<treecell label="rdf:http://www.technikum-wien.at/messages/rdf#recipient"/>
<treecell label="rdf:http://www.technikum-wien.at/messages/rdf#sender_id"/>
<treecell label="rdf:http://www.technikum-wien.at/messages/rdf#recipient_id"/>
<treecell label="rdf:http://www.technikum-wien.at/messages/rdf#status"/>
</treerow>
</treeitem>
</treechildren>
+104 -81
View File
@@ -29,121 +29,143 @@ if(isset($_GET['stsem']))
$stsem = $_GET['stsem'];
else
$stsem = '';
$db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen(get_uid());
if(!$rechte->isBerechtigt('student/stammdaten', null, 's'))
die($rechte->errormsg);
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
echo '<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../../include/js/tablesort/table.css" type="text/css">
<script src="../../include/js/tablesort/table.js" type="text/javascript"></script>
<meta charset="UTF-8">
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">';
include('../../include/meta/jquery.php');
include('../../include/meta/jquery-tablesorter.php');
echo '
<script language="Javascript">
$(document).ready(function()
{
$("#t1").tablesorter(
{
sortList: [[0,0]],
widgets: ["zebra"],
});
});
</script>
</head>
<body>';
echo "<h2>AbgängerInnenstatistik ".$db->convert_html_chars($stsem);
echo '<span style="position:absolute; right:15px;">'.date('d.m.Y').'</span></h2><br>';
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="GET">Studiensemester: <SELECT name="stsem">';
$studsem = new studiensemester();
$studsem->getAll();
echo "<h2>AbgängerInnenstatistik $stsem";
echo '<span style="position:absolute; right:15px;">'.date('d.m.Y').'</span></h2><br>';
echo '</h2>';
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="GET">Studiensemester: <SELECT name="stsem">';
$studsem = new studiensemester();
$studsem->getAll();
foreach ($studsem->studiensemester as $stsemester)
{
if($stsemester->studiensemester_kurzbz == $stsem)
$selected = 'selected';
else
$selected = '';
foreach ($studsem->studiensemester as $stsemester)
{
if($stsemester->studiensemester_kurzbz==$stsem)
$selected='selected';
else
$selected='';
echo '<option value="'.$stsemester->studiensemester_kurzbz.'" '.$selected.'>'.$stsemester->studiensemester_kurzbz.'</option>';
}
echo '</SELECT>
<input type="submit" value="Anzeigen" /></form><br><br>';
echo '<option value="'.$stsemester->studiensemester_kurzbz.'" '.$selected.'>';
echo $stsemester->studiensemester_kurzbz;
echo '</option>';
}
echo '</SELECT>
<input type="submit" value="Anzeigen" /></form><br><br>';
if($stsem!='')
if ($stsem != '')
{
$stgs = $rechte->getStgKz();
if($stgs[0]=='')
$stgwhere='';
else
{
$stgwhere=' AND studiengang_kz in(';
foreach ($stgs as $stg)
$stgwhere.="'$stg',";
$stgwhere = mb_substr($stgwhere,0, mb_strlen($stgwhere)-1);
$stgwhere.=' )';
}
$qry = "SELECT studiengang_kz, kurzbz, typ, kurzbzlang, bezeichnung, orgform_kurzbz,
(SELECT count(*) FROM public.tbl_prestudent
if (count($stgs) == 0)
$stgwhere = '';
else
{
$stgwhere = ' AND studiengang_kz in(';
$stgwhere .= $db->db_implode4SQL($stgs);
$stgwhere .= ' )';
}
$qry = "SELECT studiengang_kz, kurzbz, typ, kurzbzlang, bezeichnung, orgform_kurzbz,
(SELECT count(*) FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abgewiesener' AND studiensemester_kurzbz='".addslashes($stsem)."'
) AS abgewiesene,
(SELECT count(*) FROM public.tbl_prestudent
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abgewiesener'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
) AS abgewiesene,
(SELECT count(*) FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING (person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abgewiesener' AND geschlecht ='m' AND studiensemester_kurzbz='".addslashes($stsem)."'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abgewiesener'
AND geschlecht ='m' AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
) AS abgewiesene_maennlich,
(SELECT count(*) FROM public.tbl_prestudent
(SELECT count(*) FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING (person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abgewiesener' AND geschlecht ='w' AND studiensemester_kurzbz='".addslashes($stsem)."'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abgewiesener'
AND geschlecht ='w' AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
) AS abgewiesene_weiblich,
(SELECT count(*) FROM public.tbl_prestudent
(SELECT count(*) FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abbrecher' AND studiensemester_kurzbz='".addslashes($stsem)."'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abbrecher'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
) AS abbrecher,
(SELECT count(*) FROM public.tbl_prestudent
(SELECT count(*) FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING (person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abbrecher' AND geschlecht ='m' AND studiensemester_kurzbz='".addslashes($stsem)."'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abbrecher'
AND geschlecht ='m' AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
) AS abbrecher_maennlich,
(SELECT count(*) FROM public.tbl_prestudent
(SELECT count(*) FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING (person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abbrecher' AND geschlecht ='w' AND studiensemester_kurzbz='".addslashes($stsem)."'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abbrecher'
AND geschlecht ='w' AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
) AS abbrecher_weiblich,
(SELECT count(*) FROM public.tbl_prestudent
(SELECT count(*) FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Unterbrecher' AND studiensemester_kurzbz='".addslashes($stsem)."'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Unterbrecher'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
) AS unterbrecher,
(SELECT count(*) FROM public.tbl_prestudent
(SELECT count(*) FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING (person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Unterbrecher' AND geschlecht='m' AND studiensemester_kurzbz='".addslashes($stsem)."'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Unterbrecher'
AND geschlecht='m' AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
) AS unterbrecher_maennlich,
(SELECT count(*) FROM public.tbl_prestudent
(SELECT count(*) FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING (person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Unterbrecher' AND geschlecht='w' AND studiensemester_kurzbz='".addslashes($stsem)."'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Unterbrecher'
AND geschlecht='w' AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
) AS unterbrecher_weiblich,
(SELECT count(*) FROM public.tbl_prestudent
(SELECT count(*) FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
) AS absolvent,
(SELECT count(*) FROM public.tbl_prestudent
(SELECT count(*) FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING (person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND geschlecht='m' AND studiensemester_kurzbz='".addslashes($stsem)."'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND geschlecht='m' AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
) AS absolvent_maennlich,
(SELECT count(*) FROM public.tbl_prestudent
(SELECT count(*) FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING (person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND geschlecht='w' AND studiensemester_kurzbz='".addslashes($stsem)."'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND geschlecht='w' AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
) AS absolvent_weiblich
FROM
public.tbl_studiengang stg
WHERE
studiengang_kz>0 AND studiengang_kz<10000 AND aktiv $stgwhere
ORDER BY kurzbzlang; ";
if($db->db_query($qry))
if ($db->db_query($qry))
{ ?>
<table class='liste table-autosort:0 table-stripeclass:alternate table-autostripe'>
<table id="t1">
<thead>
<tr>
<th></th>
@@ -154,24 +176,24 @@ if($stsem!='')
</tr>
<tr>
<th class='table-sortable:default'>Studiengang</th>
<th class='table-sortable:numeric'>m</th>
<th class='table-sortable:numeric'>w</th>
<th class='table-sortable:numeric'>Gesamt</th>
<th class='table-sortable:numeric'>m</th>
<th class='table-sortable:numeric'>w</th>
<th class='table-sortable:numeric'>Gesamt</th>
<th class='table-sortable:numeric'>m</th>
<th class='table-sortable:numeric'>w</th>
<th class='table-sortable:numeric'>Gesamt</th>
<th class='table-sortable:numeric'>m</th>
<th class='table-sortable:numeric'>w</th>
<th class='table-sortable:numeric'>Gesamt</th>
<th>Studiengang</th>
<th>m</th>
<th>w</th>
<th>Gesamt</th>
<th>m</th>
<th>w</th>
<th>Gesamt</th>
<th>m</th>
<th>w</th>
<th>Gesamt</th>
<th>m</th>
<th>w</th>
<th>Gesamt</th>
</tr>
</thead>
<tbody>
<?php while($row = $db->db_fetch_object())
<?php while ($row = $db->db_fetch_object())
{ ?>
<tr>
<td><?php echo strtoupper($row->typ.$row->kurzbz)?> (<?php echo $row->kurzbzlang ?>)</td>
@@ -190,7 +212,8 @@ if($stsem!='')
</tr>
<?php } ?>
</tbody></table>
<?php }
<?php
}
}
?>
</body>
+169 -140
View File
@@ -1,140 +1,169 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Exportiert die Studentendaten in ein Excel File.
* Die zu exportierenden Spalten werden per GET uebergeben.
* Die Adressen werden immer dazugehaengt
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/datum.class.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/Excel/excel.php');
$db = new basis_db();
$user = get_uid();
$datum_obj = new datum();
loadVariables($user);
function writecol($zeile, $i, $content)
{
global $worksheet, $maxlength;
$worksheet->write($zeile, $i, $content);
if(mb_strlen($content)>$maxlength[$i])
$maxlength[$i]=mb_strlen($content);
}
//Parameter holen
$studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:'';
$semester = isset($_GET['semester'])?$_GET['semester']:'';
$studiensemester_kurzbz = isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:'';
$maxlength= array();
$zeile=1;
// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();
// sending HTTP headers
$workbook->send("Abschlusspruefung". "_" . date("d_m_Y") . ".xls");
$workbook->setVersion(8);
// Creating a worksheet
$worksheet =& $workbook->addWorksheet("Abschlusspruefung");
$worksheet->setInputEncoding('utf-8');
$format_bold =& $workbook->addFormat();
$format_bold->setBold();
$format_title =& $workbook->addFormat();
$format_title->setBold();
// let's merge
$format_title->setAlign('merge');
$stsem = new studiensemester();
$stsem->load($studiensemester_kurzbz);
//Zeilenueberschriften ausgeben
$headline=array('Titelpre','Vorname','Nachname','Titelpost','Vorsitz','Pruefer1','Pruefer2','Pruefer3',
'Abschlussbeurteilung','Typ','Datum','Sponsion','Anmerkung');
$i=0;
foreach ($headline as $title)
{
$worksheet->write(0,$i,$title, $format_bold);
$maxlength[$i]=mb_strlen($title);
$i++;
}
// Daten holen
$qry = "SELECT
titelpre, vorname, nachname, titelpost,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=vorsitz) as vorsitz,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer1) as pruefer1,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer2) as pruefer2,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer3) as pruefer3,
(SELECT bezeichnung FROM lehre.tbl_abschlussbeurteilung WHERE tbl_abschlussbeurteilung.abschlussbeurteilung_kurzbz=tbl_abschlusspruefung.abschlussbeurteilung_kurzbz) as bezeichnung, tbl_pruefungstyp.beschreibung, datum, sponsion, tbl_abschlusspruefung.anmerkung
FROM
lehre.tbl_abschlusspruefung, public.tbl_studentlehrverband, public.tbl_benutzer, public.tbl_person,
lehre.tbl_pruefungstyp
WHERE
tbl_abschlusspruefung.student_uid=public.tbl_studentlehrverband.student_uid AND
tbl_studentlehrverband.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND
tbl_studentlehrverband.studiengang_kz='".addslashes($studiengang_kz)."' AND
tbl_benutzer.uid = tbl_abschlusspruefung.student_uid AND
tbl_person.person_id = tbl_benutzer.person_id AND
tbl_abschlusspruefung.pruefungstyp_kurzbz = tbl_pruefungstyp.pruefungstyp_kurzbz
";
if($semester!='')
$qry.= " AND tbl_studentlehrverband.semester='".addslashes($semester)."'";
$qry.=' ORDER BY nachname, vorname';
$zeile=1;
if($db->db_query($qry))
{
while($row = $db->db_fetch_object())
{
$i=0;
writecol($zeile, $i++, $row->titelpre);
writecol($zeile, $i++, $row->vorname);
writecol($zeile, $i++, $row->nachname);
writecol($zeile, $i++, $row->titelpost);
writecol($zeile, $i++, $row->vorsitz);
writecol($zeile, $i++, $row->pruefer1);
writecol($zeile, $i++, $row->pruefer2);
writecol($zeile, $i++, $row->pruefer3);
writecol($zeile, $i++, $row->bezeichnung);
writecol($zeile, $i++, $row->beschreibung);
writecol($zeile, $i++, $row->datum);
writecol($zeile, $i++, $row->sponsion);
writecol($zeile, $i++, $row->anmerkung);
$zeile++;
}
}
else
die('Fehler in Qry: '.$qry);
//Die Breite der Spalten setzen
foreach($maxlength as $i=>$breite)
$worksheet->setColumn($i, $i, $breite+2);
$workbook->close();
?>
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Exportiert die Abschlusspruefungen in ein Excel File.
* Die zu exportierenden Spalten werden per GET uebergeben.
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/datum.class.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/Excel/excel.php');
require_once('../../include/benutzerberechtigung.class.php');
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$db = new basis_db();
$user = get_uid();
$datum_obj = new datum();
loadVariables($user);
/**
* Schreibt eine Spalte ins Excel und speichert die maximale Spaltenbreite
*
* @param int $zeile Zeile im Excel.
* @param int $i Spalte im Excel.
* @param string $content Inhalt.
* @return void
*/
function writecol($zeile, $i, $content)
{
global $worksheet, $maxlength;
$worksheet->write($zeile, $i, $content);
if(mb_strlen($content) > $maxlength[$i])
$maxlength[$i] = mb_strlen($content);
}
//Parameter holen
$studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:'';
$semester = isset($_GET['semester'])?$_GET['semester']:'';
$studiensemester_kurzbz = isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:'';
if($studiengang_kz == '')
die('studiengang_kz is not set');
if($studiensemester_kurzbz == '')
die('studiensemester_kurzbz is not set');
$maxlength = array();
$zeile = 1;
if(!$rechte->isBerechtigt('student/stammdaten', $studiengang_kz, 's'))
die($rechte->errormsg);
// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();
// sending HTTP headers
$workbook->send("Abschlusspruefung". "_".date("d_m_Y").".xls");
$workbook->setVersion(8);
// Creating a worksheet
$worksheet =& $workbook->addWorksheet("Abschlusspruefung");
$worksheet->setInputEncoding('utf-8');
$format_bold =& $workbook->addFormat();
$format_bold->setBold();
$format_title =& $workbook->addFormat();
$format_title->setBold();
// let's merge
$format_title->setAlign('merge');
$stsem = new studiensemester();
$stsem->load($studiensemester_kurzbz);
//Zeilenueberschriften ausgeben
$headline = array('Titelpre', 'Vorname', 'Nachname', 'Titelpost', 'Vorsitz', 'Pruefer1', 'Pruefer2', 'Pruefer3',
'Abschlussbeurteilung', 'Typ', 'Datum', 'Sponsion', 'Anmerkung');
$i = 0;
foreach ($headline as $title)
{
$worksheet->write(0, $i, $title, $format_bold);
$maxlength[$i] = mb_strlen($title);
$i++;
}
// Daten holen
$qry = "SELECT
titelpre, vorname, nachname, titelpost,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'')
|| ' ' || COALESCE(titelpost,'') FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id)
WHERE uid=vorsitz) as vorsitz,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'')
|| ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer1) as pruefer1,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'')
|| ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer2) as pruefer2,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' '
|| COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer3) as pruefer3,
(SELECT bezeichnung FROM lehre.tbl_abschlussbeurteilung
WHERE tbl_abschlussbeurteilung.abschlussbeurteilung_kurzbz
= tbl_abschlusspruefung.abschlussbeurteilung_kurzbz) as bezeichnung,
tbl_pruefungstyp.beschreibung, datum, sponsion, tbl_abschlusspruefung.anmerkung
FROM
lehre.tbl_abschlusspruefung, public.tbl_studentlehrverband, public.tbl_benutzer, public.tbl_person,
lehre.tbl_pruefungstyp
WHERE
tbl_abschlusspruefung.student_uid=public.tbl_studentlehrverband.student_uid AND
tbl_studentlehrverband.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND
tbl_studentlehrverband.studiengang_kz=".$db->db_add_param($studiengang_kz)." AND
tbl_benutzer.uid = tbl_abschlusspruefung.student_uid AND
tbl_person.person_id = tbl_benutzer.person_id AND
tbl_abschlusspruefung.pruefungstyp_kurzbz = tbl_pruefungstyp.pruefungstyp_kurzbz
";
if ($semester != '')
$qry .= " AND tbl_studentlehrverband.semester=".$db->db_add_param($semester);
$qry .= ' ORDER BY nachname, vorname';
$zeile = 1;
if ($db->db_query($qry))
{
while ($row = $db->db_fetch_object())
{
$i = 0;
writecol($zeile, $i++, $row->titelpre);
writecol($zeile, $i++, $row->vorname);
writecol($zeile, $i++, $row->nachname);
writecol($zeile, $i++, $row->titelpost);
writecol($zeile, $i++, $row->vorsitz);
writecol($zeile, $i++, $row->pruefer1);
writecol($zeile, $i++, $row->pruefer2);
writecol($zeile, $i++, $row->pruefer3);
writecol($zeile, $i++, $row->bezeichnung);
writecol($zeile, $i++, $row->beschreibung);
writecol($zeile, $i++, $row->datum);
writecol($zeile, $i++, $row->sponsion);
writecol($zeile, $i++, $row->anmerkung);
$zeile++;
}
}
else
die('Fehler bei Datenbankabfrage');
//Die Breite der Spalten setzen
foreach($maxlength as $i => $breite)
$worksheet->setColumn($i, $i, $breite + 2);
$workbook->close();
+83 -73
View File
@@ -29,13 +29,24 @@ require_once('../../include/functions.inc.php');
require_once('../../include/Excel/excel.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/benutzerberechtigung.class.php');
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if (!$rechte->isBerechtigt('student/stammdaten', null, 's'))
die($rechte->errormsg);
//Parameter holen
$studiensemester_kurzbz = isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:'';
$db = new basis_db();
if($studiensemester_kurzbz!='')
if ($studiensemester_kurzbz != '')
{
if (!check_stsem($studiensemester_kurzbz))
die('Studiensemester is ungueltig');
// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();
$workbook->setVersion(8);
@@ -45,113 +56,112 @@ if($studiensemester_kurzbz!='')
// Creating a worksheet
$worksheet =& $workbook->addWorksheet("Absolventenstatistik");
$worksheet->setInputEncoding('utf-8');
$format_bold =& $workbook->addFormat();
$format_bold->setBold();
$stg_arr=array();
$stg_arr = array();
$studiengang = new studiengang();
$studiengang->getAll('typ, kurzbzlang', false);
foreach ($studiengang->result as $row)
$stg_arr[$row->studiengang_kz] = $row->kuerzel;
$spalte=0;
$zeile=0;
$worksheet->write($zeile,$spalte,'Absolventenstatistik '.$studiensemester_kurzbz.' erstellt am '.date("d.m.Y"), $format_bold);
$spalte=0;
$spalte = 0;
$zeile = 0;
$worksheet->write($zeile, $spalte, 'Absolventenstatistik '.$db->convert_html_chars($studiensemester_kurzbz).
' erstellt am '.date("d.m.Y"), $format_bold);
$spalte = 0;
$zeile++;
$worksheet->write($zeile,$spalte,'UID',$format_bold);
$maxlength[$spalte]=3;
$worksheet->write($zeile,++$spalte,'NACHNAME',$format_bold);
$maxlength[$spalte]=8;
$worksheet->write($zeile,++$spalte,'VORNAME',$format_bold);
$maxlength[$spalte]=7;
$worksheet->write($zeile,++$spalte,'STG',$format_bold);
$maxlength[$spalte]=3;
$worksheet->write($zeile,++$spalte,'GESCHLECHT',$format_bold);
$maxlength[$spalte]=10;
$worksheet->write($zeile, $spalte, 'UID', $format_bold);
$maxlength[$spalte] = 3;
$worksheet->write($zeile, ++$spalte, 'NACHNAME', $format_bold);
$maxlength[$spalte] = 8;
$worksheet->write($zeile, ++$spalte, 'VORNAME', $format_bold);
$maxlength[$spalte] = 7;
$worksheet->write($zeile, ++$spalte, 'STG', $format_bold);
$maxlength[$spalte] = 3;
$worksheet->write($zeile, ++$spalte, 'GESCHLECHT', $format_bold);
$maxlength[$spalte] = 10;
// Daten holen
$qry = "SELECT
uid, vorname, nachname, studiengang_kz, geschlecht
FROM
campus.vw_student
WHERE
public.get_rolle_prestudent (prestudent_id, '$studiensemester_kurzbz')='Absolvent'
$qry = "SELECT
uid, vorname, nachname, studiengang_kz, geschlecht
FROM
campus.vw_student
WHERE
public.get_rolle_prestudent (prestudent_id, ".$db->db_add_param($studiensemester_kurzbz).")='Absolvent'
ORDER BY studiengang_kz, nachname, vorname";
if($db->db_query($qry))
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
while ($row = $db->db_fetch_object())
{
$zeile++;
$spalte=0;
$worksheet->write($zeile,$spalte,$row->uid);
if(strlen($row->uid)>$maxlength[$spalte])
$maxlength[$spalte]=strlen($row->uid);
$worksheet->write($zeile,++$spalte, $row->nachname);
if(strlen($row->nachname)>$maxlength[$spalte])
$maxlength[$spalte]=strlen($row->nachname);
$worksheet->write($zeile,++$spalte, $row->vorname);
if(strlen($row->vorname)>$maxlength[$spalte])
$maxlength[$spalte]=strlen($row->vorname);
$worksheet->write($zeile,++$spalte, $stg_arr[$row->studiengang_kz]);
if(strlen($stg_arr[$row->studiengang_kz])>$maxlength[$spalte])
$maxlength[$spalte]=strlen($stg_arr[$row->studiengang_kz]);
$worksheet->write($zeile,++$spalte, $row->geschlecht);
if(strlen($row->geschlecht)>$maxlength[$spalte])
$maxlength[$spalte]=strlen($row->geschlecht);
$spalte = 0;
$worksheet->write($zeile, $spalte, $row->uid);
if (strlen($row->uid) > $maxlength[$spalte])
$maxlength[$spalte] = strlen($row->uid);
$worksheet->write($zeile, ++$spalte, $row->nachname);
if (strlen($row->nachname) > $maxlength[$spalte])
$maxlength[$spalte] = strlen($row->nachname);
$worksheet->write($zeile, ++$spalte, $row->vorname);
if (strlen($row->vorname) > $maxlength[$spalte])
$maxlength[$spalte] = strlen($row->vorname);
$worksheet->write($zeile, ++$spalte, $stg_arr[$row->studiengang_kz]);
if (strlen($stg_arr[$row->studiengang_kz]) > $maxlength[$spalte])
$maxlength[$spalte] = strlen($stg_arr[$row->studiengang_kz]);
$worksheet->write($zeile, ++$spalte, $row->geschlecht);
if (strlen($row->geschlecht) > $maxlength[$spalte])
$maxlength[$spalte] = strlen($row->geschlecht);
}
}
else
die('Fehlerhafte Qry:'.$qry);
else
die('Fehler bei Datenbankabfrage');
//Die Breite der Spalten setzen
foreach($maxlength as $i=>$breite)
$worksheet->setColumn($i, $i, $breite+2);
foreach($maxlength as $i => $breite)
$worksheet->setColumn($i, $i, $breite + 2);
$workbook->close();
}
else
else
{
echo '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
echo '<!DOCTYPE HTML>
<html>
<head>
<title>Absolventen</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<title>Absolventen</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
</head>
<body class="Background_main">
<h2>Absolventenstatistik</h2>
';
echo '<form method="GET" action="'.$_SERVER['PHP_SELF'].'">';
echo 'Studiensemester: <SELECT name="studiensemester_kurzbz">';
$stsem = new studiensemester();
$stsem_akt = $stsem->getaktorNext();
$stsem->getAll();
foreach ($stsem->studiensemester as $row)
{
if($row->studiensemester_kurzbz==$stsem_akt)
$selected='selected';
else
$selected='';
echo "<OPTION value='$row->studiensemester_kurzbz' $selected>$row->studiensemester_kurzbz</OPTION>";
if ($row->studiensemester_kurzbz == $stsem_akt)
$selected = 'selected';
else
$selected = '';
echo "\n<OPTION value='$row->studiensemester_kurzbz' $selected>$row->studiensemester_kurzbz</OPTION>";
}
echo "</SELECT>";
echo " <input type='submit' value='Erstellen'>";
echo "</form></body></html>";
}
?>
+192 -117
View File
@@ -21,7 +21,7 @@
*/
/*
* Erstellt eine Liste mit den Absolventen eines Studiensemesters
* Aufteilung in
* Aufteilung in
* - Anzahl Gesamt
* - Prozent Anteil
* - Vollzeit/Berufsbegleitend
@@ -33,6 +33,12 @@ require_once('../../include/studiensemester.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/functions.inc.php');
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('student/stammdaten', null, 's'))
die($rechte->errormsg);
if(isset($_GET['stsem']))
$stsem = $_GET['stsem'];
else
@@ -40,39 +46,54 @@ else
$stsem_obj = new studiensemester();
$stsem = $stsem_obj->getaktorNext();
}
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
$db = new basis_db();
echo '<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../../include/js/tablesort/table.css" type="text/css">
<script src="../../include/js/tablesort/table.js" type="text/javascript"></script>
<meta charset="UTF-8">
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">';
include('../../include/meta/jquery.php');
include('../../include/meta/jquery-tablesorter.php');
echo '
<script language="Javascript">
$(document).ready(function()
{
$("#t1").tablesorter(
{
widgets: ["zebra"]
});
$("#t2").tablesorter(
{
widgets: ["zebra"]
});
});
</script>
</head>
<body>';
echo "<h2>AbsolventInnenstatistik ".$db->convert_html_chars($stsem);
echo '<span style="position:absolute; right:15px;">'.date('d.m.Y').'</span></h2><br>';
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="GET">Studiensemester: <SELECT name="stsem">';
$studsem = new studiensemester();
$studsem->getAll();
echo "<h2>AbsolventInnenstatistik $stsem";
echo '<span style="position:absolute; right:15px;">'.date('d.m.Y').'</span></h2><br>';
echo '</h2>';
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="GET">Studiensemester: <SELECT name="stsem">';
$studsem = new studiensemester();
$studsem->getAll();
foreach ($studsem->studiensemester as $stsemester)
{
if($stsemester->studiensemester_kurzbz==$stsem)
$selected='selected';
else
$selected='';
echo '<option value="'.$stsemester->studiensemester_kurzbz.'" '.$selected.'>'.$stsemester->studiensemester_kurzbz.'</option>';
}
echo '</SELECT>
<input type="submit" value="Anzeigen" /></form><br><br>';
if($stsem!='')
foreach ($studsem->studiensemester as $stsemester)
{
echo "<table class='liste table-stripeclass:alternate table-autostripe'>
if($stsemester->studiensemester_kurzbz == $stsem)
$selected = 'selected';
else
$selected = '';
echo '<option value="'.$stsemester->studiensemester_kurzbz.'" '.$selected.'>';
echo $stsemester->studiensemester_kurzbz;
echo '</option>';
}
echo '</SELECT>
<input type="submit" value="Anzeigen" /></form><br><br>';
if ($stsem != '')
{
echo "<table id='t1'>
<thead>
<tr>
<th></th>
@@ -98,34 +119,59 @@ if($stsem!='')
";
//Bachelor
$qry = "SELECT studiengang_kz, kurzbz, typ, kurzbzlang, bezeichnung, orgform_kurzbz,
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."'
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
) a) AS gesamt_stg,
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND typ='b'
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE status_kurzbz='Absolvent' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND typ='b'
) a) AS gesamt_alle,
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='BB'
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND orgform_kurzbz='BB'
) a) AS bb,
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='VZ'
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND orgform_kurzbz='VZ'
) a) AS vz,
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='w'
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='w'
) a) AS w,
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m'
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='m'
) a) AS m,
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' AND nation_code='A'
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING(person_id)
JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='m' AND nation_code='A'
) a) AS herkunft_at,
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' AND eu AND nation_code<>'A'
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING(person_id)
JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
AND geschlecht='m' AND eu AND nation_code<>'A'
) a) AS herkunft_eu,
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' AND NOT eu
(SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING(person_id)
JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='m' AND NOT eu
) a) AS herkunft_noteu,
true
FROM
@@ -133,25 +179,24 @@ if($stsem!='')
WHERE
studiengang_kz>0 AND studiengang_kz<10000 AND aktiv AND typ='b'
ORDER BY typ, kurzbzlang; ";
$db = new basis_db();
if($db->db_query($qry))
if ($db->db_query($qry))
{
$gesamt=0;
$gesamt_prozent=0;
$gesamt_bb=0;
$gesamt_vz=0;
$gesamt_m=0;
$gesamt_w=0;
$gesamt_at=0;
$gesamt_eu=0;
$gesamt_noteu=0;
while($row = $db->db_fetch_object())
$gesamt = 0;
$gesamt_prozent = 0;
$gesamt_bb = 0;
$gesamt_vz = 0;
$gesamt_m = 0;
$gesamt_w = 0;
$gesamt_at = 0;
$gesamt_eu = 0;
$gesamt_noteu = 0;
while ($row = $db->db_fetch_object())
{
echo '<tr>';
echo '<td>&nbsp;</td>';
echo "<td>".mb_strtoupper($row->typ.$row->kurzbz)." ($row->kurzbzlang)</td>";
$prozent = ($row->gesamt_alle!=0?$row->gesamt_stg/$row->gesamt_alle*100:0);
$prozent = ($row->gesamt_alle != 0?$row->gesamt_stg / $row->gesamt_alle * 100:0);
echo "<td align='center'>$row->gesamt_stg / ".sprintf('%0.2f', $prozent)." %</td>";
echo "<td align='center'>$row->bb / $row->vz</td>";
echo "<td align='center'>$row->m</td>";
@@ -159,9 +204,9 @@ if($stsem!='')
echo "<td align='center'>$row->herkunft_at</td>";
echo "<td align='center'>$row->herkunft_eu</td>";
echo "<td align='center'>$row->herkunft_noteu</td>";
echo "</tr>";
$gesamt+=$row->gesamt_stg;
$gesamt_prozent+=$prozent;
echo "</tr>\n";
$gesamt += $row->gesamt_stg;
$gesamt_prozent += $prozent;
$gesamt_bb += $row->bb;
$gesamt_vz += $row->vz;
$gesamt_m += $row->m;
@@ -180,52 +225,82 @@ if($stsem!='')
echo "<td align='center'><b>$gesamt_at</b></td>";
echo "<td align='center'><b>$gesamt_eu</b></td>";
echo "<td align='center'><b>$gesamt_noteu</b></td>";
echo "</tr>";
echo "</tr>\n";
}
echo '</tbody>
</table>';
//Master
echo '
<tr>
<th>Master</th>
<th>Studiengänge</th>
<th>Absolut / %</th>
<th>BB / VZ</th>
<th>m</th>
<th>w</th>
<th>&Ouml;sterreich</th>
<th>EU</th>
<th>Nicht-EU</th>
</tr>';
echo "<table id='t2'>
<thead>
<tr>
<th></th>
<th></th>
<th>Anteil an Gesamt</th>
<th>Studienart</th>
<th colspan=2>Geschlecht</th>
<th colspan=3>Staatsb&uuml;rgerschaft</th>
</tr>
<tr>
<th>Master</th>
<th>Studiengänge</th>
<th>Absolut / %</th>
<th>BB / VZ</th>
<th>m</th>
<th>w</th>
<th>&Ouml;sterreich</th>
<th>EU</th>
<th>Nicht-EU</th>
</tr>
</thead>
<tbody>
";
$qry = "SELECT studiengang_kz, kurzbz, typ, kurzbzlang, bezeichnung, orgform_kurzbz,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
) AS gesamt_stg,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND typ='m'
) AS gesamt_alle,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='BB'
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE status_kurzbz='Absolvent' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND typ='m'
) AS gesamt_alle,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND orgform_kurzbz='BB'
) AS bb,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='VZ'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND orgform_kurzbz='VZ'
) AS vz,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='w'
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING(person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='w'
) AS w,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m'
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING(person_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='m'
) AS m,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' AND nation_code='A'
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='m' AND nation_code='A'
) AS herkunft_at,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' AND eu AND nation_code<>'A'
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
AND geschlecht='m' AND eu AND nation_code<>'A'
) AS herkunft_eu,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' AND NOT eu
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent'
AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='m' AND NOT eu
) AS herkunft_noteu,
true
FROM
@@ -233,25 +308,25 @@ if($stsem!='')
WHERE
studiengang_kz>0 AND studiengang_kz<10000 AND aktiv AND typ='m'
ORDER BY typ, kurzbzlang; ";
if($db->db_query($qry))
if ($db->db_query($qry))
{
$gesamt=0;
$gesamt_prozent=0;
$gesamt_bb=0;
$gesamt_vz=0;
$gesamt_m=0;
$gesamt_w=0;
$gesamt_at=0;
$gesamt_eu=0;
$gesamt_noteu=0;
while($row = $db->db_fetch_object())
$gesamt = 0;
$gesamt_prozent = 0;
$gesamt_bb = 0;
$gesamt_vz = 0;
$gesamt_m = 0;
$gesamt_w = 0;
$gesamt_at = 0;
$gesamt_eu = 0;
$gesamt_noteu = 0;
while ($row = $db->db_fetch_object())
{
echo '<tr>';
echo '<td>&nbsp;</td>';
echo "<td>".mb_strtoupper($row->typ.$row->kurzbz)." ($row->kurzbzlang)</td>";
$prozent = ($row->gesamt_alle!=0?$row->gesamt_stg/$row->gesamt_alle*100:0);
$prozent = ($row->gesamt_alle != 0?$row->gesamt_stg / $row->gesamt_alle * 100:0);
echo "<td align='center'>$row->gesamt_stg / ".sprintf('%0.2f', $prozent)." %</td>";
echo "<td align='center'>$row->bb / $row->vz</td>";
echo "<td align='center'>$row->m</td>";
@@ -259,9 +334,9 @@ if($stsem!='')
echo "<td align='center'>$row->herkunft_at</td>";
echo "<td align='center'>$row->herkunft_eu</td>";
echo "<td align='center'>$row->herkunft_noteu</td>";
echo "</tr>";
$gesamt+=$row->gesamt_stg;
$gesamt_prozent+=$prozent;
echo "</tr>\n";
$gesamt += $row->gesamt_stg;
$gesamt_prozent += $prozent;
$gesamt_bb += $row->bb;
$gesamt_vz += $row->vz;
$gesamt_m += $row->m;
@@ -270,6 +345,7 @@ if($stsem!='')
$gesamt_eu += $row->herkunft_eu;
$gesamt_noteu += $row->herkunft_noteu;
}
echo '<tr>';
echo '<td><b>SUMME</b></td>';
echo "<td>&nbsp;</td>";
@@ -280,8 +356,7 @@ if($stsem!='')
echo "<td align='center'><b>$gesamt_at</b></td>";
echo "<td align='center'><b>$gesamt_eu</b></td>";
echo "<td align='center'><b>$gesamt_noteu</b></td>";
echo "</tr>";
echo "</tr>\n";
}
echo '</tbody></table>';
}
-143
View File
@@ -1,143 +0,0 @@
<?php
/* Copyright (C) 2004 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/*
* Generiert eine Anwesenheitsliste mit Fotos
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/datum.class.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/akte.class.php');
$stg_obj = new studiengang();
$stg_obj->getAll('typ, kurzbzlang', false);
//Uebergabeparameter abpruefen
if(isset($_GET['stg'])) //Studiengang
{
if(is_numeric($_GET['stg']))
$stg=$_GET['stg'];
else
die('Fehler bei der Parameteruebergabe');
}
else
$stg='';
if(isset($_GET['sem'])) //Semester
{
if(is_numeric($_GET['sem']))
$sem=$_GET['sem'];
else
die('Fehler bei der Parameteruebergabe');
}
else
$sem='';
if(isset($_GET['verband'])) //Verband
$verband=$_GET['verband'];
else
$verband='';
if(isset($_GET['gruppe'])) //Gruppe
$gruppe=$_GET['gruppe'];
else
$gruppe='';
if(isset($_GET['gruppe_kurzbz'])) //Einheit
$gruppe_kurzbz = $_GET['gruppe_kurzbz'];
else
$gruppe_kurzbz='';
if(isset($_GET['lvid']) && is_numeric($_GET['lvid']))
$lvid = $_GET['lvid'];
else
die('Fehler bei der Parameteruebergabe');
if(isset($_GET['stsem']))
$stsem = $_GET['stsem'];
else
die('Studiensemester wurde nicht uebergeben');
$lehreinheit_id = (isset($_GET['lehreinheit_id'])?$_GET['lehreinheit_id']:'');
if(isset($_GET['prestudent_id']))
{
$ids = explode(';',$_GET['prestudent_id']);
$idstring='';
foreach ($ids as $id)
{
if($idstring!='')
$idstring.=',';
$idstring.="'$id'";
}
$qry = "SELECT distinct on(person_id) foto, vorname, nachname, person_id, prestudent_id, tbl_prestudent.studiengang_kz, semester, verband, gruppe FROM public.tbl_person JOIN public.tbl_prestudent USING(person_id) LEFT JOIN public.tbl_student USING(prestudent_id) WHERE prestudent_id in($idstring)";
}
else
{
$qry = "SELECT
distinct on(person_id) foto, vorname, nachname, person_id, tbl_studentlehrverband.studiengang_kz, tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe
FROM
campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid)
JOIN public.tbl_person USING(person_id) JOIN public.tbl_student ON(uid=student_uid)
LEFT JOIN public.tbl_studentlehrverband USING(student_uid)
WHERE
lehrveranstaltung_id='".addslashes($lvid)."' AND
vw_student_lehrveranstaltung.studiensemester_kurzbz='".addslashes($stsem)."' AND
tbl_studentlehrverband.studiensemester_kurzbz='".addslashes($stsem)."'";
if($lehreinheit_id!='')
$qry.=" AND lehreinheit_id='".addslashes($lehreinheit_id)."'";
}
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Anwesenheitsliste</title>
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../../include/js/tablesort/table.css" type="text/css">
<script src="../../include/js/tablesort/table.js" type="text/javascript"></script>
</head><body><h2>Studentenliste - '.date('d.m.Y').'</h2><br>';
$db = new basis_db();
if($result = $db->db_query($qry))
{
echo "<table class='liste table-autosort:1 table-stripeclass:alternate table-autostripe'>";
echo '<thead><tr class="liste"><th>Foto</th><th class="table-sortable:default">Nachname</th><th class="table-sortable:default">Vorname</th><th class="table-sortable:default">Gruppe</th></tr></thead><tbody>';
while($row = $db->db_fetch_object($result))
{
echo '<tr>';
if($row->foto!='')
{
$akte = new akte();
$akte->getAkten($row->person_id, 'Lichtbil');
echo "<td><a href='../akte.php?id=".$akte->result[0]->akte_id."'><img src='../bild.php?src=person&person_id=$row->person_id'></a></td>";
}
else
echo "<td></td>";
echo "<td>$row->nachname</td>";
echo "<td class='table-sortable:default'>$row->vorname</td>";
echo "<td class='table-sortable:default'>".$stg_obj->kuerzel_arr[$row->studiengang_kz]."-$row->semester$row->verband$row->gruppe</td>";
echo '</tr>';
}
echo '</tbody></table>';
}
echo '</body></html>';
?>
@@ -112,6 +112,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/dokument/rdf#pflicht" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="interessent-dokumente-tree-nichtabgegeben-nachgereicht_am" label="Nachreichung Am" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/dokument/rdf#nachgereicht_am" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
@@ -131,6 +135,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#anmerkung_intern" />
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#onlinebewerbung" />
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#pflicht" />
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#nachgereicht_am" />
</treerow>
</treeitem>
</treechildren>
@@ -210,6 +215,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/dokument/rdf#anmerkung_intern" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="interessent-dokumente-tree-abgegeben-nachgereicht_am" label="Nachreichung am" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/dokument/rdf#nachgereicht_am" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
@@ -229,6 +238,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<treecell label="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#akte_id" />
<treecell label="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#titel_intern" />
<treecell label="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#anmerkung_intern" />
<treecell label="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#nachgereicht_am" />
</treerow>
</treeitem>
</treechildren>
+20 -11
View File
@@ -48,6 +48,7 @@ class akte extends basis_db
public $anmerkung;
public $titel_intern;
public $anmerkung_intern;
public $nachgereicht_am;
/**
* Konstruktor
@@ -100,6 +101,7 @@ class akte extends basis_db
$this->nachgereicht = $this->db_parse_bool($row->nachgereicht);
$this->titel_intern = $row->titel_intern;
$this->anmerkung_intern = $row->anmerkung_intern;
$this->nachgereicht_am = $row->nachgereicht_am;
return true;
}
else
@@ -182,7 +184,8 @@ class akte extends basis_db
{
//Neuen Datensatz anlegen
$qry = "BEGIN;INSERT INTO public.tbl_akte (person_id, dokument_kurzbz, inhalt, mimetype, erstelltam, gedruckt, titel,
bezeichnung, updateamum, updatevon, insertamum, insertvon, uid, dms_id, nachgereicht, anmerkung, titel_intern, anmerkung_intern ) VALUES (".
bezeichnung, updateamum, updatevon, insertamum, insertvon, uid, dms_id, nachgereicht, anmerkung,
titel_intern, anmerkung_intern, nachgereicht_am) VALUES (".
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
$this->db_add_param($this->dokument_kurzbz).', '.
$this->db_add_param($this->inhalt).', '.
@@ -200,7 +203,8 @@ class akte extends basis_db
$this->db_add_param($this->nachgereicht, FHC_BOOLEAN).','.
$this->db_add_param($this->anmerkung).','.
$this->db_add_param($this->titel_intern).','.
$this->db_add_param($this->anmerkung_intern).');';
$this->db_add_param($this->anmerkung_intern).','.
$this->db_add_param($this->nachgereicht_am).');';
}
else
{
@@ -221,7 +225,8 @@ class akte extends basis_db
" nachgereicht=".$this->db_add_param($this->nachgereicht, FHC_BOOLEAN).",".
" anmerkung=".$this->db_add_param($this->anmerkung).",".
" titel_intern=".$this->db_add_param($this->titel_intern).",".
" anmerkung_intern=".$this->db_add_param($this->anmerkung_intern).
" anmerkung_intern=".$this->db_add_param($this->anmerkung_intern).",".
" nachgereicht_am=".$this->db_add_param($this->nachgereicht_am).
" WHERE akte_id=".$this->db_add_param($this->akte_id, FHC_INTEGER);
}
@@ -277,7 +282,8 @@ class akte extends basis_db
$qry = "SELECT
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt, titel_intern, anmerkung_intern,
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid, dms_id, anmerkung, nachgereicht,
CASE WHEN inhalt is not null THEN true ELSE false END as inhalt_vorhanden
CASE WHEN inhalt is not null THEN true ELSE false END as inhalt_vorhanden,
nachgereicht_am
FROM public.tbl_akte WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
if($dokument_kurzbz!=null)
$qry.=" AND dokument_kurzbz=".$this->db_add_param($dokument_kurzbz);
@@ -317,6 +323,7 @@ class akte extends basis_db
$akten->anmerkung = $row->anmerkung;
$akten->titel_intern = $row->titel_intern;
$akten->anmerkung_intern = $row->anmerkung_intern;
$akten->nachgereicht_am = $row->nachgereicht_am;
$this->result[] = $akten;
}
@@ -341,7 +348,7 @@ class akte extends basis_db
$qry = "SELECT
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt,
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid,
dms_id,nachgereicht,anmerkung,titel_intern,anmerkung_intern
dms_id,nachgereicht,anmerkung,titel_intern,anmerkung_intern, nachgereicht_am
FROM public.tbl_akte WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
$qry.=" AND dokument_kurzbz IN ('Lebenslf','Motivat','LearnAgr')";
@@ -372,6 +379,7 @@ class akte extends basis_db
$akten->anmerkung = $row->anmerkung;
$akten->titel_intern = $row->titel_intern;
$akten->anmerkung_intern = $row->anmerkung_intern;
$akten->nachgereicht_am = $row->nachgereicht_am;
$this->result[] = $akten;
}
@@ -383,7 +391,7 @@ class akte extends basis_db
return false;
}
}
/**
* Liefert die Akten anhand der dms_id
*
@@ -395,16 +403,16 @@ class akte extends basis_db
$qry = "SELECT
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt,
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid,
dms_id,nachgereicht,anmerkung,titel_intern,anmerkung_intern
FROM public.tbl_akte WHERE dms_id=".$this->db_add_param($dms_id, FHC_INTEGER)."
dms_id,nachgereicht,anmerkung,titel_intern,anmerkung_intern, nachgereicht_am
FROM public.tbl_akte WHERE dms_id=".$this->db_add_param($dms_id, FHC_INTEGER)."
ORDER BY erstelltam";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$akten = new akte();
$akten->akte_id = $row->akte_id;
$akten->person_id = $row->person_id;
$akten->dokument_kurzbz = $row->dokument_kurzbz;
@@ -424,7 +432,8 @@ class akte extends basis_db
$akten->anmerkung = $row->anmerkung;
$akten->titel_intern = $row->titel_intern;
$akten->anmerkung_intern = $row->anmerkung_intern;
$akten->nachgereicht_am = $row->nachgereicht_am;
$this->result[] = $akten;
}
return true;
+186 -164
View File
@@ -50,10 +50,10 @@ class benutzerberechtigung extends basis_db
public $insertvon;
public $kostenstelle_id;
public $anmerkung; // varchar(256)
public $starttimestamp;
public $endetimestamp;
//Attribute des Mitarbeiters
public $fix;
public $lektor;
@@ -65,7 +65,7 @@ class benutzerberechtigung extends basis_db
public function __construct($benutzerberechtigung_id=null)
{
parent::__construct();
if($benutzerberechtigung_id!=null)
$this->load($benutzerberechtigung_id);
}
@@ -81,9 +81,9 @@ class benutzerberechtigung extends basis_db
$this->errormsg = 'benutzerberechtigung_id ist ungueltig';
return false;
}
$qry = "SELECT * FROM system.tbl_benutzerrolle WHERE benutzerberechtigung_id=".$this->db_add_param($benutzerberechtigung_id, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
@@ -105,16 +105,16 @@ class benutzerberechtigung extends basis_db
$this->insertvon = $row->insertvon;
$this->kostenstelle_id = $row->kostenstelle_id;
$this->anmerkung = $row->anmerkung;
return true;
}
else
else
{
$this->errormsg = 'Es wurde kein Eintrag mit dieser ID gefunden';
return false;
}
}
else
else
{
$this->errormsg = 'Fehler beim Laden der Berechtigung';
return false;
@@ -144,64 +144,64 @@ class benutzerberechtigung extends basis_db
$this->errormsg = 'UID darf nicht laenger als 32 Zeichen sein';
return false;
}
if($this->rolle_kurzbz=='' && $this->berechtigung_kurzbz=='')
{
$this->errormsg = 'Es muss entweder eine Rolle oder eine Berechtigung angegeben werden';
return false;
}
if($this->rolle_kurzbz!='' && $this->berechtigung_kurzbz!='')
{
$this->errormsg = 'Rolle und Berechtigung kann nicht gleichzeitig angegeben werden';
return false;
}
if($this->uid=='' && $this->funktion_kurzbz=='')
{
$this->errormsg = 'Ess muss entweder eine UID oder eine Funktion_kurzbz angegeben werden';
return false;
}
if($this->uid!='' && $this->funktion_kurzbz!='')
{
$this->errormsg = 'UID und Funktion_kurzbz kann nicht gleichzeitig angegeben werden';
return false;
}
if($this->funktion_kurzbz!='' && $this->oe_kurzbz!='')
{
$this->errormsg = 'Wenn eine Funktion_kurzbz angegeben wird, darf keine Organisationseinheit eingetragen sein';
return false;
}
if($this->art=='')
{
$this->errormsg = 'Art darf nicht leer sein';
return false;
}
if($this->kostenstelle_id!='' && !is_numeric($this->kostenstelle_id))
{
$this->errormsg = 'Kostenstelle_id muss eine gueltige Zahl sein';
return false;
}
if($this->kostenstelle_id!='' && $this->oe_kurzbz!='')
{
$this->errormsg = 'Wenn eine Kostenstelle angegeben wird, darf keine Organisationseinheit eingetragen sein';
return false;
}
if(mb_strlen($this->anmerkung)>256)
{
$this->errormsg = 'Anmerkung darf nicht laenger als 256 Zeichen sein';
return false;
}
return true;
}
/**
* Speichert Benutzerberechtigung in die Datenbank
* Wenn $new auf true gesetzt ist wird ein neuer Datensatz
@@ -216,8 +216,8 @@ class benutzerberechtigung extends basis_db
if($this->new)
{
$qry = 'INSERT INTO system.tbl_benutzerrolle (rolle_kurzbz, berechtigung_kurzbz, uid, funktion_kurzbz,
oe_kurzbz, art, studiensemester_kurzbz, start, ende, negativ, updateamum, updatevon,
$qry = 'INSERT INTO system.tbl_benutzerrolle (rolle_kurzbz, berechtigung_kurzbz, uid, funktion_kurzbz,
oe_kurzbz, art, studiensemester_kurzbz, start, ende, negativ, updateamum, updatevon,
insertamum, insertvon, kostenstelle_id, anmerkung)
VALUES('.$this->db_add_param($this->rolle_kurzbz).','.
$this->db_add_param($this->berechtigung_kurzbz).','.
@@ -279,7 +279,7 @@ class benutzerberechtigung extends basis_db
$this->errormsg = 'benutzerberechtigung_id ist ungültig';
return false;
}
// Berechtigungen loeschen
$sql_query="DELETE FROM system.tbl_benutzerrolle where benutzerberechtigung_id=".$this->db_add_param($benutzerberechtigung_id, FHC_INTEGER);
@@ -299,12 +299,12 @@ class benutzerberechtigung extends basis_db
public function loadBenutzerRollen($uid=null, $funktion_kurzbz=null)
{
$qry = 'SELECT * FROM system.tbl_benutzerrolle WHERE ';
if(!is_null($uid))
$qry.= " uid=".$this->db_add_param($uid);
elseif(!is_null($funktion_kurzbz))
$qry.= " funktion_kurzbz=".$this->db_add_param($funktion_kurzbz);
else
else
{
$this->errormsg = 'Entweder UID oder funktion_kurzbz muss uebergeben werden';
return false;
@@ -315,7 +315,7 @@ class benutzerberechtigung extends basis_db
while($row = $this->db_fetch_object())
{
$obj = new benutzerberechtigung();
$obj->benutzerberechtigung_id = $row->benutzerberechtigung_id;
$obj->rolle_kurzbz = $row->rolle_kurzbz;
$obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
@@ -333,13 +333,13 @@ class benutzerberechtigung extends basis_db
$obj->insertvon = $row->insertvon;
$obj->kostenstelle_id = $row->kostenstelle_id;
$obj->anmerkung = $row->anmerkung;
$this->berechtigungen[] = $obj;
}
}
return true;
}
/**
* Laedt die Berechtigungen eines Users
* @param $uid
@@ -348,6 +348,27 @@ class benutzerberechtigung extends basis_db
*/
public function getBerechtigungen($uid,$all=false)
{
// Pruefen ob die Person aktiv ist
$qry = "SELECT aktiv FROM public.tbl_benutzer WHERE uid=".$this->db_add_param($uid);
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
// Wenn die Person nicht aktiv ist dann hat diese auch keine Rechte
if($this->db_parse_bool($row->aktiv) == false)
return false;
}
else
{
// Wenn die Person nicht gefunden wurde dann hat diese auch keine Rechte
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
// Berechtigungen holen
/*
Direkte Berechtigungszuordnung
@@ -357,77 +378,77 @@ class benutzerberechtigung extends basis_db
Berechtigung ueber Funktion
UNION
Berechtigung ueber Funktion Mitarbeiter
UNION
UNION
Berechtigung ueber Funktion Student
*/
$qry = "SELECT
$qry = "SELECT
benutzerberechtigung_id, tbl_benutzerrolle.uid, tbl_benutzerrolle.funktion_kurzbz,
tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1,
tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
FROM
system.tbl_benutzerrolle JOIN system.tbl_berechtigung USING(berechtigung_kurzbz)
FROM
system.tbl_benutzerrolle JOIN system.tbl_berechtigung USING(berechtigung_kurzbz)
WHERE uid=".$this->db_add_param($uid)."
UNION
SELECT
SELECT
benutzerberechtigung_id, tbl_benutzerrolle.uid, tbl_benutzerrolle.funktion_kurzbz,
tbl_benutzerrolle.rolle_kurzbz, tbl_berechtigung.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_rolleberechtigung.art art1,
tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
FROM
system.tbl_benutzerrolle JOIN system.tbl_rolle USING(rolle_kurzbz)
JOIN system.tbl_rolleberechtigung USING(rolle_kurzbz)
FROM
system.tbl_benutzerrolle JOIN system.tbl_rolle USING(rolle_kurzbz)
JOIN system.tbl_rolleberechtigung USING(rolle_kurzbz)
JOIN system.tbl_berechtigung ON(tbl_rolleberechtigung.berechtigung_kurzbz=tbl_berechtigung.berechtigung_kurzbz)
WHERE uid=".$this->db_add_param($uid)."
UNION
SELECT
SELECT
benutzerberechtigung_id, tbl_benutzerfunktion.uid, tbl_benutzerrolle.funktion_kurzbz,
tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1,
tbl_benutzerfunktion.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
FROM
FROM
system.tbl_benutzerrolle JOIN public.tbl_benutzerfunktion USING(funktion_kurzbz)
WHERE tbl_benutzerfunktion.uid=".$this->db_add_param($uid)."
AND (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now())
AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now())
UNION
SELECT
SELECT
benutzerberechtigung_id, '', tbl_benutzerrolle.funktion_kurzbz,
tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1,
tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
FROM
FROM
system.tbl_benutzerrolle
WHERE
tbl_benutzerrolle.funktion_kurzbz='Mitarbeiter' AND
WHERE
tbl_benutzerrolle.funktion_kurzbz='Mitarbeiter' AND
EXISTS (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid=".$this->db_add_param($uid).")
UNION
SELECT
SELECT
benutzerberechtigung_id, '', tbl_benutzerrolle.funktion_kurzbz,
tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1,
tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
FROM
FROM
system.tbl_benutzerrolle
WHERE
tbl_benutzerrolle.funktion_kurzbz='Student' AND
WHERE
tbl_benutzerrolle.funktion_kurzbz='Student' AND
EXISTS (SELECT student_uid FROM public.tbl_student WHERE student_uid=".$this->db_add_param($uid).")
ORDER BY negativ DESC";
if(!$result = $this->db_query($qry))
{
$this->errormsg='Fehler beim Laden der Berechtigungen';
@@ -461,10 +482,10 @@ class benutzerberechtigung extends basis_db
$b->insertvon = $row->insertvon;
$b->kostenstelle_id = $row->kostenstelle_id;
$b->anmerkung = $row->anmerkung;
$this->berechtigungen[]=$b;
}
unset($result);
// Attribute des Mitarbeiters holen
$sql_query="SELECT fixangestellt, lektor FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid=".$this->db_add_param($uid);
@@ -493,8 +514,8 @@ class benutzerberechtigung extends basis_db
* Funktion getBerechtigungen aufgerufen werden.
*
* @param $berechtigung
* @param $oe_kurzbz
* derzeit kann hier noch die Studiengangskennzahl uebergeben werden,
* @param $oe_kurzbz
* derzeit kann hier noch die Studiengangskennzahl uebergeben werden,
* dies wird in Zukunft aber nicht mehr moeglich sein
* @param $art suid (select|update|insert|delete)
* @param $kostenstelle_id ID der Kostenstelle
@@ -503,7 +524,7 @@ class benutzerberechtigung extends basis_db
public function isBerechtigt($berechtigung_kurzbz, $oe_kurzbz=null, $art=null, $kostenstelle_id=null)
{
$timestamp=time();
//Studiengang
if(is_numeric($oe_kurzbz))
{
@@ -511,59 +532,59 @@ class benutzerberechtigung extends basis_db
$stg = new studiengang($oe_kurzbz);
$oe_kurzbz = $stg->oe_kurzbz;
}
if($kostenstelle_id!='' && !is_numeric($kostenstelle_id))
{
$this->errormsg = 'Kostenstelle_id "'.$kostenstelle_id.'" is invalid';
return false;
}
$oe = new organisationseinheit();
foreach ($this->berechtigungen as $b)
{
//Pruefen ob eine negativ-Berechtigung vorhanden ist
if($b->berechtigung_kurzbz==$berechtigung_kurzbz
&& $b->negativ
if($b->berechtigung_kurzbz==$berechtigung_kurzbz
&& $b->negativ
&& (is_null($oe_kurzbz) || ($b->kostenstelle_id=='' && ($b->oe_kurzbz=='' || $oe_kurzbz==$b->oe_kurzbz || $oe->isChild($b->oe_kurzbz, $oe_kurzbz))))
&& (is_null($kostenstelle_id) || $kostenstelle_id==$b->kostenstelle_id))
{
if (($timestamp>$b->starttimestamp || $b->starttimestamp==null)
if (($timestamp>$b->starttimestamp || $b->starttimestamp==null)
&& ($timestamp<$b->endetimestamp || $b->endetimestamp==null))
{
$this->errormsg='Access denied! You need permission '.strtoupper($berechtigung_kurzbz).' '.($oe_kurzbz!=null?'in '.strtoupper($oe_kurzbz):'').' '.($art!=null?'with '.strtoupper($art):'');
return false;
}
}
if($b->berechtigung_kurzbz==$berechtigung_kurzbz
&& (is_null($art) || mb_strstr($b->art, $art))
&& (is_null($oe_kurzbz) || ($b->kostenstelle_id=='' && ($b->oe_kurzbz=='' || $oe_kurzbz==$b->oe_kurzbz || $oe->isChild($b->oe_kurzbz, $oe_kurzbz))))
&& (is_null($kostenstelle_id) || $kostenstelle_id==$b->kostenstelle_id))
{
if (($timestamp>$b->starttimestamp || $b->starttimestamp==null)
if (($timestamp>$b->starttimestamp || $b->starttimestamp==null)
&& ($timestamp<$b->endetimestamp || $b->endetimestamp==null))
{
return true;
}
}
}
}
//Kostenstellenrecht ueber Organisationseinheit
if($kostenstelle_id!='')
{
//Kostenstelle laden und schauen, ob auf die Organisationseinheit der Kostenstelle
//Kostenstelle laden und schauen, ob auf die Organisationseinheit der Kostenstelle
//die Berechtigung vorhanden ist
$kostenstelle = new wawi_kostenstelle();
if($kostenstelle->load($kostenstelle_id))
{
return $this->isBerechtigt($berechtigung_kurzbz, $kostenstelle->oe_kurzbz, $art);
}
}
else
{
$this->errormsg='Cost center (ID '.$kostenstelle_id.') does not exist';
return false;
}
}
}
//wenn ein Doppelpunkt vorkommt, pruefen ob das Uebergeordnete vorhanden ist
@@ -572,34 +593,34 @@ class benutzerberechtigung extends basis_db
$this->errormsg='Access denied! You need permission '.strtoupper($berechtigung_kurzbz).' '.($oe_kurzbz!=null?'in '.strtoupper($oe_kurzbz):'').' '.($art!=null?'with '.strtoupper($art):'');
return false;
}
else
else
{
return $this->isBerechtigt(substr($berechtigung_kurzbz,0,$pos-1), $oe_kurzbz, $art, $kostenstelle_id);
}
}
/**
* Prueft ob die Berechtigung zumindest fuer eine der angegebenen OE vorhanden ist.
* @param $berechtigung_kurzbz
* @param $oe_kurzbz
* @param $art
* @param $kostenstelle_id
* @return boolean
*/
public function isBerechtigtMultipleOe($berechtigung_kurzbz, $oe_kurzbz, $art=null, $kostenstelle_id=null)
{
$results = array();
foreach($oe_kurzbz as $value)
{
$results[] = $this->isBerechtigt($berechtigung_kurzbz, $value, $art, $kostenstelle_id);
}
if(!in_array(true, $results))
return false;
else
return true;
}
/**
* Prueft ob die Berechtigung zumindest fuer eine der angegebenen OE vorhanden ist.
* @param $berechtigung_kurzbz
* @param $oe_kurzbz
* @param $art
* @param $kostenstelle_id
* @return boolean
*/
public function isBerechtigtMultipleOe($berechtigung_kurzbz, $oe_kurzbz, $art=null, $kostenstelle_id=null)
{
$results = array();
foreach($oe_kurzbz as $value)
{
$results[] = $this->isBerechtigt($berechtigung_kurzbz, $value, $art, $kostenstelle_id);
}
if(!in_array(true, $results))
return false;
else
return true;
}
/**
* Prueft ob die Person Fixangestellt ist
@@ -626,7 +647,7 @@ class benutzerberechtigung extends basis_db
$not='';
$all=false;
$oe = new organisationseinheit();
foreach ($this->berechtigungen as $b)
{
if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)
@@ -641,18 +662,18 @@ class benutzerberechtigung extends basis_db
foreach($childoes as $row)
$not .="'".$this->db_escape($row)."',";
}
else
else
return array();
}
else
else
{
if(!is_null($b->oe_kurzbz))
{
$childoes = $oe->getChilds($b->oe_kurzbz);
foreach($childoes as $row)
$in .= "'".$this->db_escape($row)."',";
$in .= "'".$this->db_escape($row)."',";
}
else
else
{
//Wenn NULL dann berechtigung auf alles
$all = true;
@@ -661,7 +682,7 @@ class benutzerberechtigung extends basis_db
}
}
}
if(!$all)
{
if($in=='')
@@ -669,24 +690,24 @@ class benutzerberechtigung extends basis_db
else
$in = ' AND oe_kurzbz IN('.mb_substr($in,0, mb_strlen($in)-1).')';
}
else
else
{
$in='';
$not='';
}
if($not!='')
$not = ' AND oe_kurzbz NOT IN('.mb_substr($not,0, mb_strlen($not)-1).')';
$qry = "SELECT studiengang_kz FROM public.tbl_studiengang WHERE 1=1 $in $not";
if($this->db_query($qry))
while($row = $this->db_fetch_object())
$studiengang_kz[]=$row->studiengang_kz;
$studiengang_kz[]=$row->studiengang_kz;
$studiengang_kz=array_unique($studiengang_kz);
sort($studiengang_kz);
return $studiengang_kz;
}
@@ -704,7 +725,7 @@ class benutzerberechtigung extends basis_db
$not='';
$all=false;
$oe = new organisationseinheit();
foreach ($this->berechtigungen as $b)
{
if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)
@@ -719,18 +740,18 @@ class benutzerberechtigung extends basis_db
foreach($childoes as $row)
$not .="'".$this->db_escape($row)."',";
}
else
else
return array();
}
else
else
{
if(!is_null($b->oe_kurzbz))
{
$childoes = $oe->getChilds($b->oe_kurzbz);
foreach($childoes as $row)
$in .= "'".$this->db_escape($row)."',";
$in .= "'".$this->db_escape($row)."',";
}
else
else
{
//Wenn NULL dann berechtigung auf alles
$all = true;
@@ -739,7 +760,7 @@ class benutzerberechtigung extends basis_db
}
}
}
if(!$all)
{
if($in=='')
@@ -747,25 +768,25 @@ class benutzerberechtigung extends basis_db
else
$in = ' AND oe_kurzbz IN('.mb_substr($in,0, mb_strlen($in)-1).')';
}
else
else
{
$in='';
}
if($not!='')
$not = ' AND oe_kurzbz NOT IN('.mb_substr($not,0, mb_strlen($not)-1).')';
$qry = "SELECT fachbereich_kurzbz FROM public.tbl_fachbereich WHERE 1=1 $in $not";
if($this->db_query($qry))
while($row = $this->db_fetch_object())
$fachbereich_kurzbz[]=$row->fachbereich_kurzbz;
$fachbereich_kurzbz[]=$row->fachbereich_kurzbz;
$fachbereich_kurzbz=array_unique($fachbereich_kurzbz);
sort($fachbereich_kurzbz);
return $fachbereich_kurzbz;
}
/**
* Gibt Array mit den Organisationseinheiten zurueck fuer welche die
* Person eine Berechtigung besitzt.
@@ -792,16 +813,16 @@ class benutzerberechtigung extends basis_db
foreach($childoes as $row)
$not[] = $row;
}
else
else
return array();
}
else
else
{
if($b->kostenstelle_id != '')
{
$kst = new wawi_kostenstelle();
$kst = new wawi_kostenstelle();
$kst->load($b->kostenstelle_id);
$oe_kurzbz[] = $kst->oe_kurzbz;
$oe_kurzbz[] = $kst->oe_kurzbz;
}
else
{
@@ -811,7 +832,7 @@ class benutzerberechtigung extends basis_db
foreach($childoes as $row)
$oe_kurzbz[] = $row;
}
else
else
{
$all=true;
break;
@@ -820,7 +841,7 @@ class benutzerberechtigung extends basis_db
}
}
}
if($all)
{
$oe->loadParentsArray();
@@ -831,7 +852,7 @@ class benutzerberechtigung extends basis_db
sort($oe_kurzbz);
return $oe_kurzbz;
}
/**
* Gibt Array mit den Kostenstellen zurueck fuer welche die
* Person eine Berechtigung besitzt.
@@ -852,7 +873,7 @@ class benutzerberechtigung extends basis_db
{
if(!mb_strstr($b->berechtigung_kurzbz,'wawi/'))
continue;
if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)
&& (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null)))
{
@@ -869,10 +890,10 @@ class benutzerberechtigung extends basis_db
{
$not_id[] = $b->kostenstelle_id;
}
else
else
return array();
}
else
else
{
if($b->oe_kurzbz!='')
{
@@ -891,9 +912,9 @@ class benutzerberechtigung extends basis_db
}
}
}
}
$qry = "SELECT distinct kostenstelle_id FROM wawi.tbl_kostenstelle";
if(!$all)
@@ -901,7 +922,7 @@ class benutzerberechtigung extends basis_db
if(count($kst_id)==0 && count($oe_kurzbz)==0)
return array();
$qry.="
WHERE
WHERE
(";
if(count($kst_id)>0)
$qry.=" kostenstelle_id IN(".$this->db_implode4SQL($kst_id).")";
@@ -933,7 +954,7 @@ class benutzerberechtigung extends basis_db
* Organisationseinheit sind.
* Es werden nur die Benutzer zurückgeliefert die genau auf diese Organisationseinheit das Freigaberecht haben
* Uebergeordnete Benutzer werden nicht geliefert
*
*
* @param $kostenstelle_id
* @param $oe_kurzbz
*/
@@ -944,52 +965,52 @@ class benutzerberechtigung extends basis_db
$this->errormsg = 'Kostenstelle und Organisationseinheit darf nicht gleichzeitig leer sein';
return false;
}
if($kostenstelle_id!='' && $oe_kurzbz!='')
{
$this->errormsg = 'Kostenstelle und Organisationseinheit darf nicht gleichzeitig gesetzt sein';
return false;
}
$where = '';
if($kostenstelle_id!='')
$where.=" kostenstelle_id=".$this->db_add_param($kostenstelle_id, FHC_INTEGER);
elseif($oe_kurzbz!='')
$where.=" oe_kurzbz=".$this->db_add_param($oe_kurzbz);
$where .=" AND berechtigung_kurzbz='wawi/freigabe'";
$where .=" AND (start<=now() OR start is null) AND (ende>=now() OR ende is null)";
$where .=" AND (start<=now() OR start is null) AND (ende>=now() OR ende is null)";
$qry = "SELECT uid, negativ FROM system.tbl_benutzerrolle WHERE ".$where;
$qry .= " UNION
SELECT uid, negativ
FROM
$qry = "SELECT uid, negativ FROM system.tbl_benutzerrolle WHERE ".$where;
$qry .= " UNION
SELECT uid, negativ
FROM
system.tbl_benutzerrolle
JOIN system.tbl_rolle USING(rolle_kurzbz)
JOIN system.tbl_rolleberechtigung USING(berechtigung_kurzbz)
WHERE ".$where;
$freigabebenutzer=array();
$not = array();
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
if($this->db_parse_bool($row->negativ)==true)
$not[]=$row->uid;
$not[]=$row->uid;
$freigabebenutzer[]=$row->uid;
}
return array_diff($freigabebenutzer,$not);
}
else
{
$this->errormsg = 'Fehler beim Laden der FreigabeBenutzer';
return false;
}
}
}
/**
* Liefert alle User mit deren Rechte fuer eine Kostenstelle
* @param $kostenstelle_id ID der Kostenstelle
@@ -997,42 +1018,43 @@ class benutzerberechtigung extends basis_db
*/
public function getKostenstelleUser($kostenstelle_id)
{
$qry = "SELECT
distinct uid, a.art,
CASE WHEN a.berechtigung_kurzbz is null
THEN tbl_rolleberechtigung.berechtigung_kurzbz
$qry = "SELECT
distinct uid, a.art,
CASE WHEN a.berechtigung_kurzbz is null
THEN tbl_rolleberechtigung.berechtigung_kurzbz
ELSE a.berechtigung_kurzbz END as berechtigung_kurzbz
FROM
(
SELECT * FROM system.tbl_benutzerrolle WHERE kostenstelle_id=".$this->db_add_param($kostenstelle_id, FHC_INTEGER)."
UNION
UNION
SELECT * FROM system.tbl_benutzerrolle WHERE
oe_kurzbz = (SELECT oe_kurzbz FROM wawi.tbl_kostenstelle WHERE kostenstelle_id=".$this->db_add_param($kostenstelle_id, FHC_INTEGER).")
oe_kurzbz = (SELECT oe_kurzbz FROM wawi.tbl_kostenstelle WHERE kostenstelle_id=".$this->db_add_param($kostenstelle_id, FHC_INTEGER).")
OR oe_kurzbz IN(
WITH RECURSIVE oes(oe_parent_kurzbz) as
WITH RECURSIVE oes(oe_parent_kurzbz) as
(
SELECT oe_parent_kurzbz FROM public.tbl_organisationseinheit
SELECT oe_parent_kurzbz FROM public.tbl_organisationseinheit
WHERE oe_kurzbz=(SELECT oe_kurzbz FROM wawi.tbl_kostenstelle WHERE kostenstelle_id=".$this->db_add_param($kostenstelle_id, FHC_INTEGER).")
UNION ALL
SELECT o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
SELECT o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
WHERE o.oe_kurzbz=oes.oe_parent_kurzbz
)
SELECT oe_parent_kurzbz
FROM oes)
) as a
LEFT JOIN system.tbl_rolleberechtigung USING(rolle_kurzbz)
WHERE (start is null OR start<=now()) AND (ende is null OR ende>=now()) AND negativ=false";
JOIN public.tbl_benutzer USING(uid)
WHERE tbl_benutzer.aktiv AND (start is null OR start<=now()) AND (ende is null OR ende>=now()) AND negativ=false";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new benutzerberechtigung();
$obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
$obj->uid = $row->uid;
$obj->art = $row->art;
$this->berechtigungen[] = $obj;
}
}
+16 -4
View File
@@ -17,8 +17,22 @@
*
* Authors: Andreas Moik <moik@technikum-wien.at>
*/
//require_once(dirname(__FILE__).'/config/vilesci.config.inc.php'); Muss vor dieser Datei eingebunden werden!
/*
Meta Include für JQuery Tablesorter
require_once(dirname(__FILE__).'/config/vilesci.config.inc.php'); Muss vor dieser Datei eingebunden werden!
Usage:
<script language="Javascript">
$(document).ready(function()
{
$("#t1").tablesorter(
{
sortList: [[0,0]],
widgets: ["zebra"],
headers: {1:{sorter: false}}
});
});
</script>
*/
$dr = DOC_ROOT;
$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr);
if($dr=='')
@@ -26,10 +40,8 @@ if($dr=='')
//Originaldateien des Herstellers
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'vendor/FHC-vendor/jquery-tablesorter/css/theme.default.css">';
echo '<script src="'.$dr.'vendor/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.js"></script>';
//Anpassungen
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'include/vendor_custom/jquery-tablesorter/tablesort.css">';
+34 -31
View File
@@ -2,22 +2,22 @@
/*
* Copyright 2014 fhcomplete.org
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
*
* Authors: Stefan Puraner <puraner@technikum-wien.at>
*/
@@ -27,7 +27,7 @@ require_once(dirname(__FILE__) . '/basis_db.class.php');
class pruefungsanmeldung extends basis_db {
public $new;
public $result = array();
public $pruefungsanmeldung_id; //bigint
public $uid; //varchar(32)
public $pruefungstermin_id; //bigint
@@ -40,12 +40,13 @@ class pruefungsanmeldung extends basis_db {
public $statusupdateamum; //timestamp
public $anrechnung_id; //integer
public $pruefungstyp_kurzbz; //varchar(32)
public $insertamum; // timestamp
/**
* Konstruktor
* @param pruefung_id ID der zu ladenden Prüfung
*/
public function __construct($pruefungsanmeldung_id = null)
public function __construct($pruefungsanmeldung_id = null)
{
parent::__construct();
@@ -80,7 +81,7 @@ class pruefungsanmeldung extends basis_db {
{
return $this->$name;
}
/**
* speichert eine Prüfungsanmeldung
* @param type $new
@@ -90,7 +91,7 @@ class pruefungsanmeldung extends basis_db {
{
if ($new == null)
$new = $this->new;
if($new)
{
$qry = 'INSERT INTO campus.tbl_pruefungsanmeldung (uid, pruefungstermin_id, lehrveranstaltung_id, status_kurzbz, wuensche, reihung, kommentar, anrechnung_id, pruefungstyp_kurzbz) VALUES ('
@@ -118,7 +119,7 @@ class pruefungsanmeldung extends basis_db {
. 'pruefungstyp_kurzbz='.$this->db_add_param($this->pruefungstyp_kurzbz)
. ' WHERE pruefungsanmeldung_id='.$this->db_add_param($this->pruefungsanmeldung_id).';';
}
if ($this->db_query($qry))
{
return true;
@@ -129,7 +130,7 @@ class pruefungsanmeldung extends basis_db {
return false;
}
}
/**
* Lädt eine Prüfungsanmeldung
* @param type $pruefungsanmeldung_id
@@ -142,9 +143,9 @@ class pruefungsanmeldung extends basis_db {
$this->errormsg = "Anmeldung ID muss eine gültige Zahl sein";
return false;
}
$qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id).';';
if(!$this->db_query($qry))
{
$this->errormsg = 'Anmeldungsdaten konnten nicht geladen werden.';
@@ -166,11 +167,12 @@ class pruefungsanmeldung extends basis_db {
$this->statusupdatevon = $row->statusupdatevon;
$this->anrechnung_id = $row->anrechnung_id;
$this->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
$this->insertamum = $row->insertamum;
}
return true;
}
}
/**
* Lädt alle Prüfungsanmeldungen eines Studenten
* @param type $uid UID eines Studenten
@@ -184,14 +186,14 @@ class pruefungsanmeldung extends basis_db {
. 'JOIN campus.tbl_pruefungstermin pt ON pa.pruefungstermin_id=pt.pruefungstermin_id '
. 'JOIN campus.tbl_pruefung p ON p.pruefung_id=pt.pruefung_id '
. 'WHERE uid='.$this->db_add_param($uid);
if($studiensemester_kurzbz != null)
{
$qry .= ' AND studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz);
}
$qry .= ';';
if(!$this->db_query($qry))
{
$this->errormsg = 'Anmeldungen konnten nicht geladen werden.';
@@ -223,9 +225,9 @@ class pruefungsanmeldung extends basis_db {
return $anmeldungen;
}
}
/**
* Lädt alle Anmeldungen eines Prüfungstermins
* Lädt alle Anmeldungen eines Prüfungstermins
* @param type $pruefungstermin_id ID des Prüfungstermins
* @param type $lehrveranstaltung_id Filter nach Lehrveranstaltung
* @param type $studiensemester_kurbz Filter nach Studiensemester (zB 'WS2013')
@@ -234,23 +236,23 @@ class pruefungsanmeldung extends basis_db {
*/
public function getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id=null, $studiensemester_kurbz=null, $status_kurzbz=null)
{
$qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung pa '
$qry = 'SELECT *, pa.insertamum as datum_anmeldung FROM campus.tbl_pruefungsanmeldung pa '
. 'JOIN campus.tbl_pruefungstermin pt ON pa.pruefungstermin_id=pt.pruefungstermin_id '
. 'JOIN campus.tbl_pruefung p ON p.pruefung_id=pt.pruefung_id '
. 'WHERE pa.pruefungstermin_id='.$this->db_add_param($pruefungstermin_id);
if($lehrveranstaltung_id !== null)
{
$qry .= ' AND lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id);
}
if($status_kurzbz !== null)
{
$qry .= ' AND status_kurzbz='.$this->db_add_param($status_kurzbz);
}
$qry .=' ORDER BY reihung';
$qry .=';';
if(!$this->db_query($qry))
{
$this->errormsg = "Anmeldungen konnten nicht geladen werden.";
@@ -277,12 +279,13 @@ class pruefungsanmeldung extends basis_db {
$anmeldung->statusupdatevon = $row->statusupdatevon;
$anmeldung->anrechnung_id = $row->anrechnung_id;
$anmeldung->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
$anmeldung->datum_anmeldung = $row->datum_anmeldung;
array_push($anmeldungen, $anmeldung);
}
return $anmeldungen;
}
}
/**
* Löscht eine Prüfungsanmeldung
* @param type $pruefungsanmeldung_id ID der Prüfungsanmeldung
@@ -292,14 +295,14 @@ class pruefungsanmeldung extends basis_db {
public function delete($pruefungsanmeldung_id, $uid=null)
{
$qry = 'DELETE FROM campus.tbl_pruefungsanmeldung WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id);
if(!is_null($uid))
{
$qry .= ' AND uid='.$this->db_add_param($uid);
}
$qry .= ' ;';
if($this->db_query($qry))
{
return true;
@@ -310,7 +313,7 @@ class pruefungsanmeldung extends basis_db {
return false;
}
}
/**
* speichert die Reihung eines Anmeldungstermins
* WICHTIG: Auf den Aufbau des übergebenen arrays muss geachtet werden
@@ -348,8 +351,8 @@ class pruefungsanmeldung extends basis_db {
$this->errormsg = "No Array";
return false;
}
/**
* Ändert den Status einer Prüfungsanmeldung
* @param type $pruefungsanmeldung_id ID der Prüfungsanmeldung
@@ -363,7 +366,7 @@ class pruefungsanmeldung extends basis_db {
. 'statusupdatevon='.$this->db_add_param($user).', '
. 'statusupdateamum=NOW() '
. ' WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id).';';
if(!$this->db_query($qry))
{
$this->errormsg = 'Status konnte nicht geändert werden.';
+1 -1
View File
@@ -229,7 +229,7 @@ $menu=array
'name'=>'Admin', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('basis/cronjob'), 'image'=>'vilesci_admin.png',
'link'=>'left.php?categorie=Admin', 'target'=>'nav',
'Cronjobs'=>array('name'=>'Cronjobs', 'link'=>'stammdaten/cronjobverwaltung.php', 'target'=>'main','permissions'=>array('basis/cronjob')),
'Vorlagen'=>array('name'=>'Vorlagen', 'link'=>'../index.ci.php/system/Templates', 'target'=>'main','permissions'=>array('basis/cronjob')),
'Vorlagen'=>array('name'=>'Vorlagen', 'link'=>'../index.ci.php/system/Vorlage', 'target'=>'main','permissions'=>array('basis/cronjob')),
'Messages'=>array('name'=>'Nachrichten', 'link'=>'../index.ci.php/system/Messages', 'target'=>'main','permissions'=>array('basis/cronjob')),
'Phrasen'=>array('name'=>'Phrasen', 'link'=>'../index.ci.php/system/Phrases', 'target'=>'main','permissions'=>array('basis/cronjob'))
),
File diff suppressed because it is too large Load Diff
+5 -2
View File
@@ -285,7 +285,8 @@ class zeugnisnote extends basis_db
vw_student_lehrveranstaltung.sort,
vw_student_lehrveranstaltung.zeugnis,
vw_student_lehrveranstaltung.studiengang_kz,
vw_student_lehrveranstaltung.lv_lehrform_kurzbz
vw_student_lehrveranstaltung.lv_lehrform_kurzbz,
tbl_lehrveranstaltung.sws
FROM
(
campus.vw_student_lehrveranstaltung LEFT JOIN lehre.tbl_zeugnisnote
@@ -294,13 +295,14 @@ class zeugnisnote extends basis_db
AND vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id
)
) LEFT JOIN lehre.tbl_note USING(note)
JOIN lehre.tbl_lehrveranstaltung ON(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id)
WHERE true $where
UNION
SELECT lehre.tbl_lehrveranstaltung.lehrveranstaltung_id,student_uid AS uid,studiensemester_kurzbz, note, punkte,
uebernahmedatum, benotungsdatum,lehre.tbl_lehrveranstaltung.ects,lehre.tbl_lehrveranstaltung.semesterstunden, tbl_zeugnisnote.updateamum, tbl_zeugnisnote.updatevon, tbl_zeugnisnote.insertamum,
tbl_zeugnisnote.insertvon, tbl_zeugnisnote.ext_id, lehre.tbl_lehrveranstaltung.bezeichnung as lehrveranstaltung_bezeichnung, lehre.tbl_lehrveranstaltung.bezeichnung_english as lehrveranstaltung_bezeichnung_english,
tbl_note.bezeichnung as note_bezeichnung, tbl_zeugnisnote.bemerkung as bemerkung, tbl_lehrveranstaltung.sort, tbl_lehrveranstaltung.zeugnis, tbl_lehrveranstaltung.studiengang_kz,
tbl_lehrveranstaltung.lehrform_kurzbz as lv_lehrform_kurzbz
tbl_lehrveranstaltung.lehrform_kurzbz as lv_lehrform_kurzbz, tbl_lehrveranstaltung.sws
FROM
lehre.tbl_zeugnisnote
JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id)
@@ -336,6 +338,7 @@ class zeugnisnote extends basis_db
$obj->studiengang_kz = $row->studiengang_kz;
$obj->zeugnis = $this->db_parse_bool($row->zeugnis);
$obj->lv_lehrform_kurzbz = $row->lv_lehrform_kurzbz;
$obj->sws = $row->sws;
$this->result[] = $obj;
}
+1
View File
@@ -97,4 +97,5 @@ $this->phrasen['lvplan/vorher']='Vorher';
$this->phrasen['lvplan/status']='Status';
$this->phrasen['lvplan/automatischeMail']='Dies ist eine automatische Mail!';
$this->phrasen['lvplan/folgendeAenderungen']='Es haben sich folgende Aenderungen in Ihrem LV-Plan ergeben:';
$this->phrasen['lvplan/reserviertInDev']='reserviert<br>für<br>lehre';
?>
+1 -1
View File
@@ -78,5 +78,5 @@ $this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Es wurden keine Ergebni
//Partnerhochschulen
$this->phrasen['tools/partnerhochschulenUebersicht']='Übersicht der Partnerhochschulen';
$this->phrasen['tools/partnerhochschulenKeinEintrag']='Für diesen Studiengang ist keine Partnerhochschule zugeordnet';
$this->phrasen['tools/partnerhochschulenEinleitung']='Sollten Sie an einer Partnerhochschule studieren wollen, die sich nicht auf dieser Liste befindet, kontaktieren Sie bitte das <a href="../../../cms/content.php?content_id=6952">Center for International Relations (CIR)</a>.';
$this->phrasen['tools/partnerhochschulenEinleitung']='Bitte beachten Sie, dass die Möglichkeit eines Auslandssemsesters an einer Partnerhochschule davon abhängt, ob Sie ausreichend anrechenbare Lehrveranstaltungen an der Partnerhochschule finden sowie von den vertraglichen Rahmenbedingungen. Manche Partnerhochschulen sind für Ihren Studiengang unter Umständen nur eingeschränkt bzw. nur im Rahmen spezifischer Programme verfügbar. Bitte recherchieren Sie vorab auf der Webseite der Partnerhochschule und besprechen Sie mit dem CIR sowie Ihrer Studiengangsleitung, ob die von Ihnen ausgewählte Partnerhochschule für Ihr Auslandssemester passend ist. <br>Sollten Sie an einer Partnerhochschule studieren wollen, die sich nicht auf dieser Liste befindet, kontaktieren Sie bitte das <a href="../../../cms/content.php?content_id=6952">Center for International Relations (CIR)</a>.';
?>
+1
View File
@@ -96,4 +96,5 @@ $this->phrasen['lvplan/vorher']='Previously';
$this->phrasen['lvplan/status']='Status';
$this->phrasen['lvplan/automatischeMail']='This is an automatic email!';
$this->phrasen['lvplan/folgendeAenderungen']='There have been the following changes in your Schedule:';
$this->phrasen['lvplan/reserviertInDev']='not<br>available';
?>
+1 -1
View File
@@ -78,5 +78,5 @@ $this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Your search did not ret
//Partnerhochschulen
$this->phrasen['tools/partnerhochschulenUebersicht']='Partner Universities';
$this->phrasen['tools/partnerhochschulenKeinEintrag']='No entry found';
$this->phrasen['tools/partnerhochschulenEinleitung']='In case you would like to study at a partner university that isn´t listed - please contact the <a href="../../../cms/content.php?content_id=6952">Center for International Relations (CIR)</a>.';
$this->phrasen['tools/partnerhochschulenEinleitung']='Please kindly note that the possibility of an exchange semester at a partner university depends on whether you can find a sufficient amount of creditable courses at the partner university as well as the inter-institutional framework. For your study program some partner universities may be only an option for exchange within specific programs. Please check the partner university´s website in advance and discuss with the CIR and your study program director whether the courses at the chosen partner university are appropriate for your exchange semester. In case you would like to study at a partner university which isn´t listed - please contact the <a href="../../../cms/content.php?content_id=6952">Center for International Relations (CIR)</a>.';
?>
File diff suppressed because it is too large Load Diff
+2
View File
@@ -111,6 +111,7 @@ foreach ($dok->result as $row)
<DOKUMENT:anmerkung_intern><![CDATA['.$a->anmerkung_intern.']]></DOKUMENT:anmerkung_intern>
<DOKUMENT:onlinebewerbung><![CDATA['.$onlinebewerbung.']]></DOKUMENT:onlinebewerbung>
<DOKUMENT:pflicht><![CDATA['.$pflicht.']]></DOKUMENT:pflicht>
<DOKUMENT:nachgereicht_am><![CDATA['.$a->nachgereicht_am.']]></DOKUMENT:nachgereicht_am>
</RDF:Description>
</RDF:li>
';
@@ -170,6 +171,7 @@ foreach($akte->result as $a)
<DOKUMENT:titel_intern><![CDATA['.$a->titel_intern.']]></DOKUMENT:titel_intern>
<DOKUMENT:anmerkung_intern><![CDATA['.$a->anmerkung_intern.']]></DOKUMENT:anmerkung_intern>
<DOKUMENT:onlinebewerbung><![CDATA[nein]]></DOKUMENT:onlinebewerbung>
<DOKUMENT:nachgereicht_am><![CDATA['.$a->nachgereicht_am.']]></DOKUMENT:nachgereicht_am>
</RDF:Description>
</RDF:li>
';
+2
View File
@@ -96,6 +96,7 @@ foreach ($dok->result as $row)
<DOKUMENT:akte_id>'.$a->akte_id.'</DOKUMENT:akte_id>
<DOKUMENT:titel_intern><![CDATA['.$a->titel_intern.']]></DOKUMENT:titel_intern>
<DOKUMENT:anmerkung_intern><![CDATA['.$a->anmerkung_intern.']]></DOKUMENT:anmerkung_intern>
<DOKUMENT:nachgereicht_am><![CDATA['.$a->nachgereicht_am.']]></DOKUMENT:nachgereicht_am>
</RDF:Description>
</RDF:li>
';
@@ -116,6 +117,7 @@ foreach ($dok->result as $row)
<DOKUMENT:akte_id></DOKUMENT:akte_id>
<DOKUMENT:titel_intern></DOKUMENT:titel_intern>
<DOKUMENT:anmerkung_intern></DOKUMENT:anmerkung_intern>
<DOKUMENT:nachgereicht_am></DOKUMENT:nachgereicht_am>
</RDF:Description>
</RDF:li>
';
+66 -64
View File
@@ -44,7 +44,7 @@ function breaktext($text, $zeichen)
$arr = explode(' ',$text);
$ret = '';
$teilstring='';
foreach($arr as $elem)
{
if(strlen($teilstring.$elem)>$zeichen)
@@ -52,7 +52,7 @@ function breaktext($text, $zeichen)
$ret.=' '.$teilstring.'\n';
$teilstring=$elem;
}
else
else
$teilstring .=' '.$elem;
}
$ret.=$teilstring;
@@ -64,9 +64,9 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
if(isset($_GET['uid']))
$uid = $_GET['uid'];
else
else
$uid = null;
$uid_arr = explode(";",$uid);
if ($uid_arr[0] == "")
@@ -74,61 +74,61 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
unset($uid_arr[0]);
$uid_arr = array_values($uid_arr);
}
$note_arr = array();
$note = new note();
$note->getAll();
foreach ($note->result as $n){
$note_arr[$n->note] = $n->anmerkung;
$note_bezeichnung_arr[$n->note] = $n->bezeichnung;
$note_bezeichnung_arr[$n->note] = $n->bezeichnung;
}
if(isset($_GET['ss']))
$studiensemester_kurzbz = $_GET['ss'];
else
else
die('Studiensemester muss uebergeben werden');
if(isset($_GET['lvid']))
$lehrveranstaltung_id = $_GET['lvid'];
else
else
$lehrveranstaltung_id = 0;
//Daten holen
$lqry = "SELECT
tbl_person.titelpre, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpost
FROM
public.tbl_benutzer JOIN public.tbl_person using (person_id)
WHERE
tbl_benutzer.uid = (SELECT
tbl_lehreinheitmitarbeiter.mitarbeiter_uid
FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehrfunktion USING(lehrfunktion_kurzbz),
lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE
$lqry = "SELECT
tbl_person.titelpre, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpost
FROM
public.tbl_benutzer JOIN public.tbl_person using (person_id)
WHERE
tbl_benutzer.uid = (SELECT
tbl_lehreinheitmitarbeiter.mitarbeiter_uid
FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehrfunktion USING(lehrfunktion_kurzbz),
lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE
tbl_lehreinheitmitarbeiter.lehreinheit_id = tbl_lehreinheit.lehreinheit_id AND
tbl_lehrveranstaltung.lehrveranstaltung_id = ".$db->db_add_param($lehrveranstaltung_id)." AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)."
ORDER BY tbl_lehrfunktion.standardfaktor desc limit 1)";
$leiter_titel = '';
$leiter_vorname = '';
$leiter_nachname = '';
$leiter_titelpost = '';
if($db->db_query($lqry))
{
if ($lrow = $db->db_fetch_object())
{
$leiter_titel = $lrow->titelpre;
$leiter_titel = $lrow->titelpre;
$leiter_vorname = $lrow->vorname;
$leiter_nachname = $lrow->nachname;
$leiter_titelpost = $lrow->titelpost;
}
$leiter_nachname = $lrow->nachname;
$leiter_titelpost = $lrow->titelpost;
}
}
$qry = "SELECT wochen FROM public.tbl_semesterwochen
WHERE (studiengang_kz, semester) in (SELECT studiengang_kz, semester
$qry = "SELECT wochen FROM public.tbl_semesterwochen
WHERE (studiengang_kz, semester) in (SELECT studiengang_kz, semester
FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER).")";
$wochen = 15;
if($result_wochen = $db->db_query($qry))
@@ -139,7 +139,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
}
}
$lvqry = "SELECT * from lehre.tbl_lehrveranstaltung where lehrveranstaltung_id = ".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
if($db->db_query($lvqry))
{
if ($lvrow = $db->db_fetch_object())
@@ -147,10 +147,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$sws = $lvrow->semesterstunden/$wochen;
$ects = $lvrow->ects;
$lvbezeichnung = $lvrow->bezeichnung;
$lvstg = $lvrow->studiengang_kz;
}
$lvstg = $lvrow->studiengang_kz;
$sws_lv = $lvrow->sws;
}
}
$lehrinhalte = '';
$lehrziele = '';
$infoqry = "SELECT * FROM campus.tbl_lvinfo WHERE sprache='German' AND lehrveranstaltung_id = ".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
@@ -158,48 +159,48 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
{
if ($inforow = $db->db_fetch_object())
{
$lehrinhalte_arr = explode("<br>",$inforow->lehrinhalte);
$lehrinhalte_arr = explode("<br>",$inforow->lehrinhalte);
for ($i = 0; $i < sizeof($lehrinhalte_arr); $i++)
{
$lehrinhalte .= $lehrinhalte_arr[$i].'\n';
$lehrinhalte .= $lehrinhalte_arr[$i].'\n';
}
$lehrziele_arr = explode("<br>",$inforow->lehrziele);
for ($i = 0; $i < sizeof($lehrziele_arr); $i++)
{
$lehrziele .= $lehrziele_arr[$i].'\n';
}
}
}
}
}
$xml = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>";
$xml .= "<zertifikate>";
$studiensemester = new studiensemester();
$studiensemester->load($studiensemester_kurzbz);
for ($i = 0; $i < sizeof($uid_arr); $i++)
{
{
$anzahl_fussnoten=0;
$studiengang_typ='';
$xml_fussnote='';
$query = " SELECT tbl_student.matrikelnr,
tbl_student.studiengang_kz,
tbl_studiengang.typ,
tbl_studiengang.bezeichnung,
tbl_person.vorname,
$query = " SELECT tbl_student.matrikelnr,
tbl_student.studiengang_kz,
tbl_studiengang.typ,
tbl_studiengang.bezeichnung,
tbl_person.vorname,
tbl_person.nachname,
tbl_person.gebdatum,
tbl_person.titelpre,
tbl_person.titelpost,
tbl_person.geschlecht
FROM tbl_person,
tbl_student,
tbl_studiengang,
tbl_benutzer
WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz
AND tbl_student.student_uid = tbl_benutzer.uid
AND tbl_benutzer.person_id = tbl_person.person_id
tbl_person.titelpre,
tbl_person.titelpost,
tbl_person.geschlecht
FROM tbl_person,
tbl_student,
tbl_studiengang,
tbl_benutzer
WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz
AND tbl_student.student_uid = tbl_benutzer.uid
AND tbl_benutzer.person_id = tbl_person.person_id
AND tbl_student.student_uid = '".$uid_arr[$i]."'";
if($db->db_query($query))
@@ -217,7 +218,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$stgl_ma = new mitarbeiter($stgleiter_uid);
$stgl .= trim($stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost);
}
$xml .= "\n <zertifikat>";
$xml .= "\n <studiensemester>".$studiensemester->bezeichnung."</studiensemester>";
$xml .= "\n <vorname>".$row->vorname."</vorname>";
@@ -230,8 +231,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= "\n <studiengangsleiter>".$stgl."</studiengangsleiter>";
$datum_aktuell = date('d.m.Y');
$xml .= "\n <ort_datum>Wien, am ".$datum_aktuell."</ort_datum>";
$obj = new zeugnisnote();
$obj->load($lehrveranstaltung_id, $uid_arr[$i], $studiensemester_kurzbz);
@@ -244,9 +245,9 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
{
$note = "";
$note_bezeichnung = "";
}
}
$note2=$note;
$stg = new studiengang();
$stg->load($lvstg);
if($stg->typ=='b')
@@ -266,11 +267,12 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= " <note>".$note."</note>";
$xml .= " <note_bezeichnung>".$note_bezeichnung."</note_bezeichnung>";
$xml .= " <sws>".($sws==0?'':number_format(sprintf('%.1F',$sws),1))."</sws>";
$xml .= " <sws_lv>".($sws_lv==0?'':number_format(sprintf('%.1F',$sws_lv),1))."</sws_lv>";
$xml .= " <ects>".number_format($ects,1)."</ects>";
$xml .= " <lvleiter>".$leiter_titel." ".$leiter_vorname." ".$leiter_nachname.($leiter_titelpost!=''?', '.$leiter_titelpost:'')."</lvleiter>";
$xml .= " <lehrinhalte><![CDATA[".clearHtmlTags($lehrinhalte)."]]></lehrinhalte>";
$xml .= " <lehrziele><![CDATA[".clearHtmlTags($lehrziele)."]]></lehrziele>";
$xml .= " </zertifikat>";
}
$xml .= "</zertifikate>";
+64 -26
View File
@@ -41,40 +41,78 @@ else
$db = new basis_db();
$qry = "
SELECT
m.*,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=m.person_id) as sender,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=r.person_id) as recipient,
m.message_id AS message_id,
m.subject AS subject,
m.body AS body,
m.insertamum AS insertamum,
m.relationmessage_id AS relationmessage_id,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id = m.person_id) as sender,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id = r.person_id) as recipient,
m.person_id as sender_id,
r.person_id as recipient_id
FROM
public.tbl_msg_message m
JOIN public.tbl_msg_recipient r USING(message_id)
WHERE
r.person_id=".$db->db_add_param($person_id, FHC_INTEGER)."
OR m.person_id=".$db->db_add_param($person_id, FHC_INTEGER)."
ORDER BY
message_id";
r.person_id as recipient_id,
MAX(ss.status) as status
FROM public.tbl_msg_message m
JOIN public.tbl_msg_recipient r USING(message_id)
JOIN public.tbl_msg_status ss ON(r.message_id = ss.message_id AND ss.person_id = r.person_id)
WHERE m.person_id = ".$db->db_add_param($person_id, FHC_INTEGER)."
GROUP BY m.message_id, m.subject, m.body, m.insertamum, m.relationmessage_id, sender, recipient, sender_id, recipient_id
UNION ALL
SELECT
m.message_id AS message_id,
m.subject AS subject,
m.body AS body,
m.insertamum AS insertamum,
m.relationmessage_id AS relationmessage_id,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id = m.person_id) as sender,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id = r.person_id) as recipient,
m.person_id as sender_id,
r.person_id as recipient_id,
MAX(ss.status) as status
FROM public.tbl_msg_recipient r
JOIN public.tbl_msg_status ss USING(message_id, person_id)
JOIN public.tbl_msg_message m USING(message_id)
WHERE r.person_id = ".$db->db_add_param($person_id, FHC_INTEGER)."
GROUP BY m.message_id, m.subject, m.body, m.insertamum, m.relationmessage_id, sender, recipient, sender_id, recipient_id
ORDER BY insertamum";
if($db->db_query($qry))
{
$oRdf->sendHeader();
while($row = $db->db_fetch_object())
{
$i=$oRdf->newObjekt($row->message_id);
$oRdf->obj[$i]->setAttribut('subject',$row->subject,true);
$oRdf->obj[$i]->setAttribut('body',$row->body,true);
$oRdf->obj[$i]->setAttribut('message_id',$row->message_id,true);
$oRdf->obj[$i]->setAttribut('insertamum',$row->insertamum,true);
$oRdf->obj[$i]->setAttribut('status',$row->insertamum,true);
$oRdf->obj[$i]->setAttribut('sender',$row->sender,true);
$oRdf->obj[$i]->setAttribut('recipient',$row->recipient,true);
$oRdf->obj[$i]->setAttribut('sender_id',$row->sender_id,true);
$oRdf->obj[$i]->setAttribut('recipient_id',$row->recipient_id,true);
$status = '';
if ($row->status == 0)
{
$status = 'Unread';
}
else if ($row->status == 1)
{
$status = 'Read';
}
else if ($row->status == 2)
{
$status = 'Archived';
}
else if ($row->status == 3)
{
$status = 'Deleted';
}
$i=$oRdf->newObjekt($row->message_id);
$oRdf->obj[$i]->setAttribut('subject',$row->subject,true);
$oRdf->obj[$i]->setAttribut('body',$row->body,true);
$oRdf->obj[$i]->setAttribut('message_id',$row->message_id,true);
$oRdf->obj[$i]->setAttribut('insertamum',$row->insertamum,true);
$oRdf->obj[$i]->setAttribut('status',$status,true);
$oRdf->obj[$i]->setAttribut('sender',$row->sender,true);
$oRdf->obj[$i]->setAttribut('recipient',$row->recipient,true);
$oRdf->obj[$i]->setAttribut('sender_id',$row->sender_id,true);
$oRdf->obj[$i]->setAttribut('recipient_id',$row->recipient_id,true);
if($row->relationmessage_id!='')
$oRdf->addSequence($row->message_id, $row->relationmessage_id);
else
$oRdf->addSequence($row->message_id);
if($row->relationmessage_id!='')
$oRdf->addSequence($row->message_id, $row->relationmessage_id);
else
$oRdf->addSequence($row->message_id);
}
}
$oRdf->sendRdfText();
+5
View File
@@ -209,6 +209,7 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz)
$gesamtstunden=0;
$gesamtstunden_lv=0;
$gesamtects=0;
$notensumme=0;
$anzahl=0;
@@ -243,6 +244,8 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz)
$xml .= " <note_idx>".$row->note."</note_idx>";
$sws = sprintf('%.1F',$row->semesterstunden/$wochen);
$xml .= " <sws>".$sws."</sws>";
$sws_lv = sprintf('%.1F',$row->sws);
$xml .= " <sws_lv>".$sws_lv."</sws_lv>";
$xml .= " <ects>".$row->ects."</ects>";
$xml .= " <lehrform><![CDATA[".$row->lv_lehrform_kurzbz."]]></lehrform>";
if($row->benotungsdatum!='')
@@ -250,6 +253,7 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz)
$xml .= " </unterrichtsfach>";
$gesamtstunden +=$sws;
$gesamtstunden_lv +=$sws_lv;
$gesamtects += $row->ects;
if($note_wert[$row->note]!='')
{
@@ -268,6 +272,7 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz)
else
$schnitt = 0;
$xml .= " <gesamtstunden>".$gesamtstunden."</gesamtstunden>";
$xml .= " <gesamtstunden_lv>".$gesamtstunden_lv."</gesamtstunden_lv>";
$xml .= " <gesamtects>$gesamtects</gesamtects>";
$xml .= " <schnitt>".sprintf('%.2f',$schnitt)."</schnitt>";
$xml .= " </studienerfolg>";
+51 -49
View File
@@ -44,7 +44,7 @@ function breaktext($text, $zeichen)
$arr = explode(' ',$text);
$ret = '';
$teilstring='';
foreach($arr as $elem)
{
if(strlen($teilstring.$elem)>$zeichen)
@@ -52,7 +52,7 @@ function breaktext($text, $zeichen)
$ret.=' '.$teilstring.'\n';
$teilstring=$elem;
}
else
else
$teilstring .=' '.$elem;
}
$ret.=$teilstring;
@@ -64,9 +64,9 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
if(isset($_GET['uid']))
$uid = $_GET['uid'];
else
else
$uid = null;
$uid_arr = explode(";",$uid);
if ($uid_arr[0] == "")
@@ -74,61 +74,61 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
unset($uid_arr[0]);
$uid_arr = array_values($uid_arr);
}
$note_arr = array();
$note = new note();
$note->getAll();
foreach ($note->result as $n){
$note_arr[$n->note] = $n->anmerkung;
$note_bezeichnung_arr[$n->note] = $n->bezeichnung;
$note_bezeichnung_arr[$n->note] = $n->bezeichnung;
}
if(isset($_GET['ss']))
$studiensemester_kurzbz = $_GET['ss'];
else
else
die('Studiensemester muss uebergeben werden');
if(isset($_GET['lvid']))
$lehrveranstaltung_id = $_GET['lvid'];
else
else
$lehrveranstaltung_id = 0;
//Daten holen
$lqry = "SELECT
tbl_person.titelpre, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpost
FROM
public.tbl_benutzer JOIN public.tbl_person using (person_id)
WHERE
tbl_benutzer.uid = (SELECT
tbl_lehreinheitmitarbeiter.mitarbeiter_uid
FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehrfunktion USING(lehrfunktion_kurzbz),
lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE
$lqry = "SELECT
tbl_person.titelpre, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpost
FROM
public.tbl_benutzer JOIN public.tbl_person using (person_id)
WHERE
tbl_benutzer.uid = (SELECT
tbl_lehreinheitmitarbeiter.mitarbeiter_uid
FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehrfunktion USING(lehrfunktion_kurzbz),
lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE
tbl_lehreinheitmitarbeiter.lehreinheit_id = tbl_lehreinheit.lehreinheit_id AND
tbl_lehrveranstaltung.lehrveranstaltung_id = ".$db->db_add_param($lehrveranstaltung_id)." AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)."
ORDER BY tbl_lehrfunktion.standardfaktor desc limit 1)";
$leiter_titel = '';
$leiter_vorname = '';
$leiter_nachname = '';
$leiter_titelpost = '';
if($db->db_query($lqry))
{
if ($lrow = $db->db_fetch_object())
{
$leiter_titel = $lrow->titelpre;
$leiter_titel = $lrow->titelpre;
$leiter_vorname = $lrow->vorname;
$leiter_nachname = $lrow->nachname;
$leiter_titelpost = $lrow->titelpost;
}
$leiter_nachname = $lrow->nachname;
$leiter_titelpost = $lrow->titelpost;
}
}
$qry = "SELECT wochen FROM public.tbl_semesterwochen
WHERE (studiengang_kz, semester) in (SELECT studiengang_kz, semester
$qry = "SELECT wochen FROM public.tbl_semesterwochen
WHERE (studiengang_kz, semester) in (SELECT studiengang_kz, semester
FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER).")";
$wochen = 15;
if($result_wochen = $db->db_query($qry))
@@ -139,7 +139,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
}
}
$lvqry = "SELECT * from lehre.tbl_lehrveranstaltung where lehrveranstaltung_id = ".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
if($db->db_query($lvqry))
{
if ($lvrow = $db->db_fetch_object())
@@ -147,10 +147,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$sws = $lvrow->semesterstunden/$wochen;
$ects = $lvrow->ects;
$lvbezeichnung = $lvrow->bezeichnung;
$lvstg = $lvrow->studiengang_kz;
}
$lvstg = $lvrow->studiengang_kz;
$sws_lv = $lvrow->sws;
}
}
$lehrinhalte = '';
$lehrziele = '';
$infoqry = "SELECT * FROM campus.tbl_lvinfo WHERE sprache='German' AND lehrveranstaltung_id = ".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
@@ -158,31 +159,31 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
{
if ($inforow = $db->db_fetch_object())
{
$lehrinhalte_arr = explode("<br>",$inforow->lehrinhalte);
$lehrinhalte_arr = explode("<br>",$inforow->lehrinhalte);
for ($i = 0; $i < sizeof($lehrinhalte_arr); $i++)
{
$lehrinhalte .= $lehrinhalte_arr[$i].'\n';
$lehrinhalte .= $lehrinhalte_arr[$i].'\n';
}
$lehrziele_arr = explode("<br>",$inforow->lehrziele);
for ($i = 0; $i < sizeof($lehrziele_arr); $i++)
{
$lehrziele .= $lehrziele_arr[$i].'\n';
}
}
}
}
}
$xml = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>";
$xml .= "<zertifikate>";
$studiensemester = new studiensemester();
$studiensemester->load($studiensemester_kurzbz);
for ($i = 0; $i < sizeof($uid_arr); $i++)
{
{
$anzahl_fussnoten=0;
$studiengang_typ='';
$xml_fussnote='';
$query = "SELECT tbl_student.matrikelnr, tbl_student.studiengang_kz, tbl_studiengang.typ, tbl_studiengang.bezeichnung, tbl_person.vorname, tbl_person.nachname,tbl_person.gebdatum,tbl_person.titelpre, tbl_person.titelpost, tbl_person.geschlecht FROM tbl_person, tbl_student, tbl_studiengang, tbl_benutzer WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz and tbl_student.student_uid = tbl_benutzer.uid and tbl_benutzer.person_id = tbl_person.person_id and tbl_student.student_uid = '".$uid_arr[$i]."'";
if($db->db_query($query))
@@ -200,7 +201,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$stgl_ma = new mitarbeiter($stgleiter_uid);
$stgl .= trim($stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost);
}
$xml .= "\n <zertifikat>";
$xml .= "\n <studiensemester>".$studiensemester->bezeichnung."</studiensemester>";
$xml .= "\n <vorname>".$row->vorname."</vorname>";
@@ -215,8 +216,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= "\n <studiengangsleiter>".$stgl."</studiengangsleiter>";
$datum_aktuell = date('d.m.Y');
$xml .= "\n <ort_datum>Wien, am ".$datum_aktuell."</ort_datum>";
$obj = new zeugnisnote();
$obj->load($lehrveranstaltung_id, $uid_arr[$i], $studiensemester_kurzbz);
@@ -229,9 +230,9 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
{
$note = "";
$note_bezeichnung = "";
}
}
$note2=$note;
$stg = new studiengang();
$stg->load($lvstg);
$xml .= " <lv_studiengang_bezeichnung>".$stg->bezeichnung."</lv_studiengang_bezeichnung>";
@@ -242,12 +243,13 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= " <note>".$note."</note>";
$xml .= " <note_bezeichnung>".$note_bezeichnung."</note_bezeichnung>";
$xml .= " <sws>".($sws==0?'':number_format(sprintf('%.1F',$sws),1))."</sws>";
$xml .= " <sws_lv>".($sws_lv==0?'':number_format(sprintf('%.1F',$sws_lv),1))."</sws_lv>";
$xml .= " <ects>".number_format($ects,1)."</ects>";
$xml .= " <lvleiter>".$leiter_titel." ".$leiter_vorname." ".$leiter_nachname.($leiter_titelpost!=''?', '.$leiter_titelpost:'')."</lvleiter>";
$xml .= " <lehrinhalte><![CDATA[".clearHtmlTags($lehrinhalte)."]]></lehrinhalte>";
$xml .= " <lehrziele><![CDATA[".clearHtmlTags($lehrziele)."]]></lehrziele>";
$xml .= " </zertifikat>";
}
$xml .= "</zertifikate>";
+2
View File
@@ -325,6 +325,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
//$nl = str_repeat('\n',($anzahl_nl));
$xml_fussnote .=' <note>'.(isset($note_arr[$note])?$note_arr[$note]:$note).$nl.'</note>';
$xml_fussnote .=' <sws>'.$nl.'</sws>';
$xml_fussnote .=' <sws_lv>'.$nl.'</sws_lv>';
$xml_fussnote .=' <ects>'.$nl.'</ects>';
$xml_fussnote .=' <lv_lehrform_kurzbz>'.$nl.'</lv_lehrform_kurzbz>';
@@ -379,6 +380,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= " <bezeichnung_englisch><![CDATA[".$bezeichnung_englisch."]]></bezeichnung_englisch>";
$xml .= " <note>".$note2."</note>";
$xml .= " <sws>".($row->semesterstunden==0?'':number_format(sprintf('%.1F',$row->semesterstunden/$wochen),1))."</sws>";
$xml .= " <sws_lv>".($row->sws==0?'':number_format(sprintf('%.1F',$row->sws),1))."</sws_lv>";
$ectspunkte='';
$anrechnung = new anrechnung();
+450 -208
View File
@@ -19,7 +19,6 @@
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Karl Burkhart <burkhart@technikum-wien.at>
*/
require_once('../config/vilesci.config.inc.php');
require_once('../include/basis_db.class.php');
require_once('../include/studiensemester.class.php');
@@ -29,138 +28,179 @@ require_once('../include/student.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/functions.inc.php');
require_once('../include/datum.class.php');
require_once('../include/benutzerberechtigung.class.php');
$db = new basis_db();
$datum = new datum();
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if (!$rechte->isBerechtigt('student/stammdaten', null, 's'))
die($rechte->errormsg);
if (isset($_REQUEST['stg_kz']))
$studiengang_kz = $_REQUEST['stg_kz'];
else
$studiengang_kz = null;
$studiensemester = new studiensemester();
$aktSem = $studiensemester->getaktorNext();
$nextSem = $studiensemester->getNextFrom($aktSem);
$ausgabe = array();
$text = '';
$text ="";
?>
echo '<!DOCTYPE HTML>
<html>
<head>
<head>
<title>Check Studenten</title>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta charset="utf-8"/>
<link rel="stylesheet" href="../skin/vilesci.css" type="text/css">
</head>
<body class="background_main">
<h2>Studenten Checkskript für BIS-Meldung</h2>
<?php
</head>
<body>
<h1>Studenten Checkskript für BIS-Meldung</h1>';
/*
* Studiengang muss beim Prestudenten und beim Studenten gleich sein
*/
$qry = "
SELECT
stud.student_uid, pre.studiengang_kz, stud.studiengang_kz studiengang
FROM
public.tbl_prestudent pre
JOIN public.tbl_student stud using(prestudent_id)
WHERE
stud.studiengang_kz != pre.studiengang_kz";
$qry="select stud.student_uid, pre.studiengang_kz, stud.studiengang_kz studiengang
from public.tbl_prestudent pre
join public.tbl_student stud using(prestudent_id)
where stud.studiengang_kz != pre.studiengang_kz;";
$text.="Suche Studiengänge die bei Prestudenten und Studenten nicht gleich sind ...<br><br>";
if($db->db_query($qry))
if ($studiengang_kz != '')
{
while($row = $db->db_fetch_object())
$qry .= " AND
(
stud.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)."
OR pre.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)."
)";
}
$text .= "Suche Studiengänge die bei Prestudenten und Studenten nicht gleich sind ...<br><br>";
if ($db->db_query($qry))
{
while ($row = $db->db_fetch_object())
{
$ausgabe[$row->studiengang][1][]= $row->student_uid;
$text.="Studenten-uid: ".$row->student_uid."<br>";
$ausgabe[$row->studiengang][1][] = $row->student_uid;
$text .= "Studenten-uid: ".$row->student_uid."<br>";
}
}
else
$text.="Fehler bei der Abfrage aufgetreten. <br>";
$text .= "Fehler bei der Abfrage aufgetreten. <br>";
/*
* Abbrecher dürfen nicht mehr aktiv sein
*/
$text .= "<br>Suche alle Abbrecher die noch aktiv sind ... <br><br>";
$text.= "<br>Suche alle Abbrecher die noch aktiv sind ... <br><br>";
$qry = "
SELECT
pre_status.status_kurzbz, benutzer.aktiv, benutzer.uid, student.studiengang_kz studiengang
FROM
public.tbl_prestudentstatus pre_status
JOIN public.tbl_prestudent pre using(prestudent_id)
JOIN public.tbl_student student using(prestudent_id)
JOIN public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid)
WHERE
pre_status.status_kurzbz ='Abbrecher' and benutzer.aktiv=true";
$qry ="select pre_status.status_kurzbz, benutzer.aktiv, benutzer.uid, student.studiengang_kz studiengang
from public.tbl_prestudentstatus pre_status
join public.tbl_prestudent pre using(prestudent_id)
join public.tbl_student student using(prestudent_id)
join public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid)
where pre_status.status_kurzbz ='Abbrecher' and benutzer.aktiv = 'true';";
if ($studiengang_kz != '')
$qry .= " AND pre.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if($db->db_query($qry))
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
while ($row = $db->db_fetch_object())
{
$ausgabe[$row->studiengang][2][]= $row->uid;
$text .="Studenten-uid: ".$row->uid."<br>";
$ausgabe[$row->studiengang][2][] = $row->uid;
$text .= "Studenten-uid: ".$row->uid."<br>";
}
}
else
$text.= "Fehler bei der Abfrage aufgetreten. <br>";
$text .= "Fehler bei der Abfrage aufgetreten. <br>";
/*
* Organisationsform eines Studienganges, sollte mit den Organisationsformen der Studenten übereinstimmen
*/
$text.= "<br>Suche Studenten mit ungleichen Organisationsformeinträgen (Studiengang <--> Prestudentstatus) ... <br><br>";
$text .= "<br>Suche Studenten mit ungleichen Organisationsformeinträgen
(Studiengang <--> Prestudentstatus) ... <br><br>";
$orgArray = array();
$orgForm = new organisationsform();
$qry ="select studiengang.orgform_kurzbz as studorgkz, student.student_uid, prestudentstatus.orgform_kurzbz as studentorgkz, student.studiengang_kz studiengang
from public.tbl_studiengang studiengang
join public.tbl_student student using(studiengang_kz)
join public.tbl_prestudent prestudent using(prestudent_id)
join public.tbl_prestudentstatus prestudentstatus using(prestudent_id)
join public.tbl_benutzer benutzer on(benutzer.uid = student.student_uid)
where benutzer.aktiv = 'true' and prestudentstatus.status_kurzbz ='Student'
and studiengang.studiengang_kz < 10000
and prestudentstatus.studiensemester_kurzbz = '$aktSem'
order by student_uid; ";
$qry = "
SELECT
studiengang.orgform_kurzbz as studorgkz, student.student_uid,
prestudentstatus.orgform_kurzbz as studentorgkz, student.studiengang_kz studiengang
FROM
public.tbl_studiengang studiengang
JOIN public.tbl_student student using(studiengang_kz)
JOIN public.tbl_prestudent prestudent using(prestudent_id)
JOIN public.tbl_prestudentstatus prestudentstatus using(prestudent_id)
JOIN public.tbl_benutzer benutzer on(benutzer.uid = student.student_uid)
WHERE
benutzer.aktiv = true
AND prestudentstatus.status_kurzbz='Student'
AND studiengang.studiengang_kz < 10000
AND prestudentstatus.studiensemester_kurzbz = ".$db->db_add_param($aktSem);
if ($studiengang_kz != '')
$qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
$qry .= " ORDER BY student_uid";
if($db->db_query($qry))
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
while ($row = $db->db_fetch_object())
{
$studOrgform = $row->studorgkz;
$student_uid = $row->student_uid;
$studentOrgform = $row->studentorgkz;
$orgArray = $orgForm->checkOrgForm($studOrgform);
if(is_array($orgArray))
if (is_array($orgArray))
{
if(!in_array($studentOrgform, $orgArray))
if (!in_array($studentOrgform, $orgArray))
{
$ausgabe[$row->studiengang][3][]= $row->student_uid;
$text.= "Student_uid: $student_uid <br>";
$ausgabe[$row->studiengang][3][] = $row->student_uid;
$text .= "Student_uid: $student_uid <br>";
}
}
}
}
else
$text.="Fehler bei der Abfrage aufgetreten. <br>";
$text .= "Fehler bei der Abfrage aufgetreten. <br>";
/*
* Abbrecher dürfen nicht wieder einen Status bekommen
*/
$prestudentAbbrecher = new prestudent();
$prestudentLast = new prestudent();
$text.= "<br>Suche alle Abbrecher die wieder einen Status bekommen haben...<br><br>";
$text .= "<br>Suche alle Abbrecher die wieder einen Status bekommen haben...<br><br>";
$qry ="select student.student_uid, prestudent.prestudent_id, student.studiengang_kz studiengang
from public.tbl_student student
join public.tbl_prestudent prestudent using(prestudent_id)
join public.tbl_prestudentstatus prestatus using(prestudent_id)
where prestatus.status_kurzbz = 'Abbrecher'; ";
$qry = "
SELECT
student.student_uid, prestudent.prestudent_id, student.studiengang_kz studiengang
FROM
public.tbl_student student
JOIN public.tbl_prestudent prestudent using(prestudent_id)
JOIN public.tbl_prestudentstatus prestatus using(prestudent_id)
WHERE
prestatus.status_kurzbz = 'Abbrecher'";
if($db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
while ($row = $db->db_fetch_object())
{
$student_uid = $row->student_uid;
$prestudent_id = $row->prestudent_id;
@@ -169,10 +209,10 @@ if($db->db_query($qry))
$prestudentLast->getLastStatus($prestudent_id);
if($prestudentLast->status_kurzbz != 'Abbrecher')
if ($prestudentLast->status_kurzbz != 'Abbrecher')
{
$ausgabe[$row->studiengang][4][]= $student_uid;
$text.= "Studenten-uid: ".$student_uid."<br>";
$ausgabe[$row->studiengang][4][] = $student_uid;
$text .= "Studenten-uid: ".$student_uid."<br>";
}
}
}
@@ -182,29 +222,39 @@ if($db->db_query($qry))
* Aktuelles Semester beim Studenten stimmt nicht mit dem Ausbildungssemester des aktuellen Status überein
*/
$text .="<br><br>Suche Studenten deren Semstern nicht mit dem Ausbildungssemesters des aktuellen Status übereinstimmt ... <br><br>";
$text .= "<br><br>Suche Studenten deren Semstern nicht mit dem
Ausbildungssemesters des aktuellen Status übereinstimmt ... <br><br>";
$student = new student();
$prestudent = new prestudent();
$qry = "select distinct(student.student_uid), prestudent.prestudent_id, status.ausbildungssemester, lv.semester, student.studiengang_kz studiengang
from public.tbl_student student
join public.tbl_studentlehrverband lv using(student_uid)
join public.tbl_prestudent prestudent using(prestudent_id)
join public.tbl_prestudentstatus status using(prestudent_id)
WHERE status.studiensemester_kurzbz = '$aktSem'
and lv.studiensemester_kurzbz = '$aktSem' AND status.status_kurzbz NOT IN ('Interessent','Bewerber')
and get_rolle_prestudent (prestudent_id, '$aktSem')='Student';";
$qry = "
SELECT
distinct(student.student_uid), prestudent.prestudent_id, status.ausbildungssemester,
lv.semester, student.studiengang_kz studiengang
FROM
public.tbl_student student
JOIN public.tbl_studentlehrverband lv using(student_uid)
JOIN public.tbl_prestudent prestudent using(prestudent_id)
JOIN public.tbl_prestudentstatus status using(prestudent_id)
WHERE
status.studiensemester_kurzbz = ".$db->db_add_param($aktSem)."
AND lv.studiensemester_kurzbz = ".$db->db_add_param($aktSem)."
AND status.status_kurzbz NOT IN ('Interessent','Bewerber')
AND get_rolle_prestudent (prestudent_id, ".$db->db_add_param($aktSem).")='Student'";
if($db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
while ($row = $db->db_fetch_object())
{
$student_uid = $row->student_uid;
if($row->ausbildungssemester != $row->semester)
if ($row->ausbildungssemester != $row->semester)
{
$ausgabe[$row->studiengang][5][]= $student_uid;
$text.="Studenten-uid: ".$student_uid."<br>";
$ausgabe[$row->studiengang][5][] = $student_uid;
$text .= "Studenten-uid: ".$student_uid."<br>";
}
}
}
@@ -214,21 +264,29 @@ if($db->db_query($qry))
* Inaktive Studenten sollen keinen "aktiven" Status haben (Diplomant, Student, Unterbrecher, Praktikant)
*/
$text.="<br><br>Suche alle inaktiven Studenten mit einem aktiven Status ... <br><br>";
$text .= "<br><br>Suche alle inaktiven Studenten mit einem aktiven Status ... <br><br>";
$qry = "Select distinct(student.student_uid), student.studiengang_kz studiengang
from public.tbl_benutzer benutzer
join public.tbl_student student on(benutzer.uid = student.student_uid)
join public.tbl_prestudent prestudent using(prestudent_id)
where benutzer.aktiv = 'false'
and get_rolle_prestudent (prestudent_id, '$aktSem') in ('Student', 'Diplomand', 'Unterbrecher', 'Praktikant')";
$qry = "
SELECT
distinct(student.student_uid), student.studiengang_kz studiengang
FROM
public.tbl_benutzer benutzer
JOIN public.tbl_student student on(benutzer.uid = student.student_uid)
JOIN public.tbl_prestudent prestudent using(prestudent_id)
WHERE
benutzer.aktiv=false
AND get_rolle_prestudent(prestudent_id, ".$db->db_add_param($aktSem).")
in ('Student', 'Diplomand', 'Unterbrecher', 'Praktikant')";
if($db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
while ($row = $db->db_fetch_object())
{
$ausgabe[$row->studiengang][6][]= $row->student_uid;
$text.="Studenten-uid: ".$row->student_uid."<br>";
$ausgabe[$row->studiengang][6][] = $row->student_uid;
$text .= "Studenten-uid: ".$row->student_uid."<br>";
}
}
@@ -238,36 +296,43 @@ if($db->db_query($qry))
* zB. Wenn Student im SS2010 studiert darf Studentenstatus nicht vor 15.11.2009 liegen
*/
$text.="<br><br>Suche alle Studenten deren Inskription im aktuellen Semester vor der letzten BIS-Meldung liegt ...<br><br>";
$text .= "<br><br>Suche alle Studenten deren Inskription im aktuellen
Semester vor der letzten BIS-Meldung liegt ...<br><br>";
$qry ="Select distinct(student.student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang
from public.tbl_benutzer benutzer
join public.tbl_student student on(benutzer.uid = student.student_uid)
join public.tbl_prestudent prestudent using(prestudent_id)
join public.tbl_prestudentstatus prestatus using(prestudent_id)
where benutzer.aktiv = 'true'";
$qry = "
SELECT
distinct(student.student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang
FROM
public.tbl_benutzer benutzer
JOIN public.tbl_student student on(benutzer.uid = student.student_uid)
JOIN public.tbl_prestudent prestudent using(prestudent_id)
JOIN public.tbl_prestudentstatus prestatus using(prestudent_id)
WHERE
benutzer.aktiv=true";
if($db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
while ($row = $db->db_fetch_object())
{
$prestudent = new prestudent();
$prestudent->getFirstStatus($row->prestudent_id, 'Student');
// wenn Student im aktuellen Semester zum ersten Mal den Status Student bekommt
if($prestudent->studiensemester_kurzbz == $aktSem)
if ($prestudent->studiensemester_kurzbz == $aktSem)
{
$datumBIS = getDateForInscription($aktSem);
$datumInscription = $datum->formatDatum($prestudent->datum, 'Y-m-d');
// Wenn Inscriptionsdatum vor der letzten BIS Meldung liegt
if($datumInscription < $datumBIS)
if ($datumInscription < $datumBIS)
{
$ausgabe[$row->studiengang][7][]= $row->student_uid;
$text.= $row->student_uid ." Inskribiert am: ".$datumInscription." BIS Meldung: ".$datumBIS."<br>";
$ausgabe[$row->studiengang][7][] = $row->student_uid;
$text .= $row->student_uid." Inskribiert am: ".$datumInscription." BIS Meldung: ".$datumBIS."<br>";
}
}
}
}
@@ -276,35 +341,48 @@ if($db->db_query($qry))
* Datum und Studiensemester bei den Stati sind in falscher Reihenfolge
*/
$text.="<br><br>Suche alle Studenten die Datum und Studiensemester in deren Stati in falscher Reihenfolge haben ...<br><br>";
$text .= "<br><br>Suche alle Studenten die Datum und Studiensemester
in deren Stati in falscher Reihenfolge haben ...<br><br>";
$prestudentFirst = new prestudent();
$prestudentSecond = new prestudent();
$i = 0;
// alle aktiven Studenten die im aktuellen Semster den Status Student haben
$qry_student ="Select distinct(student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang
from public.tbl_student student
join public.tbl_benutzer benutzer on(student.student_uid = benutzer.uid)
join public.tbl_prestudent prestudent using(prestudent_id)
join public.tbl_prestudentstatus status using(prestudent_id)
where benutzer.aktiv = 'true'
and status.status_kurzbz ='Student'
and status.studiensemester_kurzbz = '$aktSem';";
$qry_student = "
SELECT
distinct(student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang
FROM
public.tbl_student student
JOIN public.tbl_benutzer benutzer on(student.student_uid = benutzer.uid)
JOIN public.tbl_prestudent prestudent using(prestudent_id)
JOIN public.tbl_prestudentstatus status using(prestudent_id)
WHERE
benutzer.aktiv=true
AND status.status_kurzbz='Student'
AND status.studiensemester_kurzbz=".$db->db_add_param($aktSem);
if($result = $db->db_query($qry_student))
if ($studiengang_kz != '')
$qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($result = $db->db_query($qry_student))
{
while($student = $db->db_fetch_object($result))
while ($student = $db->db_fetch_object($result))
{
$qry_orderSemester ="SELECT * FROM public.tbl_prestudentstatus status
join public.tbl_studiensemester semester using(studiensemester_kurzbz)
where prestudent_id = '$student->prestudent_id'
order by start DESC, datum DESC;";
$qry_orderSemester = "
SELECT
status.*
FROM
public.tbl_prestudentstatus status
JOIN public.tbl_studiensemester semester using(studiensemester_kurzbz)
WHERE
prestudent_id = ".$db->db_add_param($student->prestudent_id, FHC_INTEGER)."
ORDER BY semester.start DESC, status.datum DESC;";
if($result1 = $db->db_query($qry_orderSemester))
if ($result1 = $db->db_query($qry_orderSemester))
{
$prestudentSecond->result = array();
$prestudentFirst->result = array();
while($row = $db->db_fetch_object($result1))
while ($row = $db->db_fetch_object($result1))
{
$prestudentStatus = new prestudent();
@@ -324,17 +402,19 @@ if($result = $db->db_query($qry_student))
}
}
else
$text.= "Fehler";
$text .= "Fehler";
if(!$prestudentSecond->getPrestudentRolle($student->prestudent_id,null,null,'Datum DESC, insertamum DESC'))
$text.= "ERROR:".$prestudentSecond->errormsg;
if (!$prestudentSecond->getPrestudentRolle($student->prestudent_id, null, null, 'Datum DESC, insertamum DESC'))
$text .= "ERROR:".$prestudentSecond->errormsg;
for($i=0; $i<count($prestudentFirst->result); $i++)
$anzahl_stati = count($prestudentFirst->result);
for ($i = 0; $i < $anzahl_stati; $i++)
{
if($prestudentFirst->result[$i]->studiensemester_kurzbz != $prestudentSecond->result[$i]->studiensemester_kurzbz)
if ($prestudentFirst->result[$i]->studiensemester_kurzbz
!= $prestudentSecond->result[$i]->studiensemester_kurzbz)
{
$ausgabe[$student->studiengang][8][]= $student->student_uid;
$text.= "Studenten-uid: ".$student->student_uid."<br>";
$ausgabe[$student->studiengang][8][] = $student->student_uid;
$text .= "Studenten-uid: ".$student->student_uid."<br>";
continue 2;
}
}
@@ -346,24 +426,31 @@ if($result = $db->db_query($qry_student))
*/
$prestudent = new prestudent();
$text.="<br><br>Suche alle aktiven Studenten die keinen Status im aktuellen Studiensemester haben.<br><br>";
$text .= "<br><br>Suche alle aktiven Studenten die keinen Status im aktuellen Studiensemester haben.<br><br>";
$qry ="Select distinct (student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang
from public.tbl_student student
join public.tbl_benutzer benutzer on (benutzer.uid = student.student_uid)
join public.tbl_prestudent prestudent using(prestudent_id)
join public.tbl_prestudentstatus status using(prestudent_id)
where benutzer.aktiv = 'true'";
$qry = "
SELECT
distinct (student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang
FROM
public.tbl_student student
JOIN public.tbl_benutzer benutzer on (benutzer.uid = student.student_uid)
JOIN public.tbl_prestudent prestudent using(prestudent_id)
JOIN public.tbl_prestudentstatus status using(prestudent_id)
WHERE
benutzer.aktiv=true";
if($result = $db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
while ($row = $db->db_fetch_object($result))
{
if(!$prestudent->getLastStatus($row->prestudent_id, $aktSem)
if (!$prestudent->getLastStatus($row->prestudent_id, $aktSem)
&& !$prestudent->getLastStatus($row->prestudent_id, $nextSem))
{
$ausgabe[$row->studiengang][9][]= $row->student_uid;
$text.= $row->student_uid."<br>";
$ausgabe[$row->studiengang][9][] = $row->student_uid;
$text .= $row->student_uid."<br>";
}
}
}
@@ -371,9 +458,9 @@ if($result = $db->db_query($qry))
/*
* Bewerber im aktuellen StSem die in Mischformstudiengängen keine Orgform eingetragen haben
*/
$text.="<br><br>Suche alle Bewerber die keine Orgform eingetragen haben.<br><br>";
$text .= "<br><br>Suche alle Bewerber die keine Orgform eingetragen haben.<br><br>";
$qry ="
$qry = "
SELECT
tbl_prestudent.prestudent_id, tbl_person.vorname, tbl_person.nachname, tbl_prestudent.studiengang_kz as studiengang
FROM
@@ -387,21 +474,24 @@ WHERE
AND (tbl_prestudentstatus.orgform_kurzbz='' OR tbl_prestudentstatus.orgform_kurzbz is null)
AND tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($aktSem);
if($result = $db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
while ($row = $db->db_fetch_object($result))
{
$ausgabe[$row->studiengang][10][]= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id;
$text.= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."<br>";
$ausgabe[$row->studiengang][10][] = $row->vorname.' '.$row->nachname.' '.$row->prestudent_id;
$text .= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."<br>";
}
}
/*
* Studierende im aktuellen StSem die in Mischformstudiengängen keine Orgform eingetragen haben
*/
$text.="<br><br>Suche alle Bewerber die keine Orgform eingetragen haben.<br><br>";
$text .= "<br><br>Suche alle Bewerber die keine Orgform eingetragen haben.<br><br>";
$qry ="
$qry = "
SELECT
tbl_prestudent.prestudent_id, tbl_person.vorname, tbl_person.nachname, tbl_prestudent.studiengang_kz as studiengang
FROM
@@ -415,23 +505,27 @@ WHERE
AND (tbl_prestudentstatus.orgform_kurzbz='' OR tbl_prestudentstatus.orgform_kurzbz is null)
AND tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($aktSem);
if($result = $db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
while ($row = $db->db_fetch_object($result))
{
$ausgabe[$row->studiengang][11][]= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id;
$text.= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."<br>";
$ausgabe[$row->studiengang][11][] = $row->vorname.' '.$row->nachname.' '.$row->prestudent_id;
$text .= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."<br>";
}
}
/*
* Studiengang des Prestudenten passt nicht zu Studiengang des Studienplans
*/
$text.="<br><br>Suche alle bei denen Studiengang des Prestudenten nicht zum Studiengang des Studienplans passt<br><br>";
$text .= "<br><br>Suche alle bei denen Studiengang des Prestudenten
nicht zum Studiengang des Studienplans passt<br><br>";
$qry ="
$qry = "
SELECT
distinct tbl_person.*,
distinct tbl_person.vorname, tbl_person.nachname,
tbl_prestudent.studiengang_kz as studiengang,
tbl_prestudent.prestudent_id
FROM
@@ -440,115 +534,263 @@ FROM
JOIN lehre.tbl_studienplan USING(studienplan_id)
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
JOIN public.tbl_person USING(person_id)
WHERE tbl_prestudent.studiengang_kz<>tbl_studienordnung.studiengang_kz
WHERE
tbl_prestudent.studiengang_kz<>tbl_studienordnung.studiengang_kz
";
if($result = $db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
while ($row = $db->db_fetch_object($result))
{
$ausgabe[$row->studiengang][12][]= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id;
$text.= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."<br>";
$ausgabe[$row->studiengang][12][] = $row->vorname.' '.$row->nachname.' '.$row->prestudent_id;
$text .= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."<br>";
}
}
/*
* Studienplan ist nicht gueltig
*/
$text .= "<br><br>Studienplan ist im gewaehlten Ausbildungssemester nicht gueltig<br><br>";
$qry = "
SELECT
distinct tbl_person.vorname, tbl_person.nachname,
tbl_prestudent.prestudent_id,
tbl_studienplan.bezeichnung,
tbl_prestudent.studiengang_kz as studiengang,
tbl_prestudentstatus.status_kurzbz,
tbl_prestudentstatus.studiensemester_kurzbz,
tbl_prestudentstatus.ausbildungssemester
FROM
public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING(prestudent_id)
JOIN public.tbl_person USING(person_id)
JOIN lehre.tbl_studienplan USING(studienplan_id)
WHERE
status_kurzbz in('Student', 'Interessent','Bewerber','Aufgenommener')
AND NOT EXISTS (
SELECT
1
FROM
lehre.tbl_studienplan_semester
WHERE
studienplan_id=tbl_prestudentstatus.studienplan_id
AND tbl_studienplan_semester.semester = tbl_prestudentstatus.ausbildungssemester
AND tbl_studienplan_semester.studiensemester_kurzbz = Tbl_prestudentstatus.studiensemester_kurzbz
)
AND tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($aktSem);
if ($studiengang_kz != '')
$qry .= " AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($result = $db->db_query($qry))
{
while ($row = $db->db_fetch_object($result))
{
$ausgabe[$row->studiengang][13][] = $row->vorname.' '.$row->nachname.
' ('.$row->studiensemester_kurzbz.' '.$row->status_kurzbz.' '.$row->ausbildungssemester.'.Sem)';
$text .= $row->vorname.' '.$row->nachname.
' ('.$row->studiensemester_kurzbz.' '.$row->status_kurzbz.' '.$row->ausbildungssemester.".Sem)<br>";
}
}
// Ausgabe der Studenten
foreach($ausgabe as $stg_kz=>$value)
foreach ($ausgabe as $stg_kz => $value)
{
//Wenn eine Studiengangskennzahl uebergeben wird, nur diese anzeigen und die anderen ueberspringen
if(isset($_REQUEST['stg_kz']) && $_REQUEST['stg_kz']!=$stg_kz)
if ($studiengang_kz != $stg_kz)
continue;
$studiengang = new studiengang();
$studiengang->load($stg_kz);
echo "<br><br><h2>".$studiengang->bezeichnung ." (".$studiengang->kurzbzlang.")</h2>";
echo "<h2>".$studiengang->bezeichnung." (".$studiengang->kurzbzlang.")</h2>";
echo "<table border='0'>";
foreach($value as $code=>$uid)
foreach ($value as $code => $uid)
{
switch ($code) {
case 1:
echo '<tr><td>&nbsp;</td></tr><tr><td colspan="4"><b>Studenten deren Studiengänge (Prestudent <-> Student) nicht gleich sind</b></td></tr>';
break;
echo '
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="4">
<b>Studenten deren Studiengänge (Prestudent <-> Student) nicht gleich sind</b>
</td>
</tr>';
break;
case 2:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Abrecher die noch aktiv sind</b></td></td>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Abrecher die noch aktiv sind</b></td>
</tr>";
break;
case 3:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Studenten mit nicht identischen Organisationsformeinträgen (Studiengang <-> Prestudentstatus)</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'>
<b>Studenten mit nicht identischen Organisationsformeinträgen
(Studiengang <-> Prestudentstatus)</b>
</td>
</tr>";
break;
case 4:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Abbrecher die wieder einen Status bekommen haben</b></td></td>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Abbrecher die wieder einen Status bekommen haben</b></td>
</tr>";
break;
case 5:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Studenten deren Semester nicht mit dem Ausbildungssemester des aktuellen Status übereinstimmt</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'>
<b>Studenten deren Semester nicht mit dem Ausbildungssemester
des aktuellen Status übereinstimmt</b>
</td>
</tr>";
break;
case 6:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Inaktive Studenten mit einem aktiven Status</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Inaktive Studenten mit einem aktiven Status</b></td>
</tr>";
break;
case 7:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Studenten deren Inskription im aktuellen Semester vor der letzten BIS-Meldung liegt</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'>
<b>Studenten deren Inskription im aktuellen Semester
vor der letzten BIS-Meldung liegt</b>
</td>
</tr>";
break;
case 8:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Studenten die Datum und Studiensemestern in deren Stati in falscher Reihenfolge haben</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'>
<b>Studenten die Datum und Studiensemestern in deren Stati
in falscher Reihenfolge haben</b>
</td>
</tr>";
break;
case 9:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Aktive Studenten die keinen Status im aktuellen oder nächsten Studiensemester haben</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'>
<b>Aktive Studenten die keinen Status im aktuellen
oder nächsten Studiensemester haben</b>
</td>
</tr>";
break;
case 10:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Bewerberstati die keiner Organisationsform zugeordnet sind</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Bewerberstati die keiner Organisationsform zugeordnet sind</b></td>
</tr>";
break;
case 11:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Studierendenstati die keiner Organisationsform zugeordnet sind</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Studierendenstati die keiner Organisationsform zugeordnet sind</b></td>
</tr>";
break;
case 12:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Studienplan passt nicht zum Studiengang des Studierenden</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Studienplan passt nicht zum Studiengang des Studierenden</b></td>
</tr>";
break;
case 13:
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Studienplan ist in diesem Semester nicht gültig</b></td>
</tr>";
break;
default:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Ungültiger Code</b></td></tr>";
break;
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Ungültiger Code</b></td></tr>";
break;
}
foreach ($uid as $student_id)
{
echo "<tr>";
$student = new student();
if($student->load($student_id))
if ($student->load($student_id))
echo '<td>'.$student->vorname.'</td><td>'.$student->nachname.'</td><td>'.$student->uid.'</td>';
else
echo '<td colspan="3">'.$student_id,'</td>';
echo '<td colspan="3">'.$student_id.'</td>';
echo "</tr>";
}
}
echo "</table>";
}
//echo $text;
/*
/**
* Gibt das Datum der BIS Meldung des übergebenen Semesters zurück
* @param string $semester Studiensemester_kurzbz.
* @return Datum der BIS-Meldung des uebergebeben Semesters.
*/
function getDateForInscription ($semester)
function getDateForInscription($semester)
{
global $datum;
$semesterYear = substr($semester,2,6);
$semesterType = substr($semester,0,2);
$semesterYear = substr($semester, 2, 6);
$semesterType = substr($semester, 0, 2);
if($semesterType == 'SS')
if ($semesterType == 'SS')
{
$date = "15.11.".($semesterYear-1);
$date = "15.11.".($semesterYear - 1);
$date = $datum->formatDatum($date, 'Y-m-d');
return $date;
}
if($semesterType == 'WS')
if ($semesterType == 'WS')
{
$date = '15.04'.$semesterYear;
$date = $datum->formatDatum($date, 'Y-m-d');
return $date;
}
}
?>
echo '
</body>
</html>
</html>';
+117
View File
@@ -151,6 +151,123 @@ if(!$result = @$db->db_query("SELECT final FROM lehre.tbl_projektarbeit LIMIT 1"
echo '<br>lehre.tbl_projektarbeit: Spalte final hinzugefuegt';
}
//Spalte insertamum tbl_pruefungsanmeldung zur Ausgabe des Anmeldedatums auf Anmeldelisten
if(!$result = @$db->db_query("SELECT insertamum FROM campus.tbl_pruefungsanmeldung LIMIT 1"))
{
$qry = "ALTER TABLE campus.tbl_pruefungsanmeldung ADD COLUMN insertamum timestamp DEFAULT now();";
if(!$db->db_query($qry))
echo '<strong>campus.tbl_pruefungsanmeldung: '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.tbl_pruefungsanmeldung: Spalte insertamum hinzugefuegt';
}
// Berechtigungs View liefert nur noch aktive Benutzer
if($result = $db->db_query("SELECT view_definition FROM information_schema.views WHERE table_schema='system' AND table_name='vw_berechtigung_nichtrekursiv'"))
{
if($row = $db->db_fetch_object($result))
{
if(!mb_stristr($row->view_definition, 'tbl_benutzer.aktiv = true'))
{
$qry = "
CREATE OR REPLACE VIEW system.vw_berechtigung_nichtrekursiv AS
SELECT
uid, berechtigung_kurzbz,
-- art zusammenfassung und nur die nehmen die gleich sind
CASE WHEN length(art)>length(art1) THEN art1 ELSE art END as art,
oe_kurzbz, kostenstelle_id
FROM
(
-- Normal
SELECT
benutzerberechtigung_id, tbl_benutzerrolle.uid, tbl_benutzerrolle.funktion_kurzbz,
tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1,
tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
FROM
system.tbl_benutzerrolle JOIN system.tbl_berechtigung USING(berechtigung_kurzbz)
-- Rollen
UNION
SELECT
benutzerberechtigung_id, tbl_benutzerrolle.uid, tbl_benutzerrolle.funktion_kurzbz,
tbl_benutzerrolle.rolle_kurzbz, tbl_berechtigung.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_rolleberechtigung.art art1,
tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
FROM
system.tbl_benutzerrolle JOIN system.tbl_rolle USING(rolle_kurzbz)
JOIN system.tbl_rolleberechtigung USING(rolle_kurzbz)
JOIN system.tbl_berechtigung ON(tbl_rolleberechtigung.berechtigung_kurzbz=tbl_berechtigung.berechtigung_kurzbz)
-- Funktionen
UNION
SELECT
benutzerberechtigung_id, tbl_benutzerfunktion.uid, tbl_benutzerrolle.funktion_kurzbz,
tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1,
tbl_benutzerfunktion.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
FROM
system.tbl_benutzerrolle JOIN public.tbl_benutzerfunktion USING(funktion_kurzbz)
WHERE
(tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now())
AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now())
-- Funktion Mitarbeiter
UNION
SELECT
benutzerberechtigung_id, vw_mitarbeiter.uid, tbl_benutzerrolle.funktion_kurzbz,
tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1,
tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
FROM
system.tbl_benutzerrolle, campus.vw_mitarbeiter
WHERE
tbl_benutzerrolle.funktion_kurzbz='Mitarbeiter' and vw_mitarbeiter.aktiv
-- Funktion Student
UNION
SELECT
benutzerberechtigung_id, vw_student.uid, tbl_benutzerrolle.funktion_kurzbz,
tbl_benutzerrolle.rolle_kurzbz, tbl_benutzerrolle.berechtigung_kurzbz, tbl_benutzerrolle.art, tbl_benutzerrolle.art art1,
tbl_benutzerrolle.oe_kurzbz, tbl_benutzerrolle.studiensemester_kurzbz, tbl_benutzerrolle.start,
tbl_benutzerrolle.ende, tbl_benutzerrolle.negativ, tbl_benutzerrolle.updateamum, tbl_benutzerrolle.updatevon,
tbl_benutzerrolle.insertamum, tbl_benutzerrolle.insertvon,tbl_benutzerrolle.kostenstelle_id,tbl_benutzerrolle.anmerkung
FROM
system.tbl_benutzerrolle, campus.vw_student
WHERE
tbl_benutzerrolle.funktion_kurzbz='Student' and vw_student.aktiv
) as a
JOIN public.tbl_benutzer USING(uid)
WHERE
-- Datumsgrenzen beruecksichtigen
tbl_benutzer.aktiv = true
AND (a.start<=now() OR a.start is null)
AND (a.ende>=now() OR a.ende is null)
-- Neagtiv Rechte entfernen
AND not negativ
AND NOT EXISTS(SELECT
1
FROM
system.tbl_benutzerrolle JOIN system.tbl_berechtigung USING(berechtigung_kurzbz) WHERE uid=a.uid AND berechtigung_kurzbz=a.berechtigung_kurzbz AND negativ);
GRANT SELECT ON system.vw_berechtigung_nichtrekursiv TO web;
GRANT SELECT ON system.vw_berechtigung_nichtrekursiv TO vilesci;
";
if(!$db->db_query($qry))
echo '<strong>system.vw_berechtigung_nichtrekursiv:'.$db->db_last_error().'</strong><br>';
else
echo '<br>system.vw_berechtigung_nichtrekursiv angepasst damit nur aktive Benutzer beruecksichtigt werden';
}
}
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
+69 -22
View File
@@ -212,6 +212,58 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<style:style style:name="fr3" style:family="graphic" style:parent-style-name="Graphics">
<style:graphic-properties style:run-through="foreground" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="bottom" style:vertical-rel="page-content" style:horizontal-pos="from-left" style:horizontal-rel="page-content" style:mirror="none" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
</style:style>
<text:list-style style:name="L1">
<text:list-level-style-bullet text:level="1" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.4cm" fo:text-indent="-0.4cm" fo:margin-left="0.4cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="2" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.905cm" fo:text-indent="-0.635cm" fo:margin-left="1.905cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="3" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.54cm" fo:text-indent="-0.635cm" fo:margin-left="2.54cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="4" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="3.175cm" fo:text-indent="-0.635cm" fo:margin-left="3.175cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="5" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="3.81cm" fo:text-indent="-0.635cm" fo:margin-left="3.81cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="6" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="4.445cm" fo:text-indent="-0.635cm" fo:margin-left="4.445cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="7" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="5.08cm" fo:text-indent="-0.635cm" fo:margin-left="5.08cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="8" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="5.715cm" fo:text-indent="-0.635cm" fo:margin-left="5.715cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="9" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="6.35cm" fo:text-indent="-0.635cm" fo:margin-left="6.35cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="10" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="6.985cm" fo:text-indent="-0.635cm" fo:margin-left="6.985cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
</text:list-style>
</office:automatic-styles>
<office:body>
<xsl:apply-templates select="zertifikat"/>
@@ -300,11 +352,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<table:table-cell table:style-name="Tabelle1.B2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:choose>
<xsl:when test="sws=''">
<xsl:when test="sws_lv=''">
<xsl:text>-</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="sws"/>
<xsl:value-of select="sws_lv"/>
</xsl:otherwise>
</xsl:choose>
</text:p>
@@ -341,16 +393,15 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<text:p text:style-name="P25"><text:tab/>angerechnet (ar), nicht beurteilt (nb), bestanden (b), erfolgreich absolviert (ea), nicht erfolgreich absolviert (nea)</text:p>
<text:p text:style-name="P20"/>
<text:p text:style-name="P21"/>
<text:p text:style-name="P22">Inhalte der Lehrveranstaltung:</text:p>
<text:p text:style-name="P22">Nach erfolgreichem Abschluss sind die Studierenden in der Lage, ...</text:p>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22">
<xsl:call-template name="replace">
<xsl:with-param name="string" select="lehrziele"/>
</xsl:call-template>
<text:list xml:id="list4694811147287548861" text:style-name="L1">
<xsl:apply-templates select="lehrziele_arr"/>
</text:list>
</text:p>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
@@ -400,20 +451,16 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</text:p>
</office:text>
</xsl:template>
<xsl:template name="replace">
<xsl:param name="string"/>
<xsl:choose>
<xsl:when test="contains($string,'\n')">
<xsl:value-of select="substring-before($string,'\n')"/>
<text:line-break/>
<xsl:call-template name="replace">
<xsl:with-param name="string" select="substring-after($string,'\n')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string"/>
</xsl:otherwise>
</xsl:choose>
<xsl:template match="lehrziele_arr">
<xsl:apply-templates select="lehrziel"/>
</xsl:template>
<xsl:template match="lehrziel">
<text:list-item>
<text:p text:style-name="P21"><xsl:value-of select="."/></text:p>
</text:list-item>
</xsl:template>
</xsl:stylesheet>
+70 -22
View File
@@ -212,6 +212,59 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<style:style style:name="fr3" style:family="graphic" style:parent-style-name="Graphics">
<style:graphic-properties style:run-through="foreground" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="bottom" style:vertical-rel="page-content" style:horizontal-pos="from-left" style:horizontal-rel="page-content" style:mirror="none" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
</style:style>
<text:list-style style:name="L1">
<text:list-level-style-bullet text:level="1" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.4cm" fo:text-indent="-0.4cm" fo:margin-left="0.4cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="2" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.905cm" fo:text-indent="-0.635cm" fo:margin-left="1.905cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="3" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.54cm" fo:text-indent="-0.635cm" fo:margin-left="2.54cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="4" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="3.175cm" fo:text-indent="-0.635cm" fo:margin-left="3.175cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="5" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="3.81cm" fo:text-indent="-0.635cm" fo:margin-left="3.81cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="6" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="4.445cm" fo:text-indent="-0.635cm" fo:margin-left="4.445cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="7" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="5.08cm" fo:text-indent="-0.635cm" fo:margin-left="5.08cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="8" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="5.715cm" fo:text-indent="-0.635cm" fo:margin-left="5.715cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="9" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="6.35cm" fo:text-indent="-0.635cm" fo:margin-left="6.35cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="10" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="6.985cm" fo:text-indent="-0.635cm" fo:margin-left="6.985cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
</text:list-style>
</office:automatic-styles>
<office:body>
<xsl:apply-templates select="zertifikat"/>
@@ -300,11 +353,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<table:table-cell table:style-name="Tabelle1.B2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:choose>
<xsl:when test="sws=''">
<xsl:when test="sws_lv=''">
<xsl:text>-</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="sws"/>
<xsl:value-of select="sws_lv"/>
</xsl:otherwise>
</xsl:choose>
</text:p>
@@ -341,16 +394,15 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<text:p text:style-name="P25"><text:tab/>angerechnet (ar), nicht beurteilt (nb), bestanden (b), erfolgreich absolviert (ea), nicht erfolgreich absolviert (nea)</text:p>
<text:p text:style-name="P20"/>
<text:p text:style-name="P21"/>
<text:p text:style-name="P22">Inhalte der Lehrveranstaltung:</text:p>
<text:p text:style-name="P22">Nach erfolgreichem Abschluss sind die Studierenden in der Lage, ...</text:p>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22">
<xsl:call-template name="replace">
<xsl:with-param name="string" select="lehrziele"/>
</xsl:call-template>
<text:list xml:id="list4694811147287548861" text:style-name="L1">
<xsl:apply-templates select="lehrziele_arr"/>
</text:list>
</text:p>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
@@ -400,20 +452,16 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</text:p>
</office:text>
</xsl:template>
<xsl:template name="replace">
<xsl:param name="string"/>
<xsl:choose>
<xsl:when test="contains($string,'\n')">
<xsl:value-of select="substring-before($string,'\n')"/>
<text:line-break/>
<xsl:call-template name="replace">
<xsl:with-param name="string" select="substring-after($string,'\n')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string"/>
</xsl:otherwise>
</xsl:choose>
<xsl:template match="lehrziele_arr">
<xsl:apply-templates select="lehrziel"/>
</xsl:template>
<xsl:template match="lehrziel">
<text:list-item>
<text:p text:style-name="P21"><xsl:value-of select="."/></text:p>
</text:list-item>
</xsl:template>
</xsl:stylesheet>
+474
View File
@@ -0,0 +1,474 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
>
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:template match="zertifikate">
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2">
<office:scripts/>
<office:font-face-decls>
<style:font-face style:name="Mangal2" svg:font-family="Mangal"/>
<style:font-face style:name="Mangal" svg:font-family="Mangal" style:font-family-generic="roman"/>
<style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
<style:font-face style:name="Arial" svg:font-family="Arial" style:font-adornments="Standard" style:font-family-generic="swiss" style:font-pitch="variable"/>
<style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable"/>
<style:font-face style:name="Liberation Sans1" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="Mangal1" svg:font-family="Mangal" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="Microsoft YaHei" svg:font-family="&apos;Microsoft YaHei&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="SimSun" svg:font-family="SimSun" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="Tahoma" svg:font-family="Tahoma" style:font-family-generic="system" style:font-pitch="variable"/>
</office:font-face-decls>
<office:automatic-styles>
<style:style style:name="Tabelle3" style:family="table">
<style:table-properties style:width="16.401cm" fo:margin-top="0cm" fo:margin-bottom="0cm" table:align="margins" style:may-break-between-rows="false"/>
</style:style>
<style:style style:name="Tabelle3.A" style:family="table-column">
<style:table-column-properties style:column-width="5.001cm" style:rel-column-width="19981*"/>
</style:style>
<style:style style:name="Tabelle3.B" style:family="table-column">
<style:table-column-properties style:column-width="3.9cm" style:rel-column-width="15583*"/>
</style:style>
<style:style style:name="Tabelle3.C" style:family="table-column">
<style:table-column-properties style:column-width="7.5cm" style:rel-column-width="29971*"/>
</style:style>
<style:style style:name="Tabelle3.A1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="bottom" fo:padding-left="0cm" fo:padding-right="0cm" fo:padding-top="0.101cm" fo:padding-bottom="0.101cm" fo:border-left="none" fo:border-right="none" fo:border-top="none" fo:border-bottom="1pt dotted #000000"/>
</style:style>
<style:style style:name="Tabelle3.B1" style:family="table-cell">
<style:table-cell-properties fo:padding-left="0cm" fo:padding-right="0cm" fo:padding-top="0.101cm" fo:padding-bottom="0.101cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle3.C1" style:family="table-cell">
<style:table-cell-properties fo:padding-left="0cm" fo:padding-right="0cm" fo:padding-top="0.101cm" fo:padding-bottom="0.101cm" fo:border-left="none" fo:border-right="none" fo:border-top="none" fo:border-bottom="1pt dotted #000000"/>
</style:style>
<style:style style:name="Tabelle3.A2" style:family="table-cell">
<style:table-cell-properties fo:padding-left="0cm" fo:padding-right="0cm" fo:padding-top="0.101cm" fo:padding-bottom="0.101cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle3.B2" style:family="table-cell">
<style:table-cell-properties fo:padding-left="0cm" fo:padding-right="0cm" fo:padding-top="0.101cm" fo:padding-bottom="0.101cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle3.C2" style:family="table-cell">
<style:table-cell-properties fo:padding-left="0cm" fo:padding-right="0cm" fo:padding-top="0.101cm" fo:padding-bottom="0.101cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle1" style:family="table">
<style:table-properties style:width="16.401cm" fo:margin-top="0.199cm" fo:margin-bottom="0cm" table:align="margins"/>
</style:style>
<style:style style:name="Tabelle1.A" style:family="table-column">
<style:table-column-properties style:column-width="10.437cm" style:rel-column-width="41702*"/>
</style:style>
<style:style style:name="Tabelle1.B" style:family="table-column">
<style:table-column-properties style:column-width="1.988cm" style:rel-column-width="7944*"/>
</style:style>
<style:style style:name="Tabelle1.D" style:family="table-column">
<style:table-column-properties style:column-width="1.988cm" style:rel-column-width="7945*"/>
</style:style>
<style:style style:name="Tabelle1.1" style:family="table-row">
<style:table-row-properties style:min-row-height="0.75cm"/>
</style:style>
<style:style style:name="Tabelle1.A1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#999999" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000">
<style:background-image/>
</style:table-cell-properties>
</style:style>
<style:style style:name="Tabelle1.D1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#999999" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border="0.05pt solid #000000">
<style:background-image/>
</style:table-cell-properties>
</style:style>
<style:style style:name="Tabelle1.A2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.071cm" fo:padding-bottom="0.071cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.B2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.071cm" fo:padding-bottom="0.071cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.C2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.071cm" fo:padding-bottom="0.071cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.D2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.071cm" fo:padding-bottom="0.071cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.A7" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.071cm" fo:padding-bottom="0.071cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="9pt" officeooo:rsid="000de2a1" officeooo:paragraph-rsid="000de2a1" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P2" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P3" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="9pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P4" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties>
<style:tab-stops>
<style:tab-stop style:position="4.498cm"/>
</style:tab-stops>
</style:paragraph-properties>
<style:text-properties fo:font-size="9pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P5" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="16pt" fo:font-weight="bold" officeooo:rsid="000de2a1" officeooo:paragraph-rsid="000de2a1" style:font-size-asian="16pt" style:font-weight-asian="bold" style:font-size-complex="16pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P6" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="2pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="1.75pt" style:font-size-complex="2pt"/>
</style:style>
<style:style style:name="P7" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="5pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="1.75pt" style:font-size-complex="2pt"/>
</style:style>
<style:style style:name="P8" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P9" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P10" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="left" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P11" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P12" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P13" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:text-properties fo:font-size="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P14" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:text-properties fo:font-size="9pt" officeooo:rsid="0013c612" officeooo:paragraph-rsid="0013c612" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P15" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:break-before="page"/>
<style:text-properties fo:font-size="16pt" fo:font-weight="bold" officeooo:rsid="000de2a1" officeooo:paragraph-rsid="000de2a1" style:font-size-asian="16pt" style:font-weight-asian="bold" style:font-size-complex="16pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P16" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="16pt" officeooo:rsid="003032c4" officeooo:paragraph-rsid="003032c4" style:font-size-asian="16pt" style:font-size-complex="16pt"/>
</style:style>
<style:style style:name="P17" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="9pt" officeooo:rsid="000de2a1" officeooo:paragraph-rsid="000de2a1" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P18" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties>
<style:tab-stops>
<style:tab-stop style:position="4.498cm"/>
</style:tab-stops>
</style:paragraph-properties>
<style:text-properties fo:font-size="9pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P19" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties>
<style:tab-stops>
<style:tab-stop style:position="4.498cm"/>
</style:tab-stops>
</style:paragraph-properties>
<style:text-properties fo:font-size="9pt" officeooo:rsid="003032c4" officeooo:paragraph-rsid="003032c4" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P20" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties>
<style:tab-stops>
<style:tab-stop style:position="1.499cm"/>
</style:tab-stops>
</style:paragraph-properties>
<style:text-properties fo:font-size="6pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="0024d69b" style:font-size-asian="6pt" style:font-size-complex="6pt"/>
</style:style>
<style:style style:name="P21" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Arial" fo:font-size="9pt" officeooo:rsid="003032c4" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P22" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Arial" fo:font-size="9pt" officeooo:rsid="003032c4" officeooo:paragraph-rsid="003032c4" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P23" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:text-properties fo:font-size="9pt" officeooo:rsid="003032c4" officeooo:paragraph-rsid="003032c4" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P24" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" officeooo:rsid="00317832" officeooo:paragraph-rsid="00317832" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P25" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties style:font-name="Arial" fo:font-size="6pt" officeooo:rsid="003032c4" officeooo:paragraph-rsid="003032c4" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="T1" style:family="text">
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T2" style:family="text">
<style:text-properties officeooo:rsid="003032c4"/>
</style:style>
<style:style style:name="T3" style:family="text">
<style:text-properties officeooo:rsid="00317832"/>
</style:style>
<style:style style:name="fr1" style:family="graphic" style:parent-style-name="Frame">
<style:graphic-properties style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="bottom" style:vertical-rel="page-content" style:horizontal-pos="center" style:horizontal-rel="page-content" fo:padding="0cm" fo:border="none" style:shadow="none" draw:shadow-opacity="100%"/>
</style:style>
<style:style style:name="fr2" style:family="graphic" style:parent-style-name="Graphics">
<style:graphic-properties style:run-through="foreground" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="bottom" style:vertical-rel="page-content" style:horizontal-pos="from-left" style:horizontal-rel="page-content" style:mirror="none" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
</style:style>
<style:style style:name="fr3" style:family="graphic" style:parent-style-name="Graphics">
<style:graphic-properties style:run-through="foreground" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="bottom" style:vertical-rel="page-content" style:horizontal-pos="from-left" style:horizontal-rel="page-content" style:mirror="none" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
</style:style>
<text:list-style style:name="L1">
<text:list-level-style-bullet text:level="1" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.4cm" fo:text-indent="-0.4cm" fo:margin-left="0.4cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="2" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.905cm" fo:text-indent="-0.635cm" fo:margin-left="1.905cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="3" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.54cm" fo:text-indent="-0.635cm" fo:margin-left="2.54cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="4" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="3.175cm" fo:text-indent="-0.635cm" fo:margin-left="3.175cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="5" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="3.81cm" fo:text-indent="-0.635cm" fo:margin-left="3.81cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="6" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="4.445cm" fo:text-indent="-0.635cm" fo:margin-left="4.445cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="7" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="5.08cm" fo:text-indent="-0.635cm" fo:margin-left="5.08cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="8" text:style-name="Bullet_20_Symbols" text:bullet-char="◦">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="5.715cm" fo:text-indent="-0.635cm" fo:margin-left="5.715cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="9" text:style-name="Bullet_20_Symbols" text:bullet-char="▪">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="6.35cm" fo:text-indent="-0.635cm" fo:margin-left="6.35cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
<text:list-level-style-bullet text:level="10" text:style-name="Bullet_20_Symbols" text:bullet-char="•">
<style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
<style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="6.985cm" fo:text-indent="-0.635cm" fo:margin-left="6.985cm"/>
</style:list-level-properties>
</text:list-level-style-bullet>
</text:list-style>
</office:automatic-styles>
<office:body>
<xsl:apply-templates select="zertifikat"/>
</office:body>
</office:document-content>
</xsl:template>
<xsl:template match="zertifikat">
<office:text text:use-soft-page-breaks="true" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0">
<text:sequence-decls>
<text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
<text:sequence-decl text:display-outline-level="0" text:name="Table"/>
<text:sequence-decl text:display-outline-level="0" text:name="Text"/>
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
</text:sequence-decls>
<text:p text:style-name="P15">ZERTIFIKAT</text:p>
<text:p text:style-name="P16">
<text:span text:style-name="T1">Freifächer</text:span>
</text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P2">Personenkennzeichen: <xsl:value-of select="matrikelnr" /></text:p>
<text:p text:style-name="P2"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P7"/>
<text:p text:style-name="P4">Vorname/Familienname:<text:tab/>
<text:span text:style-name="T1"><xsl:value-of select="name"/></text:span>
</text:p>
<text:p text:style-name="P7"/>
<text:p text:style-name="P4">Geburtsdatum:<text:tab/><xsl:value-of select="gebdatum" /></text:p>
<text:p text:style-name="P4"/>
<text:p text:style-name="P19">
<xsl:choose>
<xsl:when test="geschlecht='m'">
<xsl:text>Herr </xsl:text>
</xsl:when>
<xsl:when test="geschlecht='w'">
<xsl:text>Frau </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Herr/Frau </xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="name"/> hat im <xsl:value-of select="studiensemester" /> das folgende Freifach an der FH Technikum Wien belegt:</text:p>
<text:p text:style-name="P19"/>
<table:table table:name="Tabelle1" table:style-name="Tabelle1">
<table:table-column table:style-name="Tabelle1.A"/>
<table:table-column table:style-name="Tabelle1.B"/>
<table:table-column table:style-name="Tabelle1.D"/>
<table:table-column table:style-name="Tabelle1.D"/>
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P11">Lehrveranstaltung</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P12">SWS</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P12">ECTS</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D1" office:value-type="string">
<text:p text:style-name="P12">Note</text:p>
</table:table-cell>
</table:table-row>
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A7" office:value-type="string">
<text:p text:style-name="P10"><xsl:value-of select="bezeichnung"/></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:choose>
<xsl:when test="sws_lv=''">
<xsl:text>-</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="sws_lv"/>
</xsl:otherwise>
</xsl:choose>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.C2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:choose>
<xsl:when test="ects=''">
<xsl:text>-</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="ects"/>
</xsl:otherwise>
</xsl:choose>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:choose>
<xsl:when test="note=''">
<xsl:text>-</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="note"/>
</xsl:otherwise>
</xsl:choose>
</text:p>
</table:table-cell>
</table:table-row>
</table:table>
<text:p text:style-name="P6"/>
<text:p text:style-name="P6"/>
<text:p text:style-name="P25">Notenstufen:<text:tab/>Sehr gut (1), Gut (2), Befriedigend (3), Genügend (4), Nicht genügend (5), mit Erfolg teilgenommen (met), nicht teilgenommen (nt), teilgenommen(tg),</text:p>
<text:p text:style-name="P25"><text:tab/>angerechnet (ar), nicht beurteilt (nb), bestanden (b), erfolgreich absolviert (ea), nicht erfolgreich absolviert (nea)</text:p>
<text:p text:style-name="P20"/>
<text:p text:style-name="P21"/>
<text:p text:style-name="P22">Nach erfolgreichem Abschluss sind die Studierenden in der Lage, ...</text:p>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22">
<!--<xsl:call-template name="replace">
<xsl:with-param name="string" select="lehrziele"/>
</xsl:call-template>-->
</text:p>
<text:list xml:id="list4694811147287548861" text:style-name="L1">
<xsl:apply-templates select="lehrziele_arr"/>
</text:list>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22"/>
<text:p text:style-name="P22">
<draw:frame draw:style-name="fr1" draw:name="Rahmen1" text:anchor-type="char" draw:z-index="0">
<draw:text-box fo:min-height="0.499cm" fo:min-width="2cm">
<table:table table:name="Tabelle3" table:style-name="Tabelle3">
<table:table-column table:style-name="Tabelle3.A"/>
<table:table-column table:style-name="Tabelle3.B"/>
<table:table-column table:style-name="Tabelle3.C"/>
<table:table-row>
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P17">
<draw:frame xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" draw:style-name="fr3" draw:name="Bild1" text:anchor-type="char" svg:x="5.2cm" svg:width="3.51cm" svg:height="3.51cm" draw:z-index="1">
<draw:image xlink:href="Pictures/10000201000002290000022939997AEC.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
</draw:frame>
<xsl:value-of select="ort_datum" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.B1" office:value-type="string">
<text:p text:style-name="P16"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.C1" office:value-type="string">
<text:p text:style-name="P16"/>
</table:table-cell>
</table:table-row>
<table:table-row>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P17">Ort, Datum</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.B2" office:value-type="string">
<text:p text:style-name="P16"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.C2" office:value-type="string">
<text:p text:style-name="P14"><xsl:value-of select="lvleiter" /></text:p>
<text:p text:style-name="P23">LeiterIn Freifach</text:p>
</table:table-cell>
</table:table-row>
</table:table>
</draw:text-box>
</draw:frame>
</text:p>
</office:text>
</xsl:template>
<xsl:template name="replace">
<xsl:param name="string"/>
<xsl:choose>
<xsl:when test="contains($string,'\n')">
<xsl:value-of select="substring-before($string,'\n')"/>
<text:line-break/>
<xsl:call-template name="replace">
<xsl:with-param name="string" select="substring-after($string,'\n')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="lehrziele_arr">
<xsl:apply-templates select="lehrziel"/>
</xsl:template>
<xsl:template match="lehrziel">
<text:list-item>
<text:p text:style-name="P21"><xsl:value-of select="."/></text:p>
</text:list-item>
</xsl:template>
</xsl:stylesheet>
+3 -2
View File
@@ -340,11 +340,11 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<table:table-cell table:style-name="Tabelle1.B2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:choose>
<xsl:when test="sws=''">
<xsl:when test="sws_lv=''">
<xsl:text>-</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="sws"/>
<xsl:value-of select="sws_lv"/>
</xsl:otherwise>
</xsl:choose>
</text:p>
@@ -471,3 +471,4 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</xsl:template>
</xsl:stylesheet>
+4 -4
View File
@@ -549,10 +549,10 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:if test="sws=''">
<xsl:if test="sws_lv=''">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="sws"/>
<xsl:value-of select="sws_lv"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.C2" office:value-type="string">
@@ -649,7 +649,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B8" office:value-type="string">
<text:p text:style-name="P13">
<xsl:value-of select="sws"/>
<xsl:value-of select="sws_lv"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.C8" office:value-type="string">
@@ -666,4 +666,4 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-cell>
</table:table-row>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
+657
View File
@@ -0,0 +1,657 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
>
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:template match="zeugnisse">
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2">
<office:scripts/>
<office:font-face-decls>
<style:font-face style:name="Mangal2" svg:font-family="Mangal"/>
<style:font-face style:name="Mangal" svg:font-family="Mangal" style:font-family-generic="roman"/>
<style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
<style:font-face style:name="Arial" svg:font-family="Arial" style:font-adornments="Standard" style:font-family-generic="swiss" style:font-pitch="variable"/>
<style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable"/>
<style:font-face style:name="Liberation Sans1" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="Mangal1" svg:font-family="Mangal" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="Microsoft YaHei" svg:font-family="&apos;Microsoft YaHei&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="SimSun" svg:font-family="SimSun" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="Tahoma" svg:font-family="Tahoma" style:font-family-generic="system" style:font-pitch="variable"/>
</office:font-face-decls>
<office:automatic-styles>
<style:style style:name="Tabelle1" style:family="table">
<style:table-properties style:width="16.401cm" fo:margin-top="0.199cm" fo:margin-bottom="0cm" table:align="margins"/>
</style:style>
<style:style style:name="Tabelle1.A" style:family="table-column">
<style:table-column-properties style:column-width="10.437cm" style:rel-column-width="41702*"/>
</style:style>
<style:style style:name="Tabelle1.B" style:family="table-column">
<style:table-column-properties style:column-width="1.988cm" style:rel-column-width="7944*"/>
</style:style>
<style:style style:name="Tabelle1.D" style:family="table-column">
<style:table-column-properties style:column-width="1.988cm" style:rel-column-width="7945*"/>
</style:style>
<style:style style:name="Tabelle1.1" style:family="table-row">
<style:table-row-properties style:min-row-height="0.75cm"/>
</style:style>
<style:style style:name="Tabelle1.A1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#999999" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000">
<style:background-image/>
</style:table-cell-properties>
</style:style>
<style:style style:name="Tabelle1.D1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#999999" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border="0.05pt solid #000000">
<style:background-image/>
</style:table-cell-properties>
</style:style>
<style:style style:name="Tabelle1.A2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.B2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.C2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.D2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.A3" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.B3" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.C3" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.D3" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.A4" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.B4" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.C4" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.D4" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.A5" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.B5" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.C5" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.D5" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.A6" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.B6" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.C6" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.D6" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.A7" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.B7" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.07cm" fo:padding-bottom="0.07cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.C7" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.D7" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.A8" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.B8" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.C8" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.D8" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle2" style:family="table">
<style:table-properties style:width="16.401cm" table:align="margins"/>
</style:style>
<style:style style:name="Tabelle2.A" style:family="table-column">
<style:table-column-properties style:column-width="10.437cm" style:rel-column-width="41702*"/>
</style:style>
<style:style style:name="Tabelle2.B" style:family="table-column">
<style:table-column-properties style:column-width="5.964cm" style:rel-column-width="23833*"/>
</style:style>
<style:style style:name="Tabelle2.1" style:family="table-row">
<style:table-row-properties style:min-row-height="0.75cm"/>
</style:style>
<style:style style:name="Tabelle2.A1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#999999" fo:padding="0.097cm" fo:border="0.05pt solid #000000">
<style:background-image/>
</style:table-cell-properties>
</style:style>
<style:style style:name="Tabelle2.A2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle2.B2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="0.05pt solid #000000" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle3" style:family="table">
<style:table-properties style:width="16.401cm" fo:margin-top="0cm" fo:margin-bottom="0cm" table:align="margins" style:may-break-between-rows="false"/>
</style:style>
<style:style style:name="Tabelle3.A" style:family="table-column">
<style:table-column-properties style:column-width="5.001cm" style:rel-column-width="19981*"/>
</style:style>
<style:style style:name="Tabelle3.B" style:family="table-column">
<style:table-column-properties style:column-width="3.9cm" style:rel-column-width="15583*"/>
</style:style>
<style:style style:name="Tabelle3.C" style:family="table-column">
<style:table-column-properties style:column-width="7.5cm" style:rel-column-width="29971*"/>
</style:style>
<style:style style:name="Tabelle3.A1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="" fo:padding-left="0cm" fo:padding-right="0cm" fo:padding-top="0.101cm" fo:padding-bottom="0.101cm" fo:border-left="none" fo:border-right="none" fo:border-top="none" fo:border-bottom="1pt dotted #000000"/>
</style:style>
<style:style style:name="Tabelle3.B1" style:family="table-cell">
<style:table-cell-properties fo:padding-left="0cm" fo:padding-right="0cm" fo:padding-top="0.101cm" fo:padding-bottom="0.101cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle3.C1" style:family="table-cell">
<style:table-cell-properties fo:padding-left="0cm" fo:padding-right="0cm" fo:padding-top="0.101cm" fo:padding-bottom="0.101cm" fo:border-left="none" fo:border-right="none" fo:border-top="none" fo:border-bottom="1pt dotted #000000"/>
</style:style>
<style:style style:name="Tabelle3.A2" style:family="table-cell">
<style:table-cell-properties fo:padding-left="0cm" fo:padding-right="0cm" fo:padding-top="0.101cm" fo:padding-bottom="0.101cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle3.B2" style:family="table-cell">
<style:table-cell-properties fo:padding-left="0cm" fo:padding-right="0cm" fo:padding-top="0.101cm" fo:padding-bottom="0.101cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle3.C2" style:family="table-cell">
<style:table-cell-properties fo:padding-left="0cm" fo:padding-right="0cm" fo:padding-top="0.101cm" fo:padding-bottom="0.101cm" fo:border="none"/>
</style:style>
<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="9pt" officeooo:rsid="000de2a1" officeooo:paragraph-rsid="000de2a1" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P2" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P3" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="9pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P4" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties>
<style:tab-stops>
<style:tab-stop style:position="4.498cm"/>
</style:tab-stops>
</style:paragraph-properties>
<style:text-properties fo:font-size="9pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P5" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="16pt" officeooo:rsid="000de2a1" officeooo:paragraph-rsid="000de2a1" style:font-size-asian="16pt" style:font-size-complex="16pt"/>
</style:style>
<style:style style:name="P6" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="16pt" fo:font-weight="bold" officeooo:rsid="000de2a1" officeooo:paragraph-rsid="000de2a1" style:font-size-asian="16pt" style:font-weight-asian="bold" style:font-size-complex="16pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P7" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="6pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="5.25pt" style:font-size-complex="6pt"/>
</style:style>
<style:style style:name="P8" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:text-properties fo:font-size="9pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P9" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P10" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P11" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" officeooo:rsid="0010009a" officeooo:paragraph-rsid="0010009a" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P12" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" officeooo:rsid="0010009a" officeooo:paragraph-rsid="0010009a" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P13" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P14" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P15" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P16" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:text-properties fo:font-size="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P17" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:text-properties fo:font-size="9pt" officeooo:rsid="0013c612" officeooo:paragraph-rsid="0013c612" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P18" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:background-color="#999999">
<style:background-image/>
</style:paragraph-properties>
<style:text-properties fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P19" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="9pt" officeooo:rsid="0013c612" officeooo:paragraph-rsid="0010009a" style:font-size-asian="7.84999990463257pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P20" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="9pt" officeooo:rsid="000de2a1" officeooo:paragraph-rsid="000de2a1" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P21" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="9pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P22" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties>
<style:tab-stops>
<style:tab-stop style:position="1.499cm"/>
</style:tab-stops>
</style:paragraph-properties>
<style:text-properties fo:font-size="6pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="0024d69b" style:font-size-asian="6pt" style:font-size-complex="6pt"/>
</style:style>
<style:style style:name="P23" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties>
<style:tab-stops>
<style:tab-stop style:position="1.499cm"/>
</style:tab-stops>
</style:paragraph-properties>
<style:text-properties fo:font-size="6pt" officeooo:rsid="0010009a" officeooo:paragraph-rsid="0010009a" style:font-size-asian="6pt" style:font-size-complex="6pt"/>
</style:style>
<style:style style:name="P24" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="16pt" fo:font-weight="bold" officeooo:rsid="000de2a1" officeooo:paragraph-rsid="000de2a1" style:font-size-asian="16pt" style:font-weight-asian="bold" style:font-size-complex="16pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P25" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="16pt" officeooo:rsid="000de2a1" officeooo:paragraph-rsid="000de2a1" style:font-size-asian="16pt" style:font-size-complex="16pt"/>
</style:style>
<style:style style:name="P26" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="2pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="1.75pt" style:font-size-complex="2pt"/>
</style:style>
<style:style style:name="P27" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="5pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="1.75pt" style:font-size-complex="2pt"/>
</style:style>
<style:style style:name="P28" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" fo:color="#ffffff" fo:font-weight="bold" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P29" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" fo:color="#ffffff" fo:font-weight="bold" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Seitenumbruch" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:break-before="page"/>
<style:text-properties fo:font-size="16pt" fo:font-weight="bold" officeooo:rsid="000de2a1" officeooo:paragraph-rsid="000de2a1" style:font-size-asian="16pt" style:font-weight-asian="bold" style:font-size-complex="16pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T1" style:family="text">
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="T2" style:family="text">
<style:text-properties officeooo:rsid="0024d69b"/>
</style:style>
<style:style style:name="T3" style:family="text">
<style:text-properties officeooo:rsid="0027b377"/>
</style:style>
<style:style style:name="T4" style:family="text">
<style:text-properties style:text-position="super 58%"/>
</style:style>
<style:style style:name="fr1" style:family="graphic" style:parent-style-name="Frame">
<style:graphic-properties style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="from-top" style:vertical-rel="page-content" style:horizontal-pos="center" style:horizontal-rel="page-content" fo:padding="0cm" fo:border="none" style:shadow="none" draw:shadow-opacity="100%"/>
</style:style>
<style:style style:name="fr2" style:family="graphic" style:parent-style-name="Frame">
<style:graphic-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0cm" fo:margin-bottom="0cm" style:vertical-pos="top" style:vertical-rel="paragraph-content" style:horizontal-pos="left" style:horizontal-rel="paragraph" fo:padding="0cm" fo:border="none" style:shadow="none" draw:shadow-opacity="100%"/>
</style:style>
<style:style style:name="fr3" style:family="graphic" style:parent-style-name="Graphics">
<style:graphic-properties style:run-through="foreground" style:wrap="run-through" style:number-wrapped-paragraphs="no-limit" style:vertical-pos="bottom" style:vertical-rel="page-content" style:horizontal-pos="from-left" style:horizontal-rel="page-content" style:mirror="none" fo:clip="rect(0cm, 0cm, 0cm, 0cm)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="100%" draw:color-inversion="false" draw:image-opacity="100%" draw:color-mode="standard"/>
</style:style>
</office:automatic-styles>
<office:body>
<xsl:apply-templates select="zeugnis"/>
</office:body>
</office:document-content>
</xsl:template>
<xsl:template match="zeugnis">
<office:text text:use-soft-page-breaks="true" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0">
<text:sequence-decls>
<text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
<text:sequence-decl text:display-outline-level="0" text:name="Table"/>
<text:sequence-decl text:display-outline-level="0" text:name="Text"/>
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
</text:sequence-decls>
<!-- Wichtig für Mehrfachdruck (mehrere Studenten ausgewählt): Wenn ein Element (in diesem Fall Stempel und Unterschriftenblock) relativ zur SEITE ausgerichtet werden soll,
muss für jedes Dokument (jeder neue Durchlauf der Schleife) ein draw:frame-Tag definiert werden. Diese müssen ALLE VOR den ersten text:p-Elementen stehen.
Deshalb wirde erst die Schleife für die draw:frames aufgerufen, dann folg tder Inhalt -->
<xsl:if test="position()=1">
<xsl:for-each select="../zeugnis">
<xsl:variable select="position()" name="number"/><!-- Variable number definieren, die nach jedem Dokument um eines erhöht wird (position) -->
<draw:frame draw:style-name="fr1" draw:name="Rahmen{$number}" text:anchor-type="page" text:anchor-page-number="{$number}" svg:y="21.001cm" draw:z-index="0">
<draw:text-box fo:min-height="0.499cm" fo:min-width="2cm">
<table:table table:name="Tabelle3" table:style-name="Tabelle3">
<table:table-column table:style-name="Tabelle3.A"/>
<table:table-column table:style-name="Tabelle3.B"/>
<table:table-column table:style-name="Tabelle3.C"/>
<table:table-row>
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P17">Vienna, <xsl:value-of select="ort_datum" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.B1" office:value-type="string">
<text:p text:style-name="P16"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.C1" office:value-type="string">
<text:p text:style-name="P16"/>
</table:table-cell>
</table:table-row>
<table:table-row>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P17">Place, Date</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.B2" office:value-type="string">
<text:p text:style-name="P16"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.C2" office:value-type="string">
<text:p text:style-name="P17"><xsl:value-of select="studiengangsleiter" /></text:p>
<text:p text:style-name="P17">Director of Certificate Program</text:p>
</table:table-cell>
</table:table-row>
</table:table>
</draw:text-box>
</draw:frame>
<draw:frame xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" draw:style-name="fr3" draw:name="Bild{$number}" text:anchor-type="page" text:anchor-page-number="{$number}" svg:x="5.2cm" svg:width="3.51cm" svg:height="3.51cm" draw:z-index="1">
<draw:image xlink:href="Pictures/10000201000002290000022939997AEC.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
</draw:frame>
</xsl:for-each>
</xsl:if>
<text:p text:style-name="Seitenumbruch">Transcript of Records</text:p>
<text:p text:style-name="P6">
<xsl:choose>
<xsl:when test="string-length(semester_bezeichnung)=0">
<xsl:value-of select="stsem"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="semester"/>
<xsl:choose>
<xsl:when test="semester=1">
<xsl:text>st</xsl:text>
</xsl:when>
<xsl:when test="semester=2">
<xsl:text>nd</xsl:text>
</xsl:when>
<xsl:when test="semester=3">
<xsl:text>rd</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>th</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text> Semester (</xsl:text>
<xsl:value-of select="stsem"/>
<xsl:text>)</xsl:text>
</xsl:otherwise>
</xsl:choose>
</text:p>
<text:p text:style-name="P5"/>
<text:p text:style-name="P5">Certificate Program for Further Education subjected to § 9 FHStG</text:p>
<text:p text:style-name="P6"><xsl:value-of select="studiengang_englisch"/></text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P2">Student ID: <xsl:value-of select="matrikelnr" /></text:p>
<text:p text:style-name="P2">Program Code: <xsl:value-of select="studiengang_kz" /></text:p>
<text:p text:style-name="P2"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P4">First Name/Last Name:<text:tab/>
<text:span text:style-name="T1"><xsl:value-of select="name"/></text:span>
</text:p>
<text:p text:style-name="P27"/>
<text:p text:style-name="P4">Date of Birth:<text:tab/><xsl:value-of select="gebdatum" /></text:p>
<table:table table:name="Tabelle1" table:style-name="Tabelle1">
<table:table-column table:style-name="Tabelle1.A"/>
<table:table-column table:style-name="Tabelle1.B" table:number-columns-repeated="2"/>
<table:table-column table:style-name="Tabelle1.D"/>
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P14">Course</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P15">SP/W<text:span text:style-name="T4">1</text:span></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P15">ECTS</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D1" office:value-type="string">
<text:p text:style-name="P15">Grade<text:span text:style-name="T4">2</text:span></text:p>
</table:table-cell>
</table:table-row>
<xsl:apply-templates select="unterrichtsfach"/>
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A7" office:value-type="string">
<text:p text:style-name="P10">Total</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B7" office:value-type="string">
<text:p text:style-name="P13">-</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.C7" office:value-type="string">
<text:p text:style-name="P13"><xsl:value-of select="ects_gesamt"/></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D7" office:value-type="string">
<text:p text:style-name="P9">-</text:p>
</table:table-cell>
</table:table-row>
<xsl:apply-templates select="fussnote"/>
</table:table>
<text:p text:style-name="P26"/>
<text:p text:style-name="P22">¹ 1 Semester period per week = 45 minutes</text:p>
<text:p text:style-name="P22">² Grades:<text:tab/>excellent (1), very good (2), good (3), satisfactory (4), fail (5), not graded (nb), Credit based on previous experience/work (ar),</text:p>
<text:p text:style-name="P22">
<text:tab/>Participated with success (met), passed (b), successfully completed (ea), not successfully completed (nea), did not participate (nt), participated(tg)</text:p>
<text:p text:style-name="P7"/>
<xsl:if test="abschlusspruefung_typ">
<table:table table:name="Tabelle2" table:style-name="Tabelle2">
<table:table-column table:style-name="Tabelle2.A"/>
<table:table-column table:style-name="Tabelle2.B"/>
<table:table-row table:style-name="Tabelle2.1">
<table:table-cell table:style-name="Tabelle2.A1" table:number-columns-spanned="2" office:value-type="string">
<text:p text:style-name="P18">Final Examination</text:p>
</table:table-cell>
<table:covered-table-cell/>
</table:table-row>
<table:table-row table:style-name="Tabelle2.1">
<table:table-cell table:style-name="Tabelle2.A2" office:value-type="string">
<xsl:if test="abschlusspruefung_typ='Bachelor'" >
<text:p text:style-name="P8">Bachelor's Examination on <xsl:value-of select="abschlusspruefung_datum" /></text:p>
</xsl:if>
<xsl:if test="abschlusspruefung_typ='Diplom'" >
<text:p text:style-name="P8">Master's Examination on <xsl:value-of select="abschlusspruefung_datum" /></text:p>
</xsl:if>
</table:table-cell>
<table:table-cell table:style-name="Tabelle2.B2" office:value-type="string">
<text:p text:style-name="P8"><xsl:value-of select="abschlusspruefung_note_english" /></text:p>
</table:table-cell>
</table:table-row>
</table:table>
<text:p text:style-name="P26"/>
<text:p text:style-name="P23">Grades:<text:tab/>Passed with distinction, Passed with merit, Passed</text:p>
<text:p text:style-name="P19"/>
</xsl:if>
</office:text>
</xsl:template>
<xsl:template match="unterrichtsfach">
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A7" office:value-type="string">
<xsl:choose>
<xsl:when test="bisio_von">
<text:p text:style-name="P12">International Semester Abroad: <xsl:value-of select="bisio_von"/>-<xsl:value-of select="bisio_bis"/>, at <xsl:value-of select="bisio_ort"/>, <xsl:value-of select="bisio_universitaet"/></text:p>
<text:p text:style-name="P12">All credits earned during the International Semester Abroad (ISA) are fully credited for the
<xsl:value-of select="../semester"/>
<xsl:choose>
<xsl:when test="../semester=1">
<xsl:text>st</xsl:text>
</xsl:when>
<xsl:when test="../semester=2">
<xsl:text>nd</xsl:text>
</xsl:when>
<xsl:when test="../semester=3">
<xsl:text>rd</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>th</xsl:text>
</xsl:otherwise>
</xsl:choose>
semester at the UAS Technikum Wien. (see Transcript of Records)</text:p>
</xsl:when>
<xsl:otherwise>
<text:p text:style-name="P10">
<xsl:choose>
<xsl:when test="string-length(bezeichnung_englisch)!=0">
<xsl:value-of select="bezeichnung_englisch"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>[ACHTUNG: Keine englische Bezeichung für "</xsl:text><xsl:value-of select="bezeichnung"/><xsl:text>" in der Datenbank!]</xsl:text>
</xsl:otherwise>
</xsl:choose>
</text:p>
</xsl:otherwise>
</xsl:choose>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:if test="sws_lv=''">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="sws_lv"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.C2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:if test="ects=''">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="ects"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:if test="note=''">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="note"/>
</text:p>
</table:table-cell>
</table:table-row>
</xsl:template>
<xsl:template match="fussnote">
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A8" office:value-type="string">
<xsl:choose>
<xsl:when test="themenbereich!=''">
<text:p text:style-name="P10"><xsl:value-of select="fussnotenzeichen"/>
<xsl:text> </xsl:text>
<text:span text:style-name="T1">
<xsl:choose>
<xsl:when test="themenbereich!=''">
<xsl:text>Subject Area:</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text></xsl:text>
</xsl:otherwise>
</xsl:choose>
</text:span>
<xsl:text> </xsl:text><xsl:value-of select="themenbereich"/>
</text:p>
<text:p text:style-name="P10">
<xsl:text> </xsl:text>
<text:span text:style-name="T1">
<xsl:choose>
<xsl:when test="titel_kurzbz='Bachelor'">
<xsl:text>Bachelor's Thesis:</xsl:text>
</xsl:when>
<xsl:when test="titel_kurzbz='Diplom'">
<xsl:text>Master's Thesis:</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text></xsl:text>
</xsl:otherwise>
</xsl:choose>
</text:span>
<xsl:text> </xsl:text>
<xsl:choose>
<xsl:when test="string-length(titel_en)!=0">
<xsl:value-of select="titel_en"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="titel"/>
</xsl:otherwise>
</xsl:choose>
</text:p>
</xsl:when>
<xsl:otherwise>
<text:p text:style-name="P10"><xsl:value-of select="fussnotenzeichen"/>
<xsl:text> </xsl:text>
<text:span text:style-name="T1">
<xsl:choose>
<xsl:when test="titel_kurzbz='Bachelor'">
<xsl:text>Bachelor's Thesis:</xsl:text>
</xsl:when>
<xsl:when test="titel_kurzbz='Diplom'">
<xsl:text>Master's Thesis:</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text></xsl:text>
</xsl:otherwise>
</xsl:choose>
</text:span>
<xsl:text> </xsl:text>
<xsl:choose>
<xsl:when test="string-length(titel_en)!=0">
<xsl:value-of select="titel_en"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="titel"/>
</xsl:otherwise>
</xsl:choose>
</text:p>
</xsl:otherwise>
</xsl:choose>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B8" office:value-type="string">
<text:p text:style-name="P13">
<xsl:value-of select="sws_lv"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.C8" office:value-type="string">
<text:p text:style-name="P13">
<xsl:value-of select="ects"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D8" office:value-type="string">
<text:p text:style-name="P13">
<xsl:if test="../projektarbeit_note_anzeige='true'">
<xsl:value-of select="note"/>
</xsl:if>
</text:p>
</table:table-cell>
</table:table-row>
</xsl:template>
</xsl:stylesheet>
+72 -74
View File
@@ -37,12 +37,12 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<style:table-row-properties style:min-row-height="0.75cm"/>
</style:style>
<style:style style:name="Tabelle1.A1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#afb8bc" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#999999" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000">
<style:background-image/>
</style:table-cell-properties>
</style:style>
<style:style style:name="Tabelle1.D1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#afb8bc" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border="0.05pt solid #000000">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#999999" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border="0.05pt solid #000000">
<style:background-image/>
</style:table-cell-properties>
</style:style>
@@ -143,7 +143,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<style:table-row-properties style:min-row-height="0.75cm"/>
</style:style>
<style:style style:name="Tabelle2.A1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#afb8bc" fo:padding="0.097cm" fo:border="0.05pt solid #000000">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#999999" fo:padding="0.097cm" fo:border="0.05pt solid #000000">
<style:background-image/>
</style:table-cell-properties>
</style:style>
@@ -248,7 +248,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<style:text-properties fo:font-size="9pt" officeooo:rsid="0013c612" officeooo:paragraph-rsid="0013c612" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P18" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:background-color="#afb8bc">
<style:paragraph-properties fo:background-color="#999999">
<style:background-image/>
</style:paragraph-properties>
<style:text-properties fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
@@ -290,6 +290,14 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<style:style style:name="P27" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="5pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="1.75pt" style:font-size-complex="2pt"/>
</style:style>
<style:style style:name="P28" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" fo:color="#ffffff" fo:font-weight="bold" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P29" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" fo:color="#ffffff" fo:font-weight="bold" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Seitenumbruch" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:break-before="page"/>
<style:text-properties fo:font-size="16pt" fo:font-weight="bold" officeooo:rsid="000de2a1" officeooo:paragraph-rsid="000de2a1" style:font-size-asian="16pt" style:font-weight-asian="bold" style:font-size-complex="16pt" style:font-weight-complex="bold"/>
@@ -334,45 +342,45 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<xsl:for-each select="../zeugnis">
<xsl:variable select="position()" name="number"/><!-- Variable number definieren, die nach jedem Dokument um eines erhöht wird (position) -->
<draw:frame draw:style-name="fr1" draw:name="Rahmen{$number}" text:anchor-type="page" text:anchor-page-number="{$number}" svg:y="21.001cm" draw:z-index="0">
<draw:text-box fo:min-height="0.499cm" fo:min-width="2cm">
<table:table table:name="Tabelle3" table:style-name="Tabelle3">
<table:table-column table:style-name="Tabelle3.A"/>
<table:table-column table:style-name="Tabelle3.B"/>
<table:table-column table:style-name="Tabelle3.C"/>
<table:table-row>
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P17">Wien, am <xsl:value-of select="ort_datum" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.B1" office:value-type="string">
<text:p text:style-name="P16"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.C1" office:value-type="string">
<text:p text:style-name="P16"/>
</table:table-cell>
</table:table-row>
<table:table-row>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P17">Ort, Datum</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.B2" office:value-type="string">
<text:p text:style-name="P16"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.C2" office:value-type="string">
<text:p text:style-name="P17"><xsl:value-of select="studiengangsleiter" /></text:p>
<text:p text:style-name="P17">Studiengangsleitung</text:p>
</table:table-cell>
</table:table-row>
</table:table>
</draw:text-box>
</draw:frame>
<draw:frame xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" draw:style-name="fr3" draw:name="Bild{$number}" text:anchor-type="page" text:anchor-page-number="{$number}" svg:x="5.2cm" svg:width="3.51cm" svg:height="3.51cm" draw:z-index="1">
<draw:image xlink:href="Pictures/10000201000002290000022939997AEC.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
</draw:frame>
<draw:text-box fo:min-height="0.499cm" fo:min-width="2cm">
<table:table table:name="Tabelle3" table:style-name="Tabelle3">
<table:table-column table:style-name="Tabelle3.A"/>
<table:table-column table:style-name="Tabelle3.B"/>
<table:table-column table:style-name="Tabelle3.C"/>
<table:table-row>
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P17">Wien, am <xsl:value-of select="ort_datum" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.B1" office:value-type="string">
<text:p text:style-name="P16"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.C1" office:value-type="string">
<text:p text:style-name="P16"/>
</table:table-cell>
</table:table-row>
<table:table-row>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P17">Ort, Datum</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.B2" office:value-type="string">
<text:p text:style-name="P16"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.C2" office:value-type="string">
<text:p text:style-name="P17"><xsl:value-of select="studiengangsleiter" /></text:p>
<text:p text:style-name="P17">Studiengangsleitung</text:p>
</table:table-cell>
</table:table-row>
</table:table>
</draw:text-box>
</draw:frame>
<draw:frame xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" draw:style-name="fr3" draw:name="Bild{$number}" text:anchor-type="page" text:anchor-page-number="{$number}" svg:x="5.2cm" svg:width="3.51cm" svg:height="3.51cm" draw:z-index="1">
<draw:image xlink:href="Pictures/10000201000002290000022939997AEC.png" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
</draw:frame>
</xsl:for-each>
</xsl:if>
<text:p text:style-name="Seitenumbruch">ZEUGNIS</text:p>
<text:p text:style-name="P6">
<xsl:choose>
<text:p text:style-name="Seitenumbruch">ZEUGNIS</text:p>
<text:p text:style-name="P6">
<xsl:choose>
<xsl:when test="string-length(semester_bezeichnung)=0">
<xsl:value-of select="stsem"/>
</xsl:when>
@@ -386,15 +394,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</text:p>
<text:p text:style-name="P5"/>
<text:p text:style-name="P5"><xsl:value-of select="studiengang_art"/>-Studiengang</text:p>
<text:p text:style-name="P1">
<draw:frame draw:style-name="fr2" draw:name="Rahmen2" text:anchor-type="paragraph" svg:width="7.999cm" draw:z-index="2">
<draw:text-box fo:min-height="0.499cm">
<text:p text:style-name="P6"><xsl:value-of select="studiengang"/></text:p>
</draw:text-box>
</draw:frame>
</text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P6"><xsl:value-of select="studiengang"/></text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
@@ -403,8 +403,6 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<text:p text:style-name="P2"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P27"/>
<text:p text:style-name="P4">Vorname/Familienname:<text:tab/>
<text:span text:style-name="T1"><xsl:value-of select="name"/></text:span>
</text:p>
@@ -418,15 +416,15 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P14">Lehrveranstaltung</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P15">Note</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P15">SWS</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D1" office:value-type="string">
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P15">ECTS</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D1" office:value-type="string">
<text:p text:style-name="P15">Note</text:p>
</table:table-cell>
</table:table-row>
<xsl:apply-templates select="unterrichtsfach"/>
<table:table-row>
@@ -437,10 +435,10 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<text:p text:style-name="P13">-</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.C7" office:value-type="string">
<text:p text:style-name="P13">-</text:p>
<text:p text:style-name="P13"><xsl:value-of select="ects_gesamt"/></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D7" office:value-type="string">
<text:p text:style-name="P9"><xsl:value-of select="ects_gesamt"/></text:p>
<text:p text:style-name="P9">-</text:p>
</table:table-cell>
</table:table-row>
<xsl:apply-templates select="fussnote"/>
@@ -496,21 +494,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:if test="note=''">
<xsl:if test="sws_lv=''">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="note"/>
<xsl:value-of select="sws_lv"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.C2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:if test="sws=''">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="sws"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:if test="ects=''">
<xsl:text>-</xsl:text>
@@ -518,6 +508,14 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<xsl:value-of select="ects"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:if test="note=''">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="note"/>
</text:p>
</table:table-cell>
</table:table-row>
</xsl:template>
<xsl:template match="fussnote">
@@ -544,21 +542,21 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B8" office:value-type="string">
<text:p text:style-name="P13">
<xsl:if test="../projektarbeit_note_anzeige='true'">
<xsl:value-of select="note"/>
</xsl:if>
<xsl:value-of select="sws_lv"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.C8" office:value-type="string">
<text:p text:style-name="P13">
<xsl:value-of select="sws"/>
<xsl:value-of select="ects"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D8" office:value-type="string">
<text:p text:style-name="P13">
<xsl:value-of select="ects"/>
<xsl:if test="../projektarbeit_note_anzeige='true'">
<xsl:value-of select="note"/>
</xsl:if>
</text:p>
</table:table-cell>
</table:table-row>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
+36 -38
View File
@@ -37,12 +37,12 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<style:table-row-properties style:min-row-height="0.75cm"/>
</style:style>
<style:style style:name="Tabelle1.A1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#afb8bc" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#999999" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="0.05pt solid #000000" fo:border-bottom="0.05pt solid #000000">
<style:background-image/>
</style:table-cell-properties>
</style:style>
<style:style style:name="Tabelle1.D1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#afb8bc" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border="0.05pt solid #000000">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#999999" fo:padding-left="0.101cm" fo:padding-right="0.101cm" fo:padding-top="0.079cm" fo:padding-bottom="0.079cm" fo:border="0.05pt solid #000000">
<style:background-image/>
</style:table-cell-properties>
</style:style>
@@ -143,7 +143,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<style:table-row-properties style:min-row-height="0.75cm"/>
</style:style>
<style:style style:name="Tabelle2.A1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#afb8bc" fo:padding="0.097cm" fo:border="0.05pt solid #000000">
<style:table-cell-properties style:vertical-align="middle" fo:background-color="#999999" fo:padding="0.097cm" fo:border="0.05pt solid #000000">
<style:background-image/>
</style:table-cell-properties>
</style:style>
@@ -248,7 +248,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<style:text-properties fo:font-size="9pt" officeooo:rsid="0013c612" officeooo:paragraph-rsid="0013c612" style:font-size-complex="9pt"/>
</style:style>
<style:style style:name="P18" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:background-color="#afb8bc">
<style:paragraph-properties fo:background-color="#999999">
<style:background-image/>
</style:paragraph-properties>
<style:text-properties fo:font-size="9pt" fo:font-weight="bold" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
@@ -290,6 +290,14 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<style:style style:name="P27" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties fo:font-size="5pt" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="1.75pt" style:font-size-complex="2pt"/>
</style:style>
<style:style style:name="P28" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" fo:color="#ffffff" fo:font-weight="bold" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="P29" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties fo:font-size="9pt" fo:color="#ffffff" fo:font-weight="bold" officeooo:rsid="000f65a0" officeooo:paragraph-rsid="000f65a0" style:font-size-asian="9pt" style:font-weight-asian="bold" style:font-size-complex="9pt" style:font-weight-complex="bold"/>
</style:style>
<style:style style:name="Seitenumbruch" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:break-before="page"/>
<style:text-properties fo:font-size="16pt" fo:font-weight="bold" officeooo:rsid="000de2a1" officeooo:paragraph-rsid="000de2a1" style:font-size-asian="16pt" style:font-weight-asian="bold" style:font-size-complex="16pt" style:font-weight-complex="bold"/>
@@ -386,15 +394,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</text:p>
<text:p text:style-name="P5"/>
<text:p text:style-name="P5">Lehrgang zur Weiterbildung nach §9 FHStG idgF</text:p>
<text:p text:style-name="P1">
<draw:frame draw:style-name="fr2" draw:name="Rahmen2" text:anchor-type="paragraph" svg:width="7.999cm" draw:z-index="2">
<draw:text-box fo:min-height="0.499cm">
<text:p text:style-name="P6"><xsl:value-of select="studiengang"/></text:p>
</draw:text-box>
</draw:frame>
</text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P6"><xsl:value-of select="studiengang"/></text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
@@ -403,8 +403,6 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<text:p text:style-name="P2"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P3"/>
<text:p text:style-name="P27"/>
<text:p text:style-name="P4">Vorname/Familienname:<text:tab/>
<text:span text:style-name="T1"><xsl:value-of select="name"/></text:span>
</text:p>
@@ -418,15 +416,15 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P14">Lehrveranstaltung</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P15">Note</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P15">SWS</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D1" office:value-type="string">
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P15">ECTS</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D1" office:value-type="string">
<text:p text:style-name="P15">Note</text:p>
</table:table-cell>
</table:table-row>
<xsl:apply-templates select="unterrichtsfach"/>
<table:table-row>
@@ -437,10 +435,10 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<text:p text:style-name="P13">-</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.C7" office:value-type="string">
<text:p text:style-name="P13">-</text:p>
<text:p text:style-name="P13"><xsl:value-of select="ects_gesamt"/></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D7" office:value-type="string">
<text:p text:style-name="P9"><xsl:value-of select="ects_gesamt"/></text:p>
<text:p text:style-name="P9">-</text:p>
</table:table-cell>
</table:table-row>
<xsl:apply-templates select="fussnote"/>
@@ -450,7 +448,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<text:p text:style-name="P22">
<text:tab/>angerechnet (ar), nicht beurteilt (nb), bestanden (b), erfolgreich absolviert (ea), nicht erfolgreich absolviert (nea)</text:p>
<text:p text:style-name="P7"/>
<xsl:if test="abschlusspruefung_datum != ''">
<xsl:if test="abschlusspruefung_typ">
<table:table table:name="Tabelle2" table:style-name="Tabelle2">
<table:table-column table:style-name="Tabelle2.A"/>
<table:table-column table:style-name="Tabelle2.B"/>
@@ -496,21 +494,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:if test="note=''">
<xsl:if test="sws_lv=''">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="note"/>
<xsl:value-of select="sws_lv"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.C2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:if test="sws=''">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="sws"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:if test="ects=''">
<xsl:text>-</xsl:text>
@@ -518,6 +508,14 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<xsl:value-of select="ects"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D2" office:value-type="string">
<text:p text:style-name="P9">
<xsl:if test="note=''">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="note"/>
</text:p>
</table:table-cell>
</table:table-row>
</xsl:template>
<xsl:template match="fussnote">
@@ -544,21 +542,21 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B8" office:value-type="string">
<text:p text:style-name="P13">
<xsl:if test="../projektarbeit_note_anzeige='true'">
<xsl:value-of select="note"/>
</xsl:if>
<xsl:value-of select="sws_lv"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.C8" office:value-type="string">
<text:p text:style-name="P13">
<xsl:value-of select="sws"/>
<xsl:value-of select="ects"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.D8" office:value-type="string">
<text:p text:style-name="P13">
<xsl:value-of select="ects"/>
<xsl:if test="../projektarbeit_note_anzeige='true'">
<xsl:value-of select="note"/>
</xsl:if>
</text:p>
</table:table-cell>
</table:table-row>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
+2 -1
View File
@@ -2885,7 +2885,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-cell>
<table:table-cell table:style-name="Table12.D5" office:value-type="string">
<text:p text:style-name="P65">
<xsl:value-of select="sws"/>
<xsl:value-of select="sws_lv"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Table12.E5" office:value-type="string">
@@ -2902,3 +2902,4 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</xsl:template>
</xsl:stylesheet>
+2 -1
View File
@@ -2916,7 +2916,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</table:table-cell>
<table:table-cell table:style-name="Table12.D5" office:value-type="string">
<text:p text:style-name="P65">
<xsl:value-of select="sws"/>
<xsl:value-of select="sws_lv"/>
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Table12.E5" office:value-type="string">
@@ -2933,3 +2933,4 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</xsl:template>
</xsl:stylesheet>
+3 -3
View File
@@ -574,7 +574,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P25"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P23"><xsl:value-of select="gesamtstunden" /></text:p>
<text:p text:style-name="P23"><xsl:value-of select="gesamtstunden_lv" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P23"><xsl:value-of select="gesamtects" /></text:p>
@@ -633,7 +633,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P27"><xsl:value-of select="../semester" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P27"><xsl:value-of select="sws" /></text:p>
<text:p text:style-name="P27"><xsl:value-of select="sws_lv" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P27"><xsl:value-of select="ects" /></text:p>
@@ -646,4 +646,4 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</table:table-cell>
</table:table-row>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
+3 -3
View File
@@ -565,7 +565,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P25"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P23"><xsl:value-of select="gesamtstunden" /></text:p>
<text:p text:style-name="P23"><xsl:value-of select="gesamtstunden_lv" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P23"><xsl:value-of select="gesamtects" /></text:p>
@@ -624,7 +624,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P27"><xsl:value-of select="../semester" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P27"><xsl:value-of select="sws" /></text:p>
<text:p text:style-name="P27"><xsl:value-of select="sws_lv" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P27"><xsl:value-of select="ects" /></text:p>
@@ -637,4 +637,4 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</table:table-cell>
</table:table-row>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
+3 -3
View File
@@ -572,7 +572,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P25"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P23"><xsl:value-of select="gesamtstunden" /></text:p>
<text:p text:style-name="P23"><xsl:value-of select="gesamtstunden_lv" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P23"><xsl:value-of select="gesamtects" /></text:p>
@@ -623,7 +623,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P27"><xsl:value-of select="../semester" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P27"><xsl:value-of select="sws" /></text:p>
<text:p text:style-name="P27"><xsl:value-of select="sws_lv" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P27"><xsl:value-of select="ects" /></text:p>
@@ -636,4 +636,4 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</table:table-cell>
</table:table-row>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
+3 -3
View File
@@ -563,7 +563,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P25"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P23"><xsl:value-of select="gesamtstunden" /></text:p>
<text:p text:style-name="P23"><xsl:value-of select="gesamtstunden_lv" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P23"><xsl:value-of select="gesamtects" /></text:p>
@@ -614,7 +614,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P27"><xsl:value-of select="../semester" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P27"><xsl:value-of select="sws" /></text:p>
<text:p text:style-name="P27"><xsl:value-of select="sws_lv" /></text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A2" office:value-type="string">
<text:p text:style-name="P27"><xsl:value-of select="ects" /></text:p>
@@ -627,4 +627,4 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</table:table-cell>
</table:table-row>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
-19
View File
@@ -1,19 +0,0 @@
<HTML>
<HEAD>
<TITLE>Mailinglisten</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<LINK rel="stylesheet" href="../../../skin/vilesci.css" type="text/css">
</HEAD>
<BODY class="background_main">
<H2>MailingListen </H2>
<H3>Gruppen</H3>
<UL>
<!--<LI><A href="mlists_index.php" class="linkblue">Verwaltung</A></LI>-->
<LI><A href="../../../admin/mlists_generate.php" class="linkblue">Generate Lists</A></LI>
</UL>
<UL>
<LI>Check UIDs </LI>
</UL>
</BODY>
</HTML>

Some files were not shown because too many files have changed in this diff Show More