Merge remote-tracking branch 'origin/master'

This commit is contained in:
Manfred Kindl
2018-03-06 17:04:20 +01:00
16 changed files with 729 additions and 491 deletions
+15 -1
View File
@@ -13,7 +13,9 @@
- **[FAS]** Bei Statuswechsel von Studierenden können Gründe für den Statuswechsel angegeben werden
- **[ADDONS]** Addons können Menüpunkte im Vilesci anpassen
- **[ADDONS]** Addons können Noten für die Gesamtnote vorschlagen
- **[CORE]** UserDefinedFields
- **[CORE]** UserDefinedFields hinzugefügt zur Verwalung von eigenen Eingabefeldern
- **[CORE]** Support für Extensions hinzugefügt - eine Weiterentwicklung der Addons für die Verwendung mit Codeigniter
- **[CORE]** Infocenter Seite hinzugefügt zur zentralen Verwaltung und ZGV Prüfung von Interessenten
### CHANGED
- **[CORE]** Berechtigungsprüfung wurde angepasst damit deaktivierte Benutzer keine Berechtigungen mehr haben
@@ -28,6 +30,18 @@
- **[CORE]** Update campus.tbl_templates (contentmittitel and contentohnetitel) with system/templates/contentmittitel_xslt_xhtml.xslt andsystem/templates/contentohnetitel_xslt_xhtml.xslt
- **[CORE]** Neue Style Anweisungen (div.header_logo, td.headerbar, div.cis_logo) müssen in Custom Stylesheet hinzugefügt werden
### Deprecated
- **[CORE]** Die folgenden Datenbank Tabellen und Spalten wurden als DEPRECATED markiert und werden mit der nächsten Version entfernt:
public.tbl_aufnahmeschluessel, public.tbl_aufnahmetermin, public.tbl_aufnahmetermintyp, public.tbl_preinteressent,
public.tbl_preinteressentstudiengang, campus.tbl_feedback, campus.tbl_lvinfo, campus.tbl_resturlaub, lehre.tbl_lehrfach
lehre.tbl_lehrmittel, lehre.tbl_moodle, lehre.tbl_moodle_version, lehre.tbl_studienordnung_semester, lehre.tbl_zeitfenster
lehre.tbl_zeugnis, fue.tbl_scrumsprint, fue.tbl_scrumteam, wawi.tbl_aufteilung, wawi.tbl_aufteilung_default,
testtool.tbl_kategorie, testtool.tbl_kriterien, public.tbl_prestudent.rt_punkte1, public.tbl_prestudent.rt_punkte2
public.tbl_prestudent.rt_punkte3, public.tbl_prestudent.anmeldungreihungstest, public.tbl_prestudent.reihungstest_id
public.tbl_prestudent.ausstellungsstaat, public.tbl_prestudent.aufnahmeschluessel, lehre.tbl_lehrveranstaltung.old_lehrfach_id
- **[CORE]** LV-Infos werden mit der kommenden Version aus dem Core entfernt - Dies ist jetzt ein Addon
- **[CORE]** WaWi wird mit der kommenden Version aus dem Core entfernt- Dies ist jetzt ein Addon
## [3.2]
### Added
+13 -5
View File
@@ -74,25 +74,33 @@ class Filters extends VileSci_Controller
$allSelectedFields = $_SESSION[self::SESSION_NAME]['allSelectedFields'];
$allColumnsAliases = $_SESSION[self::SESSION_NAME]['allColumnsAliases'];
$json->selectedFields = $_SESSION[self::SESSION_NAME]['selectedFields'];
$json->columnsAliases = $_SESSION[self::SESSION_NAME]['columnsAliases'];
if (isset($selectedFieldsLst) && is_array($selectedFieldsLst))
{
$json->selectedFields = $_SESSION[self::SESSION_NAME]['selectedFields'] = $selectedFieldsLst;
$json->selectedFields = $selectedFieldsLst;
$json->columnsAliases = array();
for ($i = 0; $i < count($json->selectedFields); $i++)
{
$pos = array_search($json->selectedFields[$i], $allSelectedFields);
$json->columnsAliases[$i] = $json->selectedFields[$i];
if ($pos !== false)
{
$json->columnsAliases[] = $json->selectedFields[$i];
if ($allColumnsAliases != null && is_array($allColumnsAliases))
{
$json->columnsAliases[] = $allColumnsAliases[$pos];
$json->columnsAliases[$i] = $allColumnsAliases[$pos];
}
}
}
}
$_SESSION[self::SESSION_NAME]['selectedFields'] = $json->selectedFields;
$_SESSION[self::SESSION_NAME]['columnsAliases'] = $json->columnsAliases;
$this->output->set_content_type('application/json')->set_output(json_encode($json));
}
@@ -125,10 +133,10 @@ class Filters extends VileSci_Controller
if ($pos !== false)
{
$json->selectedFiltersAliases[] = $json->selectedFilters[$i];
$json->selectedFiltersAliases[$i] = $json->selectedFilters[$i];
if ($json->allColumnsAliases != null && is_array($json->allColumnsAliases))
{
$json->selectedFiltersAliases[] = $json->allColumnsAliases[$pos];
$json->selectedFiltersAliases[$i] = $json->allColumnsAliases[$pos];
}
$json->selectedFiltersMetaData[] = $metaData[$pos];
@@ -641,6 +641,13 @@ class InfoCenter extends VileSci_Controller
show_error($notizen->retval);
}
$notizen_bewerbung = $this->NotizModel->getNotizByTitel($person_id, 'Anmerkung zur Bewerbung');
if (isError($notizen_bewerbung))
{
show_error($notizen_bewerbung->retval);
}
$user_person = $this->PersonModel->getByUid($this->uid);
if (isError($user_person))
@@ -659,6 +666,7 @@ class InfoCenter extends VileSci_Controller
'messages' => $messages->retval,
'logs' => $logs,
'notizen' => $notizen->retval,
'notizenbewerbung' => $notizen_bewerbung->retval,
'messagelink' => $messagelink
);
+1 -1
View File
@@ -690,7 +690,7 @@ class MessageLib
// Sending email
$sent = $this->ci->maillib->send(
$sender,
null,
$receiverContact,
is_null($subject) ? $result->retval[0]->subject : $subject, // if parameter subject is not null, use it!
$bodyMsg,
@@ -0,0 +1,26 @@
<?php if (count($notizenbewerbung) > 0): ?>
<br>
<div class="row">
<div class="col-lg-12">
<table class="table-bordered" align="center" width="100%">
<thead>
<tr>
<th colspan="2" class="text-center">Anmerkungen zur Bewerbung</th>
</tr>
</thead>
<tbody>
<?php foreach ($notizenbewerbung as $notiz): ?>
<tr>
<td class="text-center">
<?php echo date_format(date_create($notiz->insertamum), 'd.m.Y H:i:s') ?>
</td>
<td>
<?php echo nl2br($notiz->text) ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
<?php endif; ?>
@@ -1,7 +1,7 @@
<?php
$APP = 'infocenter';
$NOTBEFORE = '2018-03-01 18:00:00';
$filterWidgetArray = array(
'query' => '
SELECT
@@ -12,7 +12,7 @@
(
SELECT zeitpunkt
FROM system.tbl_log
WHERE taetigkeit_kurzbz = \'bewerbung\'
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
AND person_id = p.person_id
ORDER BY zeitpunkt DESC
LIMIT 1
@@ -20,7 +20,7 @@
(
SELECT insertvon
FROM system.tbl_log
WHERE taetigkeit_kurzbz = \'bewerbung\'
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
AND person_id = p.person_id
ORDER BY zeitpunkt DESC
LIMIT 1
@@ -36,6 +36,11 @@
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "Studiensemester",
@@ -46,9 +51,15 @@
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "SendDate",
@@ -59,28 +70,41 @@
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
LIMIT 1
) AS "AnzahlAbgeschickt",
array_to_string(
(
SELECT array_agg(tbl_studiengang.kurzbzlang)
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz))
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
LIMIT 1
),\',\'
),\', \'
) AS "StgAbgeschickt",
pl.zeitpunkt AS "LockDate"
pl.zeitpunkt AS "LockDate",
pl.lockuser as "LockUser"
FROM public.tbl_person p
LEFT JOIN (SELECT person_id, zeitpunkt FROM system.tbl_person_lock WHERE app = \''.$APP.'\') pl USING(person_id)
LEFT JOIN (SELECT person_id, zeitpunkt, uid as lockuser FROM system.tbl_person_lock WHERE app = \''.$APP.'\') pl USING(person_id)
WHERE
EXISTS(
SELECT 1
@@ -103,7 +127,7 @@
WHERE
prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = \'Interessent\'
AND bestaetigtam IS NULL
AND (bestaetigtam IS NULL AND (bewerbung_abgeschicktamum is null OR bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\'))
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
@@ -111,12 +135,14 @@
)
)
)
ORDER BY "LastAction" DESC
ORDER BY "LastAction" ASC
',
'hideHeader' => false,
'hideSave' => false,
'checkboxes' => 'PersonId',
'additionalColumns' => array('Details'),
'columnsAliases' => array('PersonID','Vorname','Nachname','GebDatum','Letzte Aktion','Letzter Bearbeiter',
'StSem','GesendetAm','NumAbgeschickt','Studiengänge','Sperrdatum','GesperrtVon'),
'formatRaw' => function($datasetRaw) {
$datasetRaw->{'Details'} = sprintf(
@@ -129,10 +155,18 @@
{
$datasetRaw->{'SendDate'} = 'Not sent';
}
else
{
$datasetRaw->{'SendDate'} = date_format(date_create($datasetRaw->{'SendDate'}),'Y-m-d H:i');
}
if ($datasetRaw->{'LastAction'} == null)
{
$datasetRaw->{'LastAction'} = 'Not logged';
$datasetRaw->{'LastAction'} = '-';
}
else
{
$datasetRaw->{'LastAction'} = date_format(date_create($datasetRaw->{'LastAction'}),'Y-m-d H:i');
}
if ($datasetRaw->{'User/Operator'} == '')
@@ -142,7 +176,12 @@
if ($datasetRaw->{'LockDate'} == null)
{
$datasetRaw->{'LockDate'} = 'Not locked';
$datasetRaw->{'LockDate'} = '-';
}
if ($datasetRaw->{'LockUser'} == null)
{
$datasetRaw->{'LockUser'} = '-';
}
if ($datasetRaw->{'StgAbgeschickt'} == null)
+19 -18
View File
@@ -10,6 +10,7 @@
'tablesorter' => true,
'tinymce' => true,
'sbadmintemplate' => true,
'addons' => true,
'customCSSs' =>
array(
'skin/admintemplate.css',
@@ -37,35 +38,35 @@
<div id="page-wrapper">
<div class="container-fluid">
<input type="hidden" id="hiddenpersonid" value="<?php echo $stammdaten->person_id ?>">
<div class="row<?php if($lockedbyother) echo ' alert-danger' ?>">
<div class="row<?php if ($lockedbyother) echo ' alert-danger' ?>">
<div class="col-lg-8">
<h3 class="page-header">
Infocenter Details: <?php echo $stammdaten->vorname.' '.$stammdaten->nachname ?>
</h3>
<h3 class="page-header">
Infocenter Details: <?php echo $stammdaten->vorname.' '.$stammdaten->nachname ?>
</h3>
</div>
<div class="col-lg-4">
<div class="headerright text-right">
wird bearbeitet von:
<?php
if(isset($lockedby)):
echo $lockedby;
?>
&nbsp;&nbsp;
<a href="../unlockPerson/<?php echo $stammdaten->person_id; ?>"><i class="fa fa-sign-out"></i>&nbsp;Freigeben</a>
if (isset($lockedby)):
echo $lockedby;
?>
&nbsp;&nbsp;
<a href="../unlockPerson/<?php echo $stammdaten->person_id; ?>"><i
class="fa fa-sign-out"></i>&nbsp;Freigeben</a>
<?php endif; ?>
</div>
</div>
</div>
<br />
<br/>
<section>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading text-center"><h4>Stammdaten</h4></div>
<div class="panel-body">
<div class="row">
<?php $this->load->view('system/infocenter/stammdaten.php'); ?>
</div> <!-- ./row -->
<?php $this->load->view('system/infocenter/stammdaten.php'); ?>
<?php $this->load->view('system/infocenter/anmerkungenZurBewerbung.php'); ?>
</div> <!-- ./panel-body -->
</div> <!-- ./panel -->
</div> <!-- ./main column -->
@@ -109,9 +110,9 @@
</div>
<div class="panel-body">
<div class="row">
<?php
$this->load->view('system/messageList.php', $messages);
?>
<?php
$this->load->view('system/messageList.php', $messages);
?>
</div>
</div>
</div>
@@ -130,10 +131,10 @@
<div class="row">
<div class="col-lg-6">
<div id="addnotiz">
<?php $this->load->view('system/infocenter/addNotiz.php'); ?>
<?php $this->load->view('system/infocenter/addNotiz.php'); ?>
</div>
<div id="notizen">
<?php $this->load->view('system/infocenter/notizen.php'); ?>
<?php $this->load->view('system/infocenter/notizen.php'); ?>
</div>
</div>
<div class="col-lg-6" id="logs">
+105 -102
View File
@@ -1,108 +1,111 @@
<div class="col-lg-6 table-responsive">
<table class="table">
<tr>
<td><strong>Vorname</strong></td>
<td><?php echo $stammdaten->vorname ?></td>
</tr>
<tr>
<td><strong>Nachname</strong></td>
<td>
<?php echo $stammdaten->nachname ?></td>
</tr>
<tr>
<td><strong>Geburtsdatum</strong></td>
<td>
<?php echo date_format(date_create($stammdaten->gebdatum), 'd.m.Y') ?></td>
</tr>
<tr>
<td><strong>Sozialversicherungsnr</strong></td>
<td>
<?php echo $stammdaten->svnr ?></td>
</tr>
<tr>
<td><strong>Staatsb&uuml;rgerschaft</strong></td>
<td>
<?php echo $stammdaten->staatsbuergerschaft ?></td>
</tr>
<tr>
<td><strong>Geschlecht</strong></td>
<td>
<?php echo $stammdaten->geschlecht ?></td>
</tr>
<tr>
<td><strong>Geburtsnation</strong></td>
<td>
<?php echo $stammdaten->geburtsnation ?></td>
</tr>
<tr>
<td><strong>Geburtsort</strong></td>
<td><?php echo $stammdaten->gebort ?></td>
</tr>
</table>
</div>
<div class="col-lg-6 table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<th colspan="4" class="text-center">Kontakte</th>
</tr>
<tr>
<th class="text-center">Typ</th>
<th class="text-center">Kontakt</th>
<th class="text-center">Anmerkung</th>
</tr>
</thead>
<tbody>
<?php foreach ($stammdaten->kontakte as $kontakt): ?>
<div class="row">
<div class="col-lg-6 table-responsive">
<table class="table">
<tr>
<td><?php echo ucfirst($kontakt->kontakttyp); ?></td>
<td>
<?php if ($kontakt->kontakttyp === 'email'): ?>
<a href="mailto:<?php echo $kontakt->kontakt; ?>" target="_top">
<?php
endif;
echo $kontakt->kontakt;
if ($kontakt->kontakttyp === 'email'):
?>
</a>
<?php endif; ?>
</td>
<td><?php echo $kontakt->anmerkung; ?></td>
<td><strong>Vorname</strong></td>
<td><?php echo $stammdaten->vorname ?></td>
</tr>
<?php endforeach; ?>
<?php foreach ($stammdaten->adressen as $adresse): ?>
<tr>
<td><strong>Nachname</strong></td>
<td>
Adresse
</td>
<td>
<?php echo isset($adresse) ? $adresse->strasse.', '.$adresse->plz.' '.$adresse->ort : '' ?>
</td>
<td>
<?php echo ($adresse->heimatadresse === true ? 'Heimatadresse' : '').
($adresse->heimatadresse === true && $adresse->rechnungsadresse === true ? ', ' : '').
($adresse->rechnungsadresse === true ? 'Rechnungsadresse' : ''); ?>
</td>
<?php echo $stammdaten->nachname ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<div class="row">
<div class="col-lg-6">
<form id="sendmsgform" method="post" action="<?php echo $messagelink ?>"
target="_blank">
<input type="hidden" name="person_id"
value="<?php echo $stammdaten->person_id ?>">
<a id="sendmsglink" href="javascript:void(0);"><i
class="fa fa-envelope"></i>&nbsp;Nachricht senden</a>
</form>
</div>
<?php if (isset($stammdaten->zugangscode)): ?>
<div class="col-lg-6 text-right">
<a href="<?php echo base_url('addons/bewerbung/cis/registration.php?code='.html_escape($stammdaten->zugangscode)) ?>"
target='_blank'><i class="glyphicon glyphicon-new-window"></i>&nbsp;Zugang Bewerbung</a>
</div>
<?php endif; ?>
<tr>
<td><strong>Geburtsdatum</strong></td>
<td>
<?php echo date_format(date_create($stammdaten->gebdatum), 'd.m.Y') ?></td>
</tr>
<tr>
<td><strong>Sozialversicherungsnr</strong></td>
<td>
<?php echo $stammdaten->svnr ?></td>
</tr>
<tr>
<td><strong>Staatsb&uuml;rgerschaft</strong></td>
<td>
<?php echo $stammdaten->staatsbuergerschaft ?></td>
</tr>
<tr>
<td><strong>Geschlecht</strong></td>
<td>
<?php echo $stammdaten->geschlecht ?></td>
</tr>
<tr>
<td><strong>Geburtsnation</strong></td>
<td>
<?php echo $stammdaten->geburtsnation ?></td>
</tr>
<tr>
<td><strong>Geburtsort</strong></td>
<td><?php echo $stammdaten->gebort ?></td>
</tr>
</table>
</div>
</div>
<div class="col-lg-6 table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<th colspan="4" class="text-center">Kontakte</th>
</tr>
<tr>
<th class="text-center">Typ</th>
<th class="text-center">Kontakt</th>
<th class="text-center">Anmerkung</th>
</tr>
</thead>
<tbody>
<?php foreach ($stammdaten->kontakte as $kontakt): ?>
<tr>
<td><?php echo ucfirst($kontakt->kontakttyp); ?></td>
<td>
<?php echo '<span class="'.$kontakt->kontakttyp.'">';?>
<?php if ($kontakt->kontakttyp === 'email'): ?>
<a href="mailto:<?php echo $kontakt->kontakt; ?>" target="_top">
<?php
endif;
echo $kontakt->kontakt;
if ($kontakt->kontakttyp === 'email'):
?>
</a>
<?php endif; ?>
<?php echo '</span>'?>
</td>
<td><?php echo $kontakt->anmerkung; ?></td>
</tr>
<?php endforeach; ?>
<?php foreach ($stammdaten->adressen as $adresse): ?>
<tr>
<td>
Adresse
</td>
<td>
<?php echo isset($adresse) ? $adresse->strasse.', '.$adresse->plz.' '.$adresse->ort : '' ?>
</td>
<td>
<?php echo ($adresse->heimatadresse === true ? 'Heimatadresse' : '').
($adresse->heimatadresse === true && $adresse->rechnungsadresse === true ? ', ' : '').
($adresse->rechnungsadresse === true ? 'Rechnungsadresse' : ''); ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<div class="row">
<div class="col-lg-6">
<form id="sendmsgform" method="post" action="<?php echo $messagelink ?>"
target="_blank">
<input type="hidden" name="person_id"
value="<?php echo $stammdaten->person_id ?>">
<a id="sendmsglink" href="javascript:void(0);"><i
class="fa fa-envelope"></i>&nbsp;Nachricht senden</a>
</form>
</div>
<?php if (isset($stammdaten->zugangscode)): ?>
<div class="col-lg-6 text-right">
<a href="<?php echo CIS_ROOT.'addons/bewerbung/cis/registration.php?code='.html_escape($stammdaten->zugangscode) ?>"
target='_blank'><i class="glyphicon glyphicon-new-window"></i>&nbsp;Zugang Bewerbung</a>
</div>
<?php endif; ?>
</div>
</div>
</div>
+33
View File
@@ -15,6 +15,7 @@ $fontawesome = isset($fontawesome) ? $fontawesome : false;
$tablesorter = isset($tablesorter) ? $tablesorter : false;
$tinymce = isset($tinymce) ? $tinymce : false;
$sbadmintemplate = isset($sbadmintemplate) ? $sbadmintemplate : false;
$addons = isset($addons) ? $addons : false;
/**
* Print the given title of the page
@@ -76,6 +77,16 @@ function _generateJSsInclude($JSs)
}
}
/**
* Generates global JS-Object to pass parms to addon-js-functions
*/
function _generateAddonDataStorageObject()
{
echo '<script type="text/javascript">';
echo 'var FHC_ADDON_DATA_STORAGE_OBJECT = {app_root:"'.APP_ROOT.'"};';
echo "</script>\n";
}
?>
<!-- Header start -->
<!DOCTYPE HTML>
@@ -142,6 +153,28 @@ function _generateJSsInclude($JSs)
_generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/js/sb-admin-2.min.js');
}
// load addon hooks JS
if ($addons === true)
{
_generateAddonDataStorageObject();
$aktive_addons = array_filter(explode(";", ACTIVE_ADDONS));
$called_from = $this->router->directory.$this->router->class.'/'.$this->router->method;
foreach ($aktive_addons as $addon)
{
$hookfile = DOC_ROOT.'addons/'.$addon.'/hooks.config.inc.php';
if (file_exists($hookfile))
{
include($hookfile);
if (key_exists($called_from, $js_hooks))
{
foreach ($js_hooks[$called_from] as $js_file)
_generateJSsInclude('addons/'.$addon.'/'.$js_file);
}
}
}
}
// Eventually required JS
_generateJSsInclude($customJSs);
?>
+2 -2
View File
@@ -2,8 +2,8 @@
.filter-name-title {
font-family: inherit;
font-size: 20px;
font-weight: bold;
font-size: 16px;
/*font-weight: bold;*/
line-height: 1.1;
color: black;
}
@@ -196,13 +196,16 @@
var fieldName = data.allSelectedFields[i];
var fieldToDisplay = data.allSelectedFields[i];
if (data.allColumnsAliases != null && $.isArray(data.allColumnsAliases))
if (data.selectedFields.indexOf(fieldName) < 0)
{
fieldToDisplay = data.allColumnsAliases[i];
}
if (data.allColumnsAliases != null && $.isArray(data.allColumnsAliases))
{
fieldToDisplay = data.allColumnsAliases[i];
}
strDropDown = '<option value="' + fieldName + '">' + fieldToDisplay + '</option>';
$("#addField").append(strDropDown);
strDropDown = '<option value="' + fieldName + '">' + fieldToDisplay + '</option>';
$("#addField").append(strDropDown);
}
}
}
@@ -216,20 +216,6 @@
var strDropDown = '<option value="">Select a filter to add...</option>';
$("#addFilter").append(strDropDown);
for (var i = 0; i < data.allSelectedFields.length; i++)
{
var fieldName = data.allSelectedFields[i];
var fieldToDisplay = data.allSelectedFields[i];
if (data.allColumnsAliases != null && $.isArray(data.allColumnsAliases))
{
fieldToDisplay = data.allColumnsAliases[i];
}
strDropDown = '<option value="' + fieldName + '">' + fieldToDisplay + '</option>';
$("#addFilter").append(strDropDown);
}
for (var i = 0; i < data.selectedFilters.length; i++)
{
var selectedFilters = '<div>';
@@ -253,6 +239,23 @@
$("#selectedFilters").append(selectedFilters);
}
for (var i = 0; i < data.allSelectedFields.length; i++)
{
var fieldName = data.allSelectedFields[i];
var fieldToDisplay = data.allSelectedFields[i];
if (data.selectedFilters.indexOf(fieldName) < 0)
{
if (data.allColumnsAliases != null && $.isArray(data.allColumnsAliases))
{
fieldToDisplay = data.allColumnsAliases[i];
}
strDropDown = '<option value="' + fieldName + '">' + fieldToDisplay + '</option>';
$("#addFilter").append(strDropDown);
}
}
}
addEventsSFilters();
+23 -16
View File
@@ -7,9 +7,9 @@ class Vorlage_widget extends DropdownWidget
// All organization units to which the user belongs
$oe_kurzbz = $widgetData['oe_kurzbz'];
$idAdmin = $widgetData['isAdmin'];
$vorlage = null;
// If the user is an admin
if ($idAdmin === true)
{
@@ -23,17 +23,17 @@ class Vorlage_widget extends DropdownWidget
// organisation unit tree
$vorlage = $this->_getUserVorlage($oe_kurzbz);
}
$this->setElementsArray(
$vorlage,
true,
'Select a vorlage...',
'No vorlage found'
);
$this->loadDropDownView($widgetData);
}
/**
* Get all the vorlage with mimetype = text/html
*/
@@ -41,12 +41,12 @@ class Vorlage_widget extends DropdownWidget
{
$this->load->model('system/Vorlage_model', 'VorlageModel');
$this->VorlageModel->addOrder('vorlage_kurzbz');
$this->addSelectToModel($this->VorlageModel, 'vorlage_kurzbz', 'bezeichnung');
return $this->VorlageModel->loadWhere(array('mimetype' => 'text/html'));
}
/**
* Get all the vorlage that belongs to the organisation units of the user
* and the parents of those organisation units until the root of the
@@ -56,9 +56,9 @@ class Vorlage_widget extends DropdownWidget
{
// Loads library OrganisationseinheitLib
$this->load->library('OrganisationseinheitLib');
$vorlage = success(array()); // Default value
$table = '(
SELECT v.vorlage_kurzbz, v.bezeichnung, vs.version, vs.oe_kurzbz, vs.aktiv, vs.subject, vs.text, v.mimetype
FROM tbl_vorlagestudiengang vs INNER JOIN tbl_vorlage v USING(vorlage_kurzbz)
@@ -70,7 +70,7 @@ class Vorlage_widget extends DropdownWidget
AND templates.text IS NOT NULL
AND templates.mimetype = \'text/html\'';
$order_by = 'description ASC';
if (!is_array($oe_kurzbz))
{
$vorlage = $this->organisationseinheitlib->treeSearchEntire(
@@ -95,14 +95,20 @@ class Vorlage_widget extends DropdownWidget
$order_by,
$val
);
// Everything is ok and data are inside
if (hasData($tmpVorlage))
{
// If it's the first vorlage copy it
if (count($vorlage->retval) == 0)
{
$vorlage->retval = $tmpVorlage->retval;
for ($j = 0; $j < count($tmpVorlage->retval); $j++)
{
if ($tmpVorlage->retval[$j]->id != '')
{
array_push($vorlage->retval, $tmpVorlage->retval[$j]);
}
}
}
else // checks for duplicates, if it's not already present push it into the array $vorlage->retval
{
@@ -110,7 +116,8 @@ class Vorlage_widget extends DropdownWidget
{
for ($j = 0; $j < count($tmpVorlage->retval); $j++)
{
if ($vorlage->retval[$i]->_pk != $tmpVorlage->retval[$j]->_pk
if ($tmpVorlage->retval[$j]->id != ''
&& $vorlage->retval[$i]->_pk != $tmpVorlage->retval[$j]->_pk
&& $vorlage->retval[$i]->_ppk != $tmpVorlage->retval[$j]->_ppk
&& $vorlage->retval[$i]->_jtpk != $tmpVorlage->retval[$j]->_jtpk)
{
@@ -122,7 +129,7 @@ class Vorlage_widget extends DropdownWidget
}
}
}
return $vorlage;
}
}
}
+306 -309
View File
@@ -1,309 +1,306 @@
<?php
/* Copyright (C) 2015 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Cristina Hainberger <hainberg@technikum-wien.at>
*
* Description: This file creates a studentlist with students' profile fotos
* by a given studiengangs- and lehrveranstaltungs ID (and eventually a given lehreinheit ID).
* If fotos are locked by student, a dummy picture is inserted instead of the students foto.
* EXCEPTION: if user has admins or assitents rights, ALL students' fotos are iserted (even locked ones)
*
*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/dokument_export.class.php');
require_once('../../../include/lehrveranstaltung.class.php');
require_once('../../../include/lehreinheit.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/studiensemester.class.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/erhalter.class.php');
require_once('../../../include/datum.class.php');
$doc = new dokument_export('fotoliste');
$output = 'pdf';
$show_all_fotos = false;
//check user access & $_GET vars
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$user = get_uid();
if (isset($_GET['lvid']) && is_numeric($_GET['lvid']))
$lvid = $_GET['lvid'];
else
die('Eine gueltige LvID muss uebergeben werden');
isset($_GET['stsem']) ? $studiensemester = $_GET['stsem'] : die('Ein Studiensemester muss uebergeben werden');
$lv = new lehrveranstaltung();
$lv->load($lvid);
$berechtigung = new benutzerberechtigung();
$berechtigung->getBerechtigungen($user);
if (!$berechtigung->isBerechtigt('admin') && !$berechtigung->isBerechtigt('assistenz') && !$berechtigung->isBerechtigt('lehre', $lv->oe_kurzbz, 's') && !check_lektor_lehrveranstaltung($user, $lvid, $studiensemester))
die('Sie muessen LektorIn der LV sein oder das Recht "ADMIN", "ASSISTENZ" oder "LEHRE" haben, um diese Seite aufrufen zu koennen');
if ($berechtigung->isBerechtigt('admin') || $berechtigung->isBerechtigt('assistenz'))
$show_all_fotos = true;
if (isset($_GET['output']) && ($output = 'odt' || $output = 'doc'))
$output = $_GET['output'];
isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL;
isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL;
//**************************** overall lehrveranstaltungs data *******************************
//load overall lehrveranstaltungs-data
$qry = "SELECT DISTINCT ON
(kuerzel, semester, verband, gruppe, gruppe_kurzbz)
UPPER(stg_typ || stg_kurzbz) as kuerzel,
lv_bezeichnung,
stg_bez,
semester,
verband,
gruppe,
gruppe_kurzbz,
stg_typ
FROM
campus.vw_lehreinheit
WHERE
lehrveranstaltung_id=" . $db->db_add_param($lvid, FHC_INTEGER) . "
AND
studiensemester_kurzbz=" . $db->db_add_param($studiensemester);
if ($lehreinheit != '')
$qry .= " AND lehreinheit_id=" . $db->db_add_param($lehreinheit, FHC_INTEGER);
$gruppen_string = '';
$gruppen_string_arr = array();
$stg_typ = '';
//structure overall lehrveranstaltungs data
if ($result = $db->db_query($qry)) {
while ($row = $db->db_fetch_object($result)) {
//lehrveranstaltung
$lv_bezeichnung = $row->lv_bezeichnung;
//studiengang
$stg_bezeichnung = $row->stg_bez;
//studiengangstyp
$stg_typ = $row->stg_typ;
//collect all gruppenkürzel
if ($row->gruppe_kurzbz == '')
$gruppen_string = trim($row->kuerzel . '-' . $row->semester);
else
$gruppen_string = $row->gruppe_kurzbz;
$gruppen_string_arr[] = $gruppen_string;
}
}
//concatinate distinct gruppenkürzel
$studiengruppe = implode(", ", array_unique($gruppen_string_arr));
//get studiengangstyp-bezeichnung
$qry = "SELECT
bezeichnung
FROM
public.tbl_studiengangstyp
WHERE
typ =" . $db->db_add_param($stg_typ);
if ($result = $db->db_query($qry)) {
$row = $db->db_fetch_object($result);
$stg_typ_bezeichnung = $row->bezeichnung;
}
//add overall lehrveranstaltungs-data for XML
$data = array(
'lehrveranstaltung' => $lv_bezeichnung,
'studiengang' => $stg_bezeichnung,
'studiengangs_typ' => $stg_typ_bezeichnung,
'studiensemester' => $studiensemester,
'studiengruppe' => $studiengruppe
);
//**************************** students data *******************************
//load students-data
$qry = 'SELECT DISTINCT ON
(nachname, vorname, person_id)
vorname,
nachname,
matrikelnr,
tbl_studentlehrverband.semester,
tbl_studentlehrverband.verband,
tbl_studentlehrverband.gruppe,
(SELECT
status_kurzbz
FROM
public.tbl_prestudentstatus
WHERE
prestudent_id=tbl_student.prestudent_id
ORDER BY
datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
tbl_studiengang.kurzbz,
tbl_studiengang.typ,
tbl_bisio.bisio_id,
tbl_bisio.von,
tbl_bisio.bis,
tbl_student.studiengang_kz AS stg_kz_student,
tbl_zeugnisnote.note,
tbl_mitarbeiter.mitarbeiter_uid,
tbl_person.matr_nr,
tbl_person.geschlecht,
tbl_person.foto,
tbl_person.foto_sperre
FROM
campus.vw_student_lehrveranstaltung
JOIN public.tbl_benutzer USING(uid)
JOIN public.tbl_person USING(person_id)
LEFT JOIN public.tbl_student ON(uid=student_uid)
LEFT JOIN public.tbl_studiengang ON(tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz)
LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid)
LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz)
LEFT JOIN lehre.tbl_zeugnisnote ON(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id
AND tbl_zeugnisnote.student_uid=tbl_student.student_uid
AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
WHERE
vw_student_lehrveranstaltung.lehrveranstaltung_id=' . $db->db_add_param($lvid, FHC_INTEGER) . ' AND
vw_student_lehrveranstaltung.studiensemester_kurzbz=' . $db->db_add_param($studiensemester);
if ($lehreinheit != '')
$qry .= ' AND vw_student_lehrveranstaltung.lehreinheit_id=' . $db->db_add_param($lehreinheit, FHC_INTEGER);
$qry .= ' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC';
$stsem_obj = new studiensemester();
$stsem_obj->load($studiensemester);
$stsemdatumvon = $stsem_obj->start;
$stsemdatumbis = $stsem_obj->ende;
$erhalter = new erhalter();
$erhalter->getAll();
$a_o_kz = '9' . sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW)
$anzahl_studierende = 0;
$datum = new datum();
$zusatz = '';
//structure students data
if ($result = $db->db_query($qry)) {
while ($row = $db->db_fetch_object($result)) {
if ($row->status != 'Abbrecher' && $row->status != 'Unterbrecher') {
$anzahl_studierende++;
if ($row->status == 'Incoming') //Incoming
$zusatz = '(i)';
else
$zusatz = '';
if ($row->bisio_id != '' && $row->status != 'Incoming' && ($row->bis > $stsemdatumvon || $row->bis == '') && $row->von < $stsemdatumbis) //Outgoing
$zusatz .= '(o)(ab ' . $datum->formatDatum($row->von, 'd.m.Y') . ')';
if ($row->note == 6) //angerechnet
$zusatz .= '(ar)';
if ($row->mitarbeiter_uid != '') //mitarbeiter
$zusatz .= '(ma)';
if ($row->stg_kz_student == $a_o_kz) //Außerordentliche Studierende
$zusatz .= '(a.o.)';
//allow admin and assistenz to see ALL fotos (even if locked by user)
if ($show_all_fotos)
$row->foto_sperre = 'f';
//create foto (if not locked by student OR if fotolist is created by admin or assistenz)
$foto_url = '';
if ($row->foto_sperre == 'f' && $row->foto != '') {
$foto_src = $row->foto;
$foto_url = sys_get_temp_dir() . '/foto' . trim($row->matrikelnr) . '.jpg';
$foto_url_arr[] = $foto_url;
//create writeable file
if (!$foto = fopen($foto_url, 'w'))
die("Das Bild konnte nicht erstellt werden");
//add foto base64-code
if (!fwrite($foto, base64_decode($foto_src)))
{
die("Das Bild konnte nicht erstellt werden");
}
//add foto to document
$doc->addImage($foto_url, trim($row->matrikelnr) . '.jpg', 'image/jpg');
}
// elseif ($row->foto == '')
// {
// $foto_url = '';
// }
// else
// {
// $foto_url = '';
// }
//create studiengruppe
$student_studiengruppe = strtoupper($row->typ.$row->kurzbz.'-'.$row->semester);
//add studierenden data for XML
$data[] = array('studierende' => array(
'vorname' => $row->vorname,
'nachname' => mb_strtoupper($row->nachname, 'UTF-8'),
'personenkennzeichen' => trim($row->matrikelnr),
'geschlecht' => $row->geschlecht,
'foto_gesperrt' => $row->foto_sperre, // f/t
'foto_url' => $foto_url,
'studiengruppe' => $student_studiengruppe,
'verband' => trim($row->verband),
'gruppe' => trim($row->gruppe),
'zusatz' => $zusatz
));
}
}
//Anzahl Studierende in Array $data (an erster Stelle) einfuegen
$data = array_reverse($data, true);
$data['anzahl_studierende'] = $anzahl_studierende;
$data = array_reverse($data, true);
}
//add data to fotoliste.xsl
$doc->addDataArray($data, 'fotoliste');
//set doc name
$doc->setFilename('Fotoliste_'.$stg_bezeichnung.'_'.$studiensemester.'_'.$lv_bezeichnung);
//create doc in format required
if (!$doc->create($output))
die($doc->errormsg);
//download doc
$doc->output();
//unlink doc from tmp-folder
$doc->close();
//unlink fotos from tmp-folder
foreach ($foto_url_arr as $foto_url)
unlink($foto_url);
<?php
/* Copyright (C) 2015 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Cristina Hainberger <hainberg@technikum-wien.at>
*
* Description: This file creates a studentlist with students' profile fotos
* by a given studiengangs- and lehrveranstaltungs ID (and eventually a given lehreinheit ID).
* If fotos are locked by student, a dummy picture is inserted instead of the students foto.
* EXCEPTION: if user has admins or assitents rights, ALL students' fotos are iserted (even locked ones)
*
*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/dokument_export.class.php');
require_once('../../../include/lehrveranstaltung.class.php');
require_once('../../../include/lehreinheit.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/studiensemester.class.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/erhalter.class.php');
require_once('../../../include/datum.class.php');
$doc = new dokument_export('fotoliste');
$output = 'pdf';
$show_all_fotos = false;
//check user access & $_GET vars
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$user = get_uid();
if (isset($_GET['lvid']) && is_numeric($_GET['lvid']))
$lvid = $_GET['lvid'];
else
die('Eine gueltige LvID muss uebergeben werden');
isset($_GET['stsem']) ? $studiensemester = $_GET['stsem'] : die('Ein Studiensemester muss uebergeben werden');
$lv = new lehrveranstaltung();
$lv->load($lvid);
$berechtigung = new benutzerberechtigung();
$berechtigung->getBerechtigungen($user);
if (!$berechtigung->isBerechtigt('admin') && !$berechtigung->isBerechtigt('assistenz') && !$berechtigung->isBerechtigt('lehre', $lv->oe_kurzbz, 's') && !check_lektor_lehrveranstaltung($user, $lvid, $studiensemester))
die('Sie muessen LektorIn der LV sein oder das Recht "ADMIN", "ASSISTENZ" oder "LEHRE" haben, um diese Seite aufrufen zu koennen');
if ($berechtigung->isBerechtigt('admin') || $berechtigung->isBerechtigt('assistenz'))
$show_all_fotos = true;
if (isset($_GET['output']) && ($output = 'odt' || $output = 'doc'))
$output = $_GET['output'];
isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL;
isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL;
//**************************** overall lehrveranstaltungs data *******************************
//load overall lehrveranstaltungs-data
$qry = "SELECT DISTINCT ON
(kuerzel, semester, verband, gruppe, gruppe_kurzbz)
UPPER(stg_typ || stg_kurzbz) as kuerzel,
lv_bezeichnung,
stg_bez,
semester,
verband,
gruppe,
gruppe_kurzbz,
stg_typ
FROM
campus.vw_lehreinheit
WHERE
lehrveranstaltung_id=" . $db->db_add_param($lvid, FHC_INTEGER) . "
AND
studiensemester_kurzbz=" . $db->db_add_param($studiensemester);
if ($lehreinheit != '')
$qry .= " AND lehreinheit_id=" . $db->db_add_param($lehreinheit, FHC_INTEGER);
$gruppen_string = '';
$gruppen_string_arr = array();
$stg_typ = '';
//structure overall lehrveranstaltungs data
if ($result = $db->db_query($qry)) {
while ($row = $db->db_fetch_object($result)) {
//lehrveranstaltung
$lv_bezeichnung = $row->lv_bezeichnung;
//studiengang
$stg_bezeichnung = $row->stg_bez;
//studiengangstyp
$stg_typ = $row->stg_typ;
//collect all gruppenkürzel
if ($row->gruppe_kurzbz == '')
$gruppen_string = trim($row->kuerzel . '-' . $row->semester);
else
$gruppen_string = $row->gruppe_kurzbz;
$gruppen_string_arr[] = $gruppen_string;
}
}
//concatinate distinct gruppenkürzel
$studiengruppe = implode(", ", array_unique($gruppen_string_arr));
//get studiengangstyp-bezeichnung
$qry = "SELECT
bezeichnung
FROM
public.tbl_studiengangstyp
WHERE
typ =" . $db->db_add_param($stg_typ);
if ($result = $db->db_query($qry)) {
$row = $db->db_fetch_object($result);
$stg_typ_bezeichnung = $row->bezeichnung;
}
//add overall lehrveranstaltungs-data for XML
$data = array(
'lehrveranstaltung' => $lv_bezeichnung,
'studiengang' => $stg_bezeichnung,
'studiengangs_typ' => $stg_typ_bezeichnung,
'studiensemester' => $studiensemester,
'studiengruppe' => $studiengruppe
);
//**************************** students data *******************************
//load students-data
$qry = 'SELECT DISTINCT ON
(nachname, vorname, person_id)
vorname,
nachname,
matrikelnr,
tbl_studentlehrverband.semester,
tbl_studentlehrverband.verband,
tbl_studentlehrverband.gruppe,
(SELECT
status_kurzbz
FROM
public.tbl_prestudentstatus
WHERE
prestudent_id=tbl_student.prestudent_id
ORDER BY
datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
tbl_studiengang.kurzbz,
tbl_studiengang.typ,
tbl_bisio.bisio_id,
tbl_bisio.von,
tbl_bisio.bis,
tbl_student.studiengang_kz AS stg_kz_student,
tbl_zeugnisnote.note,
tbl_mitarbeiter.mitarbeiter_uid,
tbl_person.matr_nr,
tbl_person.geschlecht,
tbl_person.foto,
tbl_person.foto_sperre
FROM
campus.vw_student_lehrveranstaltung
JOIN public.tbl_benutzer USING(uid)
JOIN public.tbl_person USING(person_id)
LEFT JOIN public.tbl_student ON(uid=student_uid)
LEFT JOIN public.tbl_studiengang ON(tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz)
LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid)
LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz)
LEFT JOIN lehre.tbl_zeugnisnote ON(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id
AND tbl_zeugnisnote.student_uid=tbl_student.student_uid
AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
WHERE
vw_student_lehrveranstaltung.lehrveranstaltung_id=' . $db->db_add_param($lvid, FHC_INTEGER) . ' AND
vw_student_lehrveranstaltung.studiensemester_kurzbz=' . $db->db_add_param($studiensemester);
if ($lehreinheit != '')
$qry .= ' AND vw_student_lehrveranstaltung.lehreinheit_id=' . $db->db_add_param($lehreinheit, FHC_INTEGER);
$qry .= ' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC';
$stsem_obj = new studiensemester();
$stsem_obj->load($studiensemester);
$stsemdatumvon = $stsem_obj->start;
$stsemdatumbis = $stsem_obj->ende;
$erhalter = new erhalter();
$erhalter->getAll();
$a_o_kz = '9' . sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW)
$anzahl_studierende = 0;
$datum = new datum();
$zusatz = '';
//structure students data
if ($result = $db->db_query($qry)) {
while ($row = $db->db_fetch_object($result)) {
if ($row->status != 'Abbrecher' && $row->status != 'Unterbrecher') {
$anzahl_studierende++;
if ($row->status == 'Incoming') //Incoming
$zusatz = '(i)';
else
$zusatz = '';
if ($row->bisio_id != '' && $row->status != 'Incoming' && ($row->bis > $stsemdatumvon || $row->bis == '') && $row->von < $stsemdatumbis) //Outgoing
$zusatz .= '(o)(ab ' . $datum->formatDatum($row->von, 'd.m.Y') . ')';
if ($row->note == 6) //angerechnet
$zusatz .= '(ar)';
if ($row->mitarbeiter_uid != '') //mitarbeiter
$zusatz .= '(ma)';
if ($row->stg_kz_student == $a_o_kz) //Außerordentliche Studierende
$zusatz .= '(a.o.)';
//allow admin and assistenz to see ALL fotos (even if locked by user)
if ($show_all_fotos)
$row->foto_sperre = 'f';
//create foto (if not locked by student OR if fotolist is created by admin or assistenz)
$foto_url = '';
if ($row->foto_sperre == 'f' && $row->foto != '') {
$foto_src = $row->foto;
$foto_url = sys_get_temp_dir() . '/foto' . trim($row->matrikelnr) . '.jpg';
$foto_url_arr[] = $foto_url;
//create writeable file
if (!$foto = fopen($foto_url, 'w'))
die("Das Bild konnte nicht erstellt werden");
//add foto base64-code
if (!fwrite($foto, base64_decode($foto_src)))
{
die("Das Bild konnte nicht erstellt werden");
}
//add foto to document
$doc->addImage($foto_url, trim($row->matrikelnr) . '.jpg', 'image/jpg');
}
elseif ($row->foto_sperre == 't')
{
$foto_url = 'gesperrt';
}
//create studiengruppe
$student_studiengruppe = strtoupper($row->typ.$row->kurzbz.'-'.$row->semester);
//add studierenden data for XML
$data[] = array('studierende' => array(
'vorname' => $row->vorname,
'nachname' => mb_strtoupper($row->nachname, 'UTF-8'),
'personenkennzeichen' => trim($row->matrikelnr),
'geschlecht' => $row->geschlecht,
'foto_gesperrt' => $row->foto_sperre, // f/t
'foto_url' => $foto_url,
'studiengruppe' => $student_studiengruppe,
'verband' => trim($row->verband),
'gruppe' => trim($row->gruppe),
'zusatz' => $zusatz
));
}
}
//Anzahl Studierende in Array $data (an erster Stelle) einfuegen
$data = array_reverse($data, true);
$data['anzahl_studierende'] = $anzahl_studierende;
$data = array_reverse($data, true);
}
//add data to fotoliste.xsl
$doc->addDataArray($data, 'fotoliste');
//set doc name
$doc->setFilename('Fotoliste_'.$stg_bezeichnung.'_'.$studiensemester.'_'.$lv_bezeichnung);
//create doc in format required
if (!$doc->create($output))
die($doc->errormsg);
//download doc
$doc->output();
//unlink doc from tmp-folder
$doc->close();
//unlink fotos from tmp-folder
foreach ($foto_url_arr as $foto_url)
unlink($foto_url);
+96
View File
@@ -1343,6 +1343,20 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants
}
}
// INSERT Berechtigungen fuer web User erteilen fuer tbl_msg_status
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_msg_status' AND table_schema='public' AND grantee='web' AND privilege_type='UPDATE'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "GRANT UPDATE ON public.tbl_msg_status TO web;";
if(!$db->db_query($qry))
echo '<strong>public.tbl_msg_status Berechtigungen: '.$db->db_last_error().'</strong><br>';
else
echo 'UPDATE Rechte fuer public.tbl_msg_status fuer web user gesetzt ';
}
}
/**
* Kommentare fuer Datenbanktabellen
*/
@@ -1668,7 +1682,89 @@ if($result = $db->db_query("SELECT obj_description('public.ci_apikey'::regclass)
else
echo 'Kommentare fuer DB Datenbanktabellen hinzugefügt';
}
}
}
if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterSentApplicationAll' AND app='infocenter'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort,
default_filter, filter, oe_kurzbz)
VALUES ('infocenter', 'PersonActions', 'InfoCenterSentApplicationAll', NULL, '{Alle}', 1, false,
'{\"name\": \"Abgeschickt - Alle\", \"columns\": [{\"name\": \"Vorname\"},
{\"name\": \"Nachname\"}, {\"name\": \"LastAction\"}, {\"name\": \"LockUser\"},
{\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"}, {\"name\": \"StgAbgeschickt\"}],
\"filters\": [{\"name\": \"AnzahlAbgeschickt\", \"option\": \"\",
\"condition\": \"0\", \"operation\": \"gt\"}]}', NULL);";
if(!$db->db_query($qry))
echo '<strong>Filter: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Filter InfoCenterSentApplicationAll hinzugefuegt';
}
}
if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterSentApplication3days' AND app='infocenter'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort,
default_filter, filter, oe_kurzbz)
VALUES ('infocenter', 'PersonActions', 'InfoCenterSentApplication3days', NULL,
'{\"3 Tage keine Aktion\"}', 2, false, '{\"name\": \"Abgeschickt - 3 Tage keine Aktion\",
\"columns\": [{\"name\": \"Vorname\"}, {\"name\": \"Nachname\"}, {\"name\": \"LastAction\"},
{\"name\": \"LockUser\"}, {\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"},
{\"name\": \"StgAbgeschickt\"}],
\"filters\": [{\"name\": \"LastAction\", \"option\": \"days\", \"condition\": \"3\",
\"operation\": \"gt\"}, {\"name\": \"AnzahlAbgeschickt\", \"option\": \"\",
\"condition\": \"0\", \"operation\": \"gt\"}]}', NULL);";
if(!$db->db_query($qry))
echo '<strong>Filter: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Filter InfoCenterSentApplication3days hinzugefuegt';
}
}
if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterNotSentApplicationAll' AND app='infocenter'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort,
default_filter, filter, oe_kurzbz)
VALUES ('infocenter', 'PersonActions', 'InfoCenterNotSentApplicationAll', NULL, '{Alle}', 1, false,
'{\"name\": \"Nicht abgeschickt - Alle\", \"columns\": [{\"name\": \"Vorname\"},
{\"name\": \"Nachname\"}, {\"name\": \"LastAction\"}, {\"name\": \"LockUser\"},
{\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"}, {\"name\": \"StgAbgeschickt\"}],
\"filters\": [{\"name\": \"SendDate\", \"option\": \"\",
\"condition\": \"\", \"operation\": \"nset\"}]}', NULL);";
if(!$db->db_query($qry))
echo '<strong>Filter: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Filter InfoCenterNotSentApplicationAll hinzugefuegt';
}
}
if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterNotSentApplication14Days' AND app='infocenter'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort,
default_filter, filter, oe_kurzbz)
VALUES ('infocenter', 'PersonActions', 'InfoCenterNotSentApplication14Days', NULL,
'{\"14 Tage keine Aktion\"}', 2, false, '{\"name\": \"Nicht abgeschickt - 14 Tage keine Aktion\",
\"columns\": [{\"name\": \"Vorname\"}, {\"name\": \"Nachname\"}, {\"name\": \"LastAction\"},
{\"name\": \"LockUser\"}, {\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"},
{\"name\": \"StgAbgeschickt\"}], \"filters\": [{\"name\": \"LastAction\", \"option\": \"days\",
\"condition\": \"14\", \"operation\": \"gt\"}, {\"name\": \"SendDate\", \"option\": \"\",
\"condition\": \"\", \"operation\": \"nset\"}]}', NULL);
";
if(!$db->db_query($qry))
echo '<strong>Filter: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Filter InfoCenterNotSentApplication14Days hinzugefuegt';
}
}
+4 -4
View File
@@ -256,21 +256,21 @@
<table:table-cell table:style-name="Tabelle1.A3" office:value-type="string">
<text:p text:style-name="P4">
<xsl:choose>
<xsl:when test="foto_gesperrt!='t' and foto_url != ''">
<xsl:when test="foto_gesperrt='f' and foto_url != ''">
<draw:frame draw:style-name="fr1" draw:name="Bild" text:anchor-type="as-char" svg:width="2.57cm" svg:height="3.431cm" draw:z-index="0">
<draw:image xlink:href="{foto_url}" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
</draw:frame>
</xsl:when>
<xsl:when test="foto_gesperrt!='f'">
<xsl:when test="foto_gesperrt='t'">
<draw:frame draw:style-name="fr1" draw:name="Bild2" text:anchor-type="as-char" svg:width="2.57cm" svg:height="3.431cm" draw:z-index="0">
<draw:image xlink:href="Pictures/10000000000000F000000140BF2FB93E89B12D34.jpg" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
</draw:frame>
</xsl:when>
<xsl:otherwise>
<xsl:when test="foto_url=''">
<draw:frame draw:style-name="fr1" draw:name="dummy" text:anchor-type="as-char" svg:width="2.57cm" svg:height="3.431cm" draw:z-index="0">
<draw:image xlink:href="Pictures/dummyfoto_keinBildVorhanden.jpg" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
</draw:frame>
</xsl:otherwise>
</xsl:when>
</xsl:choose>
</text:p>
</table:table-cell>