Merge branch 'master' into lvgruppen

This commit is contained in:
Andreas Österreicher
2019-02-13 16:32:02 +01:00
64 changed files with 2282 additions and 552 deletions
+1
View File
@@ -33,3 +33,4 @@ tests/codeception/tests/unit.suite.yml
/sparks/*
/webdav/google.php
system/sql/
.ptp-sync*
@@ -0,0 +1,349 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
* List all grades of a Student
*/
class Gradelist extends Auth_Controller
{
private $_grades; // Array of Grades
/**
* Constructor
*/
public function __construct()
{
parent::__construct(
array(
'index' => array('student:r', 'student/noten:r')
)
);
// Loads models
$this->load->model('person/person_model', 'PersonModel');
$this->load->model('organisation/studiengang_model', 'StudiengangModel');
$this->load->model('crm/student_model', 'StudentModel');
$this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel');
$this->load->model('education/zeugnisnote_model', 'ZeugnisnoteModel');
$this->load->model('education/lehrveranstaltung_model', 'LehrveranstaltungModel');
$this->load->model('codex/note_model', 'NoteModel');
$this->loadPhrases(
array(
'global',
'person',
'lehre',
'ui'
)
);
$result_noten = $this->NoteModel->load();
foreach ($result_noten->retval as $row)
{
$this->_grades[$row->note]['positiv'] = $row->positiv;
$this->_grades[$row->note]['anmerkung'] = $row->anmerkung;
$this->_grades[$row->note]['notenwert'] = $row->notenwert;
}
}
/**
* Print all Grades of a person
* @param $uid UID of the Person
*/
public function index($uid = null)
{
if (is_null($uid))
$uid = getAuthUID();
// load student
$student = $this->StudentModel->load(array($uid));
if (!isSuccess($student) || !hasData($student))
{
echo "You have no Permission or User does not exists";
exit;
}
// Check if logged in User has permission to see grades of this person
$stg = $this->StudiengangModel->load($student->retval[0]->studiengang_kz);
if (!$this->hasPermission($uid, $stg->retval[0]->oe_kurzbz))
{
echo "You have no Permission or User does not exists";
exit;
}
$person = $this->PersonModel->getByUid($uid);
$courses = $this->loadCourseInformation($student->retval[0]->prestudent_id, $student->retval[0]->student_uid);
$data = array (
"user" => $uid,
"person" => $person->retval[0],
"courses" => $courses,
"grades" => $this->_grades
);
$this->load->view('person/gradelist/gradelist.php', $data);
}
/**
* Check if the Logged in User has permission to see the grades of this person
* @param $uid UID of the Person we want to see
* @param $oe_kurzbz Organisation Unit of the Person we want to see
* @return true if the logged in User is allowed to see the content, false if not
*/
private function hasPermission($uid, $oe_kurzbz)
{
$loggedinUser = getAuthUID();
if($uid != $loggedinUser)
{
$this->load->library('PermissionLib');
if($this->permissionlib->isBerechtigt('student/noten','s',$oe_kurzbz))
{
return true;
}
return false;
}
else
{
return true;
}
}
/**
* Loads the Courses and Grades of the Student
*
* @param $prestudent_id of the Student
* @return array with the courses
*/
private function loadCourseInformation($prestudent_id, $uid)
{
$this->load->library('StudienplanLib');
// Get status of Student
$result_status = $this->PrestudentstatusModel->getStatusByFilter($prestudent_id);
if (isError($result_status) || !hasData($result_status))
{
return error('No Status Found');
}
// Get Courses from studyplan for each semester of the student
foreach ($result_status->retval as $row_status)
{
if (in_array($row_status->status_kurzbz,
array('Student','Diplomand','Incoming','Abbrecher','Unterbrecher','Absolvent')))
{
// LVs fuer das Semester holen lt Studienplan
$lvtree = $this->studienplanlib->getLehrveranstaltungTree(
$row_status->studienplan_id,
$row_status->ausbildungssemester,
true
);
$courses['semester'][$row_status->studiensemester_kurzbz]['lvs'] = $lvtree;
$courses['semester'][$row_status->studiensemester_kurzbz]['lvs_nonstpl'] = array();
$result_stpl = $this->StudienplanModel->load($row_status->studienplan_id);
if(isSuccess($result_stpl) && hasData($result_stpl))
{
$stpl_bezeichnung = $result_stpl->retval[0]->bezeichnung;
}
else
$stpl_bezeichnung = 'unknown';
$courses['semester'][$row_status->studiensemester_kurzbz]['data'] = array(
'status' => $row_status->status_kurzbz,
'ausbildungssemester' => $row_status->ausbildungssemester,
'studiensemester_kurzbz' => $row_status->studiensemester_kurzbz,
'studienplan_id' => $row_status->studienplan_id,
'studienplan_bezeichnung' => $stpl_bezeichnung,
);
}
}
// Load Grades and add to studyplan
$result_zeugnis = $this->ZeugnisnoteModel->loadWhere(array("student_uid" => $uid));
if (isSuccess($result_zeugnis) && hasData($result_zeugnis))
{
foreach ($courses['semester'] as $key=>$value)
{
$this->fillNotenPart(
$result_zeugnis,
$courses['semester'][$key]['lvs'],
$value['data']['studiensemester_kurzbz']
);
}
}
// Build Array of Courses that are not part of the studyplan
foreach ($result_zeugnis->retval as $row_noten)
{
if (!isset($row_noten->found))
{
$result_lv = $this->LehrveranstaltungModel->load($row_noten->lehrveranstaltung_id);
$courses['semester'][$row_noten->studiensemester_kurzbz]['lvs_nonstpl'][] = array(
'lehrveranstaltung_id' => $row_noten->lehrveranstaltung_id,
'lehrtyp_kurzbz' => $result_lv->retval[0]->lehrtyp_kurzbz,
'pflicht' => false,
'bezeichnung' => $result_lv->retval[0]->bezeichnung,
'ects' => $result_lv->retval[0]->ects,
'note' => $row_noten->note,
'datum' => $row_noten->benotungsdatum
);
if(!isset($courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl']))
$courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl'] = 0;
$courses['semester'][$row_noten->studiensemester_kurzbz]['data']['ectssumme_nonstpl'] += $result_lv->retval[0]->ects;
}
}
$sum_gradeweighted_overall = 0;
$sum_ectsweighted_overall = 0;
$sum_grades_overall = 0;
$num_grades_overall = 0;
$sum_ects_overall = 0;
$sum_ects_positiv_overall = 0;
// Calculate Sum and Average
foreach ($courses['semester'] as $stsem => $row_lvs)
{
$grades = $this->getGrades($row_lvs['lvs']);
$num_grades = 0;
$sum_ects = 0;
$sum_ects_positiv = 0;
$sum_grades = 0;
$notendurchschnitt = 0;
$sum_gradeweighted = 0;
$sum_ectsweighted = 0;
foreach ($grades as $row)
{
if ($this->_grades[$row['note']]['notenwert'] != '')
{
$num_grades++;
$sum_grades += $this->_grades[$row['note']]['notenwert'];
$sum_ectsweighted += $row['ects'];
$sum_gradeweighted += $row['ects'] * $this->_grades[$row['note']]['notenwert'];
}
$sum_ects += $row['ects'];
if ($this->_grades[$row['note']]['positiv'])
$sum_ects_positiv += $row['ects'];
}
if ($num_grades > 0)
$notendurchschnitt = $sum_grades / $num_grades;
else
$notendurchschnitt = 0;
if ($sum_ectsweighted > 0)
$notendurchschnittgewichtet = $sum_gradeweighted / $sum_ectsweighted;
else
$notendurchschnittgewichtet = 0;
$num_grades_overall += $num_grades;
$sum_grades_overall += $sum_grades;
$sum_gradeweighted_overall += $sum_gradeweighted;
$sum_ectsweighted_overall += $sum_ectsweighted;
$sum_ects_overall += $sum_ects;
$sum_ects_positiv_overall += $sum_ects_positiv;
$courses['semester'][$stsem]['data']['notendurchschnitt'] = number_format($notendurchschnitt, 2);
$courses['semester'][$stsem]['data']['notendurchschnittgewichtet'] = number_format($notendurchschnittgewichtet, 2);
$courses['semester'][$stsem]['data']['ectssumme'] = number_format($sum_ects,2);
$courses['semester'][$stsem]['data']['ectssumme_positiv'] = number_formaT($sum_ects_positiv,2);
}
if ($num_grades_overall > 0)
$notendurchschnitt = $sum_grades_overall / $num_grades_overall;
else
$notendurchschnitt = 0;
if ($sum_ectsweighted_overall > 0)
$notendurchschnittgewichtet = $sum_gradeweighted_overall / $sum_ectsweighted_overall;
else
$notendurchschnittgewichtet = 0;
$courses['overall'] = array(
'notendurchschnitt' => number_format($notendurchschnitt, 2),
'notendurchschnittgewichtet' => number_format($notendurchschnittgewichtet, 2),
'ectssumme' => $sum_ects_overall,
'ectssumme_positiv' => $sum_ects_positiv_overall
);
return $courses;
}
/**
* Combines the Studyplan Courses recursively with the Grades of the Student
* Grades that are found in the Studyplan are marked, the others are added to a separate list
* @param $noten reference to array of all grades.
* @param $courses reference to array of all courses.
* @param $studiensemester_kurzbz Studiensemester of the Course and Grades
*/
private function fillNotenPart(&$noten, &$courses, $studiensemester_kurzbz)
{
foreach ($courses as $key => $value)
{
foreach ($noten->retval as $notenkey => $row_noten)
{
if ($row_noten->lehrveranstaltung_id == $value['lehrveranstaltung_id']
&& $row_noten->studiensemester_kurzbz == $studiensemester_kurzbz)
{
$courses[$key]['note'] = $row_noten->note;
$courses[$key]['datum'] = $row_noten->benotungsdatum;
$noten->retval[$notenkey]->found = true;
}
if (isset($value['childs']))
$this->fillNotenPart($noten, $courses[$key]['childs'], $studiensemester_kurzbz);
}
}
}
/**
* Reads all the Courses recursivly and Returns an Array with the Grades and ECTS
* @param $courses array of courses
* @return array with grades and ects
*/
public function getGrades($courses)
{
$grades = array();
foreach ($courses as $row)
{
if (isset($row['note']) && $row['note'] != '')
{
$grades[] = array(
'note' => $row['note'],
'ects' => $row['ects']
);
}
if ($row['childs'])
{
$childgrades = $this->getGrades($row['childs']);
$grades = array_merge($grades, $childgrades);
}
}
return $grades;
}
/**
* Helper Function to Display recursive Courses
* @param $course array if courses
* @param $depth integer defines the number parent elements
*/
static function printRow($course, $depth)
{
$ci =& get_instance();
$ci->load->view('person/gradelist/course.php',
array(
'course' => $course,
'depth' => $depth
)
);
if (isset($course['childs']))
{
foreach ($course['childs'] as $row_course)
Gradelist::printRow($row_course, $depth + 1);
}
}
}
+72
View File
@@ -0,0 +1,72 @@
<?php
if (! defined("BASEPATH")) exit("No direct script access allowed");
class StudienplanLib
{
/**
* Loads model OrganisationseinheitModel
*/
public function __construct()
{
$this->ci =& get_instance();
// Loads model Organisationseinheit_model
$this->ci->load->model('organisation/Studienplan_model', 'StudienplanModel');
}
public function getLehrveranstaltungTree($studienplan_id, $semester, $studplan = null)
{
$tree = array();
$data = $this->ci->StudienplanModel->getStudienplanLehrveranstaltung($studienplan_id, $semester);
if(isSuccess($data) && hasData($data))
{
$this->lehrveranstaltungen = $data->retval;
foreach($this->lehrveranstaltungen as $row)
{
if (!is_null($studplan) && $row->export != $studplan)
continue;
if (is_null($row->studienplan_lehrveranstaltung_id_parent))
{
$treeitem = array(
'lehrveranstaltung_id' => $row->lehrveranstaltung_id,
'lehrtyp_kurzbz' => $row->lehrtyp_kurzbz,
'pflicht' => $row->pflicht,
'bezeichnung' => $row->bezeichnung,
'ects' => $row->ects
);
$childs = $this->getChildElements($row->studienplan_lehrveranstaltung_id);
if(is_array($childs) && count($childs) > 0)
$treeitem['childs'] = $childs;
$tree[] = $treeitem;
}
}
}
return $tree;
}
private function getChildElements($studienplan_lehrveranstaltung_id)
{
$subtree = array();
foreach($this->lehrveranstaltungen as $row)
{
if($studienplan_lehrveranstaltung_id == $row->studienplan_lehrveranstaltung_id_parent)
{
$treeitem = array(
'lehrveranstaltung_id' => $row->lehrveranstaltung_id,
'lehrtyp_kurzbz' => $row->lehrtyp_kurzbz,
'pflicht' => $row->pflicht,
'bezeichnung' => $row->bezeichnung,
'ects' => $row->ects
);
$childs = $this->getChildElements($row->studienplan_lehrveranstaltung_id);
if(is_array($childs))
$treeitem['childs'] = $childs;
$subtree[] = $treeitem;
}
}
return $subtree;
}
}
+7 -7
View File
@@ -14,13 +14,13 @@ class Student_model extends DB_Model
}
// ****
// * Generiert die Matrikelnummer
// * FORMAT: 0710254001
// * 07 = Jahr
// * 1/2/0 = WS/SS/incoming
// * 0254 = Studiengangskennzahl vierstellig
// * 001 = Laufende Nummer
// ****
// * Generiert die Matrikelnummer
// * FORMAT: 0710254001
// * 07 = Jahr
// * 1/2/0 = WS/SS/incoming
// * 0254 = Studiengangskennzahl vierstellig
// * 001 = Laufende Nummer
// ****
public function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz)
{
$jahr = mb_substr($studiensemester_kurzbz, 4);
@@ -11,35 +11,46 @@ class Studienplan_model extends DB_Model
$this->dbTable = "lehre.tbl_studienplan";
$this->pk = "studienplan_id";
}
public function getStudienplaene($studiengang_kz)
{
$this->addJoin("lehre.tbl_studienordnung", "studienordnung_id");
return $this->loadWhere(array("studiengang_kz" => $studiengang_kz));
}
public function getStudienplaeneBySemester($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester = null, $orgform_kurzbz = null)
{
$this->addJoin("lehre.tbl_studienordnung", "studienordnung_id");
$this->addJoin("lehre.tbl_studienplan_semester", "studienplan_id");
$whereArray = array(
"tbl_studienplan.aktiv" => "TRUE",
"tbl_studienordnung.studiengang_kz" => $studiengang_kz,
"tbl_studienplan_semester.studiensemester_kurzbz" => $studiensemester_kurzbz
);
if(!is_null($ausbildungssemester))
{
$whereArray["tbl_studienplan_semester.semester"] = $ausbildungssemester;
}
if(!is_null($orgform_kurzbz))
{
$whereArray["orgform_kurzbz"] = $orgform_kurzbz;
}
return $this->StudienplanModel->loadWhere($whereArray);
}
}
public function getStudienplanLehrveranstaltung($studienplan_id, $semester)
{
$this->addJoin('lehre.tbl_studienplan_lehrveranstaltung', 'studienplan_id');
$this->addJoin('lehre.tbl_lehrveranstaltung', 'lehrveranstaltung_id');
$this->addOrder('tbl_lehrveranstaltung.sort');
return $this->loadWhere(array(
'studienplan_id' => $studienplan_id,
'tbl_studienplan_lehrveranstaltung.semester' => $semester
));
}
}
@@ -0,0 +1,16 @@
<?php
if(isset($course['note']) && isset($grades[$course['note']]))
$gradeclass = ($grades[$course['note']]['positiv']?'gradelist_row_grade_positiv':'gradelist_row_grade_negativ');
else
$gradeclass = '';
?>
<tr class="gradelist_row_<?php echo $course['lehrtyp_kurzbz']; ?> gradelist_row_depth_<?php echo $depth; ?>">
<td><?php echo $course['bezeichnung']; ?></td>
<td align="right"><?php echo (isset($course['ects'])?$course['ects']:''); ?></td>
<td class="<?php echo $gradeclass; ?>">
<?php
if (isset($course['note']) && isset($grades[$course['note']]['anmerkung']))
echo $grades[$course['note']]['anmerkung'];
?>
</td>
</tr>
@@ -0,0 +1,52 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Gradelist',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'ajaxlib' => true,
'customCSSs' => array(
'public/css/tools/gradelist.css'
),
'customJSs' => array(
'public/js/bootstrapper.js'
)
)
);
?>
<body>
<div id="wrapper">
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">
<?php echo ucfirst($this->p->t('global', 'uebersicht')); ?> -
<?php echo $person->vorname.' '.$person->nachname.' ('.$user.')';?>
</h1>
</div>
</div>
<div>
<b><?php echo $this->p->t('lehre', 'notendurchschnitt'); ?>:</b>
<?php echo $courses['overall']['notendurchschnitt'] ?><br>
<b><?php echo $this->p->t('lehre', 'gewichteternotendurchschnitt'); ?>:</b>
<?php echo $courses['overall']['notendurchschnittgewichtet'] ?><br>
<b><?php echo $this->p->t('lehre', 'ects'); ?>:</b>
<?php echo $courses['overall']['ectssumme_positiv'] ?><br>
<br>
<?php
foreach ($courses['semester'] as $sem => $row_semester)
{
$this->load->view('person/gradelist/semester.php', $row_semester);
}
?>
</div>
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -0,0 +1,117 @@
<?php
$semesterdata = $data;
$tableid='table-semester-'.$semesterdata['studiensemester_kurzbz'];
?>
<div id="accordion_<?php echo $tableid;?>">
<div class="panel-group">
<div class="panel panel-default">
<div class="panel-heading" id="headingcollapse_<?php echo $tableid;?>">
<a class="btn btn-link"
data-toggle="collapse"
data-target="#collapse_<?php echo $tableid;?>"
aria-expanded="true"
aria-controls="collapse_<?php echo $tableid;?>"
>
<?php
echo $semesterdata['studiensemester_kurzbz'].' - '.
$semesterdata['ausbildungssemester'].'. '.$this->p->t('lehre','ausbildungssemester').' - '.
$semesterdata['status'].' | '.
$semesterdata['ectssumme_positiv'];
if(isset($semesterdata['ectssumme_nonstpl']))
echo ' + '.$semesterdata['ectssumme_nonstpl'];
echo ' '.$this->p->t('lehre','ects');
?>
</a>
</div>
<div id="collapse_<?php echo $tableid;?>"
class="panel-collapse collapse"
aria-labelledby="headingcollapse_<?php echo $tableid;?>"
data-parent="#accordion_<?php echo $tableid;?>"
>
<div class="panel-body">
<?php
if (is_array($lvs) && count($lvs) > 0):
echo '<h4>Lehrveranstaltungen laut Studienplan '.$semesterdata['studienplan_bezeichnung'].'</h4>';
?>
<table id="<?php echo $tableid;?>" class="gradetable">
<thead>
<tr>
<th><?php echo $this->p->t('lehre','lehrveranstaltung');?></th>
<th><?php echo $this->p->t('lehre','ects');?></th>
<th><?php echo $this->p->t('lehre','note');?></th>
</tr>
</thead>
<tbody>
<?php
foreach ($lvs as $row_course)
{
Gradelist::printRow($row_course, 0);
}
?>
</tbody>
<tfoot>
<tr>
<th></th>
<th style="text-align: right">
<?php
echo (isset($semesterdata['ectssumme_positiv'])?$semesterdata['ectssumme_positiv']:'');
if (isset($semesterdata['ectssumme'])
&& isset($semesterdata['ectssumme_positiv'])
&& $semesterdata['ectssumme'] != $semesterdata['ectssumme_positiv'])
{
echo ' ('.$semesterdata['ectssumme'].')';
}
?>
</th>
<th></th>
</tr>
</tfoot>
</table>
<?php
endif;
if (isset($lvs_nonstpl) && count($lvs_nonstpl) > 0):
?>
<h2><?php echo $this->p->t('lehre','nichtstudienplanrelevanteKurse'); ?></h2>
<table id="<?php echo $tableid;?>_nonstpl" class="gradetable">
<thead>
<tr>
<th><?php echo $this->p->t('lehre','lehrveranstaltung');?></th>
<th><?php echo $this->p->t('lehre','ects');?></th>
<th><?php echo $this->p->t('lehre','note');?></th>
</tr>
</thead>
<tbody>
<?php
if(is_array($lvs_nonstpl))
{
foreach ($lvs_nonstpl as $row_course)
{
Gradelist::printRow($row_course, 0);
}
}
?>
</tbody>
<tfoot>
<tr>
<th></th>
<th style="text-align: right"><?php echo (isset($semesterdata['ectssumme_nonstpl'])?number_format($semesterdata['ectssumme_nonstpl'],2):''); ?></th>
<th></th>
</tr>
</tfoot>
</table>
<?php
endif;
?>
</div>
<div class="panel-footer">
<b><?php echo $this->p->t('lehre','notendurchschnitt');?>:</b>
<?php echo (isset($semesterdata['notendurchschnitt'])?$semesterdata['notendurchschnitt']:'');?>
<b><?php echo $this->p->t('lehre','gewichteternotendurchschnitt');?>:</b>
<?php echo (isset($semesterdata['notendurchschnittgewichtet'])?$semesterdata['notendurchschnittgewichtet']:'');?>
</div>
</div>
</div>
</div>
</div>
@@ -9,6 +9,7 @@
$LOGDATA_NAME_PARKED = '\'Parked\'';
$LOGTYPE_KURZBZ = '\'Processstate\'';
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
$ADDITIONAL_STG = '10021,10027';
$query = '
WITH currentOrNextStudiensemester AS (
@@ -64,7 +65,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND NOT EXISTS (
SELECT 1
FROM tbl_prestudentstatus spss
@@ -83,7 +87,10 @@
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
@@ -104,7 +111,11 @@
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (
sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
@@ -125,7 +136,10 @@
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
@@ -146,7 +160,10 @@
AND pss.bewerbung_abgeschicktamum IS NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
@@ -166,7 +183,10 @@
WHERE pss.status_kurzbz IN ('.$STATUS_KURZBZ.')
AND pss.bewerbung_abgeschicktamum IS NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.start >= NOW())
AND NOT EXISTS (
SELECT 1
@@ -206,7 +226,10 @@
FROM public.tbl_prestudent sps
JOIN public.tbl_studiengang ssg USING(studiengang_kz)
WHERE sps.person_id = p.person_id
AND ssg.typ IN ('.$STUDIENGANG_TYP.')
AND (ssg.typ IN ('.$STUDIENGANG_TYP.')
OR
ssg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND '.$INTERESSENT_STATUS.' = (
SELECT spss.status_kurzbz
FROM public.tbl_prestudentstatus spss
@@ -7,6 +7,7 @@
'bootstrap' => true,
'fontawesome' => true,
'jqueryui' => true,
'dialoglib' => true,
'ajaxlib' => true,
'tablesorter' => true,
'tinymce' => true,
@@ -6,6 +6,7 @@
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'New application\'';
$REJECTED_STATUS = '\'Abgewiesener\'';
$ADDITIONAL_STG = '10021,10027';
$query = '
SELECT
@@ -51,7 +52,10 @@
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.bestaetigtam is not null
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
@@ -65,7 +69,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
@@ -78,7 +85,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
AND NOT EXISTS (
SELECT 1
@@ -97,7 +107,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
LIMIT 1
) AS "StgAbgeschickt",
@@ -167,7 +180,10 @@
FROM public.tbl_prestudent ps
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND EXISTS (
SELECT 1
FROM public.tbl_prestudentstatus pss
@@ -5,6 +5,7 @@
$STUDIENGANG_TYP = '\'b\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'New application\'';
$ADDITIONAL_STG = '10021,10027';
$query = '
SELECT
@@ -41,7 +42,10 @@
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
@@ -54,7 +58,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
@@ -67,7 +74,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
LIMIT 1
) AS "AnzahlAbgeschickt",
@@ -79,7 +89,10 @@
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
LIMIT 1
) AS "StgAbgeschickt",
@@ -167,7 +180,10 @@
FROM public.tbl_prestudent ps
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
OR
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND EXISTS (
SELECT 1
FROM public.tbl_prestudentstatus pss
+34 -23
View File
@@ -18,15 +18,16 @@
$addons = isset($addons) ? $addons : false;
$ajaxlib = isset($ajaxlib) ? $ajaxlib : false;
$bootstrap = isset($bootstrap) ? $bootstrap : false;
$dialoglib = isset($dialoglib) ? $dialoglib : false;
$filterwidget = isset($filterwidget) ? $filterwidget : false;
$fontawesome = isset($fontawesome) ? $fontawesome : false;
$jquery = isset($jquery) ? $jquery : false;
$jqueryui = isset($jqueryui) ? $jqueryui : false;
$jquerytreetable = isset($jquerytreetable) ? $jquerytreetable : false;
$navigationwidget = isset($navigationwidget) ? $navigationwidget : false;
$pivotui = isset($pivotui) ? $pivotui : false;
$sbadmintemplate = isset($sbadmintemplate) ? $sbadmintemplate : false;
$tablesorter = isset($tablesorter) ? $tablesorter : false;
$pivotui = isset($pivotui) ? $pivotui : false;
$tinymce = isset($tinymce) ? $tinymce : false;
?>
@@ -51,16 +52,12 @@
// Bootstrap CSS
if ($bootstrap === true) generateCSSsInclude('vendor/twbs/bootstrap/dist/css/bootstrap.min.css');
// jQuery treetable
if ($jquerytreetable === true) generateCSSsInclude('vendor/ludo/jquery-treetable/css/jquery.treetable.css');
// Font Awesome CSS
if ($fontawesome === true) generateCSSsInclude('vendor/components/font-awesome/css/font-awesome.min.css');
// Table sorter CSS
if ($tablesorter === true)
{
generateCSSsInclude('vendor/mottie/tablesorter/dist/css/theme.default.min.css');
generateCSSsInclude('vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css');
}
// PivotUI CSS
if ($pivotui === true)
{
@@ -74,8 +71,12 @@
generateCSSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/css/sb-admin-2.min.css');
}
// jQuery treetable
if ($jquerytreetable === true) generateCSSsInclude('vendor/ludo/jquery-treetable/css/jquery.treetable.css');
// Table sorter CSS
if ($tablesorter === true)
{
generateCSSsInclude('vendor/mottie/tablesorter/dist/css/theme.default.min.css');
generateCSSsInclude('vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css');
}
// --------------------------------------------------------------------------------------------------------
// From public folder
@@ -83,16 +84,20 @@
// AjaxLib CSS
if ($ajaxlib === true) generateCSSsInclude('public/css/AjaxLib.css');
// DialogLib CSS
if ($dialoglib === true) generateCSSsInclude('public/css/DialogLib.css');
// FilterWidget CSS
if ($filterwidget === true) generateCSSsInclude('public/css/FilterWidget.css');
// NavigationWidget CSS
if ($navigationwidget === true) generateCSSsInclude('public/css/NavigationWidget.css');
generateCSSsInclude('public/css/fhcomplete.css');
// Eventually required CSS
generateCSSsInclude($customCSSs); // Eventually required CSS
// --------------------------------------------------------------------------------------------------------
// Javascripts
@@ -120,6 +125,16 @@
// Bootstrap JS
if ($bootstrap === true) generateJSsInclude('vendor/twbs/bootstrap/dist/js/bootstrap.min.js');
// jQuery treetable
// NOTE: keep it after jQuery includes
if ($jquerytreetable === true) generateJSsInclude('vendor/ludo/jquery-treetable/jquery.treetable.js');
// PivotUI CSS
if ($pivotui === true)
{
generateJSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.js');
}
// Table sorter JS
if ($tablesorter === true)
{
@@ -128,12 +143,6 @@
generateJSsInclude('vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js');
}
// PivotUI CSS
if ($pivotui === true)
{
generateJSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.js');
}
// Tinymce JS
if ($tinymce === true) generateJSsInclude('vendor/tinymce/tinymce/tinymce.min.js');
@@ -146,29 +155,31 @@
generateBackwardCompatibleJSMsIe('vendor/scottjehl/Respond/dest/respond.min.js');
}
// jQuery treetable
if ($jquerytreetable === true) generateJSsInclude('vendor/ludo/jquery-treetable/jquery.treetable.js');
// --------------------------------------------------------------------------------------------------------
// From public folder
// DialogLib JS
if ($dialoglib === true) generateJSsInclude('public/js/DialogLib.js');
// AjaxLib JS
// NOTE: must be called before including others JS libraries that use it
if ($ajaxlib === true) generateJSsInclude('public/js/AjaxLib.js');
// PhrasesLib JS
if ($phrases != null) generateJSsInclude('public/js/PhrasesLib.js');
// FilterWidget JS
if ($filterwidget === true) generateJSsInclude('public/js/FilterWidget.js');
// NavigationWidget JS
if ($navigationwidget === true) generateJSsInclude('public/js/NavigationWidget.js');
// PhrasesLib JS
if ($phrases != null) generateJSsInclude('public/js/PhrasesLib.js');
// Load addon hooks JS
// NOTE: keep it as the latest but one
if ($addons === true) generateAddonsJSsInclude($calledPath.'/'.$calledMethod);
// Eventually required JS
// NOTE: keep it as the latest
generateJSsInclude($customJSs);
?>
+5 -1
View File
@@ -109,7 +109,11 @@ $sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tb
LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz)
WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom')
AND (tbl_projektbetreuer.betreuerart_kurzbz='Betreuer' OR tbl_projektbetreuer.betreuerart_kurzbz='Begutachter' OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbetreuer' OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter')
AND (tbl_projektbetreuer.betreuerart_kurzbz='Betreuer'
OR tbl_projektbetreuer.betreuerart_kurzbz='Begutachter'
OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbetreuer'
OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter'
OR tbl_projektbetreuer.betreuerart_kurzbz='Zweitbegutachter')
AND tbl_projektarbeit.student_uid=".$db->db_add_param($uid)."
AND public.tbl_benutzer.aktiv
AND lehre.tbl_projektarbeit.note IS NULL
@@ -129,7 +129,7 @@ if (!empty($anmeldungen))
{
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
$date = strtotime($date);
$date = $date+(60*$pruefungsintervall*($count));
$date = $date+(60*$pruefungsintervall*($anmeldung->reihung-1));
$date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("H:i",$date);
$count++;
}
@@ -248,7 +248,7 @@ $rechte->getBerechtigungen($uid);
{
$date = $datum->formatDatum($prfTermin->von, "Y-m-d H:i:s");
$date = strtotime($date);
$date = $date+(60*$pruefungsintervall*($count));
$date = $date+(60*$pruefungsintervall*($anmeldung->reihung-1));
$date = $datum->formatDatum($prfTermin->von,"d.m.Y").' - '.date("H:i",$date);
$count++;
}
+142 -19
View File
@@ -50,35 +50,142 @@ echo '<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">';
include('../../include/meta/jquery.php');
include('../../include/meta/jquery-tablesorter.php');
?>
<script src="../../vendor/rmariuzzo/jquery-checkboxes/dist/jquery.checkboxes-1.0.7.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#table").tablesorter(
{
sortList: [[0,0]],
widgets: [\'zebra\'],
sortList: [[1,0]],
widgets: ["zebra", "filter", "stickyHeaders"],
headers: { 0: {sorter: false, filter: false}},
widgetOptions : {filter_saveFilters : false,
filter_functions : {
// Add select menu to this column
3 : {
"M" : function(e, n, f, i, $r, c, data) { return /M/.test(e); },
"W" : function(e, n, f, i, $r, c, data) { return /W/.test(e); }
},
4 : {
" - " : function(e, n, f, i, $r, c, data) { return /-/.test(e); },
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
}
}
}
})
// Set number of result rows after filtering
.bind("filterEnd",function(e, t)
{
var rows = $('table.hasFilters tbody tr:visible').length;
$("#rowCounter").html(rows);
});
$("#toggle").on("click", function(e)
{
$("#table").checkboxes("toggle");
e.preventDefault();
if ($("input.chkbox:checked").length > 0)
$("#mailSendButton").html('<?php echo $p->t('mailverteiler/mailAnMarkierteSenden'); ?>');
else
$("#mailSendButton").html('<?php echo $p->t('mailverteiler/mailAnAlleSenden'); ?>');
});
$("#uncheck").on("click", function(e)
{
$("#table").checkboxes("uncheck");
e.preventDefault();
if ($("input.chkbox:checked").length > 0)
$("#mailSendButton").html('<?php echo $p->t('mailverteiler/mailAnMarkierteSenden'); ?>');
else
$("#mailSendButton").html('<?php echo $p->t('mailverteiler/mailAnAlleSenden'); ?>');
});
$("#table").checkboxes("range", true);
$('.chkbox').change(function()
{
if ($("input.chkbox:checked").length > 0)
$("#mailSendButton").html('<?php echo $p->t('mailverteiler/mailAnMarkierteSenden'); ?>');
else
$("#mailSendButton").html('<?php echo $p->t('mailverteiler/mailAnAlleSenden'); ?>');
});
}
);
function SendMail()
{
// Wenn Checkboxen markiert sind, an diese senden, sonst an alle
if ($("input.chkbox:checked").length > 0)
{
var elements = $("input.chkbox:checked");
}
else
{
var elements = $("input.chkbox:visible");
}
var mailadressen = "";
var adresse = "";
var counter = 0;
// Schleife ueber die einzelnen Elemente
// Aus Spamgründen dürfen je Nachricht maximal 100 Empfänger enthalten sein
// Deshalb wird nach 100 Einträgen ein neues window.location.href erzeugt
// Außerdem darf die URL nicht länger als 2048 Zeichen sein
$.each(elements, function(index, item)
{
adresse = $(this).closest("tr").find("td.clm_email a:first").attr("href");
adresse = adresse.replace(/^mailto?:/, "") + ";";
if (counter > 0 && (counter % 100 === 0) || (mailadressen.length + adresse.length > 2048))
{
window.location.href = "mailto:?bcc="+mailadressen;
mailadressen = "";
counter = 0;
}
mailadressen += adresse;
counter ++;
});
window.location.href = "mailto:?bcc="+mailadressen;
}
</script>
<title>' . $p->t('mailverteiler/personenImVerteiler') . '</title>
<style type="text/css">
.buttongreen, a.buttongreen
{
cursor: pointer;
color: #FFFFFF;
margin: 0 5px 5px 0;
text-decoration: none;
border-radius: 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
background-color: #5cb85c;
border-top: 3px solid #5cb85c;
border-bottom: 3px solid #5cb85c;
border-right: 8px solid #5cb85c;
border-left: 8px solid #5cb85c;
display: inline-block;
vertical-align: middle;
}
</style>
<?php
echo ' <title>' . $p->t('mailverteiler/personenImVerteiler') . '</title>
</head>
<body id="inhalt">';
$qry = "SELECT
uid, vorname, nachname
uid, vorname, nachname, geschlecht, fixangestellt
FROM
campus.vw_benutzer
JOIN
tbl_benutzergruppe USING (uid)
LEFT JOIN
public.tbl_mitarbeiter ON (uid = mitarbeiter_uid)
WHERE
gruppe_kurzbz=".$db->db_add_param($gruppe_kurzbz);
@@ -96,16 +203,29 @@ $qry = "SELECT
$qry .= " ORDER BY
nachname, vorname";
echo '<p>'.$p->t('mailverteiler/anleitungstextMailPersInGroup').'<p>';
echo '<a class="buttongreen" href="#" onclick="SendMail()" id="mailSendButton">' . $p->t('mailverteiler/mailAnAlleSenden') . '</a>';
if ($result = $db->db_query($qry))
{
echo '<p>' . $row = $db->db_num_rows($result) . ' ' . $p->t('mailverteiler/personen');
echo '<p><span id="rowCounter">' . $row = $db->db_num_rows($result) . '</span> ' . $p->t('mailverteiler/personen') . '</p>';
}
echo '<table class="tablesorter" id="table">
echo '
<table class="tablesorter" id="table">
<thead>
<tr>
<th style="text-align: center; width: 80px">
<nobr>
<a href="#" data-toggle="checkboxes" data-action="toggle" id="toggle" title="Alle markieren / Invertieren"><img src="../../skin/images/checkbox_toggle.png" name="toggle"></a>&nbsp;&nbsp;
<a href="#" data-toggle="checkboxes" data-action="uncheck" id="uncheck" title="Keine markieren"><img src="../../skin/images/checkbox_uncheck.png" name="toggle"></a>
</nobr>
</th>
<th>' . $p->t('global/nachname') . '</th>
<th>' . $p->t('global/vorname') . '</th>
<th>' . $p->t('global/geschlecht') . '</th>
<th>' . $p->t('global/fixangestellt') . '</th>
<th>' . $p->t('global/mail') . '</th>
</tr></thead><tbody>';
@@ -113,11 +233,14 @@ if ($result = $db->db_query($qry))
{
while ($row = $db->db_fetch_object($result))
{
echo "<tr>";
echo " <td>$row->nachname</td>";
echo " <td>$row->vorname</td>";
echo " <td><a href='mailto:$row->uid@" . DOMAIN . "' class='Item'>$row->uid@" . DOMAIN . "</a></td>";
echo "</tr>";
echo '<tr>';
echo ' <td style="text-align: center"><input type="checkbox" class="chkbox" id="checkbox_'.$row->uid.'" name="checkbox['.$row->uid.']"></td>';
echo ' <td>'.$row->nachname.'</td>';
echo ' <td>'.$row->vorname.'</td>';
echo ' <td>'.strtoupper($row->geschlecht).'</td>';
echo ' <td>'.($row->fixangestellt != '' ? ($row->fixangestellt == 't' ? 'Ja' : 'Nein') :'-').'</td>';
echo ' <td class="clm_email"><a href="mailto:'.$row->uid.'@' . DOMAIN . '" class="Item">'.$row->uid .'@' . DOMAIN . '</a></td>';
echo '</tr>';
}
}
echo '
+125 -16
View File
@@ -32,26 +32,124 @@ echo '<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
<script type="text/javascript">
$(document).ready(function()
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">';
include('../../include/meta/jquery.php');
include('../../include/meta/jquery-tablesorter.php');
?>
<script type="text/javascript">
$(document).ready(function()
{
$("#table").tablesorter(
{
sortList: [[0,0]],
widgets: [\'zebra\'],
sortList: [[1,0]],
widgets: ["zebra", "filter", "stickyHeaders"],
headers: { 0: {sorter: false, filter: false}},
widgetOptions : {filter_saveFilters : false,
filter_functions : {
// Add select menu to this column
3 : {
"M" : function(e, n, f, i, $r, c, data) { return /M/.test(e); },
"W" : function(e, n, f, i, $r, c, data) { return /W/.test(e); }
}
}
}
})
// Set number of result rows after filtering
.bind("filterEnd",function(e, t)
{
var rows = $('table.hasFilters tbody tr:visible').length;
$("#rowCounter").html(rows);
});
$("#toggle").on("click", function(e)
{
$("#table").checkboxes("toggle");
e.preventDefault();
if ($("input.chkbox:checked").length > 0)
$("#mailSendButton").html('<?php echo $p->t('mailverteiler/mailAnMarkierteSenden'); ?>');
else
$("#mailSendButton").html('<?php echo $p->t('mailverteiler/mailAnAlleSenden'); ?>');
});
$("#uncheck").on("click", function(e)
{
$("#table").checkboxes("uncheck");
e.preventDefault();
if ($("input.chkbox:checked").length > 0)
$("#mailSendButton").html('<?php echo $p->t('mailverteiler/mailAnMarkierteSenden'); ?>');
else
$("#mailSendButton").html('<?php echo $p->t('mailverteiler/mailAnAlleSenden'); ?>');
});
$("#table").checkboxes("range", true);
$('.chkbox').change(function()
{
if ($("input.chkbox:checked").length > 0)
$("#mailSendButton").html('<?php echo $p->t('mailverteiler/mailAnMarkierteSenden'); ?>');
else
$("#mailSendButton").html('<?php echo $p->t('mailverteiler/mailAnAlleSenden'); ?>');
});
}
);
function SendMail()
{
// Wenn Checkboxen markiert sind, an diese senden, sonst an alle
if ($("input.chkbox:checked").length > 0)
{
var elements = $("input.chkbox:checked");
}
else
{
var elements = $("input.chkbox:visible");
}
var mailadressen = "";
var adresse = "";
var counter = 0;
// Schleife ueber die einzelnen Elemente
// Aus Spamgründen dürfen je Nachricht maximal 100 Empfänger enthalten sein
// Deshalb wird nach 100 Einträgen ein neues window.location.href erzeugt
// Außerdem darf die URL nicht länger als 2048 Zeichen sein
$.each(elements, function(index, item)
{
adresse = $(this).closest("tr").find("td.clm_email a:first").attr("href");
adresse = adresse.replace(/^mailto?:/, "") + ";";
if (counter > 0 && (counter % 100 === 0) || (mailadressen.length + adresse.length > 2048))
{
window.location.href = "mailto:?bcc="+mailadressen;
mailadressen = "";
counter = 0;
}
mailadressen += adresse;
counter ++;
});
window.location.href = "mailto:?bcc="+mailadressen;
}
</script>
<style type="text/css">
.buttongreen, a.buttongreen
{
cursor: pointer;
color: #FFFFFF;
margin: 0 5px 5px 0;
text-decoration: none;
border-radius: 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
background-color: #5cb85c;
border-top: 3px solid #5cb85c;
border-bottom: 3px solid #5cb85c;
border-right: 8px solid #5cb85c;
border-left: 8px solid #5cb85c;
display: inline-block;
vertical-align: middle;
}
</style>
</head>
<?php echo '
<title>'.$p->t('mailverteiler/personenImVerteiler').'</title>
<body>';
@@ -64,7 +162,7 @@ if (!isset($_GET['kz']))
if (isset($_GET['all']))
{
$qry = "SELECT
vorname, nachname, uid
vorname, nachname, uid, geschlecht
FROM
campus.vw_student
WHERE
@@ -77,7 +175,7 @@ if (isset($_GET['all']))
else
{
$qry = "SELECT
vorname, nachname, uid
vorname, nachname, uid, geschlecht
FROM
campus.vw_student
WHERE
@@ -95,16 +193,25 @@ else
$qry.= ' ORDER BY nachname, vorname';
}
echo '<p>'.$p->t('mailverteiler/anleitungstextMailPersInGroup').'<p>';
echo '<a class="buttongreen" href="#" onclick="SendMail()" id="mailSendButton">' . $p->t('mailverteiler/mailAnAlleSenden') . '</a>';
if ($result = $db->db_query($qry))
{
echo '<p>'.$row=$db->db_num_rows($result).' '.$p->t('mailverteiler/personen');
echo '<p><span id="rowCounter">'.$row=$db->db_num_rows($result).'</span> '.$p->t('mailverteiler/personen').'</p>';
}
echo '
<table class="tablesorter" id="table">
<thead>
<tr>
<th style="text-align: center; width: 80px">
<nobr>
<a href="#" data-toggle="checkboxes" data-action="toggle" id="toggle" title="Alle markieren / Invertieren"><img src="../../skin/images/checkbox_toggle.png" name="toggle"></a>&nbsp;&nbsp;
<a href="#" data-toggle="checkboxes" data-action="uncheck" id="uncheck" title="Keine markieren"><img src="../../skin/images/checkbox_uncheck.png" name="toggle"></a>
</nobr>
</th>
<th>'.$p->t('global/nachname').'</th>
<th>'.$p->t('global/vorname').'</th>
<th>' . $p->t('global/geschlecht') . '</th>
<th>'.$p->t('global/mail').'</th>
</tr>
</thead><tbody>';
@@ -114,9 +221,11 @@ if ($result = $db->db_query($qry))
while ($row = $db->db_fetch_object($result))
{
echo "<tr>";
echo ' <td style="text-align: center"><input type="checkbox" class="chkbox" id="checkbox_'.$row->uid.'" name="checkbox['.$row->uid.']"></td>';
echo " <td>$row->nachname</td>";
echo " <td>$row->vorname</td>";
echo " <td><a href='mailto:$row->uid@".DOMAIN."' class='Item'>$row->uid@".DOMAIN."</a></td>";
echo ' <td>'.strtoupper($row->geschlecht).'</td>';
echo ' <td class="clm_email"><a href="mailto:'.$row->uid.'@' . DOMAIN . '" class="Item">'.$row->uid .'@' . DOMAIN . '</a></td>';
echo "</tr>";
}
}
View File
+2 -1
View File
@@ -144,7 +144,8 @@ if(isset($_POST['NewContent']))
protect: [ /\<\/?(audio[^>]+|audio)\>/g, // Protect <audio...> und </audio>],
/\<\/?(source[^>]+)\>/g, // Protect <source...>],
/\<\/?(video[^>]+|video)\>/g // Protect <video...> und </video>],
],
],
valid_elements: "*[*]", // Allow all attributes in all Tags. Documentation see: https://www.tiny.cloud/docs-3x/reference/configuration/Configuration3x@valid_elements/
file_browser_callback: "FHCFileBrowser",
Binary file not shown.
+7
View File
@@ -110,6 +110,7 @@ foreach($addon_obj->result as $addon)
<command id="menu-statistic-notenspiegel:command" oncommand="StatistikPrintNotenspiegel('html');"/>
<command id="menu-statistic-notenspiegel-excel:command" oncommand="StatistikPrintNotenspiegel('xls');"/>
<command id="menu-statistic-notenspiegel-excel-erweitert:command" oncommand="StatistikPrintNotenspiegelErweitert('xls');"/>
<command id="menu-statistic-notenspiegel-student:command" oncommand="StatistikPrintNotenspiegelStudent();"/>
<command id="menu-statistic-substatistik-studentenprosemester-excel:command" oncommand="StatistikPrintStudentenProSemester('xls');"/>
<command id="menu-statistic-substatistik-studentenprosemester-html:command" oncommand="StatistikPrintStudentenProSemester('');"/>
<command id="menu-statistic-substatistik-alvsstatistik-excel:command" oncommand="StatistikPrintALVSStatistik('xls');"/>
@@ -371,6 +372,12 @@ foreach($addon_obj->result as $addon)
label = "&menu-statistic-notenspiegel.label;"
command = "menu-statistic-notenspiegel:command"
accesskey = "&menu-statistic-notenspiegel.accesskey;"/>
<menuitem
id = "menu-statistic-notenspiegel-student"
key = "menu-statistic-notenspiegel-student:key"
label = "&menu-statistic-notenspiegel-student.label;"
command = "menu-statistic-notenspiegel-student:command"
accesskey = "&menu-statistic-notenspiegel-student.accesskey;"/>
</menupopup>
</menu>
</menupopup>
+20
View File
@@ -1077,6 +1077,26 @@ function StatistikPrintNotenspiegelErweitert(typ)
window.open('<?php echo APP_ROOT ?>content/statistik/notenspiegel_erweitert.php?studiengang_kz='+studiengang_kz+'&semester='+semester+'&typ='+typ+'&orgform='+orgform,'Notenspiegel');
}
function StatistikPrintNotenspiegelStudent()
{
var tree = document.getElementById('student-tree');
var data='';
//Wenn nichts markiert wurde -> alle exportieren
if(tree.currentIndex==-1)
{
alert("Bitte zuerst einen Studenten markieren");
return;
}
var student_uid = getTreeCellText(tree, 'student-treecol-uid', tree.currentIndex);
if (student_uid == '')
{
alert('Markierte Person ist kein Student');
return;
}
window.open('<?php echo APP_ROOT ?>index.ci.php/person/gradelist/index/'+student_uid,'Notenspiegel');
}
// ****
// * Liefert eine statistik ueber die Anzahl der Interessenten/Bewerber Studenten
// ****
+19 -6
View File
@@ -164,6 +164,11 @@ if($typ=='xls')
$format_bold_center->setAlign('center');
$format_bold_center->setBorder(1);
$format_bold_left =& $workbook->addFormat();
$format_bold_left->setBold();
$format_bold_left->setAlign('left');
$format_bold_left->setBorder(1);
$format_number =& $workbook->addFormat();
$format_number->setNumFormat('0.00');
$format_number->setBorder(1);
@@ -208,9 +213,13 @@ if($typ=='xls')
$maxlength[$spalte]=10;
$worksheet->write($zeile,++$spalte,'Vorname', $format_bold);
$maxlength[$spalte]=10;
$worksheet->write($zeile, ++$spalte, 'V', $format_bold);
$maxlength[$spalte] = 2;
$worksheet->write($zeile, ++$spalte, 'G', $format_bold);
$maxlength[$spalte] = 2;
$worksheet->write($zeile,++$spalte,'Personenkennzeichen', $format_bold);
$maxlength[$spalte]=20;
$maxheaderheight=20;
$maxlength[$spalte] = 20;
$maxheaderheight = 20;
while($row_lva = $db->db_fetch_object($result_lva))
{
@@ -252,7 +261,9 @@ if($typ=='xls')
$worksheet->write($zeile,++$spalte,$row_student->vorname, $format_bold);
if($maxlength[$spalte]<strlen($row_student->vorname))
$maxlength[$spalte]=strlen($row_student->vorname);
$worksheet->write($zeile,++$spalte,$row_student->matrikelnr, $format_bold);
$worksheet->write($zeile, ++$spalte, $row_student->verband, $format_bold);
$worksheet->write($zeile, ++$spalte, $row_student->gruppe, $format_bold_left);
$worksheet->write($zeile, ++$spalte,$row_student->matrikelnr, $format_bold);
//Alle Zeugnisnoten des Studierenden holen
$noten = array();
@@ -341,7 +352,7 @@ if($typ=='xls')
}
$zeile++;
$spalte=2;
$spalte = 4;
$worksheet->write($zeile,$spalte,'Notendurchschnitt', $format_bold);
$summe_schnitt=0;
@@ -385,8 +396,10 @@ if($typ=='xls')
//Zellen der 1. Zeile verbinden
$worksheet->setMerge(0,0,0,$spalte);
//Hoehe der 2. Zeile anpassen damit die LVs alle sichtbar sind
$worksheet->setRow(1,$maxheaderheight*5);
//Hoehe der 2. Zeile anpassen damit die LVs alle sichtbar sind, aber nicht größer als 300
if ($maxheaderheight * 5 > 300)
$maxheaderheight = 60;
$worksheet->setRow(1, $maxheaderheight * 5);
//Ausdruck auf 1 Seite anpassen
$worksheet->fitToPages(1,1);
+19 -5
View File
@@ -236,6 +236,11 @@ if ($typ == 'xls')
$format_bold_center->setBold();
$format_bold_center->setAlign('center');
$format_bold_center->setBorder(1);
$format_bold_left =& $workbook->addFormat();
$format_bold_left->setBold();
$format_bold_left->setAlign('left');
$format_bold_left->setBorder(1);
$format_bold_noborder =& $workbook->addFormat();
$format_bold_noborder->setBold();
@@ -306,8 +311,13 @@ if ($typ == 'xls')
$maxlength[$spalte] = 10;
$worksheet->write($zeile, ++$spalte, 'Vorname', $format_bold);
$maxlength[$spalte] = 10;
$worksheet->write($zeile, ++$spalte, 'V', $format_bold);
$maxlength[$spalte] = 2;
$worksheet->write($zeile, ++$spalte, 'G', $format_bold);
$maxlength[$spalte] = 2;
$worksheet->write($zeile, ++$spalte, 'Personenkennzeichen', $format_bold);
$maxlength[$spalte] = 32;
$maxlength[$spalte] = 35;
$maxheaderheight = 20;
while ($row_lva = $db->db_fetch_object($result_lva))
@@ -351,6 +361,8 @@ if ($typ == 'xls')
$worksheet->write($zeile, ++$spalte, $row_student->vorname, $format_bold);
if ($maxlength[$spalte] < strlen($row_student->vorname))
$maxlength[$spalte] = strlen($row_student->vorname);
$worksheet->write($zeile, ++$spalte, $row_student->verband, $format_bold);
$worksheet->write($zeile, ++$spalte, $row_student->gruppe, $format_bold_left);
$worksheet->write($zeile, ++$spalte, $row_student->matrikelnr, $format_bold);
//Alle Zeugnisnoten des Studierenden holen
@@ -479,7 +491,7 @@ if ($typ == 'xls')
}
}
$zeile++;
$spalte = 2;
$spalte = 4;
$worksheet->write($zeile, $spalte, 'Notendurchschnitt', $format_bold);
$summe_schnitt = 0;
@@ -517,7 +529,7 @@ if ($typ == 'xls')
$zeile += 5;
$legendzeile = $zeile;
$startcolumn = 2;
$startcolumn = 4;
//Farblegende
$bezeichnungen = array();
@@ -563,7 +575,7 @@ if ($typ == 'xls')
for($i = 1; $i <= $totalmergefarb; $i++)
$worksheet->write($legendzeile, $startcolumn + $i, "", $format_colored_nichtzugeteilt);
$startcolumn = $currentcolumn = 9;
$startcolumn = $currentcolumn = 11;
//Notenlegende
//optimale Länge in kleinsten Einheiten - Notenspalten
@@ -651,7 +663,9 @@ if ($typ == 'xls')
for($i = 1; $i <= $spalte; $i++)
$worksheet->write(0, $i, "", $format_bold_center);
//Hoehe der 2. Zeile anpassen damit die LVs alle sichtbar sind
//Hoehe der 2. Zeile anpassen damit die LVs alle sichtbar sind, aber nicht größer als 300
if ($maxheaderheight * 5 > 300)
$maxheaderheight = 60;
$worksheet->setRow(1, $maxheaderheight * 5);
//Ausdruck auf 1 Seite anpassen
@@ -260,6 +260,8 @@ function draw_content($row)
$prestudent->getLastStatus($row->prestudent_id);
$status = $prestudent->status_kurzbz;
$orgform = $prestudent->orgform_kurzbz;
$prio_relativ = new prestudent();
$prio_relativ = $prio_relativ->getRelativePriorisierungFromAbsolut($row->prestudent_id, $row->priorisierung);
$i = 0;
@@ -647,10 +649,11 @@ function draw_content($row)
$worksheet->write($zeile, $i, $row->rt_gesamtpunkte);
$i++;
//RT_Gesamtpunkte
if (mb_strlen($row->priorisierung) > $maxlength[$i])
$maxlength[$i] = mb_strlen($row->priorisierung);
$worksheet->write($zeile, $i, $row->priorisierung);
//Priorisierung
$prio = $prio_relativ.' ('.$row->priorisierung.')';
if (mb_strlen($prio) > $maxlength[$i])
$maxlength[$i] = mb_strlen($prio);
$worksheet->write($zeile, $i, $prio);
$i++;
// UDF
+6 -6
View File
@@ -365,14 +365,14 @@ else
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/student/rdf#aufnahmegruppe_kurzbz" onclick="StudentTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="student-treecol-rt_datum" label="RT Datum" flex="1" hidden="true" persist="hidden, width, ordinal"
<!--<treecol id="student-treecol-rt_datum" label="RT Datum" flex="1" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/student/rdf#rt_datum" onclick="StudentTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="student-treecol-rt_anmeldung" label="RT Anmeldung" flex="1" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/student/rdf#rt_anmeldung" onclick="StudentTreeSort()"/>
<splitter class="tree-splitter"/>
<splitter class="tree-splitter"/>-->
<treecol id="student-treecol-dual" label="Dual" flex="1" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/student/rdf#dual_bezeichnung" onclick="StudentTreeSort()"/>
@@ -391,7 +391,7 @@ else
<splitter class="tree-splitter"/>
<treecol id="student-treecol-priorisierung" label="Priorität" flex="1" hidden="false" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/student/rdf#priorisierung" onclick="StudentTreeSort()"/>
sort="rdf:http://www.technikum-wien.at/student/rdf#priorisierung_realtiv" onclick="StudentTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="student-treecol-mentor" label="Mentor" flex="1" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
@@ -446,13 +446,13 @@ else
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#punkte3" />
-->
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#aufnahmegruppe_kurzbz" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#rt_datum" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#rt_anmeldung" />
<!--<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#rt_datum" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#rt_anmeldung" />-->
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#dual_bezeichnung" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#matr_nr" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#studienplan_bezeichnung" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#prestudent_id" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#priorisierung" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#priorisierung_realtiv" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#mentor" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#aktiv" />
<treecell properties="Aktiv_rdf:http://www.technikum-wien.at/student/rdf#aktiv" label="rdf:http://www.technikum-wien.at/student/rdf#geburtsdatum_iso" />
+15 -3
View File
@@ -279,7 +279,7 @@ function StudentProjektarbeitTreeSelectID()
//In der globalen Variable ist die zu selektierende Eintrag gespeichert
if(StudentProjektarbeitSelectID!=null)
{
for(var i=0;i<items;i++)
for(var i = 0;i < items; i++)
{
//ID der row holen
col = tree.columns ? tree.columns["student-projektarbeit-tree-projektarbeit_id"] : "student-projektarbeit-tree-projektarbeit_id";
@@ -727,7 +727,7 @@ function StudentProjektbetreuerTreeSelectID()
//In der globalen Variable ist die zu selektierende Eintrag gespeichert
if(StudentProjektbetreuerSelectPersonID!=null)
{
for(var i=0;i<items;i++)
for(var i = 0;i < items; i++)
{
//ID der row holen
col = tree.columns ? tree.columns["student-projektbetreuer-tree-projektarbeit_id"] : "student-projektbetreuer-tree-projektarbeit_id";
@@ -864,19 +864,31 @@ function StudentProjektbetreuerDetailReset()
document.getElementById('student-projektbetreuer-textbox-faktor').value='1';
document.getElementById('student-projektbetreuer-textbox-name').value='';
document.getElementById('student-projektbetreuer-menulist-note').value='';
document.getElementById('student-projektbetreuer-menulist-betreuerart').value='Betreuer';
document.getElementById('student-projektbetreuer-textbox-punkte').value='0.0';
if(document.getElementById('student-projektarbeit-menulist-projekttyp').value=='Diplom')
{
document.getElementById('student-projektbetreuer-textbox-stunden').value='5.0';
document.getElementById('student-projektbetreuer-menulist-betreuerart').value='Erstbegutachter';
}
else if(document.getElementById('student-projektarbeit-menulist-projekttyp').value=='Bachelor')
{
document.getElementById('student-projektbetreuer-textbox-stunden').value='3.0';
document.getElementById('student-projektbetreuer-menulist-betreuerart').value='Begutachter';
}
else if(document.getElementById('student-projektarbeit-menulist-projekttyp').value=='Praktikum')
{
document.getElementById('student-projektbetreuer-menulist-betreuerart').value='BetreuerPraktik';
}
else if(document.getElementById('student-projektarbeit-menulist-projekttyp').value=='Projekt')
{
document.getElementById('student-projektbetreuer-menulist-betreuerart').value='BetreuerProjekt';
}
else
{
document.getElementById('student-projektbetreuer-textbox-stunden').value='0.0';
document.getElementById('student-projektbetreuer-menulist-betreuerart').value='Begutachter';
}
document.getElementById('student-projektbetreuer-textbox-stundensatz').value='80.0';
document.getElementById('student-projektbetreuer-menulist-person').value='';
@@ -182,14 +182,24 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<row>
<label value="Typ" control="student-projektarbeit-menulist-projekttyp"/>
<menulist id="student-projektarbeit-menulist-projekttyp" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/projekttyp.rdf.php" flex="1"
ref="http://www.technikum-wien.at/projekttyp/liste" >
xmlns:TYP="http://www.technikum-wien.at/projekttyp/rdf#"
datasources="<?php echo APP_ROOT ?>rdf/projekttyp.rdf.php" flex="1"
ref="http://www.technikum-wien.at/projekttyp/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/projekttyp/rdf#projekttyp_kurzbz"
label="rdf:http://www.technikum-wien.at/projekttyp/rdf#bezeichnung"
uri="rdf:*"/>
<rule TYP:aktiv='false'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/projekttyp/rdf#projekttyp_kurzbz"
label="rdf:http://www.technikum-wien.at/projekttyp/rdf#bezeichnung"
uri="rdf:*" style="text-decoration:line-through;"/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/projekttyp/rdf#projekttyp_kurzbz"
label="rdf:http://www.technikum-wien.at/projekttyp/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</rule>
</template>
</menulist>
</row>
@@ -437,14 +447,24 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<row>
<label value="Art" control="student-projektbetreuer-menulist-betreuerart"/>
<menulist id="student-projektbetreuer-menulist-betreuerart" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/betreuerart.rdf.php" flex="1"
ref="http://www.technikum-wien.at/betreuerart" >
xmlns:BETREUERART="http://www.technikum-wien.at/betreuerart/rdf#"
datasources="<?php echo APP_ROOT ?>rdf/betreuerart.rdf.php" flex="1"
ref="http://www.technikum-wien.at/betreuerart" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/betreuerart/rdf#betreuerart_kurzbz"
label="rdf:http://www.technikum-wien.at/betreuerart/rdf#beschreibung"
uri="rdf:*"/>
</menupopup>
<rule BETREUERART:aktiv='false'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/betreuerart/rdf#betreuerart_kurzbz"
label="rdf:http://www.technikum-wien.at/betreuerart/rdf#beschreibung"
uri="rdf:*" style="text-decoration:line-through;"/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/betreuerart/rdf#betreuerart_kurzbz"
label="rdf:http://www.technikum-wien.at/betreuerart/rdf#beschreibung"
uri="rdf:*"/>
</menupopup>
</rule>
</template>
</menulist>
</row>
+1 -1
View File
@@ -473,7 +473,7 @@ function SyncLVPlan()
// ****
function OpenManualTempus()
{
window.open('<?php echo APP_ROOT ?>content/Tempus.pdf','Manual');
window.open('https://fhcomplete.technikum-wien.at/dokuwiki/doku.php?id=tempus:allgemeines','Manual');
}
// ****
+4
View File
@@ -30,6 +30,8 @@ class benutzer extends person
public $bn_ext_id;
public $aktivierungscode;
public $result = array();
public $updateaktivam;
public $updateaktivvon;
/**
* Konstruktor - Uebergibt die Connection und laedt optional einen Benutzer
@@ -65,6 +67,8 @@ class benutzer extends person
$this->bnaktiv = $this->db_parse_bool($row->aktiv);
$this->alias = $row->alias;
$this->aktivierungscode = $row->aktivierungscode;
$this->updateaktivam = $row->updateaktivam;
$this->updateaktivvon = $row->updateaktivvon;
if(!person::load($row->person_id))
return false;
+58
View File
@@ -1982,4 +1982,62 @@ class prestudent extends person
}
}
/**
* Liefert die relative Priorität (zB 1, 2, 3) eines PreStudenten Anhand seiner absoluten Priorität (zB 9, 10, 11)
* @param integer $prestudent_id PrestudentID deren relative Priorität ermittelt werden soll
* @param string $priorisierungAbsolut Absolute Priorität deren relative Platzierung ermittelt werden soll
* @return integer Relative Platzierung des PreStudenten oder false im Fehlerfall
*/
public function getRelativePriorisierungFromAbsolut($prestudent_id, $priorisierungAbsolut)
{
$qry = "SELECT count(*) AS prio_relativ
FROM (
SELECT *,
(
SELECT status_kurzbz
FROM PUBLIC.tbl_prestudentstatus
WHERE prestudent_id = pss.prestudent_id
ORDER BY datum DESC,
tbl_prestudentstatus.insertamum DESC LIMIT 1
) AS laststatus
FROM PUBLIC.tbl_prestudent pss
JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
WHERE person_id = (
SELECT person_id
FROM PUBLIC.tbl_prestudent
WHERE prestudent_id = ".$this->db_add_param($prestudent_id, FHC_INTEGER)."
)
AND studiensemester_kurzbz = (
SELECT studiensemester_kurzbz
FROM PUBLIC.tbl_prestudentstatus
WHERE prestudent_id = ".$this->db_add_param($prestudent_id, FHC_INTEGER)."
AND status_kurzbz = 'Interessent' LIMIT 1
)
AND status_kurzbz = 'Interessent'
) prest
WHERE laststatus NOT IN ('Abbrecher', 'Abgewiesener', 'Absolvent')
AND priorisierung <= ".$this->db_add_param($priorisierungAbsolut, FHC_INTEGER);
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
return $row->prio_relativ;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
+4
View File
@@ -114,6 +114,10 @@
<!ENTITY menu-statistic-notenspiegel.label "Notenspiegel HTML">
<!ENTITY menu-statistic-notenspiegel.accesskey "H">
<!ENTITY menu-statistic-notenspiegel-student.key "S">
<!ENTITY menu-statistic-notenspiegel-student.label "Notenspiegel Student">
<!ENTITY menu-statistic-notenspiegel-student.accesskey "S">
<!ENTITY menu-statistic-substatistik-bewerberstatistik.label "BewerberInnenstatistik">
<!ENTITY menu-statistic-substatistik-bewerberstatistik.accesskey "B">
+1
View File
@@ -144,6 +144,7 @@ $this->phrasen['global/hilfe']='Hilfe';
$this->phrasen['global/benutzer']='Benutzer';
$this->phrasen['global/anleitung']='Anleitung';
$this->phrasen['global/bericht']='Bericht';
$this->phrasen['global/fixangestellt']='Fixangestellt';
// Statusmeldungen
$this->phrasen['global/erfolgreichgespeichert']='Erfolgreich gespeichert';
+5
View File
@@ -30,4 +30,9 @@ $this->phrasen['mailverteiler/bestaetige']='Bestätige';
$this->phrasen['mailverteiler/personenImVerteiler']='Personen im Mailverteiler';
$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Beim Freischalten des Verteilers ist ein Fehler aufgetreten.<br>Bitte informieren Sie den Administrator';
$this->phrasen['mailverteiler/verteilerGenerieren']='Verteiler für Gruppe <b>%1$s</b> generieren';
$this->phrasen['mailverteiler/anleitungstextMailPersInGroup']='Hier haben Sie die Möglichkeit, eine E-Mail an eine Teilmenge des Mailverteilers zu schicken. <br>
Sie können die Liste mit den Textfeldern und Dropdowns bei den Überschriften filtern. Markieren Sie danach jene Personen, denen Sie eine E-Mail schicken wollen.
<br><br><b>Hinweis:</b> Aus technischen Gründen werden die Empfänger ab einer bestimmten Anzahl auf mehrere E-Mail-Fenster aufgeteilt';
$this->phrasen['mailverteiler/mailAnMarkierteSenden']='Mail an alle markierten senden';
$this->phrasen['mailverteiler/mailAnAlleSenden']='Mail an alle senden';
?>
+1
View File
@@ -143,6 +143,7 @@ $this->phrasen['global/hilfe']='Help';
$this->phrasen['global/benutzer']='User';
$this->phrasen['global/anleitung']='Manual';
$this->phrasen['global/bericht']='Report';
$this->phrasen['global/fixangestellt']='Salaried';
// Statusmeldungen
$this->phrasen['global/erfolgreichgespeichert']='Successfully saved';
+3
View File
@@ -29,4 +29,7 @@ $this->phrasen['mailverteiler/bestaetige']='Confirm';
$this->phrasen['mailverteiler/personenImVerteiler']='People in this mailing list';
$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Failed to open mailing list.<br>Please inform your administrator.';
$this->phrasen['mailverteiler/verteilerGenerieren']='Generate mailing list for <b>%1$s</b>';
$this->phrasen['mailverteiler/anleitungstextMailPersInGroup']='You have the option to filter the list and send an e-mail to the selected persons then.';
$this->phrasen['mailverteiler/mailAnMarkierteSenden']='Send e-mail to selected persons';
$this->phrasen['mailverteiler/mailAnAlleSenden']='Send e-mail to all persons';
?>
+1 -1
View File
@@ -16,7 +16,7 @@ $this->phrasen['tools/alleStudiensemester']='All semester';
$this->phrasen['tools/abschlussdokumente']='Final documents/Transcripts';
$this->phrasen['tools/nochKeineAbschlussdokumenteVorhanden']='No final documents available yet';
$this->phrasen['tools/keinStatusImStudiensemester']='No status found for %1$s. Please select a valid semester from the dropdown.';
$this->phrasen['tools/warnungDruckDigitaleSignatur']='<b>Warning!</b> Digitally signed documents are not displayed correctly in some browsers or PDF-readers. <br/>Please use <a href="https://get.adobe.com/de/reader/" target="_blank">Adobe Acrobat Reader</a>, if you want to print out the doument.'; // Nur grob übersetzt
$this->phrasen['tools/warnungDruckDigitaleSignatur']='<b>Note!</b> Digitally signed documents are not displayed correctly in some browsers and PDF readers. <br/>Please use the <a href="https://get.adobe.com/de/reader/" target="_blank">Adobe Acrobat Reader</a> if you want to print the document.';
//Leistungsbeurteilung
$this->phrasen['tools/leistungsbeurteilung']='Performance Assessment ';
+11
View File
@@ -0,0 +1,11 @@
.dialogmessage
{
text-align: center;
font-size: 1.1em;
margin: 12px 0 10px 0;
}
.dialogmessage .glyphicon
{
top: 3px;
}
+23
View File
@@ -0,0 +1,23 @@
.page-header {
margin: 10px 0 5px;
}
h1 {
font-size: 2rem;
}
h2 {
font-size: 1.8rem;
}
h3 {
font-size: 1.6rem;
}
h4 {
font-size: 1.4rem;
}
h5 {
font-size: 1.2rem;
}
h6 {
font-size: 1rem;
}
+5 -1
View File
@@ -19,6 +19,10 @@
border-bottom: #ccc 2px solid !important;
}
/* Remove black border at top of table footer */
.tablesorter-default tfoot > tr > th {
border-top: #ccc 2px solid !important;
}
/* set colors of zebra widget */
table.tablesorter tbody tr.even td, table.tablesorter tbody tr.even:hover, table.tablesorter tbody tr.even td:hover{
background-color: #ffff;
@@ -57,4 +61,4 @@ table.tablesort-hover tr:hover, .tablesort-active{
/* bring datepicker to front */
#ui-datepicker-div{
z-index: 9999 !important;
}
}
+40
View File
@@ -0,0 +1,40 @@
.gradetable > thead > tr > th{
border-bottom: 1px solid black;
}
.gradetable > tbody > tr > td{
border-bottom: 1px solid #eeeeee;
}
.gradetable > tfoot > tr > th {
border-top: 1px solid black;
}
.gradelist_row_lv {
}
.gradelist_row_modul > td {
border-bottom: 1px solid black;
background-color: #eeeeee;
}
.gradelist_row_grade_positiv {
color: green;
}
.gradelist_row_grade_negativ {
color: red;
}
.gradelist_row_depth_1 > td:first-child {
padding-left: 15px !important;
}
.gradelist_row_depth_2 > td:first-child {
padding-left: 30px !important;
}
.gradelist_row_depth_3 > td:first-child {
padding-left: 45px !important;
}
.gradelist_row_depth_4 > td:first-child {
padding-left: 60px !important;
}
.gradelist_row_depth_5 > td:first-child {
padding-left: 75px !important;
}
.gradelist_row_depth_6 > td:first-child {
padding-left: 90px !important;
}
+95
View File
@@ -0,0 +1,95 @@
/**
* FH-Complete
*
* @package
* @author
* @copyright Copyright (c) 2016 fhcomplete.org
* @license GPLv3
* @link https://fhcomplete.org
* @since Version 1.0.0
*/
var FHC_DialogLib = {
/**
* Show success message as jQueryUI alert. Works only with bootstrap.
* @param message
*/
alertSuccess: function(message)
{
var html = "<p class='dialogmessage'><i class='glyphicon glyphicon-ok-sign'></i>&nbsp;&nbsp;"+message+"</p>";
FHC_DialogLib.alertDefault('Success', html);
$(".ui-dialog-titlebar").addClass("alert-success text-center");
$(".glyphicon-ok-sign").css("color", "#3c763d");
FHC_DialogLib._formatShortDialog();
},
/**
* Show error message as jQueryUI alert. Works only with bootstrap.
* @param message
*/
alertError: function(message)
{
var html = "<p class='dialogmessage'><i class='glyphicon glyphicon-warning-sign'></i>&nbsp;&nbsp;"+message+"</p>";
FHC_DialogLib.alertDefault('Error occured', html);
$(".ui-dialog-titlebar").addClass("alert-danger text-center");
$(".glyphicon-warning-sign").css("color", "#a94442");
FHC_DialogLib._formatShortDialog();
},
/**
* Show info message as jQueryUI alert. Works only with bootstrap.
* @param message
*/
alertInfo: function(message)
{
var html = "<p class='dialogmessage'><i class='glyphicon glyphicon-info-sign'></i>&nbsp;&nbsp;"+message+"</p>";
FHC_DialogLib.alertDefault('Info', html);
$(".ui-dialog-titlebar").addClass("alert-info text-center");
$(".glyphicon-info-sign").css("color", "#245269");
FHC_DialogLib._formatShortDialog();
},
/**
* Default jQueryUI alert
* @param title shown as message box heading
* @param html shown inside message box
* @param width of the message box
*/
alertDefault: function(title, html, width)
{
var strDivDialog = "<div id=\"fhc-dialoglib-dialog\">";
strDivDialog += html;
strDivDialog += "</div>";
$(strDivDialog).appendTo("body"); // append the dialog div to the body
$("#fhc-dialoglib-dialog").dialog({
title: title,
dialogClass: "no-close",
autoOpen: true,
modal: true,
resizable: false,
height: "auto",
width: width,
minWidth: 300,
closeOnEscape: false,
buttons: [{
text: "Ok",
click: function() {
$(this).dialog("close");
}
}]
});
},
/**
* formats jQueryUI messagebox as "short", i.e. containing only one line of text,
* centers the text
* @private
*/
_formatShortDialog: function()
{
$(".ui-dialog-title").width("100%");
$(".ui-dialog-buttonpane.ui-widget-content").css("padding", ".3em .4em .5em .4em");
$(".ui-dialog .ui-dialog-content").css("padding", "0");
$(".ui-dialog-buttonset button").css("margin", "0");
}
};
+4 -1
View File
@@ -25,7 +25,10 @@ var FHC_PhrasesLib = {
* @param {Object} params : parameters to be replaced instead of {<parameter name>} in phraseObj.text
* @returns {String} : phrase-text
*/
t: function(category, phrase, params = {}) {
t: function(category, phrase, params) {
if (typeof(params)=='undefined')
params = {};
// Checks if FHC_JS_PHRASES_STORAGE_OBJECT is an array
if ($.isArray(FHC_JS_PHRASES_STORAGE_OBJECT))
+49 -39
View File
@@ -115,7 +115,7 @@ $(document).ready(function ()
var InfocenterDetails = {
genericSaveError: function() {
alert("error when saving");
FHC_DialogLib.alertError("error when saving");
},
openZgvInfoForPrestudent: function(prestudent_id)
{
@@ -170,14 +170,11 @@ var InfocenterDetails = {
data,
{
successCallback: function(data, textStatus, jqXHR) {
if (data === true)
if (data !== true)
{
InfocenterDetails._refreshZgv(true);
}
else
{
alert("error when saving zgv Prio");
FHC_DialogLib.alertError("error when saving ZGV prio");
}
InfocenterDetails._refreshZgv(true);
}
}
);
@@ -260,7 +257,7 @@ var InfocenterDetails = {
}
else
{
alert("error when saving Absage");
FHC_DialogLib.alertError("error when saving Absage");
}
}
}
@@ -284,13 +281,13 @@ var InfocenterDetails = {
}
else if (data.error === 2 && parseInt(data.retval.prestudent_id, 10))
{
alert("error when setting accepted documents");
FHC_DialogLib.alertError("error when setting accepted documents");
InfocenterDetails._refreshZgv();
InfocenterDetails._refreshLog();
}
else
{
alert("error when saving Freigabe");
FHC_DialogLib.alertError("error when saving Freigabe");
}
}
}
@@ -483,7 +480,8 @@ var InfocenterDetails = {
return;
// check if a prestudent in same semester is already freigegeben - then not send message again
var freigegeben = false;
var rtFreigegeben = false;
var stgFreigegeben = false;
var receiverPrestudentstatus = null;
//get prestudentstatus of message receiver
@@ -512,8 +510,15 @@ var InfocenterDetails = {
&& prestudentstatus.bestaetigtam !== null && prestudentstatus.status_kurzbz === "Interessent"
&& prestudent.studiengangtyp === "b")
{
freigegeben = true;
break;
if (prestudentstatus.statusgrund_id === null)
{
rtFreigegeben = true;
break;
}
else if($.isNumeric(prestudentstatus.statusgrund_id))
{
stgFreigegeben = true;
}
}
}
}
@@ -523,46 +528,51 @@ var InfocenterDetails = {
var studiengangbezeichnung_englisch = receiverPrestudentstatus.studiengangbezeichnung_englisch;
var msgvars = {};
if (freigegeben)
if (rtfreigabe)
{
InfocenterDetails._refreshLog();
//if already freigegeben, still send (shorter) message if Quereinsteiger
if (ausbildungssemester > 1)
{
msgvars = {
'ausbildungssemester': ausbildungssemester,
'studiengangbezeichnung': studiengangbezeichnung,
'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
};
InfocenterDetails.sendFreigabeMessage(prestudentid, RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ, msgvars);
}
}
else
{
var vorlage_kurzbz = null;
if (rtfreigabe)
if (rtFreigegeben)
{
//if already for RT freigegeben, still send short message if Quereinsteiger
if (ausbildungssemester > 1)
{
vorlage_kurzbz = RTFREIGABE_MESSAGE_VORLAGE_QUER;
msgvars = {
/*'rtlink': FHC_JS_DATA_STORAGE_OBJECT.app_root + 'addons/bewerbung/cis/registration.php?active=aufnahme',*/
'ausbildungssemester': ausbildungssemester,
'studiengangbezeichnung': studiengangbezeichnung,
'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
}
};
InfocenterDetails.sendFreigabeMessage(prestudentid, RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ, msgvars);
}
}
else //not already for RT freigegeben - send RTfreigabe message
{
var vorlage = null;
//send Quereinstiegsmessage if later Ausbildungssemester
if (ausbildungssemester > 1)
{
msgvars = {
'ausbildungssemester': ausbildungssemester,
'studiengangbezeichnung': studiengangbezeichnung,
'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
};
vorlage = RTFREIGABE_MESSAGE_VORLAGE_QUER
}
else
{
vorlage_kurzbz = RTFREIGABE_MESSAGE_VORLAGE;
//send normal RTfreigabe message
vorlage = RTFREIGABE_MESSAGE_VORLAGE
}
InfocenterDetails.sendFreigabeMessage(prestudentid, vorlage, msgvars);
}
else
}
else if (rtfreigabe === false)
{
// if Freigabe to Studiengang, send StgFreigabe Message if not already sent
if (!stgFreigegeben)
{
vorlage_kurzbz = STGFREIGABE_MESSAGE_VORLAGE;
InfocenterDetails.sendFreigabeMessage(prestudentid, STGFREIGABE_MESSAGE_VORLAGE, msgvars);
}
InfocenterDetails.sendFreigabeMessage(prestudentid, vorlage_kurzbz, msgvars);
}
};
@@ -730,7 +740,7 @@ var InfocenterDetails = {
var prestudent_id = this.id.substr(this.id.indexOf("_") + 1);
var statusgrund_id = $("#frgstatusgrselect_" + prestudent_id + " select[name=frgstatusgrund]").val();
var data = {"prestudent_id": prestudent_id, "statusgrund_id": statusgrund_id};
InfocenterDetails.saveFreigabe(data);//Studiengangfreigabe
InfocenterDetails.saveFreigabe(data, false);//Studiengangfreigabe
}
)
},
+2 -1
View File
@@ -24,7 +24,7 @@ require_once('../include/basis_db.class.php');
$oRdf = new rdf('BETREUERART','http://www.technikum-wien.at/betreuerart');
$oRdf->sendHeader();
$qry = "SELECT * FROM lehre.tbl_betreuerart ORDER BY betreuerart_kurzbz";
$qry = "SELECT * FROM lehre.tbl_betreuerart ORDER BY aktiv DESC, beschreibung";
$db = new basis_db();
if($db->db_query($qry))
{
@@ -34,6 +34,7 @@ if($db->db_query($qry))
//$oRdf->obj[$i]->setAttribut('id',$row->betreuerart_kurzbz,false);
$oRdf->obj[$i]->setAttribut('betreuerart_kurzbz',$row->betreuerart_kurzbz,true);
$oRdf->obj[$i]->setAttribut('beschreibung',$row->beschreibung,true);
$oRdf->obj[$i]->setAttribut('aktiv',($db->db_parse_bool($row->aktiv)?'true':'false'),true);
$oRdf->addSequence($row->betreuerart_kurzbz);
}
+120 -96
View File
@@ -28,17 +28,17 @@ require_once('../include/functions.inc.php');
require_once('../include/benutzerberechtigung.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/lehreinheit.class.php');
require_once('../include/fachbereich.class.php');
require_once('../include/organisationseinheit.class.php');
require_once('../include/mitarbeiter.class.php');
require_once('../include/bisverwendung.class.php');
if(isset($_SERVER['REMOTE_USER']))
if (isset($_SERVER['REMOTE_USER']))
{
// Wenn das Script direkt aufgerufen wird muss es ein Admin sein
$user=get_uid();
$berechtigung = new benutzerberechtigung();
$berechtigung->getBerechtigungen($user);
if(!$berechtigung->isBerechtigt('admin'))
if (!$berechtigung->isBerechtigt('admin'))
die('Sie haben keine Berechtigung fuer diese Seite');
}
@@ -51,16 +51,16 @@ header("Pragma: no-cache");
header("Content-type: application/xhtml+xml");
//Parameter holen
if(isset($_GET['uid']))
if (isset($_GET['uid']))
$uid = $_GET['uid'];
else
$uid=null;
$uid = null;
if(isset($_GET['stg_kz']))
if (isset($_GET['stg_kz']))
$studiengang_kz = $_GET['stg_kz'];
else
die('Fehlerhafte Parameteruebergabe');
if(isset($_GET['ss']))
if (isset($_GET['ss']))
$ss = $_GET['ss'];
else
die('Fehlerhafte Parameteruebergabe');
@@ -77,20 +77,19 @@ foreach ($studiengang->result as $row)
//Studiengang laden
$studiengang = new studiengang($studiengang_kz);
//Fachbereiche laden
$fb_arr = array();
$fachbereich_obj = new fachbereich();
$fachbereich_obj->getAll();
foreach ($fachbereich_obj->result as $fb)
//Organisationseinheiten laden
$oe_arr = array();
$organisationseinheit_obj = new organisationseinheit();
$organisationseinheit_obj->getAll();
foreach ($organisationseinheit_obj->result as $oe)
{
$fb_arr[$fb->oe_kurzbz] = $fb->bezeichnung;
$fb_arr[$fb->fachbereich_kurzbz] = $fb->bezeichnung;
$oe_arr[$oe->oe_kurzbz] = $oe->bezeichnung;
}
//Studiengangsleiter holen
$stgl='';
$stgl = '';
$db = new basis_db();
if($studiengang_kz!='')
if ($studiengang_kz != '')
{
$studiengang_obj = new studiengang();
$stgleiter = $studiengang_obj->getLeitung($studiengang_kz);
@@ -102,7 +101,7 @@ if($studiengang_kz!='')
}
}
if($uid==null)
if ($uid == null)
{
$qry = "
SELECT
@@ -120,11 +119,11 @@ if($uid==null)
UNION
SELECT
tbl_benutzer.uid as mitarbeiter_uid
FROM
lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung,
FROM
lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung,
public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student, public.tbl_mitarbeiter
WHERE
tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND
WHERE
tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
student_uid=vw_student.uid AND
tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid AND
@@ -135,9 +134,9 @@ if($uid==null)
tbl_projektbetreuer.stunden!='0'
) as mitarbeiter ORDER BY mitarbeiter_uid";
if($db->db_query($qry))
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
while ($row = $db->db_fetch_object())
{
drawLehrauftrag($row->mitarbeiter_uid);
}
@@ -145,11 +144,12 @@ if($uid==null)
}
else
drawLehrauftrag($uid);
function drawLehrauftrag($uid)
{
global $studiengang;
global $studiengang_kz;
global $fb_arr;
global $oe_arr;
global $stg_arr;
global $ss;
global $xml;
@@ -161,17 +161,17 @@ function drawLehrauftrag($uid)
<studiengang>FH-';
//Studiengang
$typ='';
if($studiengang->typ=='d')
if ($studiengang->typ=='d')
{
$xml.= 'Diplom-';
$typ = 'Diplom';
}
elseif($studiengang->typ=='m')
elseif ($studiengang->typ=='m')
{
$xml.= 'Master-';
$typ = 'Master';
}
elseif($studiengang->typ=='b')
elseif ($studiengang->typ=='b')
{
$xml.= 'Bachelor-';
$typ = 'Bachelor';
@@ -183,41 +183,58 @@ function drawLehrauftrag($uid)
$xml.= '<studiengang_typ>'.$typ.'</studiengang_typ>';
//Studiensemester
if(substr($ss,0,2)=='WS')
if (substr($ss,0,2) == 'WS')
$studiensemester = 'Wintersemester '.substr($ss,2);
else
$studiensemester = 'Sommersemester '.substr($ss,2);
$xml.="<studiensemester_kurzbz>$ss</studiensemester_kurzbz>
$xml .= "<studiensemester_kurzbz>$ss</studiensemester_kurzbz>
<studiensemester>$studiensemester</studiensemester>";
//Lektor
$qry = "SELECT * FROM campus.vw_mitarbeiter LEFT JOIN public.tbl_adresse USING(person_id) WHERE uid=".$db->db_add_param($uid)."
ORDER BY zustelladresse DESC, firma_id LIMIT 1";
$qry = "
SELECT
*
FROM
campus.vw_mitarbeiter
LEFT JOIN public.tbl_adresse USING(person_id)
WHERE
uid=".$db->db_add_param($uid)."
ORDER BY zustelladresse DESC, firma_id
LIMIT 1";
if($result = $db->db_query($qry))
if ($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
if ($row = $db->db_fetch_object($result))
{
$firmenanschrift=false;
if($row->firma_id!='')
$firmenanschrift = false;
if ($row->firma_id != '')
{
$qry ="SELECT tbl_firma.name, tbl_adresse.strasse, tbl_adresse.plz, tbl_adresse.ort FROM public.tbl_firma JOIN public.tbl_adresse USING(firma_id)
WHERE tbl_firma.firma_id=".$db->db_add_param($row->firma_id)." AND person_id=".$db->db_add_param($row->person_id)." LIMIT 1";
if($result_firma = $db->db_query($qry))
$qry ="
SELECT
tbl_firma.name, tbl_adresse.strasse, tbl_adresse.plz, tbl_adresse.ort
FROM
public.tbl_firma
JOIN public.tbl_adresse USING(firma_id)
WHERE
tbl_firma.firma_id=".$db->db_add_param($row->firma_id)."
AND person_id=".$db->db_add_param($row->person_id)."
LIMIT 1";
if ($result_firma = $db->db_query($qry))
{
if($row_firma = $db->db_fetch_object($result_firma))
if ($row_firma = $db->db_fetch_object($result_firma))
{
$name_gesamt = $row_firma->name;
$strasse = $row_firma->strasse;
$plz = $row_firma->plz;
$ort = $row_firma->ort;
$zuhanden = "zu Handen ".trim($row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost);
$firmenanschrift=true;
$firmenanschrift = true;
}
}
}
if(!$firmenanschrift)
if (!$firmenanschrift)
{
$strasse = $row->strasse;
$plz = $row->plz;
@@ -229,7 +246,7 @@ function drawLehrauftrag($uid)
$bis = new bisverwendung();
$bis->getLastAktVerwendung($uid);
$xml.='
$xml .= '
<mitarbeiter>
<titelpre><![CDATA['.$row->titelpre.']]></titelpre>
<vorname><![CDATA['.$row->vorname.']]></vorname>
@@ -248,65 +265,72 @@ function drawLehrauftrag($uid)
}
//Lehreinheiten
$qry = "SELECT * FROM campus.vw_lehreinheit WHERE mitarbeiter_uid=".$db->db_add_param($uid)." AND studiensemester_kurzbz=".$db->db_add_param($ss);
$qry = "
SELECT
*
FROM
campus.vw_lehreinheit
WHERE
mitarbeiter_uid=".$db->db_add_param($uid)."
AND studiensemester_kurzbz=".$db->db_add_param($ss);
if($studiengang_kz!='') //$studiengang_kz!='0' &&
if ($studiengang_kz != '') //$studiengang_kz!='0' &&
$qry .= "AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz);
$qry.=" ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id";
$qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id";
$lv = array();
$anzahl_lvs=0;
if($result = $db->db_query($qry))
$anzahl_lvs = 0;
if ($result = $db->db_query($qry))
{
$last_le='';
$last_le = '';
$gesamtkosten = 0;
$gesamtstunden = 0;
$gruppen = array();
$grp='';
$gruppen_getrennt='';
$einzelgruppe='';
while($row = $db->db_fetch_object($result))
$grp = '';
$gruppen_getrennt = '';
$einzelgruppe = '';
while ($row = $db->db_fetch_object($result))
{
if($last_le!=$row->lehreinheit_id && $last_le!='')
if ($last_le != $row->lehreinheit_id && $last_le != '')
{
array_unique($gruppen);
sort($gruppen);
foreach ($gruppen as $gruppe)
{
$grp.=$gruppe.' ';
$gruppen_getrennt.= '<einzelgruppe><![CDATA['.$gruppe.']]></einzelgruppe>';
$grp .= $gruppe.' ';
$gruppen_getrennt .= '<einzelgruppe><![CDATA['.$gruppe.']]></einzelgruppe>';
}
$einzelgruppe = $gruppen_getrennt;
$lv[$anzahl_lvs]['lehreinheit_id'] = $lehreinheit_id;
$lv[$anzahl_lvs]['lehrveranstaltung'] = $lehrveranstaltung;
$lv[$anzahl_lvs]['fachbereich'] = (isset($fb_arr[$fachbereich])?$fb_arr[$fachbereich]:'');
$lv[$anzahl_lvs]['gruppe'] = ($grp!=''?trim($grp):' ');
$lv[$anzahl_lvs]['stunden'] = ($stunden!=''?$stunden:' ');
$lv[$anzahl_lvs]['satz'] = ($satz!=''?$satz:' ');
$lv[$anzahl_lvs]['faktor'] = ($faktor!=''?$faktor:' ');
$lv[$anzahl_lvs]['fachbereich'] = (isset($oe_arr[$lehrfach_oe_kurzbz])?$oe_arr[$lehrfach_oe_kurzbz]:'');
$lv[$anzahl_lvs]['gruppe'] = ($grp != ''?trim($grp):' ');
$lv[$anzahl_lvs]['stunden'] = ($stunden != ''?$stunden:' ');
$lv[$anzahl_lvs]['satz'] = ($satz != ''?$satz:' ');
$lv[$anzahl_lvs]['faktor'] = ($faktor != ''?$faktor:' ');
$lv[$anzahl_lvs]['brutto'] = number_format($brutto,2,',','.');
$lv[$anzahl_lvs]['einzelgruppe'] = ($gruppen_getrennt!=''?$gruppen_getrennt:' ');
$lv[$anzahl_lvs]['einzelgruppe'] = ($gruppen_getrennt != ''?$gruppen_getrennt:' ');
$anzahl_lvs++;
$gesamtkosten = $gesamtkosten + $brutto;
$gesamtstunden = $gesamtstunden + $stunden;
$lehreinheit_id='';
$lehreinheit_id = '';
$lehrveranstaltung = '';
$fachbereich = '';
$gruppen= array();
$lehrfach_oe_kurzbz = '';
$gruppen = array();
$stunden = '';
$satz = '';
$faktor = '';
$brutto = '';
$grp='';
$gruppen_getrennt='';
$grp = '';
$gruppen_getrennt = '';
}
$lehreinheit_id=$row->lehreinheit_id;
$lehreinheit_id = $row->lehreinheit_id;
$lehrveranstaltung = CutString($row->lv_bezeichnung, 30, '...').' '.$row->lehrform_kurzbz.' '.$row->lv_semester.'. Semester';
$fachbereich = $row->fachbereich_kurzbz;
$lehrfach_oe_kurzbz = $row->lehrfach_oe_kurzbz;
if($row->gruppe_kurzbz!='')
if ($row->gruppe_kurzbz != '')
$gruppen[] = $row->gruppe_kurzbz;
else
$gruppen[] = trim($stg_arr[$row->studiengang_kz].'-'.$row->semester.$row->verband.$row->gruppe).' ';
@@ -314,21 +338,21 @@ function drawLehrauftrag($uid)
$stunden = $row->semesterstunden;
$satz = $row->stundensatz;
$faktor = $row->faktor;
$brutto = $row->semesterstunden*$row->stundensatz*$row->faktor;
$last_le=$row->lehreinheit_id;
$brutto = $row->semesterstunden * $row->stundensatz * $row->faktor;
$last_le = $row->lehreinheit_id;
}
array_unique($gruppen);
sort($gruppen);
foreach ($gruppen as $gruppe)
{
$grp.=$gruppe.' ';
$gruppen_getrennt.= '<einzelgruppe><![CDATA['.$gruppe.']]></einzelgruppe>';
$grp .= $gruppe.' ';
$gruppen_getrennt .= '<einzelgruppe><![CDATA['.$gruppe.']]></einzelgruppe>';
}
if(isset($lehreinheit_id))
if (isset($lehreinheit_id))
{
$lv[$anzahl_lvs]['lehreinheit_id'] = (isset($lehreinheit_id)?$lehreinheit_id:' ');
$lv[$anzahl_lvs]['lehrveranstaltung'] = (isset($lehrveranstaltung)?$lehrveranstaltung:' ');
$lv[$anzahl_lvs]['fachbereich'] = (isset($fachbereich)?$fb_arr[$fachbereich]:' ');
$lv[$anzahl_lvs]['fachbereich'] = (isset($lehrfach_oe_kurzbz)?$oe_arr[$lehrfach_oe_kurzbz]:' ');
$lv[$anzahl_lvs]['gruppe'] = ($grp!=''?trim($grp):' ');
$lv[$anzahl_lvs]['stunden'] = (isset($stunden)?$stunden:' ');
$lv[$anzahl_lvs]['satz'] = (isset($satz)?$satz:' ');
@@ -337,9 +361,9 @@ function drawLehrauftrag($uid)
$lv[$anzahl_lvs]['einzelgruppe'] = ($gruppen_getrennt!=''?$gruppen_getrennt:' ');
$anzahl_lvs++;
if(isset($brutto))
if (isset($brutto))
$gesamtkosten = $gesamtkosten + $brutto;
if(isset($stunden))
if (isset($stunden))
$gesamtstunden = $gesamtstunden + $stunden;
}
}
@@ -357,8 +381,8 @@ function drawLehrauftrag($uid)
,lehre.tbl_lehreinheit
,lehre.tbl_lehrveranstaltung AS lehrfach
,lehre.tbl_lehrveranstaltung
,PUBLIC.tbl_organisationseinheit
,PUBLIC.tbl_benutzer
,public.tbl_organisationseinheit
,public.tbl_benutzer
,lehre.tbl_projektarbeit
,campus.vw_student
WHERE tbl_projektbetreuer.person_id = tbl_benutzer.person_id
@@ -370,27 +394,27 @@ function drawLehrauftrag($uid)
AND tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id
AND tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($ss)."
AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id";
if($studiengang_kz!='')
$qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if($result = $db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
while ($row = $db->db_fetch_object($result))
{
$stg = new studiengang();
$stg->load($row->studiengang_kz);
$stg_kuerzel = $stg->kuerzel;
$brutto = $row->stunden*$row->stundensatz*$row->faktor;
if($row->stunden!=0)
$brutto = $row->stunden * $row->stundensatz * $row->faktor;
if ($row->stunden != 0)
{
switch($row->projekttyp_kurzbz)
switch ($row->projekttyp_kurzbz)
{
case 'Bachelor': $kuerzel='BA'; break;
case 'Diplom': $kuerzel='DA'; break;
case 'Projekt': $kuerzel='PJ'; break;
case 'Praktikum': $kuerzel='PX'; break;
case 'Praxis': $kuerzel='PX'; break;
default: $kuerzel='PA'; break;
case 'Bachelor': $kuerzel = 'BA'; break;
case 'Diplom': $kuerzel = 'DA'; break;
case 'Projekt': $kuerzel = 'PJ'; break;
case 'Praktikum': $kuerzel = 'PX'; break;
case 'Praxis': $kuerzel = 'PX'; break;
default: $kuerzel = 'PA'; break;
}
$lv[$anzahl_lvs]['lehreinheit_id'] = (isset($row->projektarbeit_id)?$kuerzel.$row->projektarbeit_id:' ');
@@ -414,7 +438,7 @@ function drawLehrauftrag($uid)
foreach ($lv as $lv_row)
{
$xml.='
$xml .= '
<lehreinheit>
<lehreinheit_id><![CDATA['.$lv_row['lehreinheit_id'].']]></lehreinheit_id>
<lehrveranstaltung><![CDATA['.$lv_row['lehrveranstaltung'].']]></lehrveranstaltung>
@@ -431,15 +455,15 @@ function drawLehrauftrag($uid)
};
// Gesamtstunden und Gesamtkosten
$xml.="
$xml .= "
<gesamtstunden><![CDATA[".number_format($gesamtstunden,2)."]]></gesamtstunden>
<gesamtbetrag><![CDATA[".number_format($gesamtkosten,2,',','.')."]]></gesamtbetrag>";
$xml.="
$xml .= "
<studiengangsleiter><![CDATA[$stgl]]></studiengangsleiter>";
$xml.= '
$xml .= '
<datum><![CDATA['.date('d.m.Y').']]></datum>
</lehrauftrag>
';
+24 -23
View File
@@ -138,12 +138,13 @@ function draw_orgformpart($stg_kz)
$orgform_sequence[$stg_kz]='';
$qry = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz not in('VBB','ZGS')";
if($stg_obj->db_query($qry))
$orgformen_studienplan = $stg_obj->getOrgForm($stg_kz);
//$qry = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz not in('VBB','ZGS')";
if(!empty($orgformen_studienplan))
{
while($row = $stg_obj->db_fetch_object())
foreach ($orgformen_studienplan AS $row)
{
draw_orgformsubmenu($stg_kz, $row->orgform_kurzbz);
draw_orgformsubmenu($stg_kz, $row);
}
}
}
@@ -240,15 +241,6 @@ function draw_orgformsubmenu($stg_kz, $orgform)
<VERBAND:orgform><![CDATA['.$orgform.']]></VERBAND:orgform>
</RDF:Description>
<RDF:Description RDF:about="'.$rdf_url.$stg_kurzbz.'/'.$orgform.'/'.$stsem->studiensemester_kurzbz.'/interessenten/reihungstestangemeldet" >
<VERBAND:name>Reihungstest angemeldet</VERBAND:name>
<VERBAND:stg><![CDATA['.$stg_kurzbz.']]></VERBAND:stg>
<VERBAND:stg_kz><![CDATA['.$stg_kz.']]></VERBAND:stg_kz>
<VERBAND:stsem><![CDATA['.$stsem->studiensemester_kurzbz.']]></VERBAND:stsem>
<VERBAND:typ>reihungstestangemeldet</VERBAND:typ>
<VERBAND:orgform><![CDATA['.$orgform.']]></VERBAND:orgform>
</RDF:Description>
<RDF:Description RDF:about="'.$rdf_url.$stg_kurzbz.'/'.$orgform.'/'.$stsem->studiensemester_kurzbz.'/interessenten/reihungstestnichtangemeldet" >
<VERBAND:name>Nicht zum Reihungstest angemeldet</VERBAND:name>
<VERBAND:stg><![CDATA['.$stg_kurzbz.']]></VERBAND:stg>
@@ -258,6 +250,15 @@ function draw_orgformsubmenu($stg_kz, $orgform)
<VERBAND:orgform><![CDATA['.$orgform.']]></VERBAND:orgform>
</RDF:Description>
<RDF:Description RDF:about="'.$rdf_url.$stg_kurzbz.'/'.$orgform.'/'.$stsem->studiensemester_kurzbz.'/interessenten/reihungstestangemeldet" >
<VERBAND:name>Reihungstest angemeldet</VERBAND:name>
<VERBAND:stg><![CDATA['.$stg_kurzbz.']]></VERBAND:stg>
<VERBAND:stg_kz><![CDATA['.$stg_kz.']]></VERBAND:stg_kz>
<VERBAND:stsem><![CDATA['.$stsem->studiensemester_kurzbz.']]></VERBAND:stsem>
<VERBAND:typ>reihungstestangemeldet</VERBAND:typ>
<VERBAND:orgform><![CDATA['.$orgform.']]></VERBAND:orgform>
</RDF:Description>
<RDF:Description RDF:about="'.$rdf_url.$stg_kurzbz.'/'.$orgform.'/'.$stsem->studiensemester_kurzbz.'/bewerber" >
<VERBAND:name>Bewerber</VERBAND:name>
<VERBAND:stg><![CDATA['.$stg_kurzbz.']]></VERBAND:stg>
@@ -311,8 +312,8 @@ function draw_orgformsubmenu($stg_kz, $orgform)
$orgform_sequence[$stg_kz].= "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$orgform/$stsem->studiensemester_kurzbz/interessenten/bewerbungabgeschickt\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$orgform/$stsem->studiensemester_kurzbz/interessenten/zgv\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$orgform/$stsem->studiensemester_kurzbz/interessenten/statusbestaetigt\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$orgform/$stsem->studiensemester_kurzbz/interessenten/reihungstestangemeldet\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$orgform/$stsem->studiensemester_kurzbz/interessenten/reihungstestnichtangemeldet\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$orgform/$stsem->studiensemester_kurzbz/interessenten/reihungstestangemeldet\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\t</RDF:Seq>";
$orgform_sequence[$stg_kz].= "\n\t\t\t</RDF:li>\n";
@@ -555,14 +556,6 @@ while ($row=$dbo->db_fetch_object())
<VERBAND:typ><![CDATA[statusbestaetigt]]></VERBAND:typ>
</RDF:Description>
<RDF:Description RDF:about="<?php echo $rdf_url.$stg_kurzbz.'/'.$stsem->studiensemester_kurzbz.'/interessenten/reihungstestangemeldet'; ?>" >
<VERBAND:name><![CDATA[Reihungstest angemeldet]]></VERBAND:name>
<VERBAND:stg><![CDATA[<?php echo $stg_kurzbz; ?>]]></VERBAND:stg>
<VERBAND:stg_kz><![CDATA[<?php echo $row->studiengang_kz; ?>]]></VERBAND:stg_kz>
<VERBAND:stsem><![CDATA[<?php echo $stsem->studiensemester_kurzbz; ?>]]></VERBAND:stsem>
<VERBAND:typ><![CDATA[reihungstestangemeldet]]></VERBAND:typ>
</RDF:Description>
<RDF:Description RDF:about="<?php echo $rdf_url.$stg_kurzbz.'/'.$stsem->studiensemester_kurzbz.'/interessenten/reihungstestnichtangemeldet'; ?>" >
<VERBAND:name><![CDATA[Nicht zum Reihungstest angemeldet]]></VERBAND:name>
<VERBAND:stg><![CDATA[<?php echo $stg_kurzbz; ?>]]></VERBAND:stg>
@@ -571,6 +564,14 @@ while ($row=$dbo->db_fetch_object())
<VERBAND:typ><![CDATA[reihungstestnichtangemeldet]]></VERBAND:typ>
</RDF:Description>
<RDF:Description RDF:about="<?php echo $rdf_url.$stg_kurzbz.'/'.$stsem->studiensemester_kurzbz.'/interessenten/reihungstestangemeldet'; ?>" >
<VERBAND:name><![CDATA[Reihungstest angemeldet]]></VERBAND:name>
<VERBAND:stg><![CDATA[<?php echo $stg_kurzbz; ?>]]></VERBAND:stg>
<VERBAND:stg_kz><![CDATA[<?php echo $row->studiengang_kz; ?>]]></VERBAND:stg_kz>
<VERBAND:stsem><![CDATA[<?php echo $stsem->studiensemester_kurzbz; ?>]]></VERBAND:stsem>
<VERBAND:typ><![CDATA[reihungstestangemeldet]]></VERBAND:typ>
</RDF:Description>
<RDF:Description RDF:about="<?php echo $rdf_url.$stg_kurzbz.'/'.$stsem->studiensemester_kurzbz.'/bewerber'; ?>" >
<VERBAND:name><![CDATA[Bewerber]]></VERBAND:name>
<VERBAND:stg><![CDATA[<?php echo $stg_kurzbz; ?>]]></VERBAND:stg>
@@ -778,8 +779,8 @@ draw_orgformpart($stg_kz);
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/interessenten/bewerbungabgeschickt\" />\n";
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/interessenten/zgv\" />\n";
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/interessenten/statusbestaetigt\" />\n";
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/interessenten/reihungstestangemeldet\" />\n";
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/interessenten/reihungstestnichtangemeldet\" />\n";
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/interessenten/reihungstestangemeldet\" />\n";
echo "\t\t\t\t</RDF:Seq>";
echo "\n\t\t\t</RDF:li>\n";
+2 -1
View File
@@ -44,7 +44,7 @@ echo '
';
//Daten holen
$qry = 'SELECT * FROM lehre.tbl_projekttyp ORDER BY bezeichnung';
$qry = 'SELECT * FROM lehre.tbl_projekttyp ORDER BY aktiv DESC, bezeichnung';
$db = new basis_db();
if($db->db_query($qry))
@@ -56,6 +56,7 @@ if($db->db_query($qry))
<RDF:Description id="'.$row->projekttyp_kurzbz.'" about="'.$rdf_url.'/'.$row->projekttyp_kurzbz.'" >
<TYP:projekttyp_kurzbz><![CDATA['.$row->projekttyp_kurzbz.']]></TYP:projekttyp_kurzbz>
<TYP:bezeichnung><![CDATA['.$row->bezeichnung.']]></TYP:bezeichnung>
<TYP:aktiv><![CDATA['.($db->db_parse_bool($row->aktiv)?'true':'false').']]></TYP:aktiv>
</RDF:Description>
</RDF:li>';
}
+5 -2
View File
@@ -315,6 +315,8 @@ function draw_prestudent($row)
global $rdf_url, $datum_obj, $stg_arr;
$reihungstest = new reihungstest($row->reihungstest_id);
$rt_datum = $reihungstest->datum;
$prioRelativ = new prestudent();
$prioRelativ = $prioRelativ->getRelativePriorisierungFromAbsolut($row->prestudent_id, $row->priorisierung);
if($row->prestudent_id!='')
{
echo '
@@ -338,10 +340,10 @@ function draw_prestudent($row)
<STUDENT:ausstellungsstaat><![CDATA['.$row->ausstellungsstaat.']]></STUDENT:ausstellungsstaat>
<STUDENT:aufnahmeschluessel><![CDATA['.$row->aufnahmeschluessel.']]></STUDENT:aufnahmeschluessel>
<STUDENT:facheinschlberuf><![CDATA['.($row->facheinschlberuf?'true':'false').']]></STUDENT:facheinschlberuf>
<STUDENT:reihungstest_id><![CDATA['.$row->reihungstest_id.']]></STUDENT:reihungstest_id>
<!--<STUDENT:reihungstest_id><![CDATA['.$row->reihungstest_id.']]></STUDENT:reihungstest_id>
<STUDENT:anmeldungreihungstest><![CDATA['.$datum_obj->convertISODate($row->anmeldungreihungstest).']]></STUDENT:anmeldungreihungstest>
<STUDENT:anmeldungreihungstest_iso><![CDATA['.$row->anmeldungreihungstest.']]></STUDENT:anmeldungreihungstest_iso>
<STUDENT:reihungstestangetreten><![CDATA['.($row->reihungstestangetreten?'true':'false').']]></STUDENT:reihungstestangetreten>
<STUDENT:reihungstestangetreten><![CDATA['.($row->reihungstestangetreten?'true':'false').']]></STUDENT:reihungstestangetreten>-->
<STUDENT:punkte><![CDATA['.$row->punkte.']]></STUDENT:punkte>
<STUDENT:bismelden><![CDATA['.($row->bismelden?'true':'false').']]></STUDENT:bismelden>
<STUDENT:dual><![CDATA['.($row->dual?'true':'false').']]></STUDENT:dual>
@@ -351,6 +353,7 @@ function draw_prestudent($row)
<STUDENT:gsstudientyp_kurzbz><![CDATA['.$row->gsstudientyp_kurzbz.']]></STUDENT:gsstudientyp_kurzbz>
<STUDENT:aufnahmegruppe_kurzbz><![CDATA['.$row->aufnahmegruppe_kurzbz.']]></STUDENT:aufnahmegruppe_kurzbz>
<STUDENT:priorisierung><![CDATA['.$row->priorisierung.']]></STUDENT:priorisierung>
<STUDENT:priorisierung_realtiv><![CDATA['.$prioRelativ.' ('.$row->priorisierung.')'.']]></STUDENT:priorisierung_realtiv>
</RDF:Description>
</RDF:li>';
}
+1
View File
@@ -92,6 +92,7 @@ $beschreibung=1;
$berechtigungen = array(
array('admin','Super User Rechte'),
array('assistenz','Assistenz'),
array('student','Defaultberechtigung für Studierende'),
array('basis/addon','Addons verwalten'),
array('basis/ampel','Ampeln Administrieren'),
array('basis/ampeluebersicht','Ampel Übersicht für Leiter'),
+215 -6
View File
@@ -2525,11 +2525,212 @@ if(!$result = @$db->db_query("SELECT direktinskription FROM public.tbl_gruppe LI
echo '<br>public.tbl_gruppe: Spalte direktinskription hinzugefuegt';
}
// Spalte aktiv für tbl_betreuerart
if(!$result = @$db->db_query("SELECT aktiv FROM lehre.tbl_betreuerart LIMIT 1"))
{
$qry = "ALTER TABLE lehre.tbl_betreuerart ADD COLUMN aktiv boolean NOT NULL DEFAULT TRUE;";
if(!$db->db_query($qry))
echo '<strong>lehre.tbl_betreuerart: '.$db->db_last_error().'</strong><br>';
else
echo '<br>lehre.tbl_betreuerart: Spalte aktiv hinzugefuegt';
}
// Spalte aktiv für tbl_projekttyp
if(!$result = @$db->db_query("SELECT aktiv FROM lehre.tbl_projekttyp LIMIT 1"))
{
$qry = "ALTER TABLE lehre.tbl_projekttyp ADD COLUMN aktiv boolean NOT NULL DEFAULT TRUE;";
if(!$db->db_query($qry))
echo '<strong>lehre.tbl_projekttyp: '.$db->db_last_error().'</strong><br>';
else
echo '<br>lehre.tbl_projekttyp: Spalte aktiv hinzugefuegt';
}
// Remove NOT NULL constraint on aufmerksamdurch_kurzbz on public.tbl_prestudent
if($result = @$db->db_query("SELECT is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_prestudent' AND COLUMN_NAME = 'aufmerksamdurch_kurzbz' AND is_nullable = 'NO'"))
{
if($db->db_num_rows($result) > 0)
{
$qry = "ALTER TABLE public.tbl_prestudent ALTER COLUMN aufmerksamdurch_kurzbz DROP NOT NULL;";
if(!$db->db_query($qry))
echo '<strong>public.tbl_prestudent '.$db->db_last_error().'</strong><br>';
else
echo '<br>Removed NOT NULL constraint on "aufmerksamdurch_kurzbz" from public.tbl_prestudent<br>';
}
}
// Spalte Zugangscode zu vw_msg_vars hinzufügen
if(!$result = @$db->db_query('SELECT "Zugangscode" FROM public.vw_msg_vars LIMIT 1'))
{
$qry = '
CREATE OR REPLACE VIEW public.vw_msg_vars AS (
SELECT DISTINCT ON(p.person_id, pr.prestudent_id) p.person_id,
pr.prestudent_id AS prestudent_id,
p.nachname AS "Nachname",
p.vorname AS "Vorname",
p.anrede AS "Anrede",
a.strasse AS "Strasse",
a.ort AS "Ort",
a.plz AS "PLZ",
a.gemeinde AS "Gemeinde",
a.langtext AS "Nation",
ke.kontakt AS "Email",
kt.kontakt AS "Telefon",
s.bezeichnung AS "Studiengang DE",
s.english AS "Studiengang EN",
st.bezeichnung AS "Typ",
orgform_kurzbz AS "Orgform",
p.zugangscode AS "Zugangscode"
FROM public.tbl_person p
LEFT JOIN (
SELECT person_id,
kontakt
FROM public.tbl_kontakt
WHERE zustellung = TRUE
AND kontakttyp = \'email\'
ORDER BY kontakt_id DESC
) ke USING(person_id)
LEFT JOIN (
SELECT person_id,
kontakt
FROM public.tbl_kontakt
WHERE zustellung = TRUE
AND kontakttyp IN (\'telefon\', \'mobil\')
ORDER BY kontakt_id DESC
) kt USING(person_id)
LEFT JOIN (
SELECT person_id,
strasse,
ort,
plz,
gemeinde,
langtext
FROM public.tbl_adresse
LEFT JOIN bis.tbl_nation ON(bis.tbl_nation.nation_code = public.tbl_adresse.nation)
WHERE public.tbl_adresse.heimatadresse = TRUE
ORDER BY adresse_id DESC
) a USING(person_id)
LEFT JOIN public.tbl_prestudent pr USING(person_id)
INNER JOIN public.tbl_studiengang s USING(studiengang_kz)
INNER JOIN public.tbl_studiengangstyp st USING(typ)
WHERE p.aktiv = TRUE
ORDER BY p.person_id ASC, pr.prestudent_id ASC
);
';
if(!$db->db_query($qry))
echo '<strong>public.vw_msg_vars: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.vw_msg_vars zugangscode added';
}
// Spalte Zugangscode zu vw_msg_vars_person hinzufügen
if(!$result = @$db->db_query('SELECT "Zugangscode" FROM public.vw_msg_vars_person LIMIT 1'))
{
$qry = '
CREATE OR REPLACE VIEW public.vw_msg_vars_person AS (
SELECT DISTINCT ON(p.person_id) p.person_id,
p.nachname AS "Nachname",
p.vorname AS "Vorname",
p.anrede AS "Anrede",
a.strasse AS "Strasse",
a.ort AS "Ort",
a.plz AS "PLZ",
a.gemeinde AS "Gemeinde",
a.langtext AS "Nation",
ke.kontakt AS "Email",
kt.kontakt AS "Telefon",
( SELECT tbl_studiensemester.bezeichnung
FROM tbl_studiensemester
WHERE "substring"(tbl_studiensemester.studiensemester_kurzbz::text, 1, 2) = \'WS\'::text AND (tbl_studiensemester.start >= now() AND tbl_studiensemester.ende >= now() OR tbl_studiensemester.start <= now() AND tbl_studiensemester.ende >= now())
ORDER BY tbl_studiensemester.start
LIMIT 1) AS "WS naechstes",
( SELECT tbl_studiensemester.bezeichnung
FROM tbl_studiensemester
WHERE "substring"(tbl_studiensemester.studiensemester_kurzbz::text, 1, 2) = \'WS\'::text AND (tbl_studiensemester.start >= now() AND tbl_studiensemester.ende >= now() OR tbl_studiensemester.start <= now() AND tbl_studiensemester.ende >= now())
ORDER BY tbl_studiensemester.start
OFFSET 1
LIMIT 1) AS "WS uebernaechstes",
p.zugangscode as "Zugangscode"
FROM public.tbl_person p
LEFT JOIN (
SELECT person_id,
kontakt
FROM public.tbl_kontakt
WHERE zustellung = TRUE
AND kontakttyp = \'email\'
ORDER BY kontakt_id DESC
) ke USING(person_id)
LEFT JOIN (
SELECT person_id,
kontakt
FROM public.tbl_kontakt
WHERE zustellung = TRUE
AND kontakttyp IN (\'telefon\', \'mobil\')
ORDER BY kontakt_id DESC
) kt USING(person_id)
LEFT JOIN (
SELECT person_id,
strasse,
ort,
plz,
gemeinde,
langtext
FROM public.tbl_adresse
LEFT JOIN bis.tbl_nation ON(bis.tbl_nation.nation_code = public.tbl_adresse.nation)
WHERE public.tbl_adresse.heimatadresse = TRUE
ORDER BY adresse_id DESC
) a USING(person_id)
ORDER BY p.person_id ASC
);';
if(!$db->db_query($qry))
echo '<strong>public.vw_msg_vars_person: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.vw_msg_vars_person zugangscode added';
}
// Spalte Zugangscode zu vw_msg_vars_person hinzufügen
// Fachbereich entfernen
if(!$result = @$db->db_query('SELECT lehrfach_oe_kurzbz FROM campus.vw_lehreinheit LIMIT 1'))
{
$qry = "
DROP VIEW campus.vw_lehreinheit;
CREATE OR REPLACE VIEW campus.vw_lehreinheit as
SELECT
tbl_lehrveranstaltung.studiengang_kz AS lv_studiengang_kz, tbl_lehrveranstaltung.semester AS lv_semester, tbl_lehrveranstaltung.kurzbz AS lv_kurzbz, tbl_lehrveranstaltung.bezeichnung AS lv_bezeichnung, tbl_lehrveranstaltung.ects AS lv_ects, tbl_lehrveranstaltung.lehreverzeichnis AS lv_lehreverzeichnis,
tbl_lehrveranstaltung.planfaktor AS lv_planfaktor, tbl_lehrveranstaltung.planlektoren AS lv_planlektoren, tbl_lehrveranstaltung.planpersonalkosten AS lv_planpersonalkosten, tbl_lehrveranstaltung.plankostenprolektor AS lv_plankostenprolektor, tbl_lehrveranstaltung.orgform_kurzbz AS lv_orgform_kurzbz,
tbl_lehreinheit.lehreinheit_id, tbl_lehreinheit.lehrveranstaltung_id, tbl_lehreinheit.studiensemester_kurzbz, tbl_lehreinheit.lehrform_kurzbz, tbl_lehreinheit.stundenblockung, tbl_lehreinheit.wochenrythmus, tbl_lehreinheit.start_kw, tbl_lehreinheit.raumtyp, tbl_lehreinheit.raumtypalternativ, tbl_lehreinheit.lehre,
tbl_lehreinheit.unr, tbl_lehreinheit.lvnr, tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz, tbl_lehreinheit.insertamum, tbl_lehreinheit.insertvon, tbl_lehreinheit.updateamum, tbl_lehreinheit.updatevon,
lehrfach.lehrveranstaltung_id AS lehrfach_id,
lehrfach.oe_kurzbz as lehrfach_oe_kurzbz,
lehrfach.kurzbz AS lehrfach, lehrfach.bezeichnung AS lehrfach_bez, lehrfach.farbe,
tbl_lehrveranstaltung.aktiv, lehrfach.sprache, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehreinheitmitarbeiter.semesterstunden, tbl_lehrveranstaltung.semesterstunden AS lv_semesterstunden, tbl_lehreinheitmitarbeiter.planstunden, tbl_lehreinheitmitarbeiter.stundensatz, tbl_lehreinheitmitarbeiter.faktor,
tbl_lehreinheit.anmerkung, tbl_mitarbeiter.kurzbz AS lektor, tbl_lehreinheitgruppe.studiengang_kz, tbl_lehreinheitgruppe.semester, tbl_lehreinheitgruppe.verband, tbl_lehreinheitgruppe.gruppe, tbl_lehreinheitgruppe.gruppe_kurzbz,
tbl_studiengang.kurzbz AS stg_kurzbz, tbl_studiengang.kurzbzlang AS stg_kurzbzlang, tbl_studiengang.bezeichnung AS stg_bez, tbl_studiengang.typ AS stg_typ, tbl_lehreinheitmitarbeiter.anmerkung AS anmerkunglektor, tbl_lehrveranstaltung.lehrform_kurzbz AS lv_lehrform_kurzbz,
tbl_lehrveranstaltung.bezeichnung_english AS lv_bezeichnung_english, tbl_lehrveranstaltung.lehrtyp_kurzbz
FROM lehre.tbl_lehreinheit
JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id)
JOIN lehre.tbl_lehrveranstaltung lehrfach ON (tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
JOIN lehre.tbl_lehreinheitmitarbeiter USING (lehreinheit_id)
JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid)
JOIN lehre.tbl_lehreinheitgruppe USING (lehreinheit_id)
JOIN public.tbl_studiengang ON tbl_lehreinheitgruppe.studiengang_kz = tbl_studiengang.studiengang_kz;
GRANT SELECT ON campus.vw_lehreinheit TO admin;
GRANT SELECT ON campus.vw_lehreinheit TO vilesci;
GRANT SELECT ON campus.vw_lehreinheit TO web;
";
if(!$db->db_query($qry))
echo '<strong>campus.vw_lehreinheit: '.$db->db_last_error().'</strong><br>';
else
echo '<br>campus.vw_lehreinheit lehrfach_oe_kurzbz added, fachbereich_kurzbz removed';
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
echo '<br><br><br>';
$tabellen=array(
"bis.tbl_bisorgform" => array("bisorgform_kurzbz","code","bezeichnung"),
"bis.tbl_archiv" => array("archiv_id","studiensemester_kurzbz","meldung","html","studiengang_kz","insertamum","insertvon","typ"),
@@ -2628,7 +2829,7 @@ $tabellen=array(
"lehre.tbl_akadgrad" => array("akadgrad_id","akadgrad_kurzbz","studiengang_kz","titel","geschlecht"),
"lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id"),
"lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"),
"lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung"),
"lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung","aktiv"),
"lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"),
"lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old","gewicht"),
"lehre.tbl_lehreinheitgruppe" => array("lehreinheitgruppe_id","lehreinheit_id","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id"),
@@ -2649,7 +2850,7 @@ $tabellen=array(
"lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe","positiv","notenwert","aktiv","lehre","offiziell","bezeichnung_mehrsprachig","lkt_ueberschreibbar"),
"lehre.tbl_projektarbeit" => array("projektarbeit_id","projekttyp_kurzbz","titel","lehreinheit_id","student_uid","firma_id","note","punkte","beginn","ende","faktor","freigegeben","gesperrtbis","stundensatz","gesamtstunden","themenbereich","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","titel_english","seitenanzahl","abgabedatum","kontrollschlagwoerter","schlagwoerter","schlagwoerter_en","abstract", "abstract_en", "sprache","final"),
"lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id","vertrag_id"),
"lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung"),
"lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung","aktiv"),
"lehre.tbl_pruefung" => array("pruefung_id","lehreinheit_id","student_uid","mitarbeiter_uid","note","pruefungstyp_kurzbz","datum","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","pruefungsanmeldung_id","vertrag_id", "punkte"),
"lehre.tbl_pruefungstyp" => array("pruefungstyp_kurzbz","beschreibung","abschluss","sort"),
"lehre.tbl_studienordnung" => array("studienordnung_id","studiengang_kz","version","gueltigvon","gueltigbis","bezeichnung","ects","studiengangbezeichnung","studiengangbezeichnung_englisch","studiengangkurzbzlang","akadgrad_id","insertamum","insertvon","updateamum","updatevon","ext_id", "status_kurzbz", "standort_id"),
@@ -2815,6 +3016,7 @@ $tabellen=array(
$tabs=array_keys($tabellen);
//print_r($tabs);
$i=0;
$errors = 0;
foreach ($tabellen AS $attribute)
{
$sql_attr='';
@@ -2823,12 +3025,19 @@ foreach ($tabellen AS $attribute)
$sql_attr=substr($sql_attr, 0, -1);
if (!@$db->db_query('SELECT '.$sql_attr.' FROM '.$tabs[$i].' LIMIT 1;'))
{
echo '<BR><strong>'.$tabs[$i].': '.$db->db_last_error().' </strong><BR>';
else
echo $tabs[$i].': OK - ';
$errors++;
}
/*else
echo $tabs[$i].': OK - ';*/
flush();
$i++;
}
if ($errors == 0)
{
echo '<strong>Keine Fehler aufgetreten</strong>';
}
echo '<H2>Gegenpruefung!</H2>';
$error=false;
+2
View File
@@ -36,6 +36,7 @@ $filters = array(
{"name": "StgAbgeschickt"},
{"name": "Studiensemester"},
{"name": "LastAction"},
{"name": "LastActionType"},
{"name": "User/Operator"},
{"name": "LockUser"}
],
@@ -68,6 +69,7 @@ $filters = array(
{"name": "StgAbgeschickt"},
{"name": "Studiensemester"},
{"name": "LastAction"},
{"name": "LastActionType"},
{"name": "User/Operator"},
{"name": "LockUser"}
],
+120 -6
View File
@@ -1519,7 +1519,6 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'filter',
@@ -1541,9 +1540,6 @@ $phrases = array(
)
),
//**************************** CORE/person
array(
'app' => 'core',
@@ -2207,8 +2203,126 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'lehre',
'phrase' => 'ects',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'ECTS',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'ECTS',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'lehre',
'phrase' => 'notendurchschnitt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Notendurchschnitt',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Grade average',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'lehre',
'phrase' => 'gewichteternotendurchschnitt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'gewichteter Notendurchschnitt',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'weighted grade point average',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'lehre',
'phrase' => 'note',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Note',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Grade',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'lehre',
'phrase' => 'lehrveranstaltung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Lehrveranstaltung',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Course',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'lehre',
'phrase' => 'nichtstudienplanrelevanteKurse',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Nicht studienplanrelevante Lehrveranstaltung',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'additional Courses',
'description' => '',
'insertvon' => 'system'
)
)
),
//********************** INFOCENTER/infocenter
array(
+1 -1
View File
@@ -544,7 +544,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
ab dem
</xsl:otherwise>
</xsl:choose>
3. Semester gleichzeitig mit der Studiengebühr vor Beginn des Semesters zu entrichten.</text:p>
3. Semester gleichzeitig mit dem Studienbeitrag vor Beginn des Semesters zu entrichten.</text:p>
<text:p text:style-name="P5">Bei Vertragsauflösung vor Studienabschluss aus Gründen, die die Studentin bzw. der Student zu vertreten hat, oder auf deren bzw. dessen Wunsch, wird der Unkostenbeitrag zur Abdeckung der dem Erhalter erwachsenen administrativen Zusatzkosten einbehalten.</text:p>
<text:p text:style-name="P32">6.2.6 Lehr- und Lernbehelfe</text:p>
+1 -1
View File
@@ -500,7 +500,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<text:p text:style-name="P31">6.2.3 ÖH-Beitrag</text:p>
<text:p text:style-name="P5">Gemäß § 4 Abs 10 FHStG sind ao. Studierende an Fachhochschulen Mitglieder der Österreichischen HochschülerInnenschaft (ÖH). Der/Die ao. Studierende hat semesterweise einen ÖH-Beitrag an den Erhalter zu entrichten, der diesen an die ÖH abführt. Die Entrichtung des Betrags ist Voraussetzung für die Zulassung zum ao. Studium bzw. für dessen Fortsetzung.</text:p>
<text:p text:style-name="P30">6.2.4 Unkostenbeitrag </text:p>
<text:p text:style-name="P41">Pro Semester ist ein Unkostenbeitrag zu entrichten. Die Höhe des Unkostenbeitrages beträgt € 75, pro Semester. Eine allfällige Anpassung wird durch Aushang bekannt gemacht. Der Unkostenbeitrag ist gleichzeitig mit der Studiengebühr vor Beginn des Semesters zu entrichten. Bei Vertragsauflösung vor dem Ende der besuchten Lehrveranstaltungen aus Gründen, die die ao. Studentin bzw. der ao. Student zu vertreten hat, oder auf deren bzw. dessen Wunsch, wird der Unkostenbeitrag zur Abdeckung der dem Erhalter erwachsenen administrativen Zusatzkosten einbehalten.</text:p>
<text:p text:style-name="P41">Pro Semester ist ein Unkostenbeitrag zu entrichten. Die Höhe des Unkostenbeitrages beträgt € 75, pro Semester. Eine allfällige Anpassung wird durch Aushang bekannt gemacht. Der Unkostenbeitrag ist gleichzeitig mit dem Studienbeitrag vor Beginn des Semesters zu entrichten. Bei Vertragsauflösung vor dem Ende der besuchten Lehrveranstaltungen aus Gründen, die die ao. Studentin bzw. der ao. Student zu vertreten hat, oder auf deren bzw. dessen Wunsch, wird der Unkostenbeitrag zur Abdeckung der dem Erhalter erwachsenen administrativen Zusatzkosten einbehalten.</text:p>
<text:p text:style-name="P32">6.2.5 Lehr- und Lernbehelfe</text:p>
<text:p text:style-name="P8">Die Anschaffung unterrichtsbezogener Literatur und individueller Lernbehelfe ist durch den Unkostenbeitrag nicht abgedeckt. Eventuelle zusätzliche Kosten, die sich beispielsweise durch die lehrveranstaltungsbezogene, gemeinsame Anschaffung von Lehr- bzw. Lernbehelfen (Skripten, CDs, Bücher, Projektmaterialien, Kopierpapier etc.) oder durch Exkursionen ergeben, werden von jedem Studiengang individuell eingehoben.</text:p>
<text:p text:style-name="P32">6.2.6 Beibringung persönlicher Daten</text:p>
+6 -36
View File
@@ -346,7 +346,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-row>
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A2" table:number-columns-spanned="2" office:value-type="string">
<text:p text:style-name="P3">Topic and Assessment of Bachelor Paper 1</text:p>
<text:p text:style-name="P3">Topic and Assessment of Bachelor Paper</text:p>
</table:table-cell>
<table:covered-table-cell/>
<table:table-cell table:style-name="Tabelle1.B5" table:number-columns-spanned="5" office:value-type="string">
@@ -362,31 +362,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<text:p text:style-name="P5"><xsl:value-of select="note" /></text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A2" table:number-columns-spanned="2" office:value-type="string">
<text:p text:style-name="P3">Topic and Assessment of Bachelor Paper 2</text:p>
</table:table-cell>
<table:covered-table-cell/>
<table:table-cell table:style-name="Tabelle1.B5" table:number-columns-spanned="5" office:value-type="string">
<text:p text:style-name="P5"><xsl:value-of select="themenbereich_2" /></text:p>
</table:table-cell>
<table:covered-table-cell/>
<table:covered-table-cell/>
<table:covered-table-cell/>
<table:covered-table-cell/>
<table:table-cell table:style-name="Tabelle1.C2" office:value-type="string">
<text:p text:style-name="P5">Grade</text:p>
<text:p text:style-name="P5">(Information)</text:p>
<text:p text:style-name="P5"><xsl:value-of select="note2" /></text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A2" table:number-columns-spanned="2" office:value-type="string">
<text:p text:style-name="P5">Subject of the Examination</text:p>
</table:table-cell>
<table:covered-table-cell/>
<table:table-cell table:style-name="Tabelle1.C2" table:number-columns-spanned="6" office:value-type="string">
<text:p text:style-name="P5">Presentation and Examination interview on the Bachelor Paper and its links to subjects of the curriculum</text:p>
<text:p text:style-name="P5">Presentation and Examination interview on the Bachelor Paper</text:p>
</table:table-cell>
<table:covered-table-cell/>
<table:covered-table-cell/>
@@ -401,18 +383,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<table:covered-table-cell/>
<table:table-cell table:style-name="Tabelle1.C2" table:number-columns-spanned="6" office:value-type="string">
<text:p text:style-name="P4">
<draw:custom-shape text:anchor-type="char" draw:z-index="6" draw:name="Rechteck 8" draw:style-name="gr1" draw:text-style-name="P22" svg:width="0.445cm" svg:height="0.445cm" svg:x="10.456cm" svg:y="0.1cm">
<draw:custom-shape text:anchor-type="char" draw:z-index="6" draw:name="Rechteck 8" draw:style-name="gr1" draw:text-style-name="P22" svg:width="0.445cm" svg:height="0.445cm" svg:x="10.456cm" svg:y="0.05cm">
<text:p/>
<draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/>
</draw:custom-shape>Presentation of the Bachelor Paper
</text:p>
<text:p text:style-name="P4">Examination interview on the Bachelor Paper and its links to</text:p>
<text:p text:style-name="P5">
<draw:custom-shape text:anchor-type="char" draw:z-index="5" draw:name="Rechteck 10" draw:style-name="gr1" draw:text-style-name="P22" svg:width="0.445cm" svg:height="0.445cm" svg:x="10.456cm" svg:y="-0.092cm">
<text:p/>
<draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/>
</draw:custom-shape>subjects of the curriculum
</text:p>
<text:p text:style-name="P4"><draw:custom-shape text:anchor-type="char" draw:z-index="5" draw:name="Rechteck 10" draw:style-name="gr1" draw:text-style-name="P22" svg:width="0.445cm" svg:height="0.445cm" svg:x="10.456cm" svg:y="0.05cm"><draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/>
</draw:custom-shape>Examination interview on the Bachelor Paper</text:p>
</table:table-cell>
<table:covered-table-cell/>
<table:covered-table-cell/>
@@ -423,14 +400,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A1" table:number-columns-spanned="8" office:value-type="string">
<text:p text:style-name="P5">
<draw:custom-shape text:anchor-type="char" draw:z-index="8" draw:name="Rechteck 10" draw:style-name="gr2" draw:text-style-name="P22" svg:width="0.359cm" svg:height="0.35cm" svg:x="14.566cm" svg:y="0.07cm">
<text:p/>
<draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/>
</draw:custom-shape>
<draw:custom-shape text:anchor-type="char" draw:z-index="7" draw:name="Rechteck 10" draw:style-name="gr2" draw:text-style-name="P22" svg:width="0.355cm" svg:height="0.35cm" svg:x="10.8cm" svg:y="0.07cm">
<text:p/>
<draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/>
</draw:custom-shape>Notes on the presentation of the Bachelor Paper Bachelor Paper 1 <text:s text:c="8"/>/ Bachelor Paper 2 </text:p>
Notes on the presentation of the Bachelor Paper</text:p>
</table:table-cell>
<table:covered-table-cell/>
<table:covered-table-cell/>
+5 -24
View File
@@ -346,7 +346,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-row>
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A2" table:number-columns-spanned="2" office:value-type="string">
<text:p text:style-name="P3">Thema und Beurteilung der Bachelorarbeit 1</text:p>
<text:p text:style-name="P3">Thema und Beurteilung der Bachelorarbeit</text:p>
</table:table-cell>
<table:covered-table-cell/>
<table:table-cell table:style-name="Tabelle1.B5" table:number-columns-spanned="5" office:value-type="string">
@@ -362,31 +362,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<text:p text:style-name="P5"><xsl:value-of select="note" /></text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A2" table:number-columns-spanned="2" office:value-type="string">
<text:p text:style-name="P3">Thema und Beurteilung der Bachelorarbeit 2</text:p>
</table:table-cell>
<table:covered-table-cell/>
<table:table-cell table:style-name="Tabelle1.B5" table:number-columns-spanned="5" office:value-type="string">
<text:p text:style-name="P5"><xsl:value-of select="themenbereich_2" /></text:p>
</table:table-cell>
<table:covered-table-cell/>
<table:covered-table-cell/>
<table:covered-table-cell/>
<table:covered-table-cell/>
<table:table-cell table:style-name="Tabelle1.C2" office:value-type="string">
<text:p text:style-name="P5">Note</text:p>
<text:p text:style-name="P5">(Information)</text:p>
<text:p text:style-name="P5"><xsl:value-of select="note2" /></text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A2" table:number-columns-spanned="2" office:value-type="string">
<text:p text:style-name="P5">Prüfungsgegenstand</text:p>
</table:table-cell>
<table:covered-table-cell/>
<table:table-cell table:style-name="Tabelle1.C2" table:number-columns-spanned="6" office:value-type="string">
<text:p text:style-name="P5">Prüfungsgespräch über die Bachelorarbeit und deren Querverbindungen zu Fächern des Studienplans</text:p>
<text:p text:style-name="P5">Prüfungsgespräch über die Bachelorarbeit</text:p>
</table:table-cell>
<table:covered-table-cell/>
<table:covered-table-cell/>
@@ -400,9 +382,8 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-cell>
<table:covered-table-cell/>
<table:table-cell table:style-name="Tabelle1.C2" table:number-columns-spanned="6" office:value-type="string">
<text:p text:style-name="P4"><draw:custom-shape text:anchor-type="char" draw:z-index="6" draw:name="Rechteck 8" draw:style-name="gr1" draw:text-style-name="P22" svg:width="0.445cm" svg:height="0.445cm" svg:x="10.456cm" svg:y="0.1cm"><text:p/><draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/></draw:custom-shape>Präsentation der Bachelorarbeit</text:p>
<text:p text:style-name="P4">Prüfungsgespräch über die <text:span text:style-name="T1">Bachelorarbeit und Querverbindungen</text:span></text:p>
<text:p text:style-name="P5"><draw:custom-shape text:anchor-type="char" draw:z-index="5" draw:name="Rechteck 10" draw:style-name="gr1" draw:text-style-name="P22" svg:width="0.445cm" svg:height="0.445cm" svg:x="10.456cm" svg:y="-0.092cm"><text:p/><draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/></draw:custom-shape>zu Fächern des Studienplans</text:p>
<text:p text:style-name="P4"><draw:custom-shape text:anchor-type="char" draw:z-index="6" draw:name="Rechteck 8" draw:style-name="gr1" draw:text-style-name="P22" svg:width="0.445cm" svg:height="0.445cm" svg:x="10.456cm" svg:y="0.05cm"><text:p/><draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/></draw:custom-shape>Präsentation der Bachelorarbeit</text:p>
<text:p text:style-name="P4"><draw:custom-shape text:anchor-type="char" draw:z-index="5" draw:name="Rechteck 10" draw:style-name="gr1" draw:text-style-name="P22" svg:width="0.445cm" svg:height="0.445cm" svg:x="10.456cm" svg:y="0.05cm"><text:p/><draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/></draw:custom-shape>Prüfungsgespräch über die Bachelorarbeit</text:p>
</table:table-cell>
<table:covered-table-cell/>
<table:covered-table-cell/>
@@ -412,7 +393,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-row>
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A1" table:number-columns-spanned="8" office:value-type="string">
<text:p text:style-name="P5"><draw:custom-shape text:anchor-type="char" draw:z-index="8" draw:name="Rechteck 10" draw:style-name="gr2" draw:text-style-name="P22" svg:width="0.359cm" svg:height="0.35cm" svg:x="13.566cm" svg:y="0.07cm"><text:p/><draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/></draw:custom-shape><draw:custom-shape text:anchor-type="char" draw:z-index="7" draw:name="Rechteck 10" draw:style-name="gr2" draw:text-style-name="P22" svg:width="0.355cm" svg:height="0.35cm" svg:x="10.035cm" svg:y="0.07cm"><text:p/><draw:enhanced-geometry svg:viewBox="0 0 21600 21600" draw:type="rectangle" draw:enhanced-path="M 0 0 L 21600 0 21600 21600 0 21600 0 0 Z N"/></draw:custom-shape>Notizen zur Präsentation der Bachelorarbeit Bachelorarbeit 1 <text:s text:c="8"/>/ Bachelorarbeit 2 </text:p>
<text:p text:style-name="P5">Notizen zur Präsentation der Bachelorarbeit</text:p>
</table:table-cell>
<table:covered-table-cell/>
<table:covered-table-cell/>
+60 -60
View File
@@ -1,60 +1,60 @@
<?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"
<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: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: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:form="urn:oasis:names:tc:opendocument:xmlns:form: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:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
>
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:template match="lehrauftraege">
<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"
<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/"
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>
@@ -340,7 +340,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<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,
<!-- 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">
@@ -374,7 +374,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P33"/>
<text:p text:style-name="P17"/>
<text:p text:style-name="P17"/>
<text:p text:style-name="P25">Lehrauftrag
<text:p text:style-name="P25">Lehrauftrag
<xsl:if test="studiengang_typ!=''">
<xsl:value-of select="studiengang_typ" />-Studiengang <xsl:value-of select="studiengang_bezeichnung" /><xsl:text> </xsl:text>
</xsl:if>
@@ -403,7 +403,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P10">Lehrveranstaltung</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P10">Institut</text:p>
<text:p text:style-name="P10">Department</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P10">Gruppe<text:span text:style-name="T2">(n)</text:span>
@@ -419,9 +419,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P10">Brutto</text:p>
</table:table-cell>
</table:table-row>
<xsl:apply-templates select="lehreinheit"/>
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
<text:p text:style-name="P1"/>
@@ -450,13 +450,13 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P11"><xsl:value-of select="gesamtbetrag" /></text:p>
</xsl:otherwise>
</xsl:choose>
</table:table-cell>
</table:table-row>
</table:table>
<text:p text:style-name="P19"/>
<text:p text:style-name="P19">Die angeführten Stundensätze sind Bruttobeträge, von denen gegebenenfalls die DienstnehmerInnenanteile für Steuern und Sozialversicherung abgezogen werden.
Die angeführte Stundenzahl ist die maximal vorgesehene; abgerechnet werden jedoch nur die tatsächlich gehaltenen Stunden laut Anwesenheitslisten.
<text:p text:style-name="P19">Die angeführten Stundensätze sind Bruttobeträge, von denen gegebenenfalls die DienstnehmerInnenanteile für Steuern und Sozialversicherung abgezogen werden.
Die angeführte Stundenzahl ist die maximal vorgesehene; abgerechnet werden jedoch nur die tatsächlich gehaltenen Stunden laut Anwesenheitslisten.
Außerdem besteht die Verpflichtung zur Teilnahme an LektorInnenkonferenzen.</text:p>
<table:table table:name="Tabelle2" table:style-name="Tabelle2">
<table:table-column table:style-name="Tabelle2.A"/>
@@ -514,9 +514,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
<xsl:apply-templates select="gruppen_getrennt"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
<text:p text:style-name="P3"><xsl:value-of select="stunden" /></text:p>
@@ -530,7 +530,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<xsl:otherwise>
<text:p text:style-name="P2"><xsl:value-of select="satz" /></text:p>
</xsl:otherwise>
</xsl:choose>
</xsl:choose>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.G2" office:value-type="string">
<!-- Wenn LektorInnen bei inkludierte_lehre einen Wert stehen haben, wird am Lehrauftrag bei Stundensatz und Brutto 0 ausgegeben-->
@@ -541,7 +541,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<xsl:otherwise>
<text:p text:style-name="P3"><xsl:value-of select="brutto" /></text:p>
</xsl:otherwise>
</xsl:choose>
</xsl:choose>
</table:table-cell>
</table:table-row>
</xsl:template>
+56 -56
View File
@@ -1,60 +1,60 @@
<?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"
<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: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: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:form="urn:oasis:names:tc:opendocument:xmlns:form: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:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
>
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:template match="lehrauftraege">
<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"
<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/"
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>
@@ -336,7 +336,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<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,
<!-- 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">
@@ -396,7 +396,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P10">Lehrveranstaltung</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P10">Institut</text:p>
<text:p text:style-name="P10">Department</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P10">Gruppe<text:span text:style-name="T2">(n)</text:span>
@@ -412,9 +412,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P10">Brutto</text:p>
</table:table-cell>
</table:table-row>
<xsl:apply-templates select="lehreinheit"/>
<table:table-row>
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
<text:p text:style-name="P1"/>
@@ -447,8 +447,8 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</table:table-row>
</table:table>
<text:p text:style-name="P19"/>
<text:p text:style-name="P19">Die angeführten Stundensätze sind Bruttobeträge, von denen gegebenenfalls die DienstnehmerInnenanteile für Steuern und Sozialversicherung abgezogen werden.
Die angeführte Stundenzahl ist die maximal vorgesehene; abgerechnet werden jedoch nur die tatsächlich gehaltenen Stunden laut Anwesenheitslisten.
<text:p text:style-name="P19">Die angeführten Stundensätze sind Bruttobeträge, von denen gegebenenfalls die DienstnehmerInnenanteile für Steuern und Sozialversicherung abgezogen werden.
Die angeführte Stundenzahl ist die maximal vorgesehene; abgerechnet werden jedoch nur die tatsächlich gehaltenen Stunden laut Anwesenheitslisten.
Außerdem besteht die Verpflichtung zur Teilnahme an LektorInnenkonferenzen.</text:p>
<table:table table:name="Tabelle2" table:style-name="Tabelle2">
<table:table-column table:style-name="Tabelle2.A"/>
@@ -506,9 +506,9 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
<xsl:apply-templates select="gruppen_getrennt"/>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
<text:p text:style-name="P3"><xsl:value-of select="stunden" /></text:p>
@@ -447,6 +447,8 @@ if(isset($_POST['save']))
}
else
{
$zugangscode = substr(md5(openssl_random_pseudo_bytes(20)), 0, 15);
$person->new = true;
$person->anrede = $anrede;
$person->titelpre = $titel;
@@ -462,7 +464,7 @@ if(isset($_POST['save']))
$person->geburtsnation = 'A';
$person->staatsbuergerschaft = 'A';
$person->familienstand = 'l';
$person->zugangscode= uniqid();
$person->zugangscode= $zugangscode;
if($person->save())
{
+112 -2
View File
@@ -114,7 +114,9 @@ echo '
<script>
function delPerson(type, info)
{
if(!confirm("Sind Sie sich sicher?"))
if(!confirm("!!!ACHTUNG!!!\nDie Aktion löscht alle Daten der Person im System.\n"
+"Das betrifft auch alle PreStudierenden- sowie ggf. MitarbeiterInnen-Daten\n\n"
+"Sind Sie sich sicher?"))
return;
@@ -233,13 +235,14 @@ if($searchstr!='')
echo $db->db_num_rows($result).' Person(en) gefunden<br><br>';
echo '<table>';
echo '<tr class="liste" align="center">';
echo "<td colspan='5'><b>Person</b></td>";
echo "<td colspan='6'><b>Person</b></td>";
echo "<td colspan='4'><b>Benutzer</b></td>";
echo "<td colspan='4'><b>Mitarbeiter</b></td>";
echo "<td colspan='4'><b>Student</b></td>";
if($admin){echo "<td><b></b></td>";}
echo '</tr>';
echo '<tr class="liste" align="center">';
echo "<td><b>Person ID</b></td>";
echo "<td><b>Nachname</b></td>";
echo "<td><b>Vorname</b></td>";
echo "<td><b>Gebdatum</b></td>";
@@ -268,6 +271,7 @@ if($searchstr!='')
if($row_person = $db->db_fetch_object($result_person))
{
echo '<tr class="liste1">';
echo "<td>$row_person->person_id</td>";
echo "<td><a href='personen_details.php?person_id=$row_person->person_id'>$row_person->nachname</a></td>";
echo "<td>$row_person->vorname</td>";
echo "<td>".($row_person->gebdatum!=''?$datum_obj->convertISODate($row_person->gebdatum):'')."</td>";
@@ -307,6 +311,7 @@ if($searchstr!='')
$content.= '<td></td>';
$content.= '<td></td>';
$content.= '<td></td>';
$content.= '<td></td>';
$content.= "<td>Mitarbeiter</td>";
$content.= "<td><a href='personen_details.php?uid=$row_mitarbeiter->uid'>$row_mitarbeiter->uid</a></td>";
$content.= "<td>".($row_mitarbeiter->aktiv=='t'?'Ja':'Nein')."</td>";
@@ -354,6 +359,7 @@ if($searchstr!='')
$content.= '<td></td>';
$content.= '<td></td>';
$content.= '<td></td>';
$content.= '<td></td>';
$content.= "<td>$student->status_kurzbz</td>";
$content.= "<td><a href='personen_details.php?uid=$row_student->uid'>$row_student->uid</a></td>";
$content.= "<td>".($row_student->aktiv=='t'?'Ja':'Nein')."</td>";
@@ -1132,6 +1138,15 @@ function casDeletePerson($db, $person_id, $trans=true)
if(!$db->db_query($qry))
$error = true;
}
if(!$error)
{
$qry = '
DELETE FROM public.tbl_msg_recipient
WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER);
if(!$db->db_query($qry))
$error = true;
}
if(!$error)
{
@@ -1141,6 +1156,15 @@ function casDeletePerson($db, $person_id, $trans=true)
if(!$db->db_query($qry))
$error = true;
}
if(!$error)
{
$qry = '
DELETE FROM public.tbl_msg_status
WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER);
if(!$db->db_query($qry))
$error = true;
}
if(!$error)
{
@@ -1150,6 +1174,15 @@ function casDeletePerson($db, $person_id, $trans=true)
if(!$db->db_query($qry))
$error = true;
}
if(!$error)
{
$qry = '
DELETE FROM public.tbl_adresse
WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER);
if(!$db->db_query($qry))
$error = true;
}
if(!$error)
{
@@ -1159,6 +1192,24 @@ function casDeletePerson($db, $person_id, $trans=true)
if(!$db->db_query($qry))
$error = true;
}
if(!$error)
{
$qry = '
DELETE FROM public.tbl_akte
WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER);
if(!$db->db_query($qry))
$error = true;
}
if(!$error)
{
$qry = '
DELETE FROM public.tbl_preincoming
WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER);
if(!$db->db_query($qry))
$error = true;
}
if(!$error)
{
@@ -1261,6 +1312,24 @@ function casDeletePerson($db, $person_id, $trans=true)
if(!$db->db_query($qry))
$error = true;
}
if(!$error)
{
$qry = '
DELETE FROM system.tbl_person_lock
WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER);
if(!$db->db_query($qry))
$error = true;
}
if(!$error)
{
$qry = '
DELETE FROM system.tbl_log
WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER);
if(!$db->db_query($qry))
$error = true;
}
if(!$error)
{
@@ -1478,6 +1547,20 @@ function casDeletePerson($db, $person_id, $trans=true)
if(!$db->db_query($qry))
$error = true;
}
if(!$error)
{
$qry = '
WITH deleted_rows AS (
DELETE FROM public.tbl_notizzuordnung
WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).'
RETURNING notiz_id
)
DELETE FROM public.tbl_notiz
WHERE notiz_id IN (SELECT notiz_id FROM deleted_rows)';
if(!$db->db_query($qry))
$error = true;
}
if(!$error)
{
@@ -1558,6 +1641,33 @@ function casDeletePerson($db, $person_id, $trans=true)
}
}
}
if(!$error)
{
$queryPs = '
SELECT tbl_prestudent.prestudent_id FROM tbl_prestudent
WHERE person_id = ' . $db->db_add_param($person_id, FHC_INTEGER).'
';
$resultPs = $db->db_query($queryPs);
if(!$resultPs)
{
$error = true;
}
else
{
while($row = $db->db_fetch_object($resultPs))
{
if(!$error)
{
if(!casDeletePrestudent($db, $row->prestudent_id, false))
{
$error = true;
}
}
else { break; }
}
}
}
/*
* delete all mitarbeiter entries
+3 -3
View File
@@ -134,8 +134,8 @@ if($action=='new' || $action=='update')
}
if($action=='reboot')
{
if(!$rechte->isBerechtigt('admin'))
die($rechte->errormsg);
//if(!$rechte->isBerechtigt('admin'))
//die($rechte->errormsg);
require_once("../../vendor/autoload.php");
@@ -175,7 +175,7 @@ foreach($infoscreen->result as $row)
echo '<td>',$basis->convert_html_chars($row->bezeichnung),'</td>';
echo '<td>',$basis->convert_html_chars($row->beschreibung),'</td>';
echo '<td>',$basis->convert_html_chars($row->ipadresse),'</td>';
if($rechte->isBerechtigt('admin'))
//if($rechte->isBerechtigt('admin'))
echo '<td><a href="infoscreen_uebersicht.php?action=reboot&ip='.$row->ipadresse.' " target="uebersicht_infoscreen">Reboot</a></td>';
echo '<td><a href="infoscreen_details.php?action=show&infoscreen_id=',$basis->convert_html_chars($row->infoscreen_id),' " target="detail_infoscreen">details</a></td>';
echo '<td><a href="infoscreen_uebersicht.php?action=update&infoscreen_id=',$basis->convert_html_chars($row->infoscreen_id),' " target="uebersicht_infoscreen">bearbeiten</a></td>';
+97 -59
View File
@@ -566,14 +566,15 @@ if(isset($_GET['excel']))
<title>Reihungstest</title>
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<?php
include('../../include/meta/jquery.php');
include('../../include/meta/jquery-tablesorter.php');
?>
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<link href="../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script src="../../vendor/rmariuzzo/jquery-checkboxes/dist/jquery.checkboxes-1.0.7.min.js" type="text/javascript"></script>
@@ -771,7 +772,7 @@ if(isset($_GET['excel']))
{
$("#"+v.id).tablesorter(
{
widgets: ["zebra"],
widgets: ["zebra", "filter", "stickyHeaders"],
sortList: [[3,0],[4,0]],
headers: {0: { sorter: false}}
});
@@ -970,7 +971,7 @@ if(isset($_GET['excel']))
.studienplan_listitem
{
background-color: lightgray;
padding: 0 5px 0 6px;
padding: 2px 5px 2px 6px;
border-radius: 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
@@ -979,7 +980,7 @@ if(isset($_GET['excel']))
.ort_listitem
{
background-color: lightgray;
padding: 0 5px 0 6px;
padding: 2px 5px 2px 6px;
border-radius: 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
@@ -1027,12 +1028,6 @@ $messageError = '';
// Speichern eines Termines
if(isset($_POST['speichern']) || isset($_POST['kopieren']))
{
if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'sui'))
{
die($rechte->errormsg);
}
$reihungstest = new reihungstest();
if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='' && !isset($_POST['kopieren']))
@@ -1052,6 +1047,13 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren']))
$reihungstest->insertvon = $user;
$reihungstest->insertamum = date('Y-m-d H:i:s');
}
// OE über Studiengang des Reihungstests laden und Berechtigung prüfen
$stg_rechtecheck = new studiengang($reihungstest->studiengang_kz);
if(!$rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'sui'))
{
die($rechte->errormsg);
}
//Datum und Uhrzeit pruefen
if($_POST['datum']!='' && !$datum_obj->checkDatum($_POST['datum']))
@@ -1089,7 +1091,7 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren']))
{
$reihungstest->freigeschaltet = isset($_POST['freigeschaltet']);
$reihungstest->max_teilnehmer = filter_input(INPUT_POST, 'max_teilnehmer', FILTER_VALIDATE_INT);
if ($rechte->isBerechtigt('lehre/reihungstestOeffentlich', $_POST['studiengang_kz'], 'suid'))
if ($rechte->isBerechtigt('lehre/reihungstestOeffentlich', $stg_rechtecheck->oe_kurzbz, 'suid'))
{
$reihungstest->oeffentlich = (isset($_POST['oeffentlich']) ? true : false);
}
@@ -1116,7 +1118,7 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren']))
$messageError .= '<p>Die Bezeichnung des Ortes ist ungueltig oder wurde nicht gefunden</p>';
else
{
if($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui'))
if($rechte->isBerechtigt('lehre/reihungstestOrt', $stg_rechtecheck->oe_kurzbz, 'sui'))
{
$orte_zugeteilt = new reihungstest();
$orte_zugeteilt->getOrteReihungstest($reihungstest->reihungstest_id);
@@ -1281,11 +1283,6 @@ if ($reihungstest_id != '' || isset($_POST['reihungstest_id']))
if(isset($_POST['raumzuteilung_speichern']))
{
if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'su'))
{
die($rechte->errormsg);
}
$raumzuteilung = new reihungstest();
if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='')
@@ -1295,6 +1292,14 @@ if(isset($_POST['raumzuteilung_speichern']))
{
die($raumzuteilung->errormsg);
}
// OE über Studiengang des Reihungstests laden und Berechtigung prüfen
$stg_rechtecheck = new studiengang($raumzuteilung->studiengang_kz);
if(!$rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'su'))
{
die($rechte->errormsg);
}
if (isset($_POST['checkbox']))
{
$person_ids = $_POST['checkbox'];
@@ -1522,13 +1527,15 @@ if(isset($_GET['type']) && $_GET['type']=='informAssistance')
// Verteilt alle BewerberInnen gleichmaessig auf die Raeume
if(isset($_GET['type']) && $_GET['type']=='verteilen')
{
if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'sui'))
{
die($rechte->errormsg);
}
if($reihungstest_id!='')
{
$rt_rechtecheck = new reihungstest($reihungstest_id);
// OE über Studiengang des Reihungstests laden und Berechtigung prüfen
$stg_rechtecheck = new studiengang($rt_rechtecheck->studiengang_kz);
if(!$rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'sui'))
{
die($rechte->errormsg);
}
$errormsg='';
$qry = "SELECT
person_id,
@@ -1617,13 +1624,16 @@ if(isset($_GET['type']) && $_GET['type']=='verteilen')
// Fuellt die Raeume aufsteigend mit BewerberInnen an
if(isset($_GET['type']) && $_GET['type']=='auffuellen')
{
if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'sui'))
{
die($rechte->errormsg);
}
if($reihungstest_id!='')
{
$rt_rechtecheck = new reihungstest($reihungstest_id);
// OE über Studiengang des Reihungstests laden und Berechtigung prüfen
$stg_rechtecheck = new studiengang($rt_rechtecheck->studiengang_kz);
if(!$rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'sui'))
{
die($rechte->errormsg);
}
$orte = new Reihungstest();
$orte->getOrteReihungstest($reihungstest_id);
@@ -1699,16 +1709,18 @@ if(isset($_GET['type']) && $_GET['type']=='auffuellen')
if(isset($_POST['aufsicht']) && $_POST['aufsicht']!='' && !isset($_POST['kopieren']))
{
if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'su'))
{
die($rechte->errormsg);
}
$save_aufsicht = new reihungstest();
if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='')
{
$rt_rechtecheck = new reihungstest($_POST['reihungstest_id']);
// OE über Studiengang des Reihungstests laden und Berechtigung prüfen
$stg_rechtecheck = new studiengang($rt_rechtecheck->studiengang_kz);
if(!$rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'su'))
{
die($rechte->errormsg);
}
//Reihungstest laden
if(!$save_aufsicht->load($_POST['reihungstest_id']))
{
@@ -1745,13 +1757,16 @@ if(isset($_POST['aufsicht']) && $_POST['aufsicht']!='' && !isset($_POST['kopiere
if(isset($_POST['delete_ort']))
{
if(!$rechte->isBerechtigt('lehre/reihungstestOrt', null, 'suid'))
{
die($rechte->errormsg);
}
if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='')
{
$rt_rechtecheck = new reihungstest($_POST['reihungstest_id']);
// OE über Studiengang des Reihungstests laden und Berechtigung prüfen
$stg_rechtecheck = new studiengang($rt_rechtecheck->studiengang_kz);
if(!$rechte->isBerechtigt('lehre/reihungstestOrt', $stg_rechtecheck->oe_kurzbz, 'suid'))
{
die($rechte->errormsg);
}
$delete_ort = new reihungstest();
$delete_ort->getPersonReihungstestOrt($_POST['reihungstest_id'], $_POST['delete_ort']);
@@ -2067,6 +2082,7 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
</tr>';
}
$stg_rechtecheck = new studiengang($reihungstest->studiengang_kz);
if($neu)
{
echo '<tr>';
@@ -2123,9 +2139,17 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
{
//echo '<td><table>';
echo '<td>';
echo '<input id="studienplan_id" type="hidden" name="studienplan_id" value="">';
echo '<input id="studienplan_autocomplete" type="text" name="studienplan" size="40" placeholder="Weiterer Studienplan" value="">';
echo '<button type="submit" name="speichern"><img src="../../skin/images/list-add.png" alt="Studienplan hinzufügen" height="13px"></button></td>';
if ($rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'sui'))
{
echo '<input id="studienplan_id" type="hidden" name="studienplan_id" value="">';
echo '<input id="studienplan_autocomplete" type="text" name="studienplan" size="40" placeholder="Weiterer Studienplan" value="">';
echo '<button type="submit" name="speichern"><img src="../../skin/images/list-add.png" alt="Studienplan hinzufügen" height="13px"></button>';
}
else
{
echo 'Keine Berechtigung zum Zuteilen von Studienplänen';
}
echo '</td>';
echo '</tr>';
foreach ($studienplaene->result AS $row)
@@ -2135,7 +2159,10 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
echo '<tr><td>&nbsp;</td>';
echo '<td class="studienplan_listitem">'.$studienplan->bezeichnung.' ('.$studienplan->studienplan_id.')</td>';
echo '<td><button type="submit" name="delete_studienplan" value="'.$row->studienplan_id.'"><img src="../../skin/images/delete_x.png" alt="Studienplan entfernen" height="13px"></button></td>';
if ($rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'suid'))
{
echo '<td><button type="submit" name="delete_studienplan" value="'.$row->studienplan_id.'"><img src="../../skin/images/delete_x.png" alt="Studienplan entfernen" height="13px"></button></td>';
}
echo '</tr>';
}
//echo '</table></td>';
@@ -2149,7 +2176,8 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
{
echo '<tr><td class="feldtitel">Ort</td>';
//echo '<td>';
if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui'))
if ($rechte->isBerechtigt('lehre/reihungstestOrt', $stg_rechtecheck->oe_kurzbz, 'sui'))
{
echo '<td><input id="ort" type="text" name="ort_kurzbz" placeholder="Ort eingeben" value="">';
echo '<button type="submit" name="speichern"><img src="../../skin/images/list-add.png" alt="Ort hinzufügen" height="13px"></button></td>';
@@ -2157,7 +2185,7 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
}
else
{
echo '<td colspan="2">Keine Berechtigung zum zuteilen von Räumen</td>';
echo '<td colspan="2">Keine Berechtigung zum Zuteilen von Räumen</td>';
}
$orte = new Reihungstest();
$orte->getOrteReihungstest($reihungstest->reihungstest_id);
@@ -2175,9 +2203,14 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
if(defined('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND') && REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND > 0)
echo '*';
echo ')';
echo ' <input type="text" id="aufsicht_'.$row->ort_kurzbz.'" class="aufsicht_uid" name="aufsicht['.$row->ort_kurzbz.']" value="'.$anzeigename.'" placeholder="Aufsichtsperson" size="32">';
if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'suid'))
if ($rechte->isBerechtigt('lehre/reihungstestOrt', $stg_rechtecheck->oe_kurzbz, 'sui'))
{
echo ' <input type="text" id="aufsicht_'.$row->ort_kurzbz.'" class="aufsicht_uid" name="aufsicht['.$row->ort_kurzbz.']" value="'.$anzeigename.'" placeholder="Aufsichtsperson" size="32">';
}
if ($rechte->isBerechtigt('lehre/reihungstestOrt', $stg_rechtecheck->oe_kurzbz, 'suid'))
{
echo '</td><td><button type="submit" name="delete_ort" value="'.$row->ort_kurzbz.'"><img src="../../skin/images/delete_x.png" alt="Ort hinzufügen" height="13px"></button>';
}
echo '</td></tr>';
$arbeitsplaetze_sum = $arbeitsplaetze_sum + $orte_array[$row->ort_kurzbz];
}
@@ -2227,7 +2260,7 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
?>
</td>
</tr>
<tr <?php echo ($rechte->isBerechtigt('lehre/reihungstestOeffentlich', $reihungstest->studiengang_kz, 'suid') ? '' : 'style="display:none"') ?>>
<tr <?php echo ($rechte->isBerechtigt('lehre/reihungstestOeffentlich', $stg_rechtecheck->oe_kurzbz, 'suid') ? '' : 'style="display:none"') ?>>
<td class="feldtitel">Öffentlich</td>
<td>
<input id="oeffentlich" type="checkbox" name="oeffentlich" value="1" <?php echo $reihungstest->oeffentlich ? 'checked="checked"' : '' ?>>
@@ -2245,19 +2278,24 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
<tr>
<td>&nbsp;</td>
</tr>
<?php if(!$neu)
$val = 'Änderung Speichern';
else
$val = 'Neu anlegen'; ?>
<tr>
<td></td>
<td>
<button type="submit" name="speichern"><?php echo $val ?></button>
<?php
<?php
if(!$neu)
echo '<button type="submit" name="kopieren" onclick="return confirm (\'Eine Kopie dieses Termins erstellen?\')">Kopie erstellen</button>';
if($rechte->isBerechtigt('lehre/reihungstest', null, 'suid'))
{
if($rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'sui'))
{
echo '<button type="submit" name="speichern">Änderung Speichern</button>';
echo '<button type="submit" name="kopieren" onclick="return confirm (\'Eine Kopie dieses Termins erstellen?\')">Kopie erstellen</button>';
}
}
else
{
echo '<button type="submit" name="speichern">Neu anlegen</button>';
}
if($rechte->isBerechtigt('lehre/reihungstest', $stg_rechtecheck->oe_kurzbz, 'suid'))
{
$anzahl_teilnehmer = new reihungstest();
$anzahl_teilnehmer = $anzahl_teilnehmer->getTeilnehmerAnzahl($reihungstest_id);