mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-19 16:02:15 +00:00
Added Antragssperre for Noten, that are defined in config array
. Added new config file . Added check, if LV was already graded and if grades are defined in configs 'blocking grades array'. If so, Anrechnung is not allowed. . Adapted GUI to process data via JS only Signed-off-by: cris-technikum <hainberg@technikum-wien.at>
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
|
||||
// Deadline for Application given as Time-Interval after Semesterstart.
|
||||
$config['interval_blocking_application'] = 'P1M';
|
||||
|
||||
// Lehrveranstaltungen with these grades will be blocked for application
|
||||
$config['grades_blocking_application'] = array(
|
||||
5, // nicht genügend
|
||||
6, // angerechnet
|
||||
9, // noch nicht eingetragen
|
||||
13, // nicht erfolgreich absolviert
|
||||
14, // nicht bestanden,
|
||||
15, // nicht teilgenommen
|
||||
18 // unentschuldigt
|
||||
);
|
||||
@@ -41,6 +41,9 @@ class requestAnrechnung extends Auth_Controller
|
||||
$this->load->helper('url');
|
||||
$this->load->helper('hlp_sancho_helper');
|
||||
|
||||
// Load configs
|
||||
$this->load->config('anrechnung');
|
||||
|
||||
// Load language phrases
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
@@ -82,6 +85,9 @@ class requestAnrechnung extends Auth_Controller
|
||||
// $is_expired = self::_checkAntragDeadline($studiensemester_kurzbz);
|
||||
$is_expired = false;
|
||||
|
||||
// Check if Lehrveranstaltung was already graded with application blocking grades
|
||||
$is_blocked = self::_LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id);
|
||||
|
||||
// Get Anrechung data
|
||||
$anrechnungData = $this->anrechnunglib->getAnrechnungDataByLv($lehrveranstaltung_id, $studiensemester_kurzbz, $prestudent_id);
|
||||
|
||||
@@ -91,7 +97,8 @@ class requestAnrechnung extends Auth_Controller
|
||||
$viewData = array(
|
||||
'antragData' => $antragData,
|
||||
'anrechnungData' => $anrechnungData,
|
||||
'is_expired' => $is_expired
|
||||
'is_expired' => $is_expired,
|
||||
'is_blocked' => $is_blocked
|
||||
);
|
||||
|
||||
$this->load->view('lehre/anrechnung/requestAnrechnung.php', $viewData);
|
||||
@@ -299,6 +306,31 @@ class requestAnrechnung extends Auth_Controller
|
||||
return $studiensemester_kurzbz == $actual_ss;
|
||||
}
|
||||
|
||||
private function _LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id)
|
||||
{
|
||||
// Get Note of Lehrveranstaltung
|
||||
$this->load->model('education/Lvgesamtnote_model', 'LvgesamtnoteModel');
|
||||
$result = $this->LvgesamtnoteModel->load(array(
|
||||
'student_uid' => $this->_uid,
|
||||
'studiensemester_kurzbz' => $studiensemester_kurzbz,
|
||||
'lehrveranstaltung_id' => $lehrveranstaltung_id
|
||||
)
|
||||
);
|
||||
|
||||
// If Lehrveranstaltung has Note
|
||||
if (hasData($result))
|
||||
{
|
||||
$note = getData($result)[0]->note;
|
||||
|
||||
// Check if Note is a blocking grade
|
||||
if (in_array($note, $this->config->item('grades_blocking_application')))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Upload file via DMS library.
|
||||
*
|
||||
|
||||
@@ -16,7 +16,8 @@ $this->load->view(
|
||||
'anerkennungNachgewiesenerKenntnisse',
|
||||
'antragStellen',
|
||||
'antragWurdeGestellt',
|
||||
'antragBereitsGestellt'
|
||||
'antragBereitsGestellt',
|
||||
'bearbeitungGesperrt'
|
||||
),
|
||||
'ui' => array(
|
||||
'hilfeZuDieserSeite',
|
||||
@@ -27,6 +28,10 @@ $this->load->view(
|
||||
'errorBestaetigungFehlt',
|
||||
'systemfehler'
|
||||
),
|
||||
'anrechnung' => array(
|
||||
'deadlineUeberschritten',
|
||||
'benotungDerLV'
|
||||
),
|
||||
'person' => array(
|
||||
'student',
|
||||
'personenkennzeichen'
|
||||
@@ -237,16 +242,18 @@ $this->load->view(
|
||||
<br><br><br><br>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<div class="alert text-center">Status: <b><span class="text-uppercase" id="requestAnrechnung-status_kurzbz"
|
||||
<!-- Status panel -->
|
||||
<div class="alert text-center" id="requestAnrechnung-status">Status: <b><span class="text-uppercase" id="requestAnrechnung-status_kurzbz"
|
||||
data-status_kurzbz="<?php echo $anrechnungData->status_kurzbz ?>">
|
||||
<?php echo $anrechnungData->status; ?>
|
||||
</span></b></div>
|
||||
<?php if ($is_expired): ?>
|
||||
<div class="alert alert-warning">
|
||||
<?php echo $this->p->t('global', 'bearbeitungGesperrt'); ?>
|
||||
<?php echo $is_expired && empty($antragData->anrechnung_id) ? ': ' . $this->p->t('anrechnung', 'deadlineUeberschritten') : ''; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</span></b>
|
||||
</div>
|
||||
<!-- Sperregrund panel (hidden by default) -->
|
||||
<div class="alert alert-danger text-center hidden" id="requestAnrechnung-sperre"
|
||||
data-anrechnung_id="<?php echo empty($antragData->anrechnung_id) ? '' : $antragData->anrechnung_id; ?>"
|
||||
data-expired="<?php echo json_encode($is_expired); ?>"
|
||||
data-blocked="<?php echo json_encode($is_blocked) ?>">
|
||||
</div>
|
||||
<br>
|
||||
<?php $this->load->view('lehre/anrechnung/requestAnrechnungImportant'); ?>
|
||||
</div>
|
||||
|
||||
@@ -18,6 +18,9 @@ $(function(){
|
||||
// Set chars counter for textarea 'Herkunft der Kenntnisse'
|
||||
requestAnrechnung.setCharsCounter();
|
||||
|
||||
// If Sperregrund exists: display Sperre panel, hide Status panel and disable all form elements
|
||||
requestAnrechnung.displaySperreIfHasSperregrund();
|
||||
|
||||
$('#requestAnrechnung-form').submit(function(e){
|
||||
|
||||
// Avoid form redirecting automatically
|
||||
@@ -85,7 +88,7 @@ var requestAnrechnung = {
|
||||
if (status_kurzbz != '')
|
||||
{
|
||||
// Disable all form elements
|
||||
$("#requestAnrechnung-form :input").prop("disabled", true);
|
||||
requestAnrechnung.disableFormFields();
|
||||
}
|
||||
},
|
||||
markAsBestaetigtIfAntragIsApplied: function(){
|
||||
@@ -96,6 +99,40 @@ var requestAnrechnung = {
|
||||
$("#requestAnrechnung-form :input[name='bestaetigung']").prop('checked', true);
|
||||
}
|
||||
},
|
||||
disableFormFields(){
|
||||
// Disable all form elements
|
||||
$("#requestAnrechnung-form :input").prop("disabled", true);
|
||||
},
|
||||
displaySperreIfHasSperregrund: function(){
|
||||
const anrechnung_id = $('#requestAnrechnung-sperre').data('anrechnung_id');
|
||||
const is_expired = $('#requestAnrechnung-sperre').data('expired');
|
||||
const is_blocked = $('#requestAnrechnung-sperre').data('blocked');
|
||||
|
||||
// If Deadline is expired or is blocked by grades of LV, AND not already angerechnet
|
||||
if ((is_expired || is_blocked) && anrechnung_id == '')
|
||||
{
|
||||
// Hide status panel
|
||||
$('#requestAnrechnung-status').hide();
|
||||
|
||||
// Show sperre panel
|
||||
$('#requestAnrechnung-sperre')
|
||||
.removeClass('hidden')
|
||||
.html(function(){
|
||||
let sperregrund = FHC_PhrasesLib.t('global', 'bearbeitungGesperrt') + ': ';
|
||||
|
||||
if (is_expired) {
|
||||
sperregrund += FHC_PhrasesLib.t('anrechnung', 'deadlineUeberschritten');
|
||||
}
|
||||
else if (is_blocked){
|
||||
sperregrund += FHC_PhrasesLib.t('anrechnung', 'benotungDerLV');
|
||||
}
|
||||
return "<b>"+ sperregrund + "</b>";
|
||||
})
|
||||
|
||||
// Disable all form elements
|
||||
requestAnrechnung.disableFormFields();
|
||||
}
|
||||
},
|
||||
initTooltips: function (){
|
||||
$('[data-toggle="tooltip"]').tooltip({
|
||||
delay: { "show": 200, "hide": 200 },
|
||||
|
||||
@@ -1474,7 +1474,26 @@ $phrases = array(
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'anrechnung',
|
||||
'phrase' => 'benotungDerLV',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Benotung der Lehrveranstaltung',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Grading of the course',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
//*************************** CORE/filter
|
||||
array(
|
||||
|
||||
Reference in New Issue
Block a user