mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-10-12 06:54:04 +00:00
icon fixes in request anrechnung; block request dispaly reason when lv is not in studienplan of logged in users prestudent history; added mehrsprachigkeit to anrechnung begruendung options in db; more phrasen;
This commit is contained in:
@@ -21,7 +21,7 @@ class NotizAnrechnung extends Notiz_Controller
|
||||
|
||||
// Load language phrases
|
||||
$this->loadPhrases([
|
||||
'ui'
|
||||
'ui', 'lehre'
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ class Anrechnungen extends FHCAPI_Controller
|
||||
|
||||
// Load language phrases
|
||||
$this->loadPhrases([
|
||||
'ui', 'lehre'
|
||||
'ui', 'lehre', 'anrechnung'
|
||||
]);
|
||||
|
||||
// Load models
|
||||
@@ -45,6 +45,12 @@ class Anrechnungen extends FHCAPI_Controller
|
||||
{
|
||||
$this->load->model('education/Anrechnungbegruendung_model', 'AnrechnungbegrueundungsModel');
|
||||
|
||||
// Begruendung in the users language, German name if no translation exists
|
||||
$language_index = getUserLanguage() == 'German' ? 1 : 2;
|
||||
$this->AnrechnungbegrueundungsModel->addSelect(
|
||||
'begruendung_id, COALESCE(bezeichnung_mehrsprachig[' . $language_index . '], bezeichnung) AS bezeichnung',
|
||||
false
|
||||
);
|
||||
$result = $this->AnrechnungbegrueundungsModel->load();
|
||||
if (isError($result)) {
|
||||
$this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
|
||||
@@ -118,22 +124,22 @@ class Anrechnungen extends FHCAPI_Controller
|
||||
: null;
|
||||
|
||||
$this->form_validation->set_rules('lehrveranstaltung_id', 'Lehrveranstaltung_id', 'required', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Lehrveranstaltung'])
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('lehre', 'lehrveranstaltung')])
|
||||
]);
|
||||
|
||||
$this->form_validation->set_rules('begruendung', 'Begruendung', 'required', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Begruendung'])
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('anrechnung', 'begruendung')])
|
||||
]);
|
||||
|
||||
if($_POST['begruendung'] == 2)
|
||||
{
|
||||
$this->form_validation->set_rules('lehrveranstaltung_id_kompatibel', 'Lehrveranstaltung_id', 'required', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Lehrveranstaltung Kompatibel'])
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('anrechnung', 'lehrveranstaltung_bez_kompatibel')])
|
||||
]);
|
||||
}
|
||||
|
||||
$this->form_validation->set_rules('genehmigtVon', 'GenehmigtVon', 'required', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'GenehmigtVon'])
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('anrechnung', 'genehmigtVon')])
|
||||
]);
|
||||
|
||||
if ($this->form_validation->run() == false)
|
||||
@@ -190,22 +196,22 @@ class Anrechnungen extends FHCAPI_Controller
|
||||
$_POST['genehmigtVon'] = (isset($formData['genehmigt_von']) && !empty($formData['genehmigt_von'])) ? $formData['genehmigt_von'] : null;
|
||||
|
||||
$this->form_validation->set_rules('lehrveranstaltung_id', 'Lehrveranstaltung_id', 'required', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Lehrveranstaltung'])
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('lehre', 'lehrveranstaltung')])
|
||||
]);
|
||||
|
||||
$this->form_validation->set_rules('begruendung', 'Begruendung', 'required', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Begruendung'])
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('anrechnung', 'begruendung')])
|
||||
]);
|
||||
|
||||
if($_POST['begruendung'] == 2)
|
||||
{
|
||||
$this->form_validation->set_rules('lehrveranstaltung_id_kompatibel', 'Lehrveranstaltung_id', 'required', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Lehrveranstaltung Kompatibel'])
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('anrechnung', 'lehrveranstaltung_bez_kompatibel')])
|
||||
]);
|
||||
}
|
||||
|
||||
$this->form_validation->set_rules('genehmigtVon', 'GenehmigtVon', 'required', [
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'GenehmigtVon'])
|
||||
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => $this->p->t('anrechnung', 'genehmigtVon')])
|
||||
]);
|
||||
|
||||
if ($this->form_validation->run() == false)
|
||||
|
||||
@@ -76,6 +76,13 @@ class CreateAnrechnung extends Auth_Controller
|
||||
|
||||
// Get Anrechnungsbegruendungen
|
||||
$this->load->model('education/Anrechnungbegruendung_model', 'AnrechnungbegruendungModel');
|
||||
|
||||
// Begruendung in the users language, German name if no translation exists
|
||||
$language_index = getUserLanguage() == 'German' ? 1 : 2;
|
||||
$this->AnrechnungbegruendungModel->addSelect(
|
||||
'begruendung_id, COALESCE(bezeichnung_mehrsprachig[' . $language_index . '], bezeichnung) AS bezeichnung',
|
||||
false
|
||||
);
|
||||
$begruendung_arr = getData($this->AnrechnungbegruendungModel->load());
|
||||
|
||||
$viewData = array(
|
||||
@@ -94,6 +101,12 @@ class CreateAnrechnung extends Auth_Controller
|
||||
{
|
||||
$prestudent_id = $this->input->post('prestudent_id');
|
||||
$studiensemester_kurzbz = $this->input->post('studiensemester_kurzbz');
|
||||
|
||||
// Exit if user has no permission for the Studiengang of the student
|
||||
if (!$this->anrechnunglib->isBerechtigtForPrestudent(self::BERECHTIGUNG_ANRECHNUNG_ANLEGEN, 's', $prestudent_id))
|
||||
{
|
||||
$this->terminateWithJsonError($this->p->t('ui', 'keineBerechtigung'));
|
||||
}
|
||||
|
||||
// Get Student UID
|
||||
$student_uid = $this->StudentModel->getUID($prestudent_id);
|
||||
@@ -136,6 +149,19 @@ class CreateAnrechnung extends Auth_Controller
|
||||
{
|
||||
$this->terminateWithJsonError($this->p->t('ui', 'errorFelderFehlen'));
|
||||
}
|
||||
|
||||
// Exit if user has no write permission for the Studiengang of the student
|
||||
if (!$this->anrechnunglib->isBerechtigtForPrestudent(self::BERECHTIGUNG_ANRECHNUNG_ANLEGEN, 'suid', $prestudent_id))
|
||||
{
|
||||
$this->terminateWithJsonError($this->p->t('ui', 'keineBerechtigung'));
|
||||
}
|
||||
|
||||
// Exit if the Lehrveranstaltung is not one of the LVs the form offers for this student
|
||||
$result = $this->LehrveranstaltungModel->getLvsByStudent($this->StudentModel->getUID($prestudent_id), $studiensemester_kurzbz);
|
||||
if (!in_array($lehrveranstaltung_id, array_column(hasData($result) ? getData($result) : array(), 'lehrveranstaltung_id')))
|
||||
{
|
||||
$this->terminateWithJsonError($this->p->t('anrechnung', 'lvNichtZugeteilt'));
|
||||
}
|
||||
|
||||
// Exit if application already exists
|
||||
if (self::_applicationExists($lehrveranstaltung_id, $studiensemester_kurzbz, $prestudent_id))
|
||||
|
||||
@@ -88,6 +88,10 @@ class requestAnrechnung extends Auth_Controller
|
||||
// Get Anrechung data
|
||||
$anrechnungData = $this->anrechnunglib->getAnrechnungDataByLv($lehrveranstaltung_id, $studiensemester_kurzbz, $prestudent_id);
|
||||
|
||||
// Check if a new Antrag is for a Lehrveranstaltung outside the Studienplan (e.g. LV of a parallel study)
|
||||
$is_not_in_studienplan = !is_numeric($anrechnungData->anrechnung_id)
|
||||
&& !hasData($this->LehrveranstaltungModel->getLvInStudienplan($prestudent_id, $lehrveranstaltung_id));
|
||||
|
||||
// Get Antrag data
|
||||
$antragData = $this->anrechnunglib->getAntragData($prestudent_id, $studiensemester_kurzbz, $lehrveranstaltung_id, $anrechnungData->anrechnung_id);
|
||||
|
||||
@@ -95,7 +99,8 @@ class requestAnrechnung extends Auth_Controller
|
||||
'antragData' => $antragData,
|
||||
'anrechnungData' => $anrechnungData,
|
||||
'is_expired' => $is_expired,
|
||||
'is_blocked' => $is_blocked
|
||||
'is_blocked' => $is_blocked,
|
||||
'is_not_in_studienplan' => $is_not_in_studienplan
|
||||
);
|
||||
|
||||
$this->load->view('lehre/anrechnung/requestAnrechnung.php', $viewData);
|
||||
@@ -154,7 +159,7 @@ class requestAnrechnung extends Auth_Controller
|
||||
// Exit if application already exists
|
||||
if (self::_applicationExists($lehrveranstaltung_id, $studiensemester_kurzbz, $prestudent_id))
|
||||
{
|
||||
return $this->outputJsonError($this->p->t('anrechnung', 'antragBereitsGestellt'));
|
||||
return $this->outputJsonError($this->p->t('global', 'antragBereitsGestellt'));
|
||||
}
|
||||
|
||||
// Exit if application is a past ( < actual ) studysemester
|
||||
@@ -162,6 +167,30 @@ class requestAnrechnung extends Auth_Controller
|
||||
{
|
||||
return $this->outputJsonError($this->p->t('anrechnung', 'antragNichtFuerVerganganeSS'));
|
||||
}
|
||||
|
||||
// Exit if student is not assigned to the Lehrveranstaltung
|
||||
if (!hasData($this->LehrveranstaltungModel->getLvByStudent($this->_uid, $studiensemester_kurzbz, $lehrveranstaltung_id)))
|
||||
{
|
||||
return $this->outputJsonError($this->p->t('anrechnung', 'lvNichtZugeteilt'));
|
||||
}
|
||||
|
||||
// Exit if Lehrveranstaltung is not in the Studienplan of the student (e.g. LV of a parallel study)
|
||||
if (!hasData($this->LehrveranstaltungModel->getLvInStudienplan($prestudent_id, $lehrveranstaltung_id)))
|
||||
{
|
||||
return $this->outputJsonError($this->p->t('anrechnung', 'lvNichtImStudienplan'));
|
||||
}
|
||||
|
||||
// Exit if application deadline is expired
|
||||
if ($this->_isExpired($studiensemester_kurzbz))
|
||||
{
|
||||
return $this->outputJsonError($this->p->t('anrechnung', 'deadlineUeberschritten'));
|
||||
}
|
||||
|
||||
// Exit if Lehrveranstaltung was already graded with application blocking grades
|
||||
if (self::_LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id))
|
||||
{
|
||||
return $this->outputJsonError($this->p->t('anrechnung', 'antragBenotungBlockiert'));
|
||||
}
|
||||
|
||||
// Upload document
|
||||
$result = self::_uploadFile();
|
||||
|
||||
@@ -59,7 +59,7 @@ class AnrechnungLib
|
||||
// Load LV, but check if student is assigned to that LV. Break, if not.
|
||||
if(!$lv = getData($this->ci->LehrveranstaltungModel->getLvByStudent($uid, $studiensemester_kurzbz, $lv_id))[0])
|
||||
{
|
||||
show_error('You are not assigned to this course yet.');
|
||||
show_error($this->ci->p->t('anrechnung', 'lvNichtZugeteilt'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -788,7 +788,7 @@ class AnrechnungLib
|
||||
$result = $this->ci->AnrechnungModel->load($anrechnung_id);
|
||||
if (!hasData($result))
|
||||
{
|
||||
showError('Anrechnung existiert nicht');
|
||||
show_error('Failed loading Anrechnung');
|
||||
}
|
||||
|
||||
// Get lectors of lehrveranstaltung
|
||||
|
||||
@@ -61,7 +61,7 @@ class Anrechnung_model extends DB_Model
|
||||
if ($this->db->trans_status() === false)
|
||||
{
|
||||
$this->db->trans_rollback();
|
||||
return error('Failed inserting Anrechnung', EXIT_ERROR);
|
||||
return error($this->p->t('ui', 'fehlerBeimSpeichern'), EXIT_ERROR);
|
||||
}
|
||||
|
||||
return success($lastInsert_anrechnung_id);
|
||||
@@ -166,7 +166,7 @@ class Anrechnung_model extends DB_Model
|
||||
// Get last Anrechnungstatus
|
||||
if (!$result = getData($this->AnrechnungModel->getLastAnrechnungstatus($anrechnung_id))[0])
|
||||
{
|
||||
return error('Failed loading Anrechnung');
|
||||
return error($this->p->t('ui', 'fehlerBeimLesen'));
|
||||
}
|
||||
|
||||
$last_status = $result->status_kurzbz;
|
||||
@@ -175,7 +175,7 @@ class Anrechnung_model extends DB_Model
|
||||
// Exit, if last status is not approved / rejected
|
||||
if ($last_status != self::ANRECHNUNGSTATUS_APPROVED && $last_status != self::ANRECHNUNGSTATUS_REJECTED)
|
||||
{
|
||||
return error('Nothing to withdraw. Application is still in progress');
|
||||
return error($this->p->t('anrechnung', 'keineGenehmigungZumZuruecknehmen'));
|
||||
}
|
||||
|
||||
// Start DB transaction
|
||||
@@ -197,7 +197,7 @@ class Anrechnung_model extends DB_Model
|
||||
if ($this->db->trans_status() === false)
|
||||
{
|
||||
$this->db->trans_rollback();
|
||||
return error('Failed withdrawing Genehmigung', EXIT_ERROR);
|
||||
return error($this->p->t('anrechnung', 'antragNichtZurueckgenommen'), EXIT_ERROR);
|
||||
}
|
||||
return success();
|
||||
|
||||
@@ -211,21 +211,31 @@ class Anrechnung_model extends DB_Model
|
||||
*/
|
||||
public function getAnrechnungsData($prestudent_id)
|
||||
{
|
||||
// Names in the users language, German if no translation exists
|
||||
$english = getUserLanguage() != 'German';
|
||||
$language_index = $english ? 2 : 1;
|
||||
$lv_bezeichnung = $english
|
||||
? 'COALESCE(NULLIF(lehre.tbl_lehrveranstaltung.bezeichnung_english, \'\'), lehre.tbl_lehrveranstaltung.bezeichnung)'
|
||||
: 'lehre.tbl_lehrveranstaltung.bezeichnung';
|
||||
$lv_comp_bezeichnung = $english
|
||||
? 'COALESCE(NULLIF(lv_comp.bezeichnung_english, \'\'), lv_comp.bezeichnung)'
|
||||
: 'lv_comp.bezeichnung';
|
||||
|
||||
$qry = '
|
||||
SELECT
|
||||
lehre.tbl_anrechnung.anrechnung_id,
|
||||
lehre.tbl_anrechnung.prestudent_id,
|
||||
lehre.tbl_anrechnung.lehrveranstaltung_id,
|
||||
lehre.tbl_lehrveranstaltung.bezeichnung AS bez_lehrveranstaltung,
|
||||
lehre.tbl_anrechnung_begruendung.bezeichnung AS begruendung,
|
||||
lehre.tbl_anrechnung_anrechnungstatus.status_kurzbz AS status,
|
||||
' . $lv_bezeichnung . ' AS bez_lehrveranstaltung,
|
||||
COALESCE(lehre.tbl_anrechnung_begruendung.bezeichnung_mehrsprachig[' . $language_index . '], lehre.tbl_anrechnung_begruendung.bezeichnung) AS begruendung,
|
||||
COALESCE(lehre.tbl_anrechnungstatus.bezeichnung_mehrsprachig[' . $language_index . '], lehre.tbl_anrechnung_anrechnungstatus.status_kurzbz) AS status,
|
||||
genehmigt_von,
|
||||
lehre.tbl_anrechnung.insertamum,
|
||||
lehre.tbl_anrechnung.insertvon,
|
||||
lehre.tbl_anrechnung.updateamum,
|
||||
lehre.tbl_anrechnung.updatevon,
|
||||
lehrveranstaltung_id_kompatibel,
|
||||
lv_comp.bezeichnung as lehrveranstaltung_bez_kompatibel,
|
||||
' . $lv_comp_bezeichnung . ' as lehrveranstaltung_bez_kompatibel,
|
||||
count(nz.notizzuordnung_id) AS notizen_anzahl
|
||||
FROM
|
||||
lehre.tbl_anrechnung
|
||||
|
||||
@@ -31,7 +31,7 @@ class Anrechnungszeitraum_model extends DB_Model
|
||||
|
||||
if (isError($result))
|
||||
{
|
||||
return error('Fehler bei Anrechnungszeitraum speichern.');
|
||||
return error($this->p->t('ui', 'fehlerBeimSpeichern'));
|
||||
}
|
||||
|
||||
// Return new anrechnungszeitraum_id
|
||||
@@ -50,7 +50,7 @@ class Anrechnungszeitraum_model extends DB_Model
|
||||
|
||||
if (isError($result))
|
||||
{
|
||||
return error('Fehler bei Anrechnungszeitraum löschen.');
|
||||
return error($this->p->t('anrechnung', 'fehlerBeimLoeschen'));
|
||||
}
|
||||
|
||||
return success($result->retval);
|
||||
@@ -78,7 +78,7 @@ class Anrechnungszeitraum_model extends DB_Model
|
||||
|
||||
if (isError($result))
|
||||
{
|
||||
return error('Fehler bei Anrechnungszeitraum update.');
|
||||
return error($this->p->t('ui', 'fehlerBeimSpeichern'));
|
||||
}
|
||||
|
||||
return success($result->retval);
|
||||
|
||||
@@ -658,6 +658,26 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
return $this->execQuery($query, array($uid, $studiensemester_kurzbz, $lehrveranstaltung_id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the Lehrveranstaltung if it is in a Studienplan of the prestudent.
|
||||
* Checks the Studienplaene of all statuses, because the status of a future semester can be missing.
|
||||
* @param $prestudent_id
|
||||
* @param $lehrveranstaltung_id
|
||||
* @return array|null
|
||||
*/
|
||||
public function getLvInStudienplan($prestudent_id, $lehrveranstaltung_id)
|
||||
{
|
||||
$query = '
|
||||
SELECT DISTINCT spl.lehrveranstaltung_id
|
||||
FROM public.tbl_prestudentstatus ps
|
||||
JOIN lehre.tbl_studienplan_lehrveranstaltung spl USING (studienplan_id)
|
||||
WHERE ps.prestudent_id = ?
|
||||
AND spl.lehrveranstaltung_id = ?;
|
||||
';
|
||||
|
||||
return $this->execQuery($query, array($prestudent_id, $lehrveranstaltung_id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Lehreinheit.
|
||||
*
|
||||
|
||||
@@ -141,7 +141,8 @@ if (defined("CIS4")) {
|
||||
</div>
|
||||
|
||||
<button type="submit"
|
||||
class="btn btn-outline-secondary col-auto"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
|
||||
class="btn btn-outline-secondary col-auto"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -179,9 +180,11 @@ if (defined("CIS4")) {
|
||||
</li>
|
||||
<li class="list-group-item list-group-item-secondary"><?php echo $this->p->t('anrechnung', 'genehmigungNegativKenntnisseNichtGleichwertigWeilHinweis'); ?></li>
|
||||
</ol>
|
||||
<textarea class="form-control" name="begruendung" id="approveAnrechnungUebersicht-begruendung"
|
||||
<textarea class="form-control"
|
||||
name="begruendung" id="approveAnrechnungUebersicht-begruendung"
|
||||
rows="2"
|
||||
placeholder="<?php echo $this->p->t('anrechnung', 'textUebernehmenOderEigenenBegruendungstext'); ?>" required></textarea>
|
||||
placeholder="<?php echo $this->p->t('anrechnung', 'textUebernehmenOderEigenenBegruendungstext'); ?>"
|
||||
required></textarea>
|
||||
</div>
|
||||
|
||||
<!-- Action Button 'Abbrechen'-->
|
||||
|
||||
@@ -11,7 +11,7 @@ $includesArray = array(
|
||||
'jquery3' => true,
|
||||
'jqueryui1' => true,
|
||||
'bootstrap5' => true,
|
||||
'fontawesome4' => true,
|
||||
'fontawesome6' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'cis'=>true,
|
||||
@@ -36,8 +36,10 @@ $includesArray = array(
|
||||
'anrechnung' => array(
|
||||
'deadlineUeberschritten',
|
||||
'benotungDerLV',
|
||||
'lvNichtImStudienplan',
|
||||
'anrechnungEctsTextBeiUeberschreitung',
|
||||
'anrechnungEctsTooltipTextBeiUeberschreitung'
|
||||
'anrechnungEctsTooltipTextBeiUeberschreitung',
|
||||
'hoechstgrenzeUeberschritten'
|
||||
),
|
||||
'person' => array(
|
||||
'student',
|
||||
@@ -158,9 +160,9 @@ else
|
||||
</div>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
Total ECTS: <span id="sumEctsTotal"><?php echo number_format($antragData->sumEctsSchulisch + $antragData->sumEctsBeruflich, 1) ?></span>
|
||||
[ Schulisch: <span id="sumEctsSchulisch"><?php echo $antragData->sumEctsSchulisch ?></span> |
|
||||
Beruflich: <span id="sumEctsBeruflich"><?php echo $antragData->sumEctsBeruflich ?></span> ]
|
||||
<?php echo $this->p->t('anrechnung', 'totalEcts'); ?>: <span id="sumEctsTotal"><?php echo number_format($antragData->sumEctsSchulisch + $antragData->sumEctsBeruflich, 1) ?></span>
|
||||
[ <?php echo $this->p->t('anrechnung', 'schulisch'); ?>: <span id="sumEctsSchulisch"><?php echo $antragData->sumEctsSchulisch ?></span> |
|
||||
<?php echo $this->p->t('anrechnung', 'beruflich'); ?>: <span id="sumEctsBeruflich"><?php echo $antragData->sumEctsBeruflich ?></span> ]
|
||||
<div class="p-1 align-items-center" id="requestAnrechnung-maxEctsUeberschrittenMsg"></div>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -184,43 +186,31 @@ else
|
||||
<div class="col-lg-12">
|
||||
<div class="border border-dark border-3 rounded p-3" >
|
||||
<p ><?php echo $this->p->t('anrechnung', 'antragStellenText'); ?></p>
|
||||
|
||||
<div class="ps-3 ">
|
||||
|
||||
<div class="form-check mb-1">
|
||||
|
||||
<input class="form-check-input" type="radio" name="begruendung" value="1" <?php echo $anrechnungData->begruendung_id == '1' ? 'checked' : ''; ?> required />
|
||||
<?php echo $this->p->t('anrechnung', 'antragStellenWegenZeugnis'); ?> 
|
||||
<div class="d-inline" id="requestAnrechnung-anrechnungGrundZeugnisTooltip" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-html="true"
|
||||
data-bs-title="<?php echo $this->p->t('anrechnung', 'anrechnungGrundZeugnisTooltipText'); ?>" >
|
||||
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-check mb-1">
|
||||
|
||||
<input class="form-check-input" type="radio" name="begruendung" value="5" <?php echo $anrechnungData->begruendung_id == '5' ? 'checked' : ''; ?> required />
|
||||
<?php echo $this->p->t('anrechnung', 'antragStellenWegenHochschulzeugnis'); ?> 
|
||||
<div class="d-inline" id="requestAnrechnung-anrechnungGrundHochschulzeugnisTooltip" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-html="true"
|
||||
data-bs-title="<?php echo $this->p->t('anrechnung', 'anrechnungGrundZeugnisTooltipText'); ?>">
|
||||
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="form-check mb-1">
|
||||
|
||||
<input class="form-check-input" type="radio" name="begruendung" value="4" <?php echo $anrechnungData->begruendung_id == '4' ? 'checked' : ''; ?> required />
|
||||
<?php echo $this->p->t('anrechnung', 'antragStellenWegenPraxis'); ?> 
|
||||
<div class="d-inline" id="requestAnrechnung-anrechnungGrundBerufTooltip" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-html="true"
|
||||
data-bs-title="<?php echo $this->p->t('anrechnung', 'anrechnungGrundBerufTooltipText'); ?>">
|
||||
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -285,7 +275,7 @@ else
|
||||
required>
|
||||
<div class="mx-4 " id="requestAnrechnung-uploadTooltip" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-html="true"
|
||||
data-bs-title="<?php echo $this->p->t('ui', 'uploadTooltipText'); ?>">
|
||||
<i class="fa fa-lg fa-question-circle-o" aria-hidden="true"></i>
|
||||
<i class="fa-regular fa-lg fa-circle-question" aria-hidden="true"></i>
|
||||
</div>
|
||||
<a class="mx-4 float-end <?php echo !empty($anrechnungData->dms_id) ? '' : 'visually-hidden' ?>"
|
||||
id="requestAnrechnung-downloadDocLink"
|
||||
@@ -293,9 +283,6 @@ else
|
||||
target="_blank"><?php echo htmlentities($anrechnungData->dokumentname) ?>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -303,38 +290,35 @@ else
|
||||
<!-- Herkunft der Kenntnisse -->
|
||||
<div class="row mb-3">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<span class="fw-bold"><?php echo $this->p->t('anrechnung', 'herkunftDerKenntnisse'); ?></span> 
|
||||
<div class="d-inline" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-html="true" data-bs-title="<?php echo $this->p->t('anrechnung', 'anrechnungInfoTooltipText'); ?>">
|
||||
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<textarea class="form-control" name="anmerkung" rows="1" id="requestAnrechnung-herkunftDerKenntnisse"
|
||||
maxlength="<?php echo CHAR_LENGTH125 ?>" required><?php echo $anrechnungData->anmerkung; ?></textarea>
|
||||
<small><span class="text-muted float-end"><?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-herkunftDerKenntnisse-charCounter"><?php echo CHAR_LENGTH125 ?></span></span></small>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<span class="fw-bold"><?php echo $this->p->t('anrechnung', 'herkunftDerKenntnisse'); ?></span> 
|
||||
<div class="d-inline" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-html="true" data-bs-title="<?php echo $this->p->t('anrechnung', 'anrechnungInfoTooltipText'); ?>">
|
||||
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<textarea class="form-control" name="anmerkung" rows="1" id="requestAnrechnung-herkunftDerKenntnisse"
|
||||
maxlength="<?php echo CHAR_LENGTH125 ?>" required><?php echo $anrechnungData->anmerkung; ?></textarea>
|
||||
<small><span class="text-muted float-end"><?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-herkunftDerKenntnisse-charCounter"><?php echo CHAR_LENGTH125 ?></span></span></small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Bestaetigung-->
|
||||
<div class="row mb-3">
|
||||
<div class="col-lg-12">
|
||||
<div class="border border-3 rounded border-dark p-3" >
|
||||
|
||||
<div class="form-check">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input border-3" type="checkbox" name="bestaetigung" required>
|
||||
<small class=" fw-bold"><?php echo $this->p->t('anrechnung', 'bestaetigungstext'); ?></small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Button 'Anrechnung beantragen'-->
|
||||
<div class="float-end">
|
||||
<input type="submit" id="requestAnrechnung-apply-anrechnung" class="btn btn-primary"
|
||||
<input type="submit" id="requestAnrechnung-apply-anrechnung" class="btn btn-primary"
|
||||
value="<?php echo $this->p->t('anrechnung', 'anrechnungBeantragen'); ?>">
|
||||
</div>
|
||||
</form>
|
||||
@@ -343,16 +327,18 @@ else
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<!-- Status panel -->
|
||||
<div class="alert text-center" id="requestAnrechnung-status">Status: <span class="fw-bold text-uppercase" id="requestAnrechnung-status_kurzbz"
|
||||
data-status_kurzbz="<?php echo $anrechnungData->status_kurzbz ?>">
|
||||
<?php echo $anrechnungData->status; ?>
|
||||
</span>
|
||||
<div class="alert text-center" id="requestAnrechnung-status"><?php echo $this->p->t('global', 'status'); ?>:
|
||||
<span class="fw-bold text-uppercase" id="requestAnrechnung-status_kurzbz"
|
||||
data-status_kurzbz="<?php echo $anrechnungData->status_kurzbz ?>">
|
||||
<?php echo $anrechnungData->status; ?>
|
||||
</span>
|
||||
</div>
|
||||
<!-- Sperregrund panel (hidden by default) -->
|
||||
<div class="alert bg-danger-subtle text-center visually-hidden" id="requestAnrechnung-sperre"
|
||||
data-anrechnung_id="<?php echo empty($anrechnungData->anrechnung_id) ? '' : $anrechnungData->anrechnung_id; ?>"
|
||||
data-expired="<?php echo json_encode($is_expired); ?>"
|
||||
data-blocked="<?php echo json_encode($is_blocked) ?>">
|
||||
data-blocked="<?php echo json_encode($is_blocked) ?>"
|
||||
data-not_in_studienplan="<?php echo json_encode($is_not_in_studienplan) ?>">
|
||||
</div>
|
||||
<?php $this->load->view('lehre/anrechnung/requestAnrechnungImportant'); ?>
|
||||
</div>
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
<?php if (isset($this->config->item('display_infobox')['fristen']) && $this->config->item('display_infobox')['fristen'] === true): ?>
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<div class="bg-info-subtle accordion-button" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#Beantragung" aria-expanded="true" aria-controls="Beantragung">
|
||||
<div class="d-flex">
|
||||
|
||||
<div class="d-flex">
|
||||
<div class="bg-info-subtle accordion-button" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#Beantragung" aria-expanded="true" aria-controls="Beantragung">
|
||||
|
||||
<i class="me-2 fa fa-lg fa-info-circle" aria-hidden="true"></i> 
|
||||
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoFristenTitle'); ?>
|
||||
</div>
|
||||
@@ -23,9 +23,10 @@
|
||||
<?php if (isset($this->config->item('display_infobox')['referenzbeispiele_ects']) && $this->config->item('display_infobox')['referenzbeispiele_ects'] === true): ?>
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<div class="bg-info-subtle accordion-button collapsed" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#Referenzbeispiele" aria-expanded="false" aria-controls="Referenzbeispiele">
|
||||
<div class="d-flex">
|
||||
<div class="d-flex">
|
||||
<div class="bg-info-subtle accordion-button collapsed" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#Referenzbeispiele" aria-expanded="false" aria-controls="Referenzbeispiele">
|
||||
|
||||
<i class="me-2 fa fa-lg fa-info-circle" aria-hidden="true"></i> 
|
||||
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungTitle'); ?>
|
||||
</div>
|
||||
@@ -63,9 +64,10 @@
|
||||
<?php if (isset($this->config->item('display_infobox')['herkunft_kenntnisse']) && $this->config->item('display_infobox')['herkunft_kenntnisse'] === true): ?>
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<div class="bg-info-subtle accordion-button collapsed" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#HerkunftKenntnisse" aria-expanded="false" aria-controls="HerkunftKenntnisse">
|
||||
<div class="d-flex">
|
||||
<div class="d-flex">
|
||||
<div class="bg-info-subtle accordion-button collapsed" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#HerkunftKenntnisse" aria-expanded="false" aria-controls="HerkunftKenntnisse">
|
||||
|
||||
<i class="me-2 fa fa-lg fa-info-circle" aria-hidden="true"></i> 
|
||||
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoHerkunftKenntnisseTitle'); ?>
|
||||
</div>
|
||||
|
||||
@@ -152,7 +152,6 @@ if (defined("CIS4")) {
|
||||
<div class="col-lg-8">
|
||||
<table class="table table-bordered table-condensed table-fixed mb-0">
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<th class="col-4">
|
||||
<?php echo ucfirst($this->p->t('global', 'zgv')); ?>
|
||||
@@ -192,7 +191,6 @@ if (defined("CIS4")) {
|
||||
<?php endif; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -215,7 +213,6 @@ if (defined("CIS4")) {
|
||||
<?php echo $this->p->t('anrechnung', 'empfehlungdatum'); ?>:
|
||||
<span
|
||||
id="reviewAnrechnungDetail-empfehlungAm"><?php echo $empfehlungData->empfehlung_am ?></span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@@ -383,9 +380,9 @@ if (defined("CIS4")) {
|
||||
<div class="mb-5 alert text-center">
|
||||
<?php echo $this->p->t('global', 'status'); ?>:
|
||||
<b><span class="text-uppercase" id="reviewAnrechnungDetail-status_kurzbz"
|
||||
data-status_kurzbz="<?php echo $anrechnungData->status_kurzbz ?>">
|
||||
<?php echo $anrechnungData->status; ?>
|
||||
</span></b>
|
||||
data-status_kurzbz="<?php echo $anrechnungData->status_kurzbz ?>">
|
||||
<?php echo $anrechnungData->status; ?>
|
||||
</span></b>
|
||||
</div>
|
||||
|
||||
<?php $this->load->view('lehre/anrechnung/reviewAnrechnungInfo'); ?>
|
||||
|
||||
@@ -106,7 +106,8 @@ if (defined("CIS4")) {
|
||||
<h3 class="fw-normal">
|
||||
<?php echo $this->p->t('anrechnung', 'anrechnungenPruefen'); ?>
|
||||
<small class="text-secondary fs-6">|
|
||||
<?php echo ucfirst($this->p->t('global', 'uebersicht')); ?></small>
|
||||
<?php echo ucfirst($this->p->t('global', 'uebersicht')); ?>
|
||||
</small>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
@@ -130,7 +131,8 @@ if (defined("CIS4")) {
|
||||
?>
|
||||
</div>
|
||||
<button type="submit"
|
||||
class="btn btn-outline-secondary col-auto"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
|
||||
class="btn btn-outline-secondary col-auto"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -148,10 +150,12 @@ if (defined("CIS4")) {
|
||||
<?php echo $this->p->t('anrechnung', 'empfehlungenNegativQuestion'); ?>
|
||||
</h4>
|
||||
<div class="mb-4">
|
||||
<b><span> <?php echo $this->p->t('anrechnung', 'bitteBegruendungAngeben'); ?></span>
|
||||
<b>
|
||||
<span> <?php echo $this->p->t('anrechnung', 'bitteBegruendungAngeben'); ?></span>
|
||||
<span class="text-danger">
|
||||
<?php echo $this->p->t('anrechnung', 'begruendungWirdFuerAlleUebernommen'); ?>
|
||||
</span></b>
|
||||
</span>
|
||||
</b>
|
||||
</div>
|
||||
|
||||
<ul class="list-group mb-4">
|
||||
|
||||
@@ -134,7 +134,7 @@ export default {
|
||||
event: 'tableBuilt',
|
||||
handler: async () => {
|
||||
|
||||
await this.$p.loadCategory(['anrechnungen', 'global', 'ui', 'lehre']);
|
||||
await this.$p.loadCategory(['anrechnung', 'global', 'ui', 'lehre']);
|
||||
|
||||
const setHeader = (field, text) => {
|
||||
const col = this.$refs.table.tabulator.getColumn(field);
|
||||
@@ -158,6 +158,10 @@ export default {
|
||||
setHeader( 'genehmigt_von', this.$p.t('anrechnung', 'genehmigtVon'));
|
||||
setHeader( 'notizen_anzahl', this.$p.t('anrechnung', 'existingNotes'));
|
||||
setHeader( 'insertamum', this.$p.t('global', 'datum'));
|
||||
setHeader( 'actions', this.$p.t('global', 'aktionen'));
|
||||
|
||||
// Render the action buttons again, their phrases can arrive after the data
|
||||
this.$refs.table.tabulator.redraw(true);
|
||||
}
|
||||
}
|
||||
];
|
||||
@@ -280,6 +284,12 @@ export default {
|
||||
resetLvKompatibel(){
|
||||
this.formData.lehrveranstaltung_id_kompatibel = null;
|
||||
this.handleInput();
|
||||
},
|
||||
lvBezeichnung(lv) {
|
||||
// English name only if the LV has one
|
||||
return this.$p.user_language.value != 'German' && lv.bezeichnung_english
|
||||
? lv.bezeichnung_english
|
||||
: lv.bezeichnung;
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -380,7 +390,7 @@ export default {
|
||||
:key="entry.lehrveranstaltung_id"
|
||||
:value="entry.lehrveranstaltung_id"
|
||||
>
|
||||
{{entry.bezeichnung}} Semester {{entry.semester}} {{entry.lehrform_kurzbz}}
|
||||
{{lvBezeichnung(entry)}} Semester {{entry.semester}} {{entry.lehrform_kurzbz}}
|
||||
</option>
|
||||
</form-input>
|
||||
</div>
|
||||
@@ -407,7 +417,7 @@ export default {
|
||||
<div v-if="formData.begruendung_id == '2'" class="row mb-3">
|
||||
<form-input
|
||||
type="select"
|
||||
label="Lehrveranstaltung Kompatibel"
|
||||
:label="$p.t('anrechnung/lehrveranstaltung_bez_kompatibel')"
|
||||
name="lehrveranstaltung_id_kompatibel"
|
||||
v-model="formData.lehrveranstaltung_id_kompatibel"
|
||||
>
|
||||
@@ -416,7 +426,7 @@ export default {
|
||||
:key="entry.lehrveranstaltung_id"
|
||||
:value="entry.lehrveranstaltung_id"
|
||||
>
|
||||
{{entry.bezeichnung}} Semester {{entry.semester}} {{entry.lehrform_kurzbz}}
|
||||
{{lvBezeichnung(entry)}} Semester {{entry.semester}} {{entry.lehrform_kurzbz}}
|
||||
</option>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
@@ -181,9 +181,10 @@ var requestAnrechnung = {
|
||||
const anrechnung_id = $('#requestAnrechnung-sperre').data('anrechnung_id');
|
||||
const is_expired = $('#requestAnrechnung-sperre').data('expired');
|
||||
const is_blocked = $('#requestAnrechnung-sperre').data('blocked');
|
||||
const is_not_in_studienplan = $('#requestAnrechnung-sperre').data('not_in_studienplan');
|
||||
|
||||
// If Deadline is expired or is blocked by grades of LV, AND not already angerechnet
|
||||
if ((is_expired || is_blocked) && anrechnung_id == '')
|
||||
// If Deadline is expired, LV is blocked by grades or LV is not in the Studienplan, AND not already angerechnet
|
||||
if ((is_expired || is_blocked || is_not_in_studienplan) && anrechnung_id == '')
|
||||
{
|
||||
// Hide status panel
|
||||
$('#requestAnrechnung-status').hide();
|
||||
@@ -194,7 +195,10 @@ var requestAnrechnung = {
|
||||
.html(function(){
|
||||
let sperregrund = FHC_PhrasesLib.t('global', 'bearbeitungGesperrt') + ': ';
|
||||
|
||||
if (is_expired) {
|
||||
if (is_not_in_studienplan) {
|
||||
sperregrund += FHC_PhrasesLib.t('anrechnung', 'lvNichtImStudienplan');
|
||||
}
|
||||
else if (is_expired) {
|
||||
sperregrund += FHC_PhrasesLib.t('anrechnung', 'deadlineUeberschritten');
|
||||
}
|
||||
else if (is_blocked){
|
||||
@@ -294,7 +298,7 @@ var requestAnrechnung = {
|
||||
)
|
||||
{
|
||||
$('#requestAnrechnung-maxEctsUeberschrittenMsg')
|
||||
.html("<span class='flex-fill fw-bold'>Die Höchstgrenze für Anrechnungen gem. § 12 Abs. 3 Fachhochschulgesetz ist überschritten. </span><i class='mx-4 fa fa-lg fa-info-circle'></i>")
|
||||
.html("<span class='flex-fill fw-bold'>" + FHC_PhrasesLib.t("anrechnung", "hoechstgrenzeUeberschritten") + " </span><i class='mx-4 fa fa-lg fa-info-circle'></i>")
|
||||
.addClass('bg-danger-subtle')
|
||||
.tooltip({
|
||||
title: FHC_PhrasesLib.t("anrechnung", "anrechnungEctsTooltipTextBeiUeberschreitung"),
|
||||
@@ -351,11 +355,12 @@ var requestAnrechnung = {
|
||||
},
|
||||
getMsgBeiEctsUeberschreitung: function(begruendung_id, ects, sumEctsSchulisch, sumEctsBeruflich){
|
||||
|
||||
const phraseUsed = '<span class="d-block">Die Höchstgrenze für Anrechnungen gem. § 12 Abs. 3 Fachhochschulgesetz wird überschritten.</span><span class=" fw-bold">Bisherige ECTS + ECTS dieser LV: Total: {0} [ Schulisch: {1} | Beruflich: {2} ]</span> ';
|
||||
|
||||
return $('<div class="p-1" id="sumEctsMsg"></div>')
|
||||
.html(phraseUsed) // schulisch
|
||||
.append('<i class="fa fa-lg fa-info-circle"></i>')
|
||||
.html(FHC_PhrasesLib.t("anrechnung", "anrechnungEctsTextBeiUeberschreitung",
|
||||
begruendung_id == 4
|
||||
? [(sumEctsSchulisch + sumEctsBeruflich + ects), sumEctsSchulisch, (sumEctsBeruflich + ects)] // beruflich
|
||||
: [(sumEctsSchulisch + sumEctsBeruflich + ects), (sumEctsSchulisch + ects), sumEctsBeruflich])) // schulisch
|
||||
.append(' <i class="fa fa-lg fa-info-circle"></i>')
|
||||
.addClass('bg-danger-subtle')
|
||||
.tooltip({
|
||||
title: FHC_PhrasesLib.t("anrechnung", "anrechnungEctsTooltipTextBeiUeberschreitung"),
|
||||
|
||||
@@ -13,7 +13,7 @@ if ($result = $db->db_query("SELECT 1 FROM information_schema.columns WHERE tabl
|
||||
UPDATE lehre.tbl_anrechnung_begruendung SET bezeichnung_mehrsprachig = ARRAY[
|
||||
bezeichnung,
|
||||
CASE bezeichnung
|
||||
WHEN 'externes Zeugnis' THEN 'external certificate'
|
||||
WHEN 'schulisches Zeugnis' THEN 'school certificate'
|
||||
WHEN 'kompatible Lehrveranstaltung' THEN 'compatible course'
|
||||
WHEN 'Prüfung' THEN 'examination'
|
||||
WHEN 'berufliche Praxis' THEN 'professional practice'
|
||||
|
||||
@@ -13742,6 +13742,46 @@ Any unusual occurrences
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'anrechnung',
|
||||
'phrase' => 'keineGenehmigungZumZuruecknehmen',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Es gibt keine Genehmigung oder Ablehnung zum Zurücknehmen. Der Antrag ist noch in Bearbeitung.',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'There is no approval or rejection to withdraw. The application is still in progress.',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'anrechnung',
|
||||
'phrase' => 'fehlerBeimLoeschen',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Fehler beim Löschen',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Error while deleting',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'anrechnung',
|
||||
|
||||
Reference in New Issue
Block a user