Statusgründe können im FAS beim Statuswechsel angegeben werden

This commit is contained in:
oesi
2017-02-17 16:38:47 +01:00
parent d25829fe18
commit 286bf4f0cc
7 changed files with 164 additions and 28 deletions
+9 -3
View File
@@ -49,7 +49,7 @@ function InteressentNeu()
// * - Hakerl "zum Reihungstest angetreten" muss angekreuzt sein
// * Wenn die Voraussetzungen erfuellt sind wird die Rolle Bewerber hinzugefuegt
// ****
function InteressentzuBewerber()
function InteressentzuBewerber(statusgrund_id)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('student-tree');
@@ -84,6 +84,8 @@ function InteressentzuBewerber()
req.add('prestudent_id', paramList);
req.add('status_kurzbz', 'Bewerber');
if(typeof(statusgrund_id)!='undefined')
req.add('statusgrund_id', statusgrund_id);
var response = req.executePOST();
@@ -114,7 +116,7 @@ function InteressentzuBewerber()
// * Wenn die Voraussetzungen erfuellt sind, dann wird die Matrikelnr
// * und UID generiert und der Studentendatensatz angelegt.
// ****
function InteressentzuStudent()
function InteressentzuStudent(statusgrund_id)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('student-tree');
@@ -146,6 +148,8 @@ function InteressentzuStudent()
req.add('type', 'BewerberZuStudent');
req.add('prestudent_id', paramList);
if(typeof(statusgrund_id)!='undefined')
req.add('statusgrund_id', statusgrund_id);
var response = req.executePOST();
@@ -170,7 +174,7 @@ function InteressentzuStudent()
// ****
// * Fuegt eine Rolle zu einem Interessenten hinzu
// ****
function InteressentAddRolle(rolle)
function InteressentAddRolle(rolle, statusgrund_id)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('student-tree');
@@ -209,6 +213,8 @@ function InteressentAddRolle(rolle)
req.add('prestudent_id', paramList);
req.add('status_kurzbz', rolle);
if(typeof(statusgrund_id)!='undefined')
req.add('statusgrund_id', statusgrund_id);
var response = req.executePOST();
+4
View File
@@ -679,6 +679,8 @@ if(!$error)
$prestd_neu->insertvon = $user;
$prestd_neu->bestaetigtam = date('Y-m-d');
$prestd_neu->bestaetigtvon = $user;
if(isset($_POST['statusgrund_id']))
$prestd_neu->statusgrund_id = $_POST['statusgrund_id'];
$prestd_neu->new = true;
if($prestd_neu->save_rolle())
@@ -1462,6 +1464,8 @@ if(!$error)
$rolle->insertvon = $user;
$rolle->bestaetigtam = date('Y-m-d');
$rolle->bestaetigtvon = $user;
if(isset($_POST['statusgrund_id']))
$rolle->statusgrund_id = $_POST['statusgrund_id'];
$rolle->new = true;
if($rolle->save_rolle())
+65 -10
View File
@@ -30,6 +30,7 @@ require_once('../../config/vilesci.config.inc.php');
require_once('../../config/global.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/statusgrund.class.php');
$user = get_uid();
$rechte = new benutzerberechtigung();
@@ -94,18 +95,72 @@ else
<toolbarbutton label="Status ändern " id="student-toolbar-status" type="menu">
<menupopup id="student-status-menu-popup" >
<menuitem id="student-toolbar-abbrecher" label="-> Abbrecher" oncommand="StudentAddRolle('Abbrecher','0')" disabled="false" tooltiptext="Student zum Abbrecher machen" hidden="true"/>
<menuitem id="student-toolbar-unterbrecher" label="-> Unterbrecher" oncommand="StudentAddRolle('Unterbrecher','0')" disabled="false" tooltiptext="Student zum Unterbrecher machen" hidden="true"/>
<menuitem id="student-toolbar-student" label="-> Student" oncommand="StudentUnterbrecherZuStudent()" disabled="false" tooltiptext="Ab/Unterbrecher wieder zum Studenten machen" hidden="true"/>
<menuitem id="student-toolbar-diplomand" label="-> Diplomand" oncommand="StudentAddRolle('Diplomand')" disabled="false" tooltiptext="Studenten zum Diplomanden machen" hidden="true"/>
<menuitem id="student-toolbar-absolvent" label="-> Absolvent" oncommand="StudentAddRolle('Absolvent')" disabled="false" tooltiptext="Studenten zum Absolventen machen" hidden="true"/>
<?php
<menuitem id="interessent-toolbar-zubewerber" label="-> Bewerber" oncommand="InteressentzuBewerber()" disabled="false" tooltiptext="Interessent zum Bewerber machen" hidden="true"/>
<menuitem id="interessent-toolbar-aufgenommener" label="-> Aufgenommener" oncommand="InteressentAddRolle('Aufgenommener')" disabled="false" tooltiptext="Interessent zum Aufgenommenen machen" hidden="true"/>
<menuitem id="interessent-toolbar-zustudent" label="-> Student" oncommand="InteressentzuStudent()" disabled="false" tooltiptext="Bewerber zu Studenten machen" hidden="true"/>
<menuitem id="interessent-toolbar-warteliste" label="-> Warteliste" oncommand="InteressentAddRolle('Wartender')" disabled="false" tooltiptext="Interessent zum Wartenden machen" hidden="true"/>
<menuitem id="interessent-toolbar-absage" label="-> Absage" oncommand="InteressentAddRolle('Abgewiesener')" disabled="false" tooltiptext="Interessent zum Absager machen" hidden="true"/>
/**
* Erstellt den Menuepunkt fuer den Statuswechsel
* Wenn ein Statusgrund vorhanden ist wird ein Submenue angezeigt fuer die Auswahl
* des Statusgrund. Wenn keine Statusgruende vorhanden sind wird nur ein normaler
* Menuepuntk angezeigt
*
* @param $gruende Array mit Statusgruenden
* @param $status_kurzbz Status
* @param $id HTML id des Menueeintrags
* @param $label HTML Label des Menueeintrages
* @param $command JS Funktion die aufgerufen werden soll
*/
function printStatuswechselMenuitem($gruende, $status_kurzbz, $id, $label, $command)
{
if(isset($gruende[$status_kurzbz]) && count($gruende[$status_kurzbz])>0)
{
echo '
<menu id="'.$id.'" label="'.$label.'">
<menupopup>';
foreach($gruende[$status_kurzbz] as $row)
{
$commandWithID = str_replace('STATUSGRUNDID',$row['statusgrund_id'],$command);
echo '<menuitem label="'.$row['bezeichnung'].'" oncommand="'.$commandWithID.'" disabled="false" tooltiptext="'.$row['beschreibung'].'"/>';
}
echo '
</menupopup>
</menu>
';
}
else
{
$command = str_replace('STATUSGRUNDID','',$command);
echo '<menuitem id="'.$id.'" label="'.$label.'" oncommand="'.$command.'" disabled="false" tooltiptext="Status ändern auf '.$status_kurzbz.'" hidden="true"/>';
}
}
// Statusgruende laden
$statusgrund = new statusgrund();
$statusgrund->getAll(true);
$gruende=array();
foreach($statusgrund->result as $row)
{
$gruende[$row->status_kurzbz][] = array(
'statusgrund_id'=>$row->statusgrund_id,
'bezeichnung'=>$row->bezeichnung_mehrsprachig[DEFAULT_LANGUAGE],
'beschreibung'=>$row->beschreibung[DEFAULT_LANGUAGE]
);
}
printStatuswechselMenuitem($gruende, 'Abbrecher', 'student-toolbar-abbrecher', 'Abbrecher', "StudentAddRolle('Abbrecher','0',undefined,'STATUSGRUNDID')");
printStatuswechselMenuitem($gruende, 'Unterbrecher', 'student-toolbar-unterbrecher', 'Unterbrecher', "StudentAddRolle('Unterbrecher','0',undefined,'STATUSGRUNDID')");
printStatuswechselMenuitem($gruende, 'Student', 'student-toolbar-student', 'Student', "StudentUnterbrecherZuStudent('STATUSGRUNDID')");
printStatuswechselMenuitem($gruende, 'Diplomand', 'student-toolbar-diplomand', 'Diplomand', "StudentAddRolle('Diplomand',undefined,undefined,'STATUSGRUNDID')");
printStatuswechselMenuitem($gruende, 'Absovlent', 'student-toolbar-absolvent', 'Absolvent', "StudentAddRolle('Absolvent',undefined,undefined,'STATUSGRUNDID')");
printStatuswechselMenuitem($gruende, 'Bewerber', 'interessent-toolbar-zubewerber', 'Bewerber', "InteressentzuBewerber('STATUSGRUNDID')");
printStatuswechselMenuitem($gruende, 'Aufgenommener', 'interessent-toolbar-aufgenommener', 'Aufgenommener', "InteressentAddRolle('Aufgenommener','STATUSGRUNDID')");
printStatuswechselMenuitem($gruende, 'Student', 'interessent-toolbar-zustudent', 'Student', "InteressentzuStudent('STATUSGRUNDID')");
printStatuswechselMenuitem($gruende, 'Warteliste', 'interessent-toolbar-warteliste', 'Wartender', "InteressentAddRolle('Wartender','STATUSGRUNDID')");
printStatuswechselMenuitem($gruende, 'Absage', 'interessent-toolbar-absage', 'Abgewiesener', "InteressentAddRolle('Abgewiesener','STATUSGRUNDID')");
?>
</menupopup>
</toolbarbutton>
<toolbarbutton id="student-toolbar-export" label="Export" oncommand="StudentExport()" disabled="false" image="../skin/images/ExcelIcon.png" tooltiptext="Daten ins Excel Exportieren"/>
+6 -4
View File
@@ -1900,7 +1900,7 @@ function StudentAnmeldungreihungstestHeute()
// ****
// * Einen Ab-/Unterbrecher wieder zum Studenten machen
// ****
function StudentUnterbrecherZuStudent()
function StudentUnterbrecherZuStudent(statusgrund_id)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('student-tree');
@@ -1911,7 +1911,7 @@ function StudentUnterbrecherZuStudent()
{
if(!isNaN(sem))
{
StudentAddRolle('Student', sem)
StudentAddRolle('Student', sem, undefined, statusgrund_id);
}
else
{
@@ -1932,7 +1932,7 @@ function StudentRolleAdd()
// ****
// * Fuegt eine Rolle zu einem Studenten hinzu
// ****
function StudentAddRolle(rolle, semester, studiensemester)
function StudentAddRolle(rolle, semester, studiensemester, statusgrund_id)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('student-tree');
@@ -1975,8 +1975,10 @@ function StudentAddRolle(rolle, semester, studiensemester)
req.add('prestudent_id', paramList);
req.add('status_kurzbz', rolle);
req.add('semester', semester);
if(typeof(studiensemester)!='unknown')
if(typeof(studiensemester)!='undefined')
req.add('studiensemester_kurzbz', studiensemester);
if(typeof(statusgrund_id)!='undefined')
req.add('statusgrund_id', statusgrund_id);
var response = req.executePOST();
+3 -3
View File
@@ -62,7 +62,7 @@ function StudentRolleInit(prestudent_id, status_kurzbz, studiensemester_kurzbz,
var statusgrund_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#statusgrund_id" ));
var rt_stufe = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#rt_stufe" ));
var neu = false;
StudentRolleLoadStatusgrund(status_kurzbz);
StudentRolleLoadStatusgrund(status_kurzbz, statusgrund_id);
}
else
{
@@ -111,11 +111,11 @@ function StudentRolleSpeichern()
window.close();
}
function StudentRolleLoadStatusgrund(status_kurzbz)
function StudentRolleLoadStatusgrund(status_kurzbz, statusgrund_id)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var menulistgrund = document.getElementById('student-rolle-menulist-statusgrund');
url='<?php echo APP_ROOT;?>rdf/statusgrund.rdf.php?status_kurzbz='+status_kurzbz+'&ts'+gettimestamp();
url='<?php echo APP_ROOT;?>rdf/statusgrund.rdf.php?status_kurzbz='+status_kurzbz+'&include_id='+statusgrund_id+'&ts'+gettimestamp();
try
{
+47
View File
@@ -91,6 +91,7 @@ class statusgrund extends basis_db
* Laedt die Gruende fuer einen Status
*
* @param $status_kurzbz Status zu dem die Gruende geladen werden sollen
* @param boolean $aktiv Gibt an ob nur aktive Eintraege geladen werden sollen
*/
public function getFromStatus($status_kurzbz, $aktiv=null)
{
@@ -132,5 +133,51 @@ class statusgrund extends basis_db
return true;
}
/**
* Laedt die Statusgruende
*
* @param boolean $aktiv Wenn true werden nur aktive geladen.
*/
public function getAll($aktiv=null)
{
$sprache = new sprache();
$bezeichnung_mehrsprachig = $sprache->getSprachQuery('bezeichnung_mehrsprachig');
$beschreibung = $sprache->getSprachQuery('beschreibung');
$qry = "
SELECT
*,".$bezeichnung_mehrsprachig.",".$beschreibung."
FROM
public.tbl_status_grund
";
if(!is_null($aktiv))
$qry.="WHERE aktiv=".($aktiv?'true':'false');
$qry.=" ORDER BY status_kurzbz, bezeichnung_mehrsprachig[0]";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new statusgrund();
$obj->statusgrund_id = $row->statusgrund_id;
$obj->status_kurzbz = $row->status_kurzbz;
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig', $row);
$obj->beschreibung = $sprache->parseSprachResult('beschreibung', $row);
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
return true;
}
}
?>
+22
View File
@@ -43,8 +43,17 @@ $oRdf->obj[$i]->setAttribut('beschreibung','-- keine Auswahl --',true);
$oRdf->obj[$i]->setAttribut('bezeichnung_mehrsprachig','-- keine Auswahl --',true);
$oRdf->addSequence('');
$include_id_found=false;
$include_id = '';
if(isset($_GET['include_id']))
{
$include_id = $_GET['include_id'];
}
foreach($statusgrund->result as $row)
{
if($include_id==$row->statusgrund_id)
$include_id_found=true;
$i=$oRdf->newObjekt($row->statusgrund_id);
$oRdf->obj[$i]->setAttribut('statusgrund_id',$row->statusgrund_id,true);
$oRdf->obj[$i]->setAttribut('status_kurzbz',$row->status_kurzbz,true);
@@ -54,5 +63,18 @@ foreach($statusgrund->result as $row)
$oRdf->addSequence($row->statusgrund_id);
}
if(!$include_id_found && $include_id!='')
{
$statusgrund->load($include_id);
$i=$oRdf->newObjekt($statusgrund->statusgrund_id);
$oRdf->obj[$i]->setAttribut('statusgrund_id',$statusgrund->statusgrund_id,true);
$oRdf->obj[$i]->setAttribut('status_kurzbz',$statusgrund->status_kurzbz,true);
$oRdf->obj[$i]->setAttribut('beschreibung',$statusgrund->beschreibung[DEFAULT_LANGUAGE],true);
$oRdf->obj[$i]->setAttribut('bezeichnung_mehrsprachig',$statusgrund->bezeichnung_mehrsprachig[DEFAULT_LANGUAGE],true);
$oRdf->addSequence($statusgrund->statusgrund_id);
}
$oRdf->sendRdfText();
?>