Created Anrechnungen LektorInen: GUI, Controller, Tabledata, Phrases

Signed-off-by: cris-technikum <hainberg@technikum-wien.at>
This commit is contained in:
Cris
2021-01-25 15:32:51 +01:00
committed by cris-technikum
parent 0da2c6a74c
commit 1b00ae78b4
6 changed files with 930 additions and 2 deletions
@@ -0,0 +1,159 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => $this->p->t('anrechnung', 'anrechnungenPruefen'),
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'tabulator' => true,
'ajaxlib' => true,
'dialoglib' => true,
'tablewidget' => true,
'phrases' => array(
'global' => array(
'begruendung'
),
'anrechnung' => array(
'nachweisdokumente',
'empfehlung'
),
'ui' => array(
'anzeigen',
'alleAnzeigen',
'hilfeZuDieserSeite',
'hochladen',
'spaltenEinstellen',
'hilfeZuDieserSeite',
'alleAuswaehlen',
'alleAbwaehlen',
'ausgewaehlteZeilen',
'hilfe',
'tabelleneinstellungen',
'keineDatenVorhanden',
'spaltenEinstellen',
'ja',
'nein'
),
'person' => array(
'student',
'personenkennzeichen',
'vorname',
'nachname'
),
'lehre' => array(
'studiensemester',
'studiengang',
'lehrveranstaltung',
'ects',
'lektor',
),
'table' => array(
'spaltenEinAusblenden',
'spaltenEinAusblendenMitKlickOeffnen',
'spaltenEinAusblendenAufEinstellungenKlicken',
'spaltenEinAusblendenMitKlickAktivieren',
'spaltenEinAusblendenMitKlickSchliessen',
'spaltenbreiteVeraendern',
'spaltenbreiteVeraendernText',
'spaltenbreiteVeraendernInfotext',
'zeilenAuswaehlen',
'zeilenAuswaehlenEinzeln',
'zeilenAuswaehlenBereich',
'zeilenAuswaehlenAlle'
)
),
'customJSs' => array(
'public/js/bootstrapper.js',
'public/js/lehre/anrechnung/reviewAnrechnungUebersicht.js'
)
)
);
?>
<body>
<div id="page-wrapper">
<div class="container-fluid">
<!-- title -->
<div class="row">
<div class="col-lg-12 page-header">
<h3>
<?php echo $this->p->t('anrechnung', 'anrechnungenPruefen'); ?>
<small>| <?php echo $this->p->t('global', 'uebersicht'); ?></small>
</h3>
</div>
</div>
<!-- dropdown studiensemester -->
<div class="row">
<div class="col-lg-12">
<form id="formApproveAnrechnungUebersicht" class="form-inline" action="" method="get">
<div class="form-group">
<?php
echo $this->widgetlib->widget(
'Studiensemester_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected
),
array(
'name' => 'studiensemester',
'id' => 'studiensemester'
)
);
?>
</div>
<button type="submit" class="btn btn-default form-group"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
</form>
</div>
</div>
<!-- Tabelle -->
<div class="row">
<div class="col-xs-12">
<?php $this->load->view('lehre/anrechnung/reviewAnrechnungUebersichtData.php'); ?>
</div>
</div>
<div class="row">
<!-- Filter buttons -->
<div class="col-xs-5 col-md-4">
<div class="btn-toolbar" role="toolbar">
<div class="btn-group" role="group">
<button id="show-need-recommendation" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
title="<?php echo $this->p->t('ui', 'nurFehlendeEmpfehlungenAnzeigen'); ?>"><i class='fa fa-eye'></i>
</button>
<button id="show-recommended" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
title="<?php echo $this->p->t('ui', 'nurEmpfohleneAnzeigen'); ?>"><i class='fa fa-thumbs-o-up'></i>
</button>
<button id="show-not-recommended" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
title="<?php echo $this->p->t('ui', 'nurNichtEmpfohleneAnzeigen'); ?>"><i class='fa fa-thumbs-o-down'></i>
</button>
<button id="show-approved" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
title="<?php echo $this->p->t('ui', 'nurGenehmigteAnzeigen'); ?>"><i class='fa fa-check'></i>
</button>
<button id="show-rejected" class="btn btn-default btn-clearfilter" type="button"
data-toggle="tooltip" data-placement="left"
title="<?php echo $this->p->t('ui', 'nurAbgelehnteAnzeigen'); ?>"><i class='fa fa-times'></i>
</button>
</div>
</div>
</div>
<!-- Action Buttons 'Empfehlen', 'Nicht empfehlen'-->
<div class="col-xs-7 col-md-8">
<div class="pull-right">
<button id="dont-recommend-anrechnungen" class="btn btn-danger btn-w200"><?php echo ucfirst($this->p->t('anrechnung', 'nichtEmpfehlen')); ?></button>
<button id="recommend-anrechnungen" class="btn btn-primary btn-w200"><?php echo ucfirst($this->p->t('anrechnung', 'empfehlen')); ?></button>
</div>
</div>
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -0,0 +1,126 @@
<?php
$STUDIENSEMESTER = $studiensemester_selected;
$LEKTOR_UID = getAuthUID();
$LANGUAGE_INDEX = getUserLanguage() == 'German' ? '0' : '1';
$query = '
WITH anrechnungen AS
(
SELECT DISTINCT
anrechnung.anrechnung_id,
anrechnung.lehrveranstaltung_id,
anrechnung.begruendung_id,
anrechnung.dms_id,
anrechnung.studiensemester_kurzbz,
stg.studiengang_kz,
stg.bezeichnung AS "stg_bezeichnung",
lv.bezeichnung AS "lv_bezeichnung",
lv.ects,
(person.nachname || \' \' || person.vorname) AS "student",
begruendung.bezeichnung AS "begruendung",
dmsversion.name AS "dokument_bezeichnung",
empfehlung_anrechnung,
(SELECT status_kurzbz
FROM lehre.tbl_anrechnungstatus
JOIN lehre.tbl_anrechnung_anrechnungstatus USING (status_kurzbz)
WHERE anrechnung_id = anrechnung.anrechnung_id
ORDER BY insertamum DESC
LIMIT 1
) AS status_kurzbz
FROM lehre.tbl_anrechnung AS anrechnung
JOIN public.tbl_prestudent USING (prestudent_id)
JOIN public.tbl_person AS person USING (person_id)
JOIN public.tbl_studiengang AS stg USING (studiengang_kz)
JOIN lehre.tbl_lehrveranstaltung AS lv USING (lehrveranstaltung_id)
JOIN campus.tbl_dms_version AS dmsversion USING (dms_id)
JOIN lehre.tbl_anrechnung_anrechnungstatus USING (anrechnung_id)
JOIN lehre.tbl_anrechnung_begruendung AS begruendung USING (begruendung_id)
)
SELECT DISTINCT ON (anrechnungen.*, lema.mitarbeiter_uid) anrechnungen.*,
array_to_json(anrechnungstatus.bezeichnung_mehrsprachig::varchar[])->>' . $LANGUAGE_INDEX . ' AS "status_bezeichnung"
FROM anrechnungen
JOIN lehre.tbl_anrechnungstatus as anrechnungstatus ON (anrechnungstatus.status_kurzbz = anrechnungen.status_kurzbz)
JOIN lehre.tbl_lehreinheit le USING (lehrveranstaltung_id)
JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id)
WHERE anrechnungen.studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\'
AND le.studiensemester_kurzbz = anrechnungen.studiensemester_kurzbz
AND lema.mitarbeiter_uid = \'' . $LEKTOR_UID . '\'
AND le.lehre = TRUE
';
$filterWidgetArray = array(
'query' => $query,
'tableUniqueId' => 'approveAnrechnungUebersicht',
'requiredPermissions' => 'lehre/anrechnung_empfehlen',
'datasetRepresentation' => 'tabulator',
'columnsAliases' => array(
'anrechnung_id',
'lehrveranstaltung_id',
'begruendung_id',
'dms_id',
'studiensemester_kurzbz',
'studiengang_kz',
ucfirst($this->p->t('lehre', 'studiengang')),
ucfirst($this->p->t('lehre', 'lehrveranstaltung')),
'ECTS',
ucfirst($this->p->t('person', 'studentIn')),
ucfirst($this->p->t('global', 'begruendung')),
ucfirst($this->p->t('anrechnung', 'nachweisdokumente')),
ucfirst($this->p->t('anrechnung', 'empfehlung')),
'status_kurzbz',
'Status'
),
'datasetRepOptions' => '{
height: func_height(this),
layout: "fitColumns", // fit columns to width of table
persistentLayout:true,
persistentSort:true,
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
headerFilterPlaceholder: " ",
index: "anrechnung_id", // assign specific column as unique id (important for row indexing)
selectable: true, // allow row selection
selectableRangeMode: "click", // allow range selection using shift end click on end of range
selectablePersistence:false, // deselect previously selected rows when table is filtered, sorted or paginated
tableBuilt: function(){
func_tableBuilt(this);
},
tableWidgetFooter: {
selectButtons: true
},
selectableCheck: function(row){
return func_selectableCheck(row);
},
rowFormatter:function(row){
func_rowFormatter(row);
},
rowUpdated:function(row){
func_rowUpdated(row);
}
}', // tabulator properties
'datasetRepFieldsDefs' => '{
anrechnung_id: {visible: false},
lehrveranstaltung_id: {visible: false},
begruendung_id: {visible: false},
dms_id: {visible: false},
studiensemester_kurzbz: {visible: false},
studiengang_kz: {visible: false},
stg_bezeichnung: {headerFilter:"input"},
lv_bezeichnung: {headerFilter:"input"},
ects: {headerFilter:"input"},
student: {headerFilter:"input"},
begruendung: {headerFilter:"input"},
dokument_bezeichnung: {headerFilter:"input", formatter:"link", formatterParams:{
labelField:"dokument_bezeichnung",
url:function(cell){return "'. current_url() .'/download?dms_id=" + cell.getData().dms_id},
target:"_blank"
}},
empfehlung_anrechnung: {headerFilter:"input", align:"center", formatter: format_empfehlung_anrechnung},
status_kurzbz: {visible: false},
status_bezeichnung: {headerFilter:"input"}
}', // col properties
);
echo $this->widgetlib->widget('TableWidget', $filterWidgetArray);
?>