Merge branch 'master' into lvgruppen

This commit is contained in:
Andreas Österreicher
2019-01-29 08:23:23 +01:00
4 changed files with 110 additions and 46 deletions
@@ -78,6 +78,7 @@ class InfoCenter extends Auth_Controller
'showDetails' => 'infocenter:r',
'unlockPerson' => 'infocenter:rw',
'saveFormalGeprueft' => 'infocenter:rw',
'getPrestudentData' => 'infocenter:r',
'getLastPrestudentWithZgvJson' => 'infocenter:r',
'getZgvInfoForPrestudent' => 'infocenter:r',
'saveBewPriorisierung' => 'infocenter:rw',
@@ -263,6 +264,17 @@ class InfoCenter extends Auth_Controller
$this->output->set_content_type('application/json')->set_output(json_encode($json));
}
/**
* Gets prestudent data for a person in json format
* @param $person_id
*/
public function getPrestudentData($person_id)
{
$prestudentdata = $this->_loadPrestudentData($person_id);
$this->output->set_content_type('application/json')->set_output(json_encode($prestudentdata['zgvpruefungen']));
}
/**
* Gets prestudent that was last modified in json format, for ZGV übernehmen
* @param $person_id
@@ -98,9 +98,6 @@
<form method="post"
action="#" class="zgvform">
<input type="hidden" name="prestudentid" value="<?php echo $zgvpruefung->prestudent_id ?>" class="prestudentidinput">
<input type="hidden" name="studiensemester" value="<?php echo $studiensemester ?>" id="studiensemester_<?php echo $zgvpruefung->prestudent_id ?>">
<input type="hidden" name="isfreigegeben" class="isfreigegeben"
value="<?php echo isset($zgvpruefung->prestudentstatus->bestaetigtam) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent' && $zgvpruefung->studiengangtyp === 'b' ? 1 : 0 ?>" id="isfreigegeben_<?php echo $zgvpruefung->prestudent_id ?>">
<div class="row">
<div class="col-lg-<?php echo $columns[0] ?>">
<div class="form-group">
+12 -5
View File
@@ -176,10 +176,17 @@ function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranst
// Lehreinheit ermitteln
$error = false;
$qry = "SELECT lehreinheit_id FROM campus.vw_student_lehrveranstaltung "
. "WHERE uid=".$db->db_add_param($student_uid)." AND lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id)." "
. "ORDER BY lehreinheit_id ASC "
. "LIMIT 1";
$qry = "
SELECT
lehreinheit_id
FROM
campus.vw_student_lehrveranstaltung
WHERE
uid=".$db->db_add_param($student_uid)."
AND lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id)."
AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)."
ORDER BY lehreinheit_id ASC
LIMIT 1";
if($result = $db->db_query($qry))
{
@@ -1209,7 +1216,7 @@ if(!$error)
$rolle->bestaetigtam = $_POST['bestaetigtam'];
if($_POST['bestaetigtam']=='')
$rolle->bestaetigtvon = null;
$rolle->bewerbung_abgeschicktamum = $_POST['bewerbung_abgeschicktamum'];
$rolle->orgform_kurzbz = $_POST['orgform_kurzbz'];
$rolle->studienplan_id = $_POST['studienplan_id'];
+86 -38
View File
@@ -4,6 +4,7 @@ const CALLED_PATH = FHC_JS_DATA_STORAGE_OBJECT.called_path;
const CONTROLLER_URL = BASE_URL + "/"+CALLED_PATH;
const RTFREIGABE_MESSAGE_VORLAGE = "InfocenterRTfreigegeben";
const RTFREIGABE_MESSAGE_VORLAGE_QUER = "InfocenterRTfreigegQuer";
const RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ = "InfocenterRTfreigegQuerKurz";
const STGFREIGABE_MESSAGE_VORLAGE = "InfocenterSTGfreigegeben";
/**
@@ -277,6 +278,9 @@ var InfocenterDetails = {
{
FHC_AjaxClient.showVeil();
InfocenterDetails.initFrgMessageSend(data.retval.prestudent_id, rtfreigabe);
InfocenterDetails._refreshZgv();
FHC_AjaxClient.hideVeil();
InfocenterDetails._refreshLog();
}
else if (data.error === 2 && parseInt(data.retval.prestudent_id, 10))
{
@@ -460,48 +464,98 @@ var InfocenterDetails = {
}
);
},
getPrestudentData: function(personid, callback)
{
FHC_AjaxClient.ajaxCallGet(
CALLED_PATH + "/getPrestudentData/"+encodeURIComponent(personid),
null,
{
successCallback: callback,
veilTimeout: 0
}
);
},
initFrgMessageSend: function(prestudentid, rtfreigabe)
{
var callback = function ()
var callback = function (data)
{
if (data == null)
return;
// check if a prestudent in same semester is already freigegeben - then not send message again
var freigegeben = false;
var prestudentids = $(".prestudentidinput");
var receiverPrestudentstatus = null;
if (prestudentids.length > 1)
//get prestudentstatus of message receiver
for(var i = 0; i < data.length; i++)
{
prestudentids.each(function()
{
var id = $(this).val();
if (parseInt(id) !== parseInt(prestudentid))
{
if ($("#studiensemester_"+id).val() === $("#studiensemester_"+prestudentid).val() && $("#isfreigegeben_"+id).val() === "1")
{
freigegeben = true;
return false;
}
}
}
);
if (data[i].prestudentstatus.prestudent_id === prestudentid)
{
receiverPrestudentstatus = data[i].prestudentstatus;
break;
}
}
if (receiverPrestudentstatus == null)
return;
//check other prestudentstati wether already freigegeben
for(var j = 0; j < data.length; j++)
{
var prestudent = data[j];
var prestudentstatus = prestudent.prestudentstatus;
var id = prestudentstatus.prestudent_id;
if (id !== prestudentid)
{
if (receiverPrestudentstatus.studiensemester_kurzbz === prestudentstatus.studiensemester_kurzbz
&& prestudentstatus.bestaetigtam !== null && prestudentstatus.status_kurzbz === "Interessent"
&& prestudent.studiengangtyp === "b")
{
freigegeben = true;
break;
}
}
}
var ausbildungssemester = receiverPrestudentstatus.ausbildungssemester;
var studiengangbezeichnung = receiverPrestudentstatus.studiengangbezeichnung;
var studiengangbezeichnung_englisch = receiverPrestudentstatus.studiengangbezeichnung_englisch;
var msgvars = {};
if (freigegeben)
{
InfocenterDetails._refreshLog();
//if already freigegeben, still send (shorter) message if Quereinsteiger
if (ausbildungssemester > 1)
{
msgvars = {
'ausbildungssemester': ausbildungssemester,
'studiengangbezeichnung': studiengangbezeichnung,
'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
};
InfocenterDetails.sendFreigabeMessage(prestudentid, RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ, msgvars);
}
}
else
{
var ausbildungssem = $("#ausbildungssem_" + prestudentid).val();
var vorlage_kurzbz = null;
var msgvars = {};
if (rtfreigabe)
{
vorlage_kurzbz = isNaN(ausbildungssem) || parseInt(ausbildungssem) === 1 ? RTFREIGABE_MESSAGE_VORLAGE : RTFREIGABE_MESSAGE_VORLAGE_QUER;
msgvars = {
'rtlink': FHC_JS_DATA_STORAGE_OBJECT.app_root + 'addons/bewerbung/cis/registration.php?active=aufnahme',
'ausbildungssemester': ausbildungssem
if (ausbildungssemester > 1)
{
vorlage_kurzbz = RTFREIGABE_MESSAGE_VORLAGE_QUER;
msgvars = {
/*'rtlink': FHC_JS_DATA_STORAGE_OBJECT.app_root + 'addons/bewerbung/cis/registration.php?active=aufnahme',*/
'ausbildungssemester': ausbildungssemester,
'studiengangbezeichnung': studiengangbezeichnung,
'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
}
}
else
{
vorlage_kurzbz = RTFREIGABE_MESSAGE_VORLAGE;
}
}
else
@@ -510,18 +564,16 @@ var InfocenterDetails = {
}
InfocenterDetails.sendFreigabeMessage(prestudentid, vorlage_kurzbz, msgvars);
}
FHC_AjaxClient.hideVeil();
};
InfocenterDetails._refreshZgv(
false,
//send message only after refresh to have current Ausbildungssemester
callback
);
var personid = $("#hiddenpersonid").val();
InfocenterDetails.getPrestudentData(
personid, callback
)
},
sendFreigabeMessage: function(prestudentid, vorlage_kurzbz, msgvars)
{
FHC_AjaxClient.ajaxCallPost(
'system/Messages/sendJson',
{
@@ -668,7 +720,7 @@ var InfocenterDetails = {
$(".freigabeModal").modal("hide");
var prestudent_id = this.id.substr(this.id.indexOf("_") + 1);
var data = {"prestudent_id": prestudent_id};
InfocenterDetails.saveFreigabe(data, true);
InfocenterDetails.saveFreigabe(data, true);//Reihungstestfreigabe
}
);
@@ -678,17 +730,17 @@ var InfocenterDetails = {
var prestudent_id = this.id.substr(this.id.indexOf("_") + 1);
var statusgrund_id = $("#frgstatusgrselect_" + prestudent_id + " select[name=frgstatusgrund]").val();
var data = {"prestudent_id": prestudent_id, "statusgrund_id": statusgrund_id};
InfocenterDetails.saveFreigabe(data);
InfocenterDetails.saveFreigabe(data);//Studiengangfreigabe
}
)
},
_refreshZgv: function(preserveCollapseState, callback)
_refreshZgv: function(preserveCollapseState)
{
var personid = $("#hiddenpersonid").val();
var collapsed = {};
//save if panel is collapsed to preserve collapse state
//check if panel is collapsed to preserve collapse state
if (preserveCollapseState)
{
$("#zgvpruefungen").find(".panel-collapse").each(
@@ -715,10 +767,6 @@ var InfocenterDetails = {
$("#"+i).addClass("in");
}
}
// variable callback executed after refresh
if (callback)
callback();
}
);
},