add feature Anrechnungen in FAS

This commit is contained in:
nkrondraf
2015-03-02 11:47:11 +01:00
parent e21a02f38c
commit fc0f28e2d5
15 changed files with 4417 additions and 3204 deletions
+14 -39
View File
@@ -47,8 +47,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
<xul:toolbarbutton anonid="toolbarbutton-notiz-aktualisieren" label="Aktualisieren" oncommand="document.getBindingParent(this).RefreshNotiz()" image="<?php echo APP_ROOT;?>skin/images/refresh.png" tooltiptext="Liste neu laden"/>
<xul:toolbarbutton anonid="toolbarbutton-notiz-filter" label="Filter" type="menu">
<xul:menupopup>
<xul:menuitem label="Alle Notizen anzeigen" oncommand="document.getBindingParent(this).LoadNotizTree(document.getBindingParent(this).getAttribute('projekt_kurzbz'),document.getBindingParent(this).getAttribute('projektphase_id'),document.getBindingParent(this).getAttribute('projekttask_id'),document.getBindingParent(this).getAttribute('uid'),document.getBindingParent(this).getAttribute('person_id'),document.getBindingParent(this).getAttribute('prestudent_id'),document.getBindingParent(this).getAttribute('bestellung_id'), document.getBindingParent(this).getAttribute('user'), null);" tooltiptext="Alle Notizen anzeigen"/>
<xul:menuitem label="nur offene Notizen anzeigen" oncommand="document.getBindingParent(this).LoadNotizTree(document.getBindingParent(this).getAttribute('projekt_kurzbz'),document.getBindingParent(this).getAttribute('projektphase_id'),document.getBindingParent(this).getAttribute('projekttask_id'),document.getBindingParent(this).getAttribute('uid'),document.getBindingParent(this).getAttribute('person_id'),document.getBindingParent(this).getAttribute('prestudent_id'),document.getBindingParent(this).getAttribute('bestellung_id'), document.getBindingParent(this).getAttribute('user'), false);" tooltiptext="nur offene Notizen anzeigen"/>
<xul:menuitem label="Alle Notizen anzeigen" oncommand="document.getBindingParent(this).LoadNotizTree(document.getBindingParent(this).getAttribute('projekt_kurzbz'),document.getBindingParent(this).getAttribute('projektphase_id'),document.getBindingParent(this).getAttribute('projekttask_id'),document.getBindingParent(this).getAttribute('uid'),document.getBindingParent(this).getAttribute('person_id'),document.getBindingParent(this).getAttribute('prestudent_id'),document.getBindingParent(this).getAttribute('bestellung_id'), document.getBindingParent(this).getAttribute('user'), document.getBindingParent(this).getAttribute('lehreinheit_id'), null, document.getBindingParent(this).getAttribute('anrechnung_id'));" tooltiptext="Alle Notizen anzeigen"/>
<xul:menuitem label="nur offene Notizen anzeigen" oncommand="document.getBindingParent(this).LoadNotizTree(document.getBindingParent(this).getAttribute('projekt_kurzbz'),document.getBindingParent(this).getAttribute('projektphase_id'),document.getBindingParent(this).getAttribute('projekttask_id'),document.getBindingParent(this).getAttribute('uid'),document.getBindingParent(this).getAttribute('person_id'),document.getBindingParent(this).getAttribute('prestudent_id'),document.getBindingParent(this).getAttribute('bestellung_id'), document.getBindingParent(this).getAttribute('user'), document.getBindingParent(this).getAttribute('lehreinheit_id'), false, document.getBindingParent(this).getAttribute('anrechnung_id'));" tooltiptext="nur offene Notizen anzeigen"/>
</xul:menupopup>
</xul:toolbarbutton>
</xul:toolbar>
@@ -334,6 +334,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
var prestudent_id = this.getAttribute('prestudent_id');
var bestellung_id = this.getAttribute('bestellung_id');
var lehreinheit_id = this.getAttribute('lehreinheit_id');
var anrechnung_id = this.getAttribute('anrechnung_id');
var soapBody = new SOAPObject("saveNotiz");
//soapBody.appendChild(new SOAPObject("username")).val('joe');
@@ -357,6 +358,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
notiz.appendChild(new SOAPObject("prestudent_id")).val(prestudent_id);
notiz.appendChild(new SOAPObject("bestellung_id")).val(bestellung_id);
notiz.appendChild(new SOAPObject("lehreinheit_id")).val(lehreinheit_id);
notiz.appendChild(new SOAPObject("anrechnung_id")).val(anrechnung_id);
soapBody.appendChild(notiz);
var sr = new SOAPRequest("saveNotiz",soapBody);
@@ -647,6 +649,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
<parameter name="user"/>
<parameter name="lehreinheit_id"/>
<parameter name="erledigt"/>
<parameter name="anrechnung_id"/>
<body>
<![CDATA[
//debug('LoadNotizTree');
@@ -681,6 +684,11 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
if(typeof erledigt!="undefined")
this.setAttribute('erledigt',erledigt);
if(typeof anrechnung_id=="undefined")
anrechnung_id = '';
if(typeof anrechnung_id!="undefined")
this.setAttribute('anrechnung_id',anrechnung_id);
var datasource="<?php echo APP_ROOT; ?>rdf/notiz.rdf.php?ts="+gettimestamp();
datasource = datasource+"&projekt_kurzbz="+encodeURIComponent(projekt_kurzbz);
@@ -699,6 +707,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
else if((typeof erledigt=="boolean" && erledigt==false) || (typeof erledigt=="string" && erledigt=='false'))
datasource = datasource+"&erledigt=false";
datasource = datasource+"&anrechnung_id="+encodeURIComponent(anrechnung_id);
//debug('Source:'+datasource);
var tree = document.getAnonymousElementByAttribute(this ,'anonid', 'tree-notiz');
@@ -797,41 +806,6 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
]]>
</body>
</method>
<method name="openNotiz">
<parameter name="id"/>
<body>
<![CDATA[
var projekt_kurzbz = this.getAttribute('projekt_kurzbz');
var projektphase_id = this.getAttribute('projektphase_id');
var projekttask_id = this.getAttribute('projekttask_id');
var uid = this.getAttribute('uid');
var person_id = this.getAttribute('person_id');
var prestudent_id = this.getAttribute('prestudent_id');
var bestellung_id = this.getAttribute('bestellung_id');
var lehreinheit_id = this.getAttribute('lehreinheit_id');
var opener_id = this.getAttribute('id');
var param = '';
param = param+'?projekt_kurzbz='+encodeURIComponent(projekt_kurzbz);
param = param+'&projektphase_id='+encodeURIComponent(projektphase_id);
param = param+'&projekttask_id='+encodeURIComponent(projekttask_id);
param = param+'&uid='+encodeURIComponent(uid);
param = param+'&person_id='+encodeURIComponent(person_id);
param = param+'&prestudent_id='+encodeURIComponent(prestudent_id);
param = param+'&bestellung_id='+encodeURIComponent(bestellung_id);
param = param+'&lehreinheit_id='+encodeURIComponent(lehreinheit_id);
param = param+'&opener_id='+encodeURIComponent(opener_id);
if(id!=undefined)
param = param+'&id='+id;
window.open('<?php echo APP_ROOT; ?>content/notiz.window.xul.php'+param,'Notiz','chrome, status=no, width=500, height=350, centerscreen, resizable');
]]>
</body>
</method>
<constructor>
//debug('load notiz:'+this.getAttribute('id'));
@@ -846,11 +820,12 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
var bestellung_id = this.getAttribute('bestellung_id');
var user = this.getAttribute('user');
var lehreinheit_id = this.getAttribute('lehreinheit_id');
var anrechnung_id = this.getAttribute('anrechnung_id');
if(projekt_kurzbz!='' || projektphase_id!='' || projekttask_id!=''
|| uid!='' || person_id!='' || prestudent_id!='' || bestellung_id!='' || user!='' || lehreinheit_id!='')
|| uid!='' || person_id!='' || prestudent_id!='' || bestellung_id!='' || user!='' || lehreinheit_id!='' || anrechnung_id!='')
{
this.LoadNotizTree(projekt_kurzbz,projektphase_id,projekttask_id,uid,person_id,prestudent_id,bestellung_id, user, lehreinheit_id);
this.LoadNotizTree(projekt_kurzbz,projektphase_id,projekttask_id,uid,person_id,prestudent_id,bestellung_id, user, lehreinheit_id, null, anrechnung_id);
}
document.getAnonymousElementByAttribute(this ,'anonid', 'textbox-notiz-verfasser').value=getUsername();
</constructor>
+2 -2
View File
@@ -22,8 +22,8 @@
// ****
// * Laedt die zu bearbeitenden Daten
// ****
function NotizInit(projekt_kurzbz, projektphase_id, projekttask_id, uid, person_id, prestudent_id, bestellung_id, user, lehreinheit_id)
function NotizInit(projekt_kurzbz, projektphase_id, projekttask_id, uid, person_id, prestudent_id, bestellung_id, user, lehreinheit_id, anrechnung_id)
{
var notizbox = document.getElementById('notiz-dialog-box-notiz');
notizbox.LoadNotizTree(projekt_kurzbz,projektphase_id, projekttask_id, uid, person_id, prestudent_id, bestellung_id, user, lehreinheit_id);
notizbox.LoadNotizTree(projekt_kurzbz,projektphase_id, projekttask_id, uid, person_id, prestudent_id, bestellung_id, user, lehreinheit_id, null, anrechnung_id);
}
+6 -1
View File
@@ -76,11 +76,16 @@ if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id']))
else
$lehreinheit_id='';
if(isset($_GET['anrechnung_id']) && is_numeric($_GET['anrechnung_id']))
$anrechnung_id=$_GET['anrechnung_id'];
else
$anrechnung_id='';
?>
<window id="notiz-dialog" title="Notiz"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="NotizInit(<?php echo "'".$projekt_kurzbz."','".$projektphase_id."','".$projekttask_id."','".$uid."','".$person_id."','".$prestudent_id."','".$bestellung_id."','".$user."','".$lehreinheit_id."'";?>)"
onload="NotizInit(<?php echo "'".$projekt_kurzbz."','".$projektphase_id."','".$projekttask_id."','".$uid."','".$person_id."','".$prestudent_id."','".$bestellung_id."','".$user."','".$lehreinheit_id."','".$anrechnung_id."'";?>)"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/notizdialog.js.php" />
+58
View File
@@ -62,6 +62,7 @@ require_once('../../include/mail.class.php');
require_once('../../include/kontakt.class.php');
require_once('../../include/dms.class.php');
require_once('../../include/notenschluessel.class.php');
require_once('../../include/anrechnung.class.php');
$user = get_uid();
$db = new basis_db();
@@ -3512,6 +3513,63 @@ if(!$error)
}
}
}
elseif(isset($_POST['type']) && $_POST['type']=='saveanrechnung')
{
$anrechnung = new anrechnung();
$anrechnung->new = $_POST['neu'];
$anrechnung->anrechnung_id = $_POST['anrechnung_id'];
$anrechnung->prestudent_id = $_POST['prestudent_id'];
$anrechnung->lehrveranstaltung_id = $_POST['lehrveranstaltung_id'];
$anrechnung->begruendung_id = $_POST['begruendung_id'];
isset($_POST['lehrveranstaltung_id_kompatibel']) ? $anrechnung->lehrveranstaltung_id_kompatibel = $_POST['lehrveranstaltung_id_kompatibel'] : $anrechnung->lehrveranstaltung_id_kompatibel = null;
isset($_POST['notiz_id']) ? $anrechnung->notiz_id = $_POST['notiz_id'] : $anrechnung->notiz_id = null;
$anrechnung->genehmigt_von = $_POST['genehmigt_von'];
$anrechnung->insertvon = $user;
$anrechnung->updatevon = $user;
if($anrechnung->save())
{
$return = true;
}
else
{
$return = false;
$errormsg = $anrechnung->errormsg;
}
}
elseif(isset($_POST['type']) && $_POST['type']=='deleteanrechnung')
{
//Loescht eine Anrechunng
if(isset($_POST['anrechnung_id']) && is_numeric($_POST['anrechnung_id']))
{
if(!$rechte->isBerechtigt('admin', $_POST['studiengang_kz'], 'suid') && !$rechte->isBerechtigt('assistenz', $_POST['studiengang_kz'], 'suid'))
{
$return = false;
$error = true;
$errormsg = 'Sie haben keine Berechtigung';
}
else
{
$anrechnung = new anrechnung();
if($anrechnung->delete($_POST['anrechnung_id']))
{
$return = true;
}
else
{
$errormsg = $anrechnung->errormsg;
$return = false;
}
}
}
else
{
$return = false;
$errormsg = 'Fehlerhafte Parameteruebergabe';
}
}
else
{
$return = false;
@@ -0,0 +1,197 @@
<?php
/* Copyright (C) 2015 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Nikolaus Krondraf <nikolaus.krondraf@technikum-wien.at>
*/
header("Cache-Control: no-cache");
header("Cache-Control: post-check=0, pre-check=0",false);
header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
require_once('../../config/vilesci.config.inc.php');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
?>
<overlay id="StudentAnrechnungen"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
>
<!-- Pruefung Overlay -->
<vbox id="student-anrechnungen" style="overflow:auto; margin:0px;" flex="1">
<popupset>
<menupopup id="student-anrechnungen-tree-popup">
<menuitem label="Entfernen" oncommand="StudentAnrechnungDelete();" id="student-anrechnungen-tree-popup-delete" hidden="false"/>
</menupopup>
</popupset>
<hbox flex="1">
<grid id="student-anrechnungen-grid-detail" style="margin:4px;" flex="1">
<columns >
<column flex="2"/>
<column flex="1"/>
</columns>
<rows>
<row>
<tree id="student-anrechnungen-tree" seltype="multi" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/anrechnung/liste"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;margin-top: 10px;" height="100px" enableColumnDrag="true"
context="student-anrechnungen-tree-popup"
flags="dont-build-content"
>
<treecols>
<treecol id="student-anrechnungen-tree-anrechnung_id" label="Anrechnung ID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/anrechnung/rdf#anrechnung_id"/>
<splitter class="tree-splitter"/>
<treecol id="student-anrechnungen-tree-lehrveranstaltung_id" label="Lehrveranstaltung ID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/anrechnung/rdf#lehrveranstaltung_id"/>
<splitter class="tree-splitter"/>
<treecol id="student-anrechnungen-tree-lehrveranstaltung_bezeichnung" label="Lehrveranstaltung" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/anrechnung/rdf#lehrveranstaltung_bez"/>
<splitter class="tree-splitter"/>
<treecol id="student-anrechnungen-tree-begruendung" label="Begründung" flex="2" hidden="false" ignoreincolumnpicker="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/anrechnung/rdf#begruendung"/>
<splitter class="tree-splitter"/>
<treecol id="student-anrechnungen-tree-kompatible_lehrveranstaltung_id" label="kompatible Lehrveranstaltung ID" flex="5" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/anrechnung/rdf#lehrveranstaltung_id_kompatibel"/>
<splitter class="tree-splitter"/>
<treecol id="student-anrechnungen-tree-kompatible_lehrveranstaltung_bezeichnung" label="kompatible Lehrveranstaltung" flex="5" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/anrechnung/rdf#lehrveranstaltung_bez_kompatibel"/>
<splitter class="tree-splitter"/>
<treecol id="student-anrechnungen-tree-genehmigt_von" label="genehmigt von" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/anrechnung/rdf#genehmigt_von" />
<splitter class="tree-splitter"/>
<treecol id="student-anrechnungen-tree-datum" label="Datum" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/anrechnung/rdf#insertamum" />
<splitter class="tree-splitter"/>
</treecols>
<template>
<treechildren flex="1" >
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/anrechnung/rdf#anrechnung_id"/>
<treecell label="rdf:http://www.technikum-wien.at/anrechnung/rdf#lehrveranstaltung_id"/>
<treecell label="rdf:http://www.technikum-wien.at/anrechnung/rdf#lehrveranstaltung_bez"/>
<treecell label="rdf:http://www.technikum-wien.at/anrechnung/rdf#begruendung"/>
<treecell label="rdf:http://www.technikum-wien.at/anrechnung/rdf#lehrveranstaltung_id_kompatibel"/>
<treecell label="rdf:http://www.technikum-wien.at/anrechnung/rdf#lehrveranstaltung_bez_kompatibel"/>
<treecell label="rdf:http://www.technikum-wien.at/anrechnung/rdf#genehmigt_von"/>
<treecell label="rdf:http://www.technikum-wien.at/anrechnung/rdf#insertamum"/>
</treerow>
</treeitem>
</treechildren>
</template>
</tree>
<vbox>
<hbox>
<button id="student-anrechnungen-button-neu" label="Neu" oncommand="StudentAnrechnungNeu();" disabled="true"/>
<button id="student-anrechnungen-button-loeschen" label="Löschen" oncommand="StudentAnrechnungDelete();" disabled="true"/>
<button id="student-anrechnungen-button-notiz" label="Notiz hinzufügen" oncommand="StudentNotizNeu();" disabled="true"/>
</hbox>
<groupbox id="student-anrechnungen-groupbox" flex="1">
<caption label="Details"/>
<grid id="student-anrechnungen-grid-detail" style="overflow:auto;margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<label value="Lehrveranstaltung" control="student-anrechnungen-menulist-lehrveranstaltung"/>
<menulist id="student-anrechnungen-menulist-lehrveranstaltung" disabled="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/lehrveranstaltung/liste"
oncommand="StudentLoadKompatibleLvaDropDown()" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#lehrveranstaltung_id"
label="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#bezeichnung Semester rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#semester rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#lehrform_kurzbz"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Begründung" control="student-anrechnungen-menulist-begruendung"/>
<menulist id="student-anrechnungen-menulist-begruendung" disabled="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/anrechnungbegruendung/liste"
oncommand="StudentAnrechnungShowKompatibleLvaDropDown()">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/anrechnungbegruendung/rdf#begruendung_id"
label="rdf:http://www.technikum-wien.at/anrechnungbegruendung/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row id="student-anrechnungen-menulist-kompatible_lehrveranstaltung-row" hidden="true">
<label value="kompatible Lehrveranstaltung" control="student-anrechnungen-menulist-kompatible_lehrveranstaltung"/>
<menulist id="student-anrechnungen-menulist-kompatible_lehrveranstaltung" disabled="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/lehrveranstaltung/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#lehrveranstaltung_id"
label="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="genehmigt von" control="student-anrechnungen-menulist-genehmigt_von"/>
<menulist id="student-anrechnungen-menulist-genehmigt_von" disabled="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/mitarbeiter/_alle" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
</rows>
</grid>
<hbox>
<spacer flex="1" />
<textbox id="student-anrechnungen-prestudent_id" hidden="true" />
<textbox id="student-anrechnungen-neu" hidden="true" />
<button id="student-anrechnungen-button-speichern" oncommand="StudentAnrechnungDetailSpeichern()" label="Speichern" disabled="true"/>
</hbox>
</groupbox>
</vbox>
</row>
</rows>
</grid>
</hbox>
<spacer flex="1" />
</vbox>
</overlay>
+3
View File
@@ -35,6 +35,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentkontooverlay.xul.ph
echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentiooverlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentnotenoverlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentpruefungoverlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentanrechnungenoverlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentabschlusspruefungoverlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentprojektarbeitoverlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/student/studentgruppenoverlay.xul.php"?>';
@@ -347,6 +348,7 @@ else
<tab id="student-tab-noten" label="Noten" />
<tab id="student-tab-zeugnis" label="Archiv" />
<tab id="student-tab-pruefung" label="Prüfung" />
<tab id="student-tab-anrechnungen" label="Anrechnungen" />
<tab id="student-tab-abschlusspruefung" label="AbschlussPrüfung" />
<tab id="student-tab-projektarbeit" label="Projektarbeit" />
<tab id="student-tab-gruppen" label="Gruppen" onclick="StudentGruppenLoadData();"/>
@@ -364,6 +366,7 @@ else
<vbox id="student-noten" style="margin-top:10px;" />
<vbox id="student-zeugnis" style="margin-top:10px;" />
<vbox id="student-pruefung" style="margin-top:10px;" />
<vbox id="student-anrechnungen" style="margin-top:10px;" />
<vbox id="student-abschlusspruefung" style="margin-top:10px;" />
<vbox id="student-projektarbeit" style="margin-top:10px;" />
<vbox id="student-gruppen" style="margin-top:10px;" />
+525
View File
@@ -46,6 +46,8 @@ var StudentLvGesamtNotenTreeDatasource; //Datasource des Noten Trees
var StudentLvGesamtNotenSelectLehrveranstaltungID=null; //LehreinheitID des Noten Eintrages der nach dem Refresh markiert werden soll
var StudentPruefungTreeDatasource; //Datasource des Pruefung Trees
var StudentPruefungSelectID=null; //ID der Pruefung die nach dem Refresh markiert werden soll
var StudentAnrechnungTreeDatasource; //Datasource des Anrechnung Trees
var StudentAnrechnungSelectID=null; //ID der Anrechnung die nach dem Refresh markiert werden soll
var StudentDetailRolleTreeDatasource=null; //Datasource fuer denn PrestudentRolleTree
var StudentAkteTreeDatasource=null;
var doublerebuildkonto='false';
@@ -313,6 +315,47 @@ var StudentPruefungTreeListener =
}
};
// ****
// * Observer fuer Anrechnung Tree
// * startet Rebuild nachdem das Refresh
// * der datasource fertig ist
// ****
var StudentAnrechnungTreeSinkObserver =
{
onBeginLoad : function(pSink)
{
tree = document.getElementById('student-anrechnungen-tree');
tree.removeEventListener('select', StudentAnrechnungAuswahl, false);
},
onInterrupt : function(pSink) {},
onResume : function(pSink) {},
onError : function(pSink, pStatus, pError) {},
onEndLoad : function(pSink)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('student-anrechnungen-tree').builder.rebuild();
}
};
// ****
// * Nach dem Rebuild wird der Eintrag wieder
// * markiert
// ****
var StudentAnrechnungTreeListener =
{
willRebuild : function(builder) { },
didRebuild : function(builder)
{
tree = document.getElementById('student-anrechnungen-tree');
tree.addEventListener('select', StudentAnrechnungAuswahl, false);
//timeout nur bei Mozilla notwendig da sonst die rows
//noch keine values haben. Ab Seamonkey funktionierts auch
//ohne dem setTimeout
window.setTimeout(StudentAnrechnungenTreeSelectID,10);
}
};
// ****
// * Observer fuer Akte Tree
// * startet Rebuild nachdem das Refresh
@@ -864,6 +907,7 @@ function StudentAuswahl()
StudentNoteDisableFields(false);
document.getElementById('student-detail-button-save').disabled=false;
StudentPruefungDisableFileds(false);
StudentAnrechnungenDisableFields(false);
}
else
{
@@ -1408,6 +1452,38 @@ function StudentAuswahl()
StudentPruefungDetailDisableFields(true);
}
// ****** Anrechnungen ****** //
StudentAnrechnungDetailDisableFields(true);
anrechnungtree = document.getElementById('student-anrechnungen-tree');
url='<?php echo APP_ROOT;?>rdf/anrechnung.rdf.php?prestudent_id='+prestudent_id+"&"+gettimestamp();
try
{
StudentAnrechnungTreeDatasource.removeXMLSinkObserver(StudentAnrechnungTreeSinkObserver);
anrechnungtree.builder.removeListener(StudentAnrechnungTreeListener);
}
catch(e)
{}
//Alte DS entfernen
var oldDatasources = anrechnungtree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
anrechnungtree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
anrechnungtree.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
StudentAnrechnungTreeDatasource = rdfService.GetDataSource(url);
StudentAnrechnungTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
StudentAnrechnungTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
anrechnungtree.database.AddDataSource(StudentAnrechnungTreeDatasource);
StudentAnrechnungTreeDatasource.addXMLSinkObserver(StudentAnrechnungTreeSinkObserver);
anrechnungtree.builder.addListener(StudentAnrechnungTreeListener);
if(uid!='')
{
// ****** Abschlusspruefung ******** //
@@ -4246,6 +4322,455 @@ function StudentPruefungAuswahl()
document.getElementById('student-pruefung-textbox-punkte').value=punkte;
}
// **************** ANRECHNUNGEN ************** //
// ****
// * Selektiert den Anrechnung Eintrag nachdem der Tree
// * rebuildet wurde.
// ****
function StudentAnrechnungenTreeSelectID()
{
var tree=document.getElementById('student-anrechnungen-tree');
if(tree.view)
var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
else
return false;
//In der globalen Variable ist die zu selektierende Eintrag gespeichert
if(StudentAnrechnungSelectID!=null)
{
for(var i=0;i<items;i++)
{
//ID der row holen
col = tree.columns ? tree.columns["student-anrechnungen-tree-anrechnung_id"] : "student-anrechnungen-tree-anrechnung_id";
var anrechnung_id=tree.view.getCellText(i,col);
//wenn dies die zu selektierende Zeile
if(anrechnung_id == StudentAnrechnungSelectID)
{
//Zeile markieren
tree.view.selection.select(i);
//Sicherstellen, dass die Zeile im sichtbaren Bereich liegt
tree.treeBoxObject.ensureRowIsVisible(i);
StudentAnrechnungSelectID=null;
return true;
}
}
}
}
// ****
// * Notiz-Dialog oeffnen
// ****
function StudentNotizNeu()
{
var tree = document.getElementById('student-anrechnungen-tree');
if (tree.currentIndex==-1)
{
alert('Bitte zuerst einen Eintrag markieren');
return;
}
//Ausgewaehlte ID holen
var col = tree.columns ? tree.columns["student-anrechnungen-tree-anrechnung_id"] : "student-anrechnungen-tree-anrechnung_id";
var anrechnung_id = tree.view.getCellText(tree.currentIndex,col);
window.open("<?php echo APP_ROOT; ?>content/notizdialog.xul.php?anrechnung_id="+anrechnung_id,"","chrome, status=no, width=500, height=500, centerscreen, resizable");
}
// ****
// * De-/Aktiviert die Anrechnungsfelder
// ****
function StudentAnrechnungenDisableFields(val)
{
document.getElementById('student-anrechnungen-button-neu').disabled = val;
document.getElementById('student-anrechnungen-button-loeschen').disabled = val;
document.getElementById('student-anrechnungen-button-notiz').disabled = val;
if(val)
StudentAnrechnungDetailDisableFields(val);
}
// ****
// * De-/Aktiviert die Anrechnungs-Detailfelder
// ****
function StudentAnrechnungDetailDisableFields(val)
{
document.getElementById('student-anrechnungen-menulist-lehrveranstaltung').disabled=val;
document.getElementById('student-anrechnungen-menulist-begruendung').disabled=val;
document.getElementById('student-anrechnungen-menulist-kompatible_lehrveranstaltung').disabled=val;
document.getElementById('student-anrechnungen-menulist-genehmigt_von').disabled=val;
document.getElementById('student-anrechnungen-button-speichern').disabled=val;
}
// ****
// * Aktiviert die Felder um eine neue Anrechnung anzulegen
// ****
function StudentAnrechnungNeu()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
// ausgewählter Student
var tree = document.getElementById('student-tree');
if (tree.currentIndex==-1)
{
alert('Student muss ausgewaehlt sein');
return false;
}
document.getElementById("student-anrechnungen-menulist-kompatible_lehrveranstaltung-row").hidden = true;
StudentAnrechnungDetailDisableFields(false);
// Prestudent-ID in hidden field speichern
var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id";
document.getElementById("student-anrechnungen-prestudent_id").value = tree.view.getCellText(tree.currentIndex,col);
// Studiengang ermitteln
var col = tree.columns ? tree.columns["student-treecol-studiengang_kz"] : "student-treecol-studiengang_kz";
var stg_kz = tree.view.getCellText(tree.currentIndex,col);
//Lehrveranstaltung Drop Down laden
var LVDropDown = document.getElementById('student-anrechnungen-menulist-lehrveranstaltung');
url="<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?stg_kz="+stg_kz+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = LVDropDown.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
LVDropDown.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
LVDropDown.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSource(url);
LVDropDown.database.AddDataSource(datasource);
LVDropDown.value='';
LVDropDown.selectedItem='';
//Begründung Drop Down laden
var BegruendungDropDown = document.getElementById('student-anrechnungen-menulist-begruendung');
url="<?php echo APP_ROOT;?>rdf/anrechnungbegruendung.rdf.php?"+gettimestamp();
//Alte DS entfernen
var oldDatasources = BegruendungDropDown.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
BegruendungDropDown.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
BegruendungDropDown.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSource(url);
BegruendungDropDown.database.AddDataSource(datasource);
BegruendungDropDown.value='';
BegruendungDropDown.selectedItem='';
//genehmigt von Drop Down laden
var GenehmigtVonDropDown = document.getElementById('student-anrechnungen-menulist-genehmigt_von');
url="<?php echo APP_ROOT;?>rdf/mitarbeiter.rdf.php?lektor=true&stg_kz=" + stg_kz+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = GenehmigtVonDropDown.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
GenehmigtVonDropDown.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
GenehmigtVonDropDown.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSource(url);
GenehmigtVonDropDown.database.AddDataSource(datasource);
GenehmigtVonDropDown.value='';
GenehmigtVonDropDown.selectedItem='';
document.getElementById('student-anrechnungen-neu').value = 1;
}
function StudentLoadKompatibleLvaDropDown()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
//kompatible Lehrveranstaltung Drop Down laden
var lehrveranstaltung = document.getElementById('student-anrechnungen-menulist-lehrveranstaltung').value;
var LVKompDropDown = document.getElementById('student-anrechnungen-menulist-kompatible_lehrveranstaltung');
url="<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?lehrveranstaltung_kompatibel_id="+lehrveranstaltung+"&self=0"+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = LVKompDropDown.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
LVKompDropDown.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
LVKompDropDown.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSource(url);
LVKompDropDown.database.AddDataSource(datasource);
LVKompDropDown.value='';
LVKompDropDown.selectedItem='';
}
function StudentAnrechnungShowKompatibleLvaDropDown()
{
if(document.getElementById("student-anrechnungen-menulist-begruendung").value == 2)
document.getElementById("student-anrechnungen-menulist-kompatible_lehrveranstaltung-row").hidden = false;
else
document.getElementById("student-anrechnungen-menulist-kompatible_lehrveranstaltung-row").hidden = true;
}
function StudentAnrechnungDetailSpeichern()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
lehrveranstaltung_id = document.getElementById('student-anrechnungen-menulist-lehrveranstaltung').value;
begruendung_id = document.getElementById('student-anrechnungen-menulist-begruendung').value;
lehrveranstaltung_id_kompatibel = document.getElementById('student-anrechnungen-menulist-kompatible_lehrveranstaltung').value;
genehmigt_von = document.getElementById('student-anrechnungen-menulist-genehmigt_von').value;
neu = document.getElementById('student-anrechnungen-neu').value;
if (document.getElementById("student-anrechnungen-prestudent_id").value == '')
{
alert('Student muss ausgewaehlt sein');
return;
}
if (neu == '0')
{
tree = document.getElementById('student-anrechnungen-tree');
col = tree.columns ? tree.columns["student-anrechnungen-tree-anrechnung_id"] : "student-anrechnungen-tree-anrechnung_id";
anrechnung_id = tree.view.getCellText(tree.currentIndex,col);
}
else
anrechnung_id = null;
var prestudent_id = document.getElementById("student-anrechnungen-prestudent_id").value;
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'saveanrechnung');
req.add('anrechnung_id', anrechnung_id);
req.add('lehrveranstaltung_id', lehrveranstaltung_id);
req.add('begruendung_id', begruendung_id);
req.add('lehrveranstaltung_id_kompatibel', lehrveranstaltung_id_kompatibel);
req.add('genehmigt_von', genehmigt_von);
req.add('prestudent_id', prestudent_id);
req.add('neu', neu);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
StudentAnrechnungTreeDatasource.Refresh(false); //non blocking
SetStatusBarText('Daten wurden gespeichert');
StudentAnrechnungDetailDisableFields(true);
}
}
// ****
// * Loescht eine Anrechnung
// ****
function StudentAnrechnungDelete()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('student-anrechnungen-tree');
if (tree.currentIndex==-1)
{
alert('Bitte zuerst einen Eintrag markieren');
return;
}
//Ausgewaehlte ID holen
var col = tree.columns ? tree.columns["student-anrechnungen-tree-anrechnung_id"] : "student-anrechnungen-tree-anrechnung_id";
var anrechnung_id = tree.view.getCellText(tree.currentIndex,col);
// Studiengang ermitteln
var tree = document.getElementById('student-tree');
var col = tree.columns ? tree.columns["student-treecol-studiengang_kz"] : "student-treecol-studiengang_kz";
var stg_kz = tree.view.getCellText(tree.currentIndex,col);
if(confirm('Diesen Eintrag wirklich loeschen?'))
{
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'deleteanrechnung');
req.add('anrechnung_id', anrechnung_id);
req.add('studiengang_kz', stg_kz);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
StudentAnrechnungTreeDatasource.Refresh(false); //non blocking
SetStatusBarText('Daten wurden geloescht');
StudentAnrechnungDetailDisableFields(true);
}
}
}
// ****
// * Laedt eine Anrechnung zum Bearbeiten
// ****
function StudentAnrechnungAuswahl()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('student-anrechnungen-tree');
if (tree.currentIndex==-1) return;
StudentAnrechnungDetailDisableFields(false);
//Ausgewaehlte ID holen
var col = tree.columns ? tree.columns["student-anrechnungen-tree-anrechnung_id"] : "student-anrechnungen-tree-anrechnung_id";
var anrechnung_id = tree.view.getCellText(tree.currentIndex,col);
// Prestudent-ID in hidden field speichern
var tree = document.getElementById('student-tree');
var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id";
document.getElementById("student-anrechnungen-prestudent_id").value = tree.view.getCellText(tree.currentIndex,col);
//Daten holen
var url = '<?php echo APP_ROOT ?>rdf/anrechnung.rdf.php?anrechnung_id='+anrechnung_id+'&'+gettimestamp();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var dsource = rdfService.GetDataSourceBlocking(url);
var subject = rdfService.GetResource("http://www.technikum-wien.at/anrechnung/" + anrechnung_id);
var predicateNS = "http://www.technikum-wien.at/anrechnung/rdf";
//Daten holen
anrechnung_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anrechnung_id" ));
lehrveranstaltung_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrveranstaltung_id" ));
begruendung_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#begruendung_id" ));
lehrveranstaltung_id_kompatibel = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrveranstaltung_id_kompatibel" ));
genehmigt_von = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#genehmigt_von" ));
anzahl_notizen = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anzahl_notizen" ));
// Studiengang ermitteln
var tree = document.getElementById('student-tree');
var col = tree.columns ? tree.columns["student-treecol-studiengang_kz"] : "student-treecol-studiengang_kz";
var stg_kz = tree.view.getCellText(tree.currentIndex,col);
//Lehrveranstaltung Drop Down laden
var LVDropDown = document.getElementById('student-anrechnungen-menulist-lehrveranstaltung');
url="<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?stg_kz="+stg_kz+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = LVDropDown.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
LVDropDown.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
LVDropDown.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSourceBlocking(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
LVDropDown.database.AddDataSource(datasource);
LVDropDown.builder.rebuild();
//Begründung Drop Down laden
var BegruendungDropDown = document.getElementById('student-anrechnungen-menulist-begruendung');
url="<?php echo APP_ROOT;?>rdf/anrechnungbegruendung.rdf.php?"+gettimestamp();
//Alte DS entfernen
var oldDatasources = BegruendungDropDown.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
BegruendungDropDown.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
BegruendungDropDown.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSourceBlocking(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
BegruendungDropDown.database.AddDataSource(datasource);
BegruendungDropDown.builder.rebuild();
//kompatible Lehrveranstaltung Drop Down laden
var LVKompDropDown = document.getElementById('student-anrechnungen-menulist-kompatible_lehrveranstaltung');
url="<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?lehrveranstaltung_kompatibel_id="+lehrveranstaltung_id+"&self=0"+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = LVKompDropDown.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
LVKompDropDown.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
LVKompDropDown.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSourceBlocking(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
LVKompDropDown.database.AddDataSource(datasource);
LVKompDropDown.builder.rebuild();
//genehmigt von Drop Down laden
var GenehmigtVonDropDown = document.getElementById('student-anrechnungen-menulist-genehmigt_von');
url="<?php echo APP_ROOT;?>rdf/mitarbeiter.rdf.php?lektor=true&stg_kz=" + stg_kz+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = GenehmigtVonDropDown.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
GenehmigtVonDropDown.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
GenehmigtVonDropDown.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSourceBlocking(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
GenehmigtVonDropDown.database.AddDataSource(datasource);
GenehmigtVonDropDown.builder.rebuild();
document.getElementById('student-anrechnungen-menulist-lehrveranstaltung').value = lehrveranstaltung_id;
document.getElementById('student-anrechnungen-menulist-begruendung').value = begruendung_id;
document.getElementById('student-anrechnungen-menulist-kompatible_lehrveranstaltung').value = lehrveranstaltung_id_kompatibel;
document.getElementById('student-anrechnungen-menulist-genehmigt_von').value = genehmigt_von;
document.getElementById('student-anrechnungen-neu').value = 0;
StudentAnrechnungShowKompatibleLvaDropDown();
if(anzahl_notizen == "0")
document.getElementById('student-anrechnungen-button-notiz').label = "Notiz hinzufügen";
else if(anzahl_notizen == "1")
document.getElementById('student-anrechnungen-button-notiz').label = "1 Notiz vorhanden";
else
document.getElementById('student-anrechnungen-button-notiz').label = anzahl_notizen + " Notizen vorhanden";
}
// ****
// * Startet die Personensuche
// ****
+259
View File
@@ -0,0 +1,259 @@
<?php
/* Copyright (C) 2015 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Nikolaus Krondraf <nikolaus.krondraf@technikum-wien.at>
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/datum.class.php');
require_once(dirname(__FILE__).'/lehrveranstaltung.class.php');
class anrechnung extends basis_db
{
public $errormsg;
public $new;
public $result;
// Tabellenspalten
public $anrechnung_id; // integer
public $prestudent_id; // integer
public $lehrveranstaltung_id; // integer
public $begruendung_id; // integer
public $lehrveranstaltung_id_kompatibel; // integer
public $genehmigt_von; // varchar(32)
public $insertamum; // timestamp
public $insertvon; // varchar(32)
public $updateamum; // timestamp
public $updatevon; // varchar(32)
public function validate()
{
if(!is_numeric($this->prestudent_id))
{
$this->errormsg = "Prestudent_id ist ungueltig";
return false;
}
if(!is_numeric($this->lehrveranstaltung_id))
{
$this->errormsg = "Wählen Sie eine Lehrveranstaltung aus";
return false;
}
if(!is_numeric($this->begruendung_id))
{
$this->errormsg = "Wählen Sie eine Begründung aus";
return false;
}
if($this->begruendung_id == "2" && !is_numeric($this->lehrveranstaltung_id_kompatibel))
{
$this->errormsg = "Wählen Sie eine kompatible Lehrveranstaltung aus";
return false;
}
if(empty($this->genehmigt_von))
{
$this->errormsg = "Wählen Sie die Person aus, die die Anrechnung genehmigt hat";
return false;
}
return true;
}
/**
* Lädt eine Anrechnung
* @param $anrechnung_id ID der Anrechnung
* @return true wenn ok, false im Fehlerfall
*/
public function getAnrechnung($anrechnung_id)
{
$qry = "SELECT anrechnung_id, prestudent_id, lehrveranstaltung_id, begruendung_id, bezeichnung AS begruendung, "
. "lehrveranstaltung_id_kompatibel, genehmigt_von, insertamum, insertvon, updateamum, updatevon "
. "FROM lehre.tbl_anrechnung "
. "JOIN lehre.tbl_anrechnung_begruendung USING (begruendung_id) "
. "WHERE anrechnung_id = " . $this->db_add_param($anrechnung_id);
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$datum = new datum();
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id);
$row->insertamum = $datum->convertISODate($row->insertamum);
$row->lehrveranstaltung_bez = $lehrveranstaltung->bezeichnung;
if($row->lehrveranstaltung_id_kompatibel != '')
{
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id_kompatibel);
$row->lehrveranstaltung_bez_kompatibel = $lehrveranstaltung->bezeichnung;
}
else
$row->lehrveranstaltung_bez_kompatibel = null;
$this->result[] = $row;
}
else
{
$this->errormsg = 'Es wurde kein Datensatz mit dieser ID gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Speichert eine Anrechnung
* @return true wenn ok, false im Fehlerfall
*/
public function save()
{
if(!$this->validate())
return false;
if($this->new == "1")
{
// Neuen Datensatz anlegen
$qry = 'INSERT INTO lehre.tbl_anrechnung (prestudent_id, lehrveranstaltung_id, begruendung_id, lehrveranstaltung_id_kompatibel, genehmigt_von, insertamum, insertvon, updateamum, updatevon) VALUES ('.
$this->db_add_param($this->prestudent_id).', '.
$this->db_add_param($this->lehrveranstaltung_id).', '.
$this->db_add_param($this->begruendung_id).', '.
$this->db_add_param($this->lehrveranstaltung_id_kompatibel).', '.
$this->db_add_param($this->genehmigt_von).', '.
'NOW(),'.
$this->db_add_param($this->insertvon).', '.
'NOW(),'.
$this->db_add_param($this->updatevon).');';
}
else
{
// Datensatz aktualisieren
$qry = 'UPDATE lehre.tbl_anrechnung SET '
. 'lehrveranstaltung_id = ' . $this->db_add_param($this->lehrveranstaltung_id) . ', '
. 'begruendung_id = ' . $this->db_add_param($this->begruendung_id) . ', '
. 'lehrveranstaltung_id_kompatibel = ' . $this->db_add_param($this->lehrveranstaltung_id_kompatibel) . ', '
. 'genehmigt_von = ' . $this->db_add_param($this->genehmigt_von) . ', '
. 'updateamum = NOW(), '
. 'updatevon = ' . $this->db_add_param($this->updatevon) . ' '
. 'WHERE anrechnung_id = ' . $this->db_add_param($this->anrechnung_id);
}
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Anrechnung: '.$this->db_last_error();
return false;
}
}
/**
* Gibt alle Anrechnungen eines Prestudenten zurück
* @param $prestudent_id
* @return true wenn ok, false im Fehlerfall
*/
public function getAnrechnungPrestudent($prestudent_id)
{
$qry = "SELECT anrechnung_id, prestudent_id, lehrveranstaltung_id, begruendung_id, bezeichnung AS begruendung, "
. "lehrveranstaltung_id_kompatibel, genehmigt_von , insertamum, insertvon, updateamum, updatevon "
. "FROM lehre.tbl_anrechnung "
. "JOIN lehre.tbl_anrechnung_begruendung USING (begruendung_id) "
. "WHERE prestudent_id = " . $this->db_add_param($prestudent_id);
if($this->db_query($qry))
{
$datum = new datum();
while($row = $this->db_fetch_object())
{
$row->insertamum = $datum->convertISODate($row->insertamum);
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id);
$row->lehrveranstaltung_bez = $lehrveranstaltung->bezeichnung;
if($row->lehrveranstaltung_id_kompatibel != '')
{
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id_kompatibel);
$row->lehrveranstaltung_bez_kompatibel = $lehrveranstaltung->bezeichnung;
}
else
$row->lehrveranstaltung_bez_kompatibel = null;
$this->result[] = $row;
}
return true;
}
else
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
}
/**
* Loescht eine Anrechnung
* @param $anrechnung_id
* @return true wenn ok, false im Fehlerfall
*/
public function delete($anrechnung_id)
{
$qry = "DELETE FROM lehre.tbl_anrechnung WHERE anrechnung_id = " . $this->db_add_param($anrechnung_id);
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Datensatz konnte nicht geloescht werden';
return false;
}
}
/**
* Gibt die Anzahl der Notizen für eine Anrechnung zurück
* @param $anrechung_id
* @return Anzahl der Notizen, false im Fehlerfall
*/
public function getAnzahlNotizen($anrechung_id)
{
$qry = "SELECT COUNT(*) AS anzahl "
. "FROM public.tbl_notizzuordnung "
. "WHERE anrechnung_id = " . $this->db_add_param($anrechung_id);
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
return $row->anzahl;
}
else
{
$this->errormsg = 'Daten konnten nicht geladen werden';
return false;
}
}
else
{
$this->errormsg = 'Daten konnten nicht geladen werden';
return false;
}
}
}
+11 -4
View File
@@ -219,7 +219,7 @@ class notiz extends basis_db
public function saveZuordnung()
{
$qry = "INSERT INTO public.tbl_notizzuordnung(notiz_id, projekt_kurzbz, projektphase_id, projekttask_id,
uid, person_id, prestudent_id, bestellung_id, lehreinheit_id) VALUES(".
uid, person_id, prestudent_id, bestellung_id, lehreinheit_id, anrechnung_id) VALUES(".
$this->db_add_param($this->notiz_id, FHC_INTEGER).','.
$this->db_add_param($this->projekt_kurzbz).','.
$this->db_add_param($this->projektphase_id, FHC_INTEGER).','.
@@ -228,7 +228,8 @@ class notiz extends basis_db
$this->db_add_param($this->person_id, FHC_INTEGER).','.
$this->db_add_param($this->prestudent_id, FHC_INTEGER).','.
$this->db_add_param($this->bestellung_id, FHC_INTEGER).','.
$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).');';
$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
$this->db_add_param($this->anrechnung_id, FHC_INTEGER).');';
if($this->db_query($qry))
{
@@ -254,9 +255,10 @@ class notiz extends basis_db
* @param $bestellung_id
* @param $user
* @param $lehreinheit_id
* @param $anrechnung_id
* @return boolean
*/
public function getNotiz($erledigt=null, $projekt_kurzbz=null, $projektphase_id=null, $projekttask_id=null, $uid=null, $person_id=null, $prestudent_id=null, $bestellung_id=null, $user=null, $lehreinheit_id=null)
public function getNotiz($erledigt=null, $projekt_kurzbz=null, $projektphase_id=null, $projekttask_id=null, $uid=null, $person_id=null, $prestudent_id=null, $bestellung_id=null, $user=null, $lehreinheit_id=null, $stundenplandev_id=null, $anrechnung_id=null)
{
$qry = "SELECT
*
@@ -290,6 +292,8 @@ class notiz extends basis_db
$qry.=" AND (verfasser_uid=".$this->db_add_param($user)." OR bearbeiter_uid=".$this->db_add_param($user).")";
if($lehreinheit_id!='')
$qry.=" AND lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
if($anrechnung_id!='')
$qry.=" AND anrechnung_id=".$this->db_add_param($anrechnung_id, FHC_INTEGER);
$qry.=' ORDER BY start, ende, titel';
@@ -338,9 +342,10 @@ class notiz extends basis_db
* @param $bestellung_id
* @param $user
* @param $lehreinheit_id
* @param $anrechnung_id
* @return boolean
*/
public function getAnzahlNotizen($erledigt=null, $projekt_kurzbz=null, $projektphase_id=null, $projekttask_id=null, $uid=null, $person_id=null, $prestudent_id=null, $bestellung_id=null, $user=null, $lehreinheit_id=null)
public function getAnzahlNotizen($erledigt=null, $projekt_kurzbz=null, $projektphase_id=null, $projekttask_id=null, $uid=null, $person_id=null, $prestudent_id=null, $bestellung_id=null, $user=null, $lehreinheit_id=null, $anrechnung_id=null)
{
$qry = "SELECT
count(*) as anzahl
@@ -374,6 +379,8 @@ class notiz extends basis_db
$qry.=" AND (verfasser_uid=".$this->db_add_param($user)." OR bearbeiter_uid=".$this->db_add_param($user).")";
if($lehreinheit_id!='')
$qry.=" AND lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
if($anrechnung_id!='')
$qry.=" AND anrechnung_id=".$this->db_add_param($anrechnung_id, FHC_INTEGER);
if($result = $this->db_query($qry))
{
+91
View File
@@ -0,0 +1,91 @@
<?php
/* Copyright (C) 2015 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Nikolaus Krondraf <nikolaus.krondraf@technikum-wien.at>
*/
require_once('../config/vilesci.config.inc.php');
require_once('../include/anrechnung.class.php');
isset($_GET['prestudent_id']) ? $prestudent_id = $_GET['prestudent_id'] : $prestudent_id = null;
isset($_GET['anrechnung_id']) ? $anrechnung_id = $_GET['anrechnung_id'] : $anrechnung_id = null;
// Daten ermitteln
$anrechnung = new anrechnung();
if(is_numeric($anrechnung_id))
{
$anrechnung->getAnrechnung($anrechnung_id);
}
elseif(is_numeric($prestudent_id))
{
$anrechnung->getAnrechnungPrestudent($prestudent_id);
}
else
{
die('Prestudent_id oder anrechnung_id muss angegeben werden');
}
// header für no cache
header("Cache-Control: no-cache");
header("Cache-Control: post-check=0, pre-check=0",false);
header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache");
header("Content-type: application/xhtml+xml");
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
$rdf_url='http://www.technikum-wien.at/anrechnung';
echo '
<RDF:RDF
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ANRECHNUNG="'.$rdf_url.'/rdf#"
>
<RDF:Seq about="'.$rdf_url.'/liste">
';
// AUSGABE
if(is_array($anrechnung->result))
{
foreach($anrechnung->result as $row)
{
echo '
<RDF:li>
<RDF:Description id="'.$row->anrechnung_id.'" about="'.$rdf_url.'/'.$row->anrechnung_id.'" >
<ANRECHNUNG:anrechnung_id><![CDATA['.$row->anrechnung_id.']]></ANRECHNUNG:anrechnung_id>
<ANRECHNUNG:prestudent_id><![CDATA['.$row->prestudent_id.']]></ANRECHNUNG:prestudent_id>
<ANRECHNUNG:lehrveranstaltung_id><![CDATA['.$row->lehrveranstaltung_id.']]></ANRECHNUNG:lehrveranstaltung_id>
<ANRECHNUNG:lehrveranstaltung_bez><![CDATA['.$row->lehrveranstaltung_bez.']]></ANRECHNUNG:lehrveranstaltung_bez>
<ANRECHNUNG:begruendung_id><![CDATA['.$row->begruendung_id.']]></ANRECHNUNG:begruendung_id>
<ANRECHNUNG:begruendung><![CDATA['.$row->begruendung.']]></ANRECHNUNG:begruendung>
<ANRECHNUNG:lehrveranstaltung_id_kompatibel><![CDATA['.$row->lehrveranstaltung_id_kompatibel.']]></ANRECHNUNG:lehrveranstaltung_id_kompatibel>
<ANRECHNUNG:lehrveranstaltung_bez_kompatibel><![CDATA['.$row->lehrveranstaltung_bez_kompatibel.']]></ANRECHNUNG:lehrveranstaltung_bez_kompatibel>
<ANRECHNUNG:genehmigt_von><![CDATA['.$row->genehmigt_von.']]></ANRECHNUNG:genehmigt_von>
<ANRECHNUNG:anzahl_notizen><![CDATA['.$anrechnung->getAnzahlNotizen($row->anrechnung_id).']]></ANRECHNUNG:anzahl_notizen>
<ANRECHNUNG:insertamum><![CDATA['.$row->insertamum.']]></ANRECHNUNG:insertamum>
<ANRECHNUNG:insertvon><![CDATA['.$row->insertvon.']]></ANRECHNUNG:insertvon>
<ANRECHNUNG:updateamum><![CDATA['.$row->updateamum.']]></ANRECHNUNG:updateamum>
<ANRECHNUNG:updatevon><![CDATA['.$row->updatevon.']]></ANRECHNUNG:updatevon>
</RDF:Description>
</RDF:li>
';
}
}
?>
</RDF:Seq>
</RDF:RDF>
+73
View File
@@ -0,0 +1,73 @@
<?php
/* Copyright (C) 2015 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Nikolaus Krondraf <nikolaus.krondraf@technikum-wien.at>
*/
// header für no cache
header("Cache-Control: no-cache");
header("Cache-Control: post-check=0, pre-check=0",false);
header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache");
// content type setzen
header("Content-type: application/xhtml+xml");
// xml
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
// DAO
require_once('../config/vilesci.config.inc.php');
require_once('../include/basis_db.class.php');
$db = new basis_db();
$data = array();
// Daten ermitteln
$qry = "SELECT begruendung_id, bezeichnung FROM lehre.tbl_anrechnung_begruendung";
if($db->db_query($qry))
{
while($row = $db->db_fetch_object())
{
$data[] = $row;
}
}
$rdf_url='http://www.technikum-wien.at/anrechnungbegruendung';
echo '
<RDF:RDF
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:BEGRUENDUNG="'.$rdf_url.'/rdf#"
>
<RDF:Seq about="'.$rdf_url.'/liste">
';
// AUSGABE
foreach($data as $row)
{
echo '
<RDF:li>
<RDF:Description id="'.$row->begruendung_id.'" about="'.$rdf_url.'/'.$row->begruendung_id.'" >
<BEGRUENDUNG:begruendung_id><![CDATA['.$row->begruendung_id.']]></BEGRUENDUNG:begruendung_id>
<BEGRUENDUNG:bezeichnung><![CDATA['.$row->bezeichnung.']]></BEGRUENDUNG:bezeichnung>
</RDF:Description>
</RDF:li>
';
}
?>
</RDF:Seq>
</RDF:RDF>
+5 -1
View File
@@ -62,7 +62,10 @@ else
$student_uid=null;
if(isset($_GET['lehrveranstaltung_kompatibel_id']))
{
$lehrveranstaltung_kompatibel_id = $_GET['lehrveranstaltung_kompatibel_id'];
isset($_GET['self']) ? $self = $_GET['self'] : $self = 1;
}
else
$lehrveranstaltung_kompatibel_id=null;
@@ -74,7 +77,8 @@ elseif($lehrveranstaltung_kompatibel_id!='')
{
// Laedt die Lehrveranstaltung und alle die dazu kompatibel sind
$lvid_arr = $lehrveranstaltung->loadLVkompatibel($lehrveranstaltung_kompatibel_id);
$lvid_arr[]=$lehrveranstaltung_kompatibel_id;
if($self == 1)
$lvid_arr[]=$lehrveranstaltung_kompatibel_id;
if(isset($_GET['lehrfach_id']))
$lvid_arr[]=$_GET['lehrfach_id'];
+2 -1
View File
@@ -56,6 +56,7 @@ $prestudent_id=(isset($_GET['prestudent_id'])?$_GET['prestudent_id']:null);
$bestellung_id=(isset($_GET['bestellung_id'])?$_GET['bestellung_id']:null);
$lehreinheit_id=(isset($_GET['lehreinheit_id'])?$_GET['lehreinheit_id']:null);
$stundenplandev_id=(isset($_GET['stundenplandev_id'])?$_GET['stundenplandev_id']:null);
$anrechnung_id=(isset($_GET['anrechnung_id'])?$_GET['anrechnung_id']:null);
$datum_obj = new datum();
$user=(isset($_GET['user'])?$_GET['user']:null);
@@ -63,7 +64,7 @@ $notiz_id = (isset($_GET['notiz_id'])?$_GET['notiz_id']:null);
if(is_null($notiz_id))
{
if(!$notiz->getNotiz($erledigt, $projekt_kurzbz, $projektphase_id, $projekttask_id, $uid, $person_id, $prestudent_id, $bestellung_id, $user, $lehreinheit_id, $stundenplandev_id))
if(!$notiz->getNotiz($erledigt, $projekt_kurzbz, $projektphase_id, $projekttask_id, $uid, $person_id, $prestudent_id, $bestellung_id, $user, $lehreinheit_id, $stundenplandev_id, $anrechnung_id))
die($notiz->errormsg);
}
else
+1
View File
@@ -99,6 +99,7 @@ function saveNotiz($username, $passwort, $notiz)
$notiz_obj->prestudent_id = $notiz->prestudent_id;
$notiz_obj->bestellung_id = $notiz->bestellung_id;
$notiz_obj->lehreinheit_id = $notiz->lehreinheit_id;
$notiz_obj->anrechnung_id = $notiz->anrechnung_id;
if(!$notiz_obj->saveZuordnung())
return new SoapFault("Server", $notiz_obj->errormsg);
+14
View File
@@ -2609,6 +2609,20 @@ if(!$result = @$db->db_query("SELECT anwesenheit FROM campus.tbl_lvinfo LIMIT 1"
echo 'campus.tbl_lvinfo: Spalte "anwesenheit" hinzugefuegt!<br>';
}
// Notizzuordnung fuer Anrechnung
if(!$result = @$db->db_query("SELECT anrechnung_id FROM public.tbl_notizzuordnung LIMIT 1"))
{
$qry = "
ALTER TABLE public.tbl_notizzuordnung ADD COLUMN anrechnung_id integer;
ALTER TABLE public.tbl_notizzuordnung ADD CONSTRAINT fk_anrechnung_notizzuordnung FOREIGN KEY (anrechnung_id) REFERENCES lehre.tbl_anrechnung(anrechnung_id) ON DELETE CASCADE ON UPDATE CASCADE;
";
if(!$db->db_query($qry))
echo '<strong>public.tbl_notizzuordnung: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.tbl_notizzuordnung: neue Spalten anrechnung_id hinzugefuegt';
}
echo '<br><br><br>';
$tabellen=array(