Merge remote-tracking branch 'origin/master'

This commit is contained in:
Manfred
2023-08-24 14:28:58 +02:00
23 changed files with 1351 additions and 468 deletions
+85 -6
View File
@@ -37,6 +37,9 @@ class AnrechnungJob extends JOB_Controller
$this->load->helper('hlp_sancho_helper');
$this->load->library('AnrechnungLib');
// Load configs
$this->load->config('anrechnung');
}
/**
@@ -213,7 +216,7 @@ class AnrechnungJob extends JOB_Controller
'datentabelle' => $anrechnungen_table,
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
);
// Send mail
sendSanchoMail(
'AnrechnungAntragStellen',
@@ -227,6 +230,82 @@ class AnrechnungJob extends JOB_Controller
$this->logInfo('SUCCEDED: Sending emails to STGL about yesterdays new Anrechnungen succeded.');
}
// Send Sancho mail to LV-Leitung (fallback Lectors) that were requested for recommendation yesterday.
public function sendMailRecommendationRequests(){
$this->logInfo('Start AnrechnungJob sendMailRecommendationRequests to inform lecturers about yesterdays requests for recommendation.');
// Get Anrechnungen, für die gestern eine Empfehlung angefragt worden ist
$this->AnrechnungModel->addSelect('astat.anrechnung_id, astat.datum, astat.insertamum');
$this->AnrechnungModel->addDistinct('astat.anrechnung_id');
$this->AnrechnungModel->addJoin('lehre.tbl_anrechnung_anrechnungstatus astat', 'anrechnung_id');
$result = $this->AnrechnungModel->loadWhere('
studiensemester_kurzbz = (SELECT studiensemester_kurzbz FROM tbl_studiensemester WHERE now()::date BETWEEN start AND ende)
AND genehmigt_von IS NULL
AND empfehlung_anrechnung IS NULL
AND status_kurzbz = '. $this->db->escape(self::ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR) .' -- in Bearbeitung durch Lektor
AND NOW()::date = (astat.datum + interval \'1 day\') -- nur gestrige Empfehlungsanfrage
ORDER BY astat.anrechnung_id, astat.datum DESC, astat.insertamum DESC -- nur letzten status dabei prüfen
');
// Exit, wenn es gestern keine Empfehlungsanfragen gab
if (!hasData($result))
{
$this->logInfo('End AnrechnungJob sendMailRecommendationRequests, because no recommendations were requested yesterday.');
exit;
}
$anrechnung_id_arr = array_column(getData($result), 'anrechnung_id');
$arr_lvLector_arr = array();
foreach ($anrechnung_id_arr as $anrechnung_id)
{
// Get full name of Fachbereichsleitung or LV Leitung.
if($this->config->item('fbl') === TRUE)
{
$arr_lvLector_arr[] = $this->anrechnunglib->getLeitungOfLvOe($anrechnung_id);
}
else
{
$arr_lvLector_arr[] = $this->anrechnunglib->getLectors($anrechnung_id); // Returns LV Leitung. If not present, then all lectors of LV.
}
}
// Unique lector array to send only one mail per lector
$arr_lvLector_arr = array_unique($arr_lvLector_arr, SORT_REGULAR);
// Link to 'Anrechnungen prüfen' dashboard
$url =
CIS_ROOT. 'cis/index.php?menu='.
CIS_ROOT. 'cis/menu.php?content_id=&content='.
CIS_ROOT. index_page(). self::REVIEW_ANRECHNUNG_URI;
foreach ($arr_lvLector_arr as $lvLector_arr)
{
foreach ($lvLector_arr as $lector)
{
// Prepare mail content
$fields = array(
'vorname' => $lector->vorname,
'stgl_name' => 'Die Studiengangsleitung',
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
);
// Send mail
sendSanchoMail(
'AnrechnungEmpfehlungAnfordern',
$fields,
$lector->uid. '@'. DOMAIN,
'Deine Empfehlung wird benötigt zur Anerkennung nachgewiesener Kenntnisse'
);
}
}
$this->logInfo('SUCCEDED AnrechnungJob sendMailRecommendationRequests');
}
/**
* Send Sancho mail to students, whose Anrechnungen were approved 24 hours ago.
*/
@@ -308,7 +387,7 @@ class AnrechnungJob extends JOB_Controller
$db = new DB_Model();
$result = $db->execReadOnlyQuery($qry);
// Exit if there are no rejected Anrechnungen
if (!hasData($result))
{
@@ -361,9 +440,9 @@ html;
$result = $this->AnrechnungModel->loadWhere('
studiensemester_kurzbz = (
SELECT studiensemester_kurzbz FROM tbl_studiensemester WHERE now()::date BETWEEN start AND ende)
SELECT studiensemester_kurzbz FROM tbl_studiensemester WHERE now()::date BETWEEN start AND ende
)
AND genehmigt_von IS NULL
AND genehmigt_von IS NULL
AND empfehlung_anrechnung IS NULL
AND status_kurzbz = '. $this->db->escape(self::ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR) .' -- in Bearbeitung durch Lektor
AND NOW()::date = (astat.datum + interval \'1 week\') -- eine Woche nach Empfehlungsanfrage
@@ -376,7 +455,7 @@ html;
$this->logInfo('End AnrechnungJob sendMailRemindRecommendation, because no recommendations to be done.');
exit;
}
$anrechnung_id_arr = array_column(getData($result), 'anrechnung_id');
$arr_lvLector_arr = array();
@@ -435,7 +514,7 @@ html;
'vorname' => $stgl->vorname
);
}
return $stglMailAdress_arr;
}
// If not available, get assistance mail address
@@ -242,7 +242,7 @@ class approveAnrechnungDetail extends Auth_Controller
$empfehlungsanfrage_an = !isEmptyArray($result) ? implode(', ', array_column($result, 'fullname')) : '';
// Request Recommendation
if($this->anrechnunglib->requestRecommendation($anrechnung_id))
if ($this->anrechnunglib->requestRecommendation($anrechnung_id))
{
$retval[]= array(
'anrechnung_id' => $anrechnung_id,
@@ -254,31 +254,23 @@ class approveAnrechnungDetail extends Auth_Controller
);
}
/**
* Send mails to lectors
* NOTE: mails are sent at the end to ensure sending only ONE mail to each LV-Leitung or lector
* even if they are required for more recommendations
* */
if (!isEmptyArray($retval))
{
if ($this->config->item('send_mail') === TRUE)
{
$this->_sendSanchoMailToLectors($anrechnung_id);
}
// Output json to ajax
return $this->outputJsonSuccess($retval);
}
// Output json to ajax
if ($empfehlungsanfrage_an == '')
{
$this->terminateWithJsonError(
"Empfehlung wurde nicht angefordert,\nDer LV sind keine LektorInnen zugeteilt."
);
}
if (isEmptyArray($retval))
{
$this->terminateWithJsonError(
"Empfehlung wurde nicht angefordert,\nDer LV sind keine LektorInnen zugeteilt."
);
$this->terminateWithJsonError("Empfehlung wurde nicht angefordert");
}
$this->terminateWithJsonError($this->p->t('ui', 'errorNichtAusgefuehrt'));
else
{
// Output json to ajax
return $this->outputJsonSuccess($retval);
}
}
/**
@@ -249,19 +249,6 @@ class approveAnrechnungUebersicht extends Auth_Controller
}
}
/**
* Send mails
* NOTE: mails are sent at the end to ensure sending only ONE mail to each LV-Leitung or lector
* even if they are required for more recommendations
* */
if (!isEmptyArray($retval))
{
if ($this->config->item('send_mail') === TRUE)
{
$this->_sendSanchoMail($retval);
}
}
// Output json to ajax
if (isEmptyArray($retval))
{
@@ -273,7 +260,7 @@ class approveAnrechnungUebersicht extends Auth_Controller
$this->terminateWithJsonError('Es wurden keine Empfehlungen angefordert');
}
return $this->outputJsonSuccess($retval);
$this->outputJsonSuccess($retval);
}
/**
@@ -111,6 +111,8 @@ class requestAnrechnung extends Auth_Controller
$lehrveranstaltung_id = $this->input->post('lv_id');
$studiensemester_kurzbz = $this->input->post('studiensemester');
$bestaetigung = $this->input->post('bestaetigung');
$begruendung_ects = $this->input->post('begruendung_ects');
$begruendung_lvinhalt = $this->input->post('begruendung_lvinhalt');
// Validate data
if (empty($_FILES['uploadfile']['name']))
@@ -121,7 +123,9 @@ class requestAnrechnung extends Auth_Controller
if (isEmptyString($begruendung_id) ||
isEmptyString($anmerkung) ||
isEmptyString($lehrveranstaltung_id) ||
isEmptyString($studiensemester_kurzbz))
isEmptyString($studiensemester_kurzbz) ||
isEmptyString($begruendung_ects) ||
isEmptyString($begruendung_lvinhalt))
{
return $this->outputJsonError($this->p->t('ui', 'errorFelderFehlen'));
}
@@ -172,7 +176,9 @@ class requestAnrechnung extends Auth_Controller
$lehrveranstaltung_id,
$begruendung_id,
$lastInsert_dms_id,
$anmerkung
$anmerkung,
$begruendung_ects,
$begruendung_lvinhalt
);
if (isError($result))
+4
View File
@@ -174,6 +174,8 @@ class AnrechnungLib
$anrechnung_data->insertvon = '';
$anrechnung_data->studiensemester_kurzbz = '';
$anrechnung_data->empfehlung = '';
$anrechnung_data->begruendung_ects = '';
$anrechnung_data->begruendung_lvinhalt = '';
$anrechnung_data->status_kurzbz = '';
$anrechnung_data->status = getUserLanguage() == 'German' ? 'neu' : 'new';
$anrechnung_data->dokumentname = '';
@@ -894,6 +896,8 @@ class AnrechnungLib
$anrechnung_data->insertvon= $anrechnung->insertvon;
$anrechnung_data->studiensemester_kurzbz= $anrechnung->studiensemester_kurzbz;
$anrechnung_data->empfehlung= $anrechnung->empfehlung_anrechnung;
$anrechnung_data->begruendung_ects = $anrechnung->begruendung_ects;
$anrechnung_data->begruendung_lvinhalt = $anrechnung->begruendung_lvinhalt;
// Get last status_kurzbz
$result = $this->ci->AnrechnungModel->getLastAnrechnungstatus($anrechnung->anrechnung_id);
+1
View File
@@ -182,6 +182,7 @@ class MailLib
{
if ($this->sended == $this->email_number_per_time_range)
{
$this->sended = 0;
sleep($this->email_time_range); // Wait!!!
}
}
@@ -30,7 +30,7 @@ class Anrechnung_model extends DB_Model
*/
public function createAnrechnungsantrag(
$prestudent_id, $studiensemester_kurzbz, $lehrveranstaltung_id,
$begruendung_id, $dms_id, $anmerkung_student = null
$begruendung_id, $dms_id, $anmerkung_student = null, $begruendung_ects = null, $begruendung_lvinhalt = null
)
{
// Start DB transaction
@@ -44,6 +44,8 @@ class Anrechnung_model extends DB_Model
'dms_id' => $dms_id,
'studiensemester_kurzbz' => $studiensemester_kurzbz,
'anmerkung_student' => $anmerkung_student,
'begruendung_ects' => $begruendung_ects,
'begruendung_lvinhalt' => $begruendung_lvinhalt,
'insertvon' => $this->_uid
));
@@ -92,85 +92,93 @@ $this->load->view(
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6">
<div class="col-lg-4">
<table class="table table-bordered table-condensed table-fixed">
<tbody>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('person', 'studentIn')); ?></th>
<th class="col-xs-5"><?php echo ucfirst($this->p->t('person', 'studentIn')); ?></th>
<td><?php echo $antragData->vorname . ' ' . $antragData->nachname; ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('person', 'personenkennzeichen'); ?></th>
<th class="col-xs-5"><?php echo $this->p->t('person', 'personenkennzeichen'); ?></th>
<td><?php echo $antragData->matrikelnr ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('lehre', 'studiensemester')); ?></th>
<th class="col-xs-5"><?php echo ucfirst($this->p->t('lehre', 'studiensemester')); ?></th>
<td><?php echo $antragData->studiensemester_kurzbz ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('lehre', 'studiengang')); ?></th>
<th class="col-xs-5"><?php echo ucfirst($this->p->t('lehre', 'studiengang')); ?></th>
<td><?php echo $antragData->stg_bezeichnung ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?></th>
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?></th>
<td><?php echo $antragData->lv_bezeichnung ?></td>
</tr>
</tbody>
</table>
</div>
<div class="col-lg-6">
<table class="table table-bordered table-condensed table-fixed">
<tbody>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('lehre', 'ects'); ?></th>
<td colspan="3"><span id="ects"><?php echo $antragData->ects ?></span></td>
</tr>
<tr>
<th class="col-xs-4">
<?php echo $this->p->t('anrechnung', 'bisherAngerechneteEcts'); ?>
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'lektorInnen'); ?></th>
<td>
<?php $len = count($antragData->lektoren) - 1 ?>
<?php foreach ($antragData->lektoren as $key => $lektor): ?>
<?php echo $lektor->vorname . ' ' . $lektor->nachname;
echo $key === $len ? '' : ', ' ?>
<?php endforeach; ?>
</td>
</tr>
<tr>
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'ects'); ?></th>
<td><span id="ects"><?php echo $antragData->ects ?></span></td>
</tr>
<tr>
<th class="col-xs-5">
<?php echo $this->p->t('anrechnung', 'bisherAngerechneteEcts'); ?>
<span class="approveAnrechnungDetail-anrechnungEctsTooltip"
data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungEctsTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
</th>
<td colspan="3">
<td>
Total: <span id="sumEctsTotal"><?php echo number_format($antragData->sumEctsSchulisch + $antragData->sumEctsBeruflich, 1) ?></span>
[Schulisch: <span id="sumEctsSchulisch" value="<?php echo $antragData->sumEctsSchulisch ?>"><?php echo $antragData->sumEctsSchulisch ?></span> /
Beruflich: <span id="sumEctsBeruflich" value="<?php echo $antragData->sumEctsBeruflich ?>"><?php echo $antragData->sumEctsBeruflich ?></span> ]
<span id="sumEctsMsg"></span>
<span id="sumEctsMsg"></span>
</td>
</tr>
</tbody>
</table>
</div>
<div class="col-lg-8">
<table class="table table-bordered table-condensed table-fixed">
<tbody>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('lehre', 'lektorInnen'); ?></th>
<td colspan="3">
<?php $len = count($antragData->lektoren) - 1 ?>
<?php foreach ($antragData->lektoren as $key => $lektor): ?>
<?php echo $lektor->vorname . ' ' . $lektor->nachname;
echo $key === $len ? '' : ', ' ?>
<?php endforeach; ?>
</td>
</tr>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('global', 'zgv')); ?></th>
<td colspan="3"><?php echo $antragData->zgv ?></td>
<th class="col-xs-3"><?php echo ucfirst($this->p->t('global', 'zgv')); ?></th>
<td><?php echo $antragData->zgv ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'herkunftDerKenntnisse'); ?></th>
<td colspan="3"><?php echo $anrechnungData->anmerkung ?></td>
<td><?php echo $anrechnungData->anmerkung ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'nachweisdokumente'); ?></th>
<td colspan="3">
<td>
<a href="<?php echo current_url() . '/download?dms_id=' . $anrechnungData->dms_id; ?>"
target="_blank"><?php echo htmlentities($anrechnungData->dokumentname) ?></a>
</td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('global', 'begruendung'); ?></th>
<td colspan="3"><span id="begruendung_id" data-begruendung_id="<?php echo $anrechnungData->begruendung_id ?>" ><?php echo $anrechnungData->begruendung ?></span></td>
<td><span id="begruendung_id" data-begruendung_id="<?php echo $anrechnungData->begruendung_id ?>" ><?php echo $anrechnungData->begruendung ?></span></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'begruendungEctsLabel'); ?></th>
<td><span><?php echo $anrechnungData->begruendung_ects ?></span></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'begruendungLvinhaltLabel'); ?></th>
<td><span><?php echo $anrechnungData->begruendung_lvinhalt ?></span></td>
</tr>
</tbody>
</table>
@@ -1,5 +1,8 @@
<?php
const HERKUNFT_DER_KENNTNISSE_MAX_LENGTH = 125;
const CHAR_LENGTH125 = 125;
const CHAR_LENGTH150 = 150;
const CHAR_LENGTH500 = 500;
const CHAR_LENGTH1000 = 1000;
$this->load->view(
'templates/FHC-Header',
@@ -197,6 +200,46 @@ $this->load->view(
</div>
</div>
</div>
<!-- Begruendung ECTS -->
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<b><?php echo $this->p->t('anrechnung', 'begruendungEcts'); ?></b>&emsp;
<span class="requestAnrechnung-anrechnungInfoTooltip" data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungBegruendungEctsTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
</div>
<div class="panel-body">
<textarea class="form-control" name="begruendung_ects" rows="1" id="requestAnrechnung-begruendungEcts"
maxlength="<?php echo CHAR_LENGTH150 ?>" required><?php echo $anrechnungData->begruendung_ects; ?></textarea>
<small><span class="text-muted pull-right"><?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-begruendungEcts-charCounter"><?php echo CHAR_LENGTH150 ?></span></span></small>
</div>
</div>
</div>
</div>
<!-- Begruendung LV Inhalt -->
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<b><?php echo $this->p->t('anrechnung', 'begruendungLvinhalt'); ?></b>&emsp;
<span class="requestAnrechnung-anrechnungInfoTooltip" data-toggle="tooltip" data-placement="right"
title="<?php echo $this->p->t('anrechnung', 'anrechnungBegruendungLvinhaltTooltipText'); ?>">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>
</span>
</div>
<div class="panel-body">
<textarea class="form-control" name="begruendung_lvinhalt" rows="7" id="requestAnrechnung-begruendungLvinhalt"
minlength="<?php echo CHAR_LENGTH500 ?>"
maxlength="<?php echo CHAR_LENGTH1000 ?>" required><?php echo $anrechnungData->begruendung_lvinhalt; ?></textarea>
<small><span class="text-muted pull-right">&nbsp;/&nbsp;<?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-begruendungLvinhalt-charCounterMax"><?php echo CHAR_LENGTH1000 ?></span></span></small>
<small><span class="text-muted pull-right"><?php echo $this->p->t('ui', 'fehlendeMinZeichen'); ?> :<span id="requestAnrechnung-begruendungLvinhalt-charCounterMin"><?php echo CHAR_LENGTH500 ?></span></span></small>
</div>
</div>
</div>
</div>
<!-- Dokument Upload-->
<div class="row">
<div class="col-lg-12">
@@ -242,8 +285,8 @@ $this->load->view(
</div>
<div class="panel-body">
<textarea class="form-control" name="anmerkung" rows="1" id="requestAnrechnung-herkunftDerKenntnisse"
maxlength="<?php echo HERKUNFT_DER_KENNTNISSE_MAX_LENGTH ?>" required><?php echo $anrechnungData->anmerkung; ?></textarea>
<small><span class="text-muted pull-right"><?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-herkunftDerKenntnisse-charCounter"><?php echo HERKUNFT_DER_KENNTNISSE_MAX_LENGTH ?></span></span></small>
maxlength="<?php echo CHAR_LENGTH125 ?>" required><?php echo $anrechnungData->anmerkung; ?></textarea>
<small><span class="text-muted pull-right"><?php echo $this->p->t('ui', 'maxZeichen'); ?> :<span id="requestAnrechnung-herkunftDerKenntnisse-charCounter"><?php echo CHAR_LENGTH125 ?></span></span></small>
</div>
</div>
</div>
@@ -16,6 +16,23 @@
</div>
</div>
</div>
<!-- Referenzbeispiele ECTS Berechnung panel -->
<div class="panel panel-info">
<div class="panel-heading" role="tab" id="headingBegruendung">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseBegruendung"
aria-expanded="false" aria-controls="collapseBegruendung">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungTitle'); ?>
</a>
</h4>
</div>
<div id="collapseBegruendung" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingBegruendung">
<div class="panel-body">
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungBody'); ?>
</div>
</div>
</div>
<!-- Nachweisdokumente: Voraussetzung panel -->
<div class="panel panel-info">
<div class="panel-heading" role="tab" id="headingTwo">
@@ -84,49 +84,50 @@ $this->load->view(
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6">
<div class="col-lg-4">
<table class="table table-bordered table-condensed table-fixed">
<tbody>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('person', 'studentIn')); ?></th>
<th class="col-xs-5"><?php echo ucfirst($this->p->t('person', 'studentIn')); ?></th>
<td><?php echo $antragData->vorname . ' ' . $antragData->nachname; ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('person', 'personenkennzeichen'); ?></th>
<th class="col-xs-5"><?php echo $this->p->t('person', 'personenkennzeichen'); ?></th>
<td><?php echo $antragData->matrikelnr ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('lehre', 'studiensemester')); ?></th>
<th class="col-xs-5"><?php echo ucfirst($this->p->t('lehre', 'studiensemester')); ?></th>
<td><?php echo $antragData->studiensemester_kurzbz ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('lehre', 'studiengang')); ?></th>
<th class="col-xs-5"><?php echo ucfirst($this->p->t('lehre', 'studiengang')); ?></th>
<td><?php echo $antragData->stg_bezeichnung ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?></th>
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'lehrveranstaltung'); ?></th>
<td><?php echo $antragData->lv_bezeichnung ?></td>
</tr>
</tbody>
</table>
</div>
<div class="col-lg-6">
<table class="table table-bordered table-condensed table-fixed">
<tbody>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('lehre', 'ects'); ?></th>
<td><?php echo $antragData->ects ?></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('lehre', 'lektorInnen'); ?></th>
<td>
<tr>
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'ects'); ?></th>
<td><?php echo $antragData->ects ?></td>
</tr>
<tr>
<th class="col-xs-5"><?php echo $this->p->t('lehre', 'lektorInnen'); ?></th>
<td>
<?php $len = count($antragData->lektoren) - 1 ?>
<?php foreach ($antragData->lektoren as $key => $lektor): ?>
<?php echo $lektor->vorname . ' ' . $lektor->nachname;
echo $key === $len ? '' : ', ' ?>
<?php endforeach; ?>
</td>
</tr>
</td>
</tr>
</tbody>
</table>
</div>
<div class="col-lg-8">
<table class="table table-bordered table-condensed table-fixed">
<tbody>
<tr>
<th class="col-xs-4"><?php echo ucfirst($this->p->t('global', 'zgv')); ?></th>
<td><?php echo $antragData->zgv ?></td>
@@ -142,6 +143,14 @@ $this->load->view(
target="_blank"><?php echo htmlentities($anrechnungData->dokumentname) ?></a>
</td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'begruendungEctsLabel'); ?></th>
<td><span><?php echo $anrechnungData->begruendung_ects ?></span></td>
</tr>
<tr>
<th class="col-xs-4"><?php echo $this->p->t('anrechnung', 'begruendungLvinhaltLabel'); ?></th>
<td><span><?php echo $anrechnungData->begruendung_lvinhalt ?></span></td>
</tr>
</tbody>
</table>
@@ -15,6 +15,22 @@
</div>
</div>
</div>
<div class="panel panel-info">
<div class="panel-heading" role="tab" id="headingBegruendung">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseBegruendung"
aria-expanded="false" aria-controls="collapseBegruendung">
<i class="fa fa-lg fa-info-circle" aria-hidden="true"></i>&ensp;
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungTitle'); ?>
</a>
</h4>
</div>
<div id="collapseBegruendung" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingBegruendung">
<div class="panel-body">
<?php echo $this->p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungBody'); ?>
</div>
</div>
</div>
<div class="panel panel-info">
<div class="panel-heading" role="tab" id="headingZero">
<h4 class="panel-title">
@@ -98,9 +98,9 @@ if($stsem=='')
//$note = $_REQUEST["note"];
if(!$rechte->isBerechtigt('admin',0) &&
!$rechte->isBerechtigt('admin',$lv_obj->studiengang_kz) &&
!$rechte->isBerechtigt('lehre',$lv_obj->studiengang_kz))
if(!$rechte->isBerechtigt('admin', 0) &&
!$rechte->isBerechtigt('admin', $lv_obj->studiengang_kz) &&
!$rechte->isBerechtigt('lehre', $lv_obj->studiengang_kz))
{
$qry = "SELECT lehreinheit_id FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
@@ -117,11 +117,11 @@ if(!$rechte->isBerechtigt('admin',0) &&
}
}
function savenote($db,$lvid, $student_uid, $note, $punkte=null)
function savenote($db, $lvid, $student_uid, $note, $punkte = null)
{
global $stsem, $user, $p, $noten_anmerkung;
$jetzt = date("Y-m-d H:i:s");
$punkte = str_replace(',','.',$punkte);
$punkte = str_replace(',', '.', $punkte);
//Ermitteln ob der Student diesem Kurs zugeteilt ist
$qry = "SELECT 1 FROM campus.vw_student_lehrveranstaltung WHERE uid=".$db->db_add_param($student_uid)." AND lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER);
if($result = $db->db_query($qry))
@@ -207,13 +207,12 @@ if (isset($_REQUEST["submit"]))
$note = $_REQUEST["note"];
$punkte = (isset($_REQUEST["punkte"])?$_REQUEST["punkte"]:'');
$response = savenote($db,$lvid, $student_uid, $note, $punkte);
$response = savenote($db, $lvid, $student_uid, $note, $punkte);
echo $response;
}
else
{
foreach ($_POST as $row=>$val)
foreach ($_POST as $row => $val)
{
if(mb_strstr(mb_strtolower($row), 'matrikelnr_'))
{
@@ -232,7 +231,7 @@ if (isset($_REQUEST["submit"]))
$response.="\nNote oder Punkte fehlen";
continue;
}
$punkte=str_replace(',','.', $punkte);
$punkte=str_replace(',', '.', $punkte);
//check ob statt Matrikelnummer nicht bereits student_uid (Moodle Grade Import) vorliegt..
$student = new student();
@@ -241,7 +240,7 @@ if (isset($_REQUEST["submit"]))
//UID ermitteln
if(!$student_uid = $student->getUidFromMatrikelnummer($matrikelnummer))
{
$response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht',array($matrikelnummer));
$response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht', array($matrikelnummer));
continue;
}
}
@@ -268,7 +267,7 @@ if (isset($_REQUEST["submit"]))
}
}
$val=savenote($db,$lvid, $student_uid, $note, $punkte);
$val=savenote($db, $lvid, $student_uid, $note, $punkte);
if($val!='neu' && $val!='update' && $val!='update_f')
$response.=$val;
}
@@ -20,33 +20,33 @@
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
* Manuela Thamer <manuela.thamer@technikum-wien.at>
*/
require_once ('../../../../config/cis.config.inc.php');
require_once ('../../../../config/global.config.inc.php');
require_once ('../../../../include/functions.inc.php');
require_once ('../../../../include/lehrveranstaltung.class.php');
require_once ('../../../../include/studiengang.class.php');
require_once ('../../../../include/studiensemester.class.php');
require_once ('../../../../include/lehreinheit.class.php');
require_once ('../../../../include/benutzerberechtigung.class.php');
require_once ('../../../../include/uebung.class.php');
require_once ('../../../../include/beispiel.class.php');
require_once ('../../../../include/studentnote.class.php');
require_once ('../../../../include/datum.class.php');
require_once ('../../../../include/legesamtnote.class.php');
require_once ('../../../../include/lvgesamtnote.class.php');
require_once ('../../../../include/zeugnisnote.class.php');
require_once ('../../../../include/pruefung.class.php');
require_once ('../../../../include/person.class.php');
require_once ('../../../../include/benutzer.class.php');
require_once ('../../../../include/mitarbeiter.class.php');
require_once ('../../../../include/mail.class.php');
require_once ('../../../../include/phrasen.class.php');
require_once ('../../../../include/note.class.php');
require_once ('../../../../include/notenschluessel.class.php');
require_once ('../../../../include/studienplan.class.php');
require_once ('../../../../include/addon.class.php');
require_once ('../../../../include/mobilitaet.class.php');
require_once ('../../../../include/student.class.php');
require_once('../../../../config/cis.config.inc.php');
require_once('../../../../config/global.config.inc.php');
require_once('../../../../include/functions.inc.php');
require_once('../../../../include/lehrveranstaltung.class.php');
require_once('../../../../include/studiengang.class.php');
require_once('../../../../include/studiensemester.class.php');
require_once('../../../../include/lehreinheit.class.php');
require_once('../../../../include/benutzerberechtigung.class.php');
require_once('../../../../include/uebung.class.php');
require_once('../../../../include/beispiel.class.php');
require_once('../../../../include/studentnote.class.php');
require_once('../../../../include/datum.class.php');
require_once('../../../../include/legesamtnote.class.php');
require_once('../../../../include/lvgesamtnote.class.php');
require_once('../../../../include/zeugnisnote.class.php');
require_once('../../../../include/pruefung.class.php');
require_once('../../../../include/person.class.php');
require_once('../../../../include/benutzer.class.php');
require_once('../../../../include/mitarbeiter.class.php');
require_once('../../../../include/mail.class.php');
require_once('../../../../include/phrasen.class.php');
require_once('../../../../include/note.class.php');
require_once('../../../../include/notenschluessel.class.php');
require_once('../../../../include/studienplan.class.php');
require_once('../../../../include/addon.class.php');
require_once('../../../../include/mobilitaet.class.php');
require_once('../../../../include/student.class.php');
$summe_stud = 0;
$summe_t2 = 0;
@@ -104,6 +104,152 @@ $sprachen->getAll(true);
$errormsg = '';
// eingetragene lv-gesamtnoten freigeben
if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
{
// Passwort pruefen
if (checkldapuser($user, $_REQUEST['passwort']))
{
$jetzt = date("Y-m-d H:i:s");
$neuenoten = 0;
$studlist = "<table border='1'>
<tr>";
// entweder personenbezogene Daten einbinden
if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
{
$studlist .= "
<td><b>" . $p->t('global/personenkz') . "</b></td>
<td><b>" . $p->t('global/studiengang') . "</b></td>
<td><b>" . $p->t('global/nachname') . "</b></td>
<td><b>" . $p->t('global/vorname') . "</b></td>
";
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
{
$studlist .= "<td><b>" . $p->t('benotungstool/punkte') . "</b></td>\n";
}
$studlist .= "<td><b>" . $p->t('benotungstool/note') . "</b></td>\n";
$studlist .= "<td><b>" . $p->t('benotungstool/bearbeitetvon') . "</b></td></tr>\n";
}
// oder anonymisiert nur die UIDs einbinden
else
{
$studlist .= "
<td><b>" . $p->t('global/uid') . "</b></td></tr>\n
";
}
// studentenquery
$qry_stud = "SELECT
DISTINCT uid, vorname, nachname, matrikelnr, kurzbzlang
FROM
campus.vw_student_lehrveranstaltung
JOIN campus.vw_student USING(uid)
JOIN public.tbl_studiengang ON campus.vw_student.studiengang_kz = public.tbl_studiengang.studiengang_kz
WHERE
studiensemester_kurzbz = " . $db->db_add_param($stsem) . "
AND lehrveranstaltung_id = " . $db->db_add_param($lvid, FHC_INTEGER) . "
ORDER BY nachname, vorname ";
if ($result_stud = $db->db_query($qry_stud))
{
$i = 1;
while ($row_stud = $db->db_fetch_object($result_stud))
{
$lvgesamtnote = new lvgesamtnote();
if ($lvgesamtnote->load($lvid, $row_stud->uid, $stsem))
{
if ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum)
{
$lvgesamtnote->freigabedatum = $jetzt;
$lvgesamtnote->freigabevon_uid = $user;
$lvgesamtnote->save();
if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
{
$studlist .= "<tr><td>" . trim($row_stud->matrikelnr) . "</td>";
$studlist .= "<td>" . trim($row_stud->kurzbzlang) . "</td>";
$studlist .= "<td>" . trim($row_stud->nachname) . "</td>";
$studlist .= "<td>" . trim($row_stud->vorname) . "</td>";
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
{
$studlist .= "<td>";
if ($lvgesamtnote->punkte != '')
$studlist .= trim(number_format($lvgesamtnote->punkte, 2));
$studlist .= "</td>\n";
}
$studlist .= "<td>" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . "</td>";
$studlist .= "<td>" . $lvgesamtnote->mitarbeiter_uid;
if ($lvgesamtnote->updatevon != '')
$studlist .= " (" . $lvgesamtnote->updatevon . ")";
$studlist .= "</td></tr>\n";
}
else
{
$studlist .= "<tr><td>" . trim($row_stud->uid) . "</td></tr>\n";
}
$neuenoten ++;
}
}
}
}
$studlist .= "</table>";
// mail an assistentin und den user selber verschicken
if ($neuenoten > 0)
{
$lv = new lehrveranstaltung($lvid);
$sg = new studiengang($lv->studiengang_kz);
$lektor_adresse = $user . "@" . DOMAIN;
$adressen = $sg->email . ", " . $user . "@" . DOMAIN;
$studienplan = new studienplan();
$studienplan->getStudienplanLehrveranstaltung($lvid, $stsem);
$studienplan_bezeichnung = '';
foreach ($studienplan->result as $row)
$studienplan_bezeichnung .= $row->bezeichnung . ' ';
$mit = new mitarbeiter();
$mit->load($user);
$name = $mit->anrede.' '.$mit->vorname.' '.$mit->nachname.' ('.$mit->kurzbz.')';
$betreff = 'Notenfreigabe ' . $lv->bezeichnung . ' ' . $lv->orgform_kurzbz . ' - ' . $studienplan_bezeichnung;
$mail = new mail($adressen, 'vilesci@' . DOMAIN, $betreff, '');
$htmlcontent = "<html>
<body>
$name hat neue Noten für die Lehrveranstaltung\n\n<br>
<b>" . $sg->kuerzel . ' ' . $lv->semester . '.Semester
' . $lv->bezeichnung . " " . $lv->orgform_kurzbz . " - " . $stsem . "</b>
<br>eingetragen.\n<br><br>
Die Noten können jetzt ins Zeugnis übernommen werden.\n";
$htmlcontent .= $studlist;
$htmlcontent.= "
<br>Anzahl der Noten:" . $neuenoten . "
<br><br>" . $p->t('abgabetool/mailVerschicktAn') . ": " . $adressen . "
</body></html>";
$mail->setHTMLContent($htmlcontent);
$mail->setReplyTo($lektor_adresse);
$mail->send();
}
http_response_code(303);
header('Location: ' . $_SERVER['REQUEST_URI']);
exit;
}
else
{
$errormsg = $p->t('gesamtnote/passwortFalsch');
}
}
echo '<!DOCTYPE HTML>
<html>
<head>
@@ -145,8 +291,8 @@ echo '<!DOCTYPE HTML>
position:absolute;
top:100px;
left:300px;
width:400px;
height:200px;
min-width:450px;
min-height:200px;
background-color:#cccccc;
visibility:hidden;
border-style:solid;
@@ -190,11 +336,14 @@ foreach ($noten_obj->result as $row)
$noten_array[$row->note]['lehre'] = $row->lehre;
$noten_array[$row->note]['lkt_ueberschreibbar'] = $row->lkt_ueberschreibbar;
$noten_array[$row->note]['anmerkung'] = $row->anmerkung;
foreach ($sprachen->result AS $s)
foreach ($sprachen->result as $s)
$noten_array[$row->note]['bezeichnung_mehrsprachig'][$s->sprache] = $row->bezeichnung_mehrsprachig[$s->sprache];
}
?>
const CIS_GESAMTNOTE_PUNKTE = <?php echo CIS_GESAMTNOTE_PUNKTE ? 'true' : 'false';?>;
function getOffset(pos)
{
var x,y;
@@ -376,7 +525,7 @@ foreach ($noten_obj->result as $row)
var datum_test = datum.split(".");
if (datum_test[0].length != 2 || datum_test[1].length != 2 || datum_test[2].length!=4
|| isNaN(datum_test[2]) || datum_test[1]>12 || datum_test[1]<1 || datum_test[0]>31 || datum_test[0]<1)
alert("Invalid Date Format: DD.MM.YYYY");
alert("Das Datum entspricht nicht dem Format TT.MM.JJJJ!");
else
{
var anlegendiv = document.getElementById("nachpruefung_div");
@@ -402,6 +551,7 @@ foreach ($noten_obj->result as $row)
url += '&typ='+typ;
url += '&'+ts;
$.ajax({
type:"GET",
url: url,
@@ -593,8 +743,8 @@ foreach ($noten_obj->result as $row)
str += "<tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
var anlegendiv = document.getElementById("nachpruefung_div");
var y = getOffset('y'); y = y+50; anlegendiv.style.top = y+"px";
str += '<tr><td><?php echo $p->t('benotungstool/importAnweisung');?>:</td>';
str += '<td></td><tr><td><textarea id="noteimporttextarea" name="notenimport"></textarea></td></tr>';
str += '<tr><td><div style="width: 400px;"><?php echo $p->t('benotungstool/importAnweisung');?>:</div></td>';
str += '<td></td><tr><td><textarea style="width: 400px;" id="noteimporttextarea" name="notenimport"></textarea></td></tr>';
str += "<tr><td><input type='button' name='speichern' value='<?php echo $p->t('global/speichern');?>' onclick='saveGradeBulk();'>";
str += "</td><td></td></tr></table></center></form>";
anlegendiv.innerHTML = str;
@@ -602,6 +752,25 @@ foreach ($noten_obj->result as $row)
$('#noteimporttextarea').focus();
}
// ****
// * Oeffnet ein Fenster fuer den Import von Noten für die Nachprüfung aus dem Excel
// ****
function GradeImportNachp(termin)
{
var str = "<form name='gradeimportNachp_form'><center><table style='width: 95%'>";
str += "<tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
var anlegendiv = document.getElementById("nachpruefung_div");
var y = getOffset('y'); y = y+50; anlegendiv.style.top = y+"px";
str += '<tr><td><div style="width: 400px;"><?php echo $p->t('benotungstool/importAnweisungNachp');?>:</div></td>';
str += '<td></td><tr><td><textarea style="width: 400px;" id="noteimporttextareaNachp" name="notenimportNachp"></textarea></td></tr>';
str += "<tr><td><input type='button' name='speichern' value='<?php echo $p->t('global/speichern');?>' onclick='saveGradeBulkNachp(\""+ termin +"\");'>";
str += "</td><td></td></tr></table></center></form>";
anlegendiv.innerHTML = str;
anlegendiv.style.visibility = "visible";
$('#noteimporttextareaNachp').focus();
}
// Speichert die Noten ueber den Import
function saveGradeBulk()
{
@@ -633,33 +802,48 @@ foreach ($noten_obj->result as $row)
}
?>
var linenumber = 0;
for(row in rows)
{
zeile = rows[row].split(" ");
<?php
// If CIS_GESAMTNOTE_PUNKTE is false, check for valid grades
if (CIS_GESAMTNOTE_PUNKTE == false)
echo ' // check for valid grades
if (validGrades.indexOf(zeile[1]) === -1 && typeof(zeile[1]) != "undefined" && zeile[1] != "")
{
alertMsg = alertMsg+"Die Note "+zeile[1]+" ist nicht zulaessig. Die Zeile wurde uebersprungen. \n";
continue;
}';
?>
if (zeile[0]!='' && zeile[1]!='')
linenumber++;
if( rows[row] == '' )
{
gradedata['matrikelnr_'+i]=zeile[0];
<?php
if (CIS_GESAMTNOTE_PUNKTE)
echo "gradedata['punkte_'+i]= zeile[1];";
else
echo "gradedata['note_'+i]= zeile[1];";
?>
i++;
//skip empty lines
continue;
}
zeile = rows[row].split(" ");
if( zeile.length < 2 )
{
alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ 'Zu wenig Paramter - 2 erforderlich. '
+ 'Die Zeile wurde uebersprungen.' + "\n\n";
continue;
}
if (CIS_GESAMTNOTE_PUNKTE == false)
{
// check for valid grades
if (validGrades.indexOf(zeile[1]) === -1)
{
alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ "Die Note "+zeile[1]+" ist nicht zulaessig. "
+ "Die Zeile wurde uebersprungen. \n\n";
continue;
}
}
gradedata['matrikelnr_'+i]=zeile[0];
if (CIS_GESAMTNOTE_PUNKTE)
{
gradedata['punkte_'+i]= zeile[1];
}
else
{
gradedata['note_'+i]= zeile[1];
}
i++;
}
if (alertMsg != "")
@@ -698,6 +882,142 @@ foreach ($noten_obj->result as $row)
}
}
// Speichert die Noten der Nachprüfung ueber den Import
function saveGradeBulkNachp(typ)
{
data = $('#noteimporttextareaNachp').val();
closeDiv();
//Reihen ermitteln
var rows = data.split("\n");
var i=0;
var params='';
alertMsg = '';
var gradedata = {};
var validGrades = '';
<?php
// If CIS_GESAMTNOTE_PUNKTE is false, check for valid grades
// Fill Array $gradesArray with valid grades
if (CIS_GESAMTNOTE_PUNKTE == false)
{
$gradesArray = array();
foreach ($noten_obj->result as $row_note)
{
if ($row_note->lehre && $row_note->aktiv)
$gradesArray[] = '"' . $row_note->anmerkung . '"';
}
// Output JS variable with valid grades
echo 'var validGrades = [' . implode(',', $gradesArray) . '];';
}
?>
var linenumber = 0;
for(row in rows)
{
linenumber++;
if( rows[row] == '' )
{
//skip empty lines
continue;
}
zeile = rows[row].split(" ");
if( zeile.length < 3 )
{
alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ 'Zu wenig Paramter - 3 erforderlich. '
+ 'Die Zeile wurde uebersprungen.' + "\n\n";
continue;
}
if( zeile[1] == '' && zeile[2] == '' )
{
// ignore lines just copied from excel
continue;
}
if( zeile[2] == '' )
{
alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ "Die Note oder Punkte fehlen. "
+ "Die Zeile wurde uebersprungen. \n\n";
continue;
}
if (CIS_GESAMTNOTE_PUNKTE == false)
{
// check for valid grades
if (validGrades.indexOf(zeile[2]) === -1)
{
alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ "Die Note "+zeile[2]+" ist nicht zulaessig. "
+ "Die Zeile wurde uebersprungen. \n\n";
continue;
}
}
if( !zeile[1].match(/[0-9]{2}\.[0-9]{2}\.[0-9]{4}/) )
{
alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ "Das Datum "+zeile[1]+" fehlt oder ist nicht zulaessig. "
+ "Die Zeile wurde uebersprungen. \n\n";
continue;
}
gradedata['student_uid_'+i]=zeile[0];
gradedata['datumNachp_'+i]=zeile[1];
if (CIS_GESAMTNOTE_PUNKTE)
{
gradedata['punkte_'+i]= zeile[2];
}
else
{
gradedata['note_'+i]= zeile[2];
}
i++;
}
if (alertMsg != "")
alert(alertMsg);
if (i>0)
{
var jetzt = new Date();
var ts = jetzt.getTime();
var url= '<?php echo "nachpruefungeintragen.php?lvid=".urlencode($lvid)."&stsem=".urlencode($stsem); ?>';
url += '&sammel=1';
url += '&typ=' + typ;
url += '&submit=1&'+ts;
$.ajax({
type:"POST",
url: url,
data: gradedata,
success:function(result)
{
var resp = result;
if (resp!='')
{
alert(resp);
}
window.location.reload();
},
error:function(result)
{
alert('Request Nachprüfung fehlgeschlagen');
}
});
}
else
{
alert('<?php echo $p->t('benotungstool/hilfeImport');?>');
}
}
//-->
</script>
</head>
@@ -803,149 +1123,6 @@ if (defined('CIS_ANWESENHEITSLISTE_NOTENLISTE_ANZEIGEN') && CIS_ANWESENHEITSLIST
{
$hrefpath = "../notenliste.xls.php?stg=$stg_obj->studiengang_kz&lvid=$lvid&stsem=$stsem";
echo "<br><a class='Item' href='" . $hrefpath . "'>" . $p->t('benotungstool/notenlisteImport') . "</a>";
}
// eingetragene lv-gesamtnoten freigeben
if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
{
// Passwort pruefen
if (checkldapuser($user, $_REQUEST['passwort']))
{
$jetzt = date("Y-m-d H:i:s");
$neuenoten = 0;
$studlist = "<table border='1'>
<tr>";
// entweder personenbezogene Daten einbinden
if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
{
$studlist .= "
<td><b>" . $p->t('global/personenkz') . "</b></td>
<td><b>" . $p->t('global/studiengang') . "</b></td>
<td><b>" . $p->t('global/nachname') . "</b></td>
<td><b>" . $p->t('global/vorname') . "</b></td>
";
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
{
$studlist .= "<td><b>" . $p->t('benotungstool/punkte') . "</b></td>\n";
}
$studlist .= "<td><b>" . $p->t('benotungstool/note') . "</b></td>\n";
$studlist .= "<td><b>" . $p->t('benotungstool/bearbeitetvon') . "</b></td></tr>\n";
}
// oder anonymisiert nur die UIDs einbinden
else
{
$studlist .= "
<td><b>" . $p->t('global/uid') . "</b></td></tr>\n
";
}
// studentenquery
$qry_stud = "SELECT
DISTINCT uid, vorname, nachname, matrikelnr, kurzbzlang
FROM
campus.vw_student_lehrveranstaltung
JOIN campus.vw_student USING(uid)
JOIN public.tbl_studiengang ON campus.vw_student.studiengang_kz = public.tbl_studiengang.studiengang_kz
WHERE
studiensemester_kurzbz = " . $db->db_add_param($stsem) . "
AND lehrveranstaltung_id = " . $db->db_add_param($lvid, FHC_INTEGER) . "
ORDER BY nachname, vorname ";
if ($result_stud = $db->db_query($qry_stud))
{
$i = 1;
while ($row_stud = $db->db_fetch_object($result_stud))
{
$lvgesamtnote = new lvgesamtnote();
if ($lvgesamtnote->load($lvid, $row_stud->uid, $stsem))
{
if ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum)
{
$lvgesamtnote->freigabedatum = $jetzt;
$lvgesamtnote->freigabevon_uid = $user;
$lvgesamtnote->save();
if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
{
$studlist .= "<tr><td>" . trim($row_stud->matrikelnr) . "</td>";
$studlist .= "<td>" . trim($row_stud->kurzbzlang) . "</td>";
$studlist .= "<td>" . trim($row_stud->nachname) . "</td>";
$studlist .= "<td>" . trim($row_stud->vorname) . "</td>";
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
{
$studlist .= "<td>";
if ($lvgesamtnote->punkte != '')
$studlist .= trim(number_format($lvgesamtnote->punkte, 2));
$studlist .= "</td>\n";
}
$studlist .= "<td>" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . "</td>";
$studlist .= "<td>" . $lvgesamtnote->mitarbeiter_uid;
if ($lvgesamtnote->updatevon != '')
$studlist .= " (" . $lvgesamtnote->updatevon . ")";
$studlist .= "</td></tr>\n";
}
else
{
$studlist .= "<tr><td>" . trim($row_stud->uid) . "</td></tr>\n";
}
$neuenoten ++;
}
}
}
}
$studlist .= "</table>";
// mail an assistentin und den user selber verschicken
if ($neuenoten > 0)
{
$lv = new lehrveranstaltung($lvid);
$sg = new studiengang($lv->studiengang_kz);
$lektor_adresse = $user . "@" . DOMAIN;
$adressen = $sg->email . ", " . $user . "@" . DOMAIN;
$studienplan = new studienplan();
$studienplan->getStudienplanLehrveranstaltung($lvid, $stsem);
$studienplan_bezeichnung = '';
foreach ($studienplan->result as $row)
$studienplan_bezeichnung .= $row->bezeichnung . ' ';
$mit = new mitarbeiter();
$mit->load($user);
$name = $mit->anrede.' '.$mit->vorname.' '.$mit->nachname.' ('.$mit->kurzbz.')';
$betreff = 'Notenfreigabe ' . $lv->bezeichnung . ' ' . $lv->orgform_kurzbz . ' - ' . $studienplan_bezeichnung;
$mail = new mail($adressen, 'no-reply@' . DOMAIN, $betreff, '');
$htmlcontent = "<html>
<body>
$name hat neue Noten für die Lehrveranstaltung\n\n<br>
<b>" . $sg->kuerzel . ' ' . $lv->semester . '.Semester
' . $lv->bezeichnung . " " . $lv->orgform_kurzbz . " - " . $stsem . "</b>
<br>eingetragen.\n<br><br>
Die Noten können jetzt ins Zeugnis übernommen werden.\n";
$htmlcontent .= $studlist;
$htmlcontent.= "
<br>Anzahl der Noten: " . $neuenoten . "
<br><br>" . $p->t('abgabetool/mailVerschicktAn') . ": " . $adressen . "
</body></html>";
$mail->setHTMLContent($htmlcontent);
$mail->setReplyTo($lektor_adresse);
$mail->send();
}
}
else
{
$errormsg = $p->t('gesamtnote/passwortFalsch');
}
}
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
@@ -1052,11 +1229,15 @@ $htmlstring .= "<th>" . $p->t('benotungstool/punkte') . ' / ' . $p->t('benotungs
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
{
$htmlstring .= "<th colspan='2'>" . $p->t('benotungstool/nachpruefung') . "</th>";
$htmlstring .= "<th colspan='2'><br>" . $p->t('benotungstool/nachpruefung') . "<br>
<input type='button' onclick='GradeImportNachp(\"Termin2\")' value='" . $p->t('benotungstool/importieren') . "'>
</th>";
}
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
{
$htmlstring .= "<th colspan='2' nowrap>" . $p->t('benotungstool/nachpruefung2') . "</th>";
$htmlstring .= "<th colspan='2' nowrap><br>" . $p->t('benotungstool/nachpruefung2') . "<br>
<input type='button' onclick='GradeImportNachp(\"Termin3\")' value='" . $p->t('benotungstool/importieren') . "'>
</th>";
}
if (defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF)
{
@@ -1184,7 +1365,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
foreach ($addon_obj->result as $row)
{
if (file_exists('../../../../addons/' . $row->kurzbz . '/cis/grades.inc.php'))
include ('../../../../addons/' . $row->kurzbz . '/cis/grades.inc.php');
include('../../../../addons/' . $row->kurzbz . '/cis/grades.inc.php');
}
}
}
@@ -1193,7 +1374,6 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
foreach ($grades as $uid => $data)
//Ausgabe Array
{
$htmlstring .= '<tr class="liste' . ($i % 2) . '">
<td><a href="mailto:' . $uid . '@' . DOMAIN . '"><img src="../../../../skin/images/button_mail.gif"></a></td>
<td>' . $db->convert_html_chars($uid) . '</td>
@@ -1325,7 +1505,6 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
// Punkte
if (CIS_GESAMTNOTE_PUNKTE)
{
$htmlstring .= '
<input type="text"
name="punkte"
@@ -41,10 +41,16 @@ require_once('../../../../include/benutzerfunktion.class.php');
require_once('../../../../include/benutzer.class.php');
require_once('../../../../include/student.class.php');
require_once('../../../../include/notenschluessel.class.php');
require_once('../../../../include/phrasen.class.php');
require_once('../../../../include/note.class.php');
if (!$db = new basis_db())
die('Fehler beim Herstellen der Datenbankverbindung');
$sprache = getSprache();
$p = new phrasen($sprache);
$user = get_uid();
if(!check_lektor($user))
@@ -52,6 +58,7 @@ if(!check_lektor($user))
$lehreinheit_id='';
$lehreinheit_id_pr='';
if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id
$lvid = $_GET['lvid'];
@@ -62,58 +69,26 @@ if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehr
$lehreinheit_id = $_GET['lehreinheit_id'];
if(isset($_GET['lehreinheit_id_pr']) && is_numeric($_GET['lehreinheit_id_pr'])) //Lehreinheit_id der pruefung
$lehreinheit_id = $_GET['lehreinheit_id_pr'];
if(isset($_GET['datum']))
{
$datum = $_GET['datum'];
$datum_obj = new datum();
$datum = $datum_obj->checkformatDatum($datum, 'Y-m-d', true) OR die('Invalid date format');
}
else
die('Fehlerhafte Parameteruebergabe');
//Laden der Lehrveranstaltung
$lv_obj = new lehrveranstaltung();
if(!$lv_obj->load($lvid))
die($lv_obj->errormsg);
//Studiengang laden
$stg_obj = new studiengang($lv_obj->studiengang_kz);
$lehreinheit_id_pr = $_GET['lehreinheit_id_pr'];
if(isset($_GET['stsem']))
$stsem = $_GET['stsem'];
else
$stsem = '';
$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:'');
$uid = (isset($_GET['uid'])?$_GET['uid']:'');
//Studiensemester laden
$stsem_obj = new studiensemester();
if($stsem=='')
$stsem = $stsem_obj->getaktorNext();
$student_uid = $_REQUEST["student_uid"];
$note = $_REQUEST["note"];
if(isset($_REQUEST['punkte']))
$punkte = $_REQUEST['punkte'];
else
$punkte = '';
$punkte = str_replace(',','.',$punkte);
if($punkte!='')
//Notenanmerkung für Eintragung von nichtnumerischen Noten wie en (entschuldigt), ue(unentschuldigt)
$noten_anmerkung = array();
$noten_arr = array();
$note_obj = new note();
$note_obj->getAll();
foreach($note_obj->result as $row)
{
// Bei Punkteeingabe wird die Note nochmals geprueft und ggf korrigiert
$notenschluessel = new notenschluessel();
$note_pruef = $notenschluessel->getNote($punkte, $lvid, $stsem);
if($note_pruef!=$note)
{
$note = $note_pruef;
$note_dirty=true;
}
$noten_anmerkung[$row->anmerkung] = $row->note;
$noten_arr[$row->note] = $row;
}
if(!isset($_GET['typ']))
@@ -122,22 +97,177 @@ if(!isset($_GET['typ']))
}
else
{
if(in_array($_GET['typ'],array('Termin2','Termin3')))
if(in_array($_GET['typ'], array('Termin2', 'Termin3')))
$typ=$_GET['typ'];
else
die('Typ ist ungueltig');
}
if($note=='')
$note = 9;
$old_note = $note;
// lvgesamtnote für studenten speichern
if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
if (isset($_REQUEST['sammel']) && $_REQUEST["sammel"] == 1)
{
$errorMatrnr = '';
$errorDatum = '';
$errorNachp = '';
foreach ($_POST as $row => $val)
{
if(mb_strstr(mb_strtolower($row), 'student_uid_'))
{
$id=mb_substr($row, mb_strlen('student_uid_'));
$student_uid = $_POST['student_uid_'.$id];
$note = null;
$punkte = null;
$datum = null;
$response = '';
if(isset($_POST['note_'.$id]))
$note = $_POST['note_'.$id];
elseif(isset($_POST['punkte_'.$id]))
$punkte = $_POST['punkte_'.$id];
else
{
$response.="\nNote oder Punkte fehlen";
continue;
}
$punkte=str_replace(',', '.', $punkte);
if($punkte!='')
{
// Bei Punkteeingabe wird die Note nochmals geprueft und ggf korrigiert
$notenschluessel = new notenschluessel();
$note_pruef = $notenschluessel->getNote($punkte, $lvid, $stsem);
if($note_pruef!=$note)
{
$note = $note_pruef;
$note_dirty=true;
}
}
$datum = $_POST['datumNachp_'.$id];
//check Datumsformat
$checkedDatum = $datum;
$datum_obj = new datum();
if(!$datum = $datum_obj->checkformatDatum($datum, 'Y-m-d', true))
{
$errorDatum .="\n".$p->t('benotungstool/datumsformatUnzulaessig', array($checkedDatum));
continue;
}
//check ob Matrikelnummer anstelle der student_uid übergeben wurde
$student = new student();
if (!$student->checkIfValidStudentUID($student_uid))
{
$checkedMatrnr = $student_uid;
//UID ermitteln
if(!$student_uid = $student->getUidFromMatrikelnummer($student_uid))
{
$errorMatrnr.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht', array($checkedMatrnr));
continue;
}
}
//check ob eine Note vorhanden ist oder (intern) angerechnet wurde
$lvnote = new lvgesamtnote();
if (!$lvnote->load($lvid, $student_uid, $stsem))
{
$errorNachp.="\n".$p->t('benotungstool/NachpruefungNichtZulaessig', array($student_uid));
continue;
}
$lehreinheit_id = getLehreinheit($db, $lvid, $student_uid, $stsem);
if(isset($_POST['student_uid_'.$id]) && (isset($_POST['note_'.$id]) || isset($_POST['punkte_'.$id])) && isset($_POST['datumNachp_'.$id]))
{
if(!is_numeric($note))
{
if(isset($noten_anmerkung[$note]))
$note = $noten_anmerkung[$note];
}
$response = savePruefung($lvid, $student_uid, $stsem, $lehreinheit_id, $datum, $typ, $note, $punkte);
if($response!='neu' && $response!='update' && $response!='update_f')
{
echo $response;
}
}
else
{
echo "\n fehlende oder fehlerhafte Inputparameter";
}
}
}
echo $errorMatrnr . $errorDatum . $errorNachp;
}
else
{
// Einzelupdate
if(isset($_GET['datum']))
{
$datum = $_GET['datum'];
$datum_obj = new datum();
$datum = $datum_obj->checkformatDatum($datum, 'Y-m-d', true) or die($p->t('benotungstool/datumsformatUnzulaessig', array($checkedDatum)));
}
$student_uid = $_REQUEST["student_uid"];
$note = $_REQUEST["note"];
if(isset($_REQUEST['punkte']))
$punkte = $_REQUEST['punkte'];
else
$punkte = '';
$punkte = str_replace(',', '.', $punkte);
if($punkte!='')
{
// Bei Punkteeingabe wird die Note nochmals geprueft und ggf korrigiert
$notenschluessel = new notenschluessel();
$note_pruef = $notenschluessel->getNote($punkte, $lvid, $stsem);
if($note_pruef!=$note)
{
$note = $note_pruef;
$note_dirty=true;
}
}
if($note=='')
$note = 9;
$old_note = $note;
//Laden der Lehrveranstaltung
$lv_obj = new lehrveranstaltung();
if(!$lv_obj->load($lvid))
die($lv_obj->errormsg);
//Studiengang laden
$stg_obj = new studiengang($lv_obj->studiengang_kz);
$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:'');
$uid = (isset($_GET['uid'])?$_GET['uid']:'');
// lvgesamtnote für studenten speichern
if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != ''))
{
// Die Pruefung muss einer Lehreinheit zugeordnet werden
// deshalb wird hier versucht eine passende Lehreinheit zu ermitteln.
$lehreinheit_id = getLehreinheit($db, $lvid, $student_uid, $stsem);
$response = savePruefung($lvid, $student_uid, $stsem, $lehreinheit_id, $datum, $typ, $note);
echo $response;
}
else
echo "Fehler beim Eintragen der Pr&uuml;fungen";
}
/**
* Berechnet Lehreinheit auf Basis LV-Daten
* @param string $db Datenbankvariable
* @param string $student_uid student_uid
* @param int $lvid Lehrveranstaltungsid
* @param string $stsem Studiensemester im Format 'WSYYYY'
* @return String LehreinheitId
*/
function getLehreinheit($db, $lvid, $student_uid, $stsem)
{
// Die Pruefung muss einer Lehreinheit zugeordnet werden
// deshalb wird hier versucht eine passende Lehreinheit zu ermitteln.
$le_arr = array();
$qry_stud = "SELECT lehreinheit_id, lehrform_kurzbz
FROM
@@ -158,104 +288,159 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
}
}
if (!in_array($lehreinheit_id,$le_arr))
//if (!in_array($lehreinheit_id,$le_arr))
$lehreinheit_id = $le_arr[0];
return $lehreinheit_id;
}
/**
* Prüfung speichern
*/
function savePruefung($lvid, $student_uid, $stsem, $lehreinheit_id, $datum, $typ, $note, $punkte = null)
{
$jetzt = date("Y-m-d H:i:s");
global $user; //, $note, $punkte, $datum;
$pr = new Pruefung();
// Wenn eine Pruefung angelegt wird, wird zuerst eine Pruefung mit 1. Termin angelegt
// und dort die Zeugnisnote gespeichert
if($pr->getPruefungen($student_uid, "Termin1", $lvid, $stsem))
if ($typ == "Termin2")
{
if ($pr->result)
$pr = new Pruefung();
// Wenn eine Pruefung angelegt wird, wird zuerst eine Pruefung mit 1. Termin angelegt
// und dort die Zeugnisnote gespeichert
if($pr->getPruefungen($student_uid, "Termin1", $lvid, $stsem))
{
$termin1 = 1;
}
else
{
$lvnote = new lvgesamtnote();
if ($lvnote->load($lvid, $student_uid, $stsem))
if ($pr->result)
{
$pr_note = $lvnote->note;
$pr_punkte = $lvnote->punkte;
$benotungsdatum = $lvnote->benotungsdatum;
$termin1 = 1;
}
else
{
$pr_note = 9;
$pr_punkte = '';
$benotungsdatum = $jetzt;
$lvnote = new lvgesamtnote();
if ($lvnote->load($lvid, $student_uid, $stsem))
{
$pr_note = $lvnote->note;
$pr_punkte = $lvnote->punkte;
$benotungsdatum = $lvnote->benotungsdatum;
}
else
{
$pr_note = 9;
$pr_punkte = '';
$benotungsdatum = $jetzt;
}
$pr_1 = new Pruefung();
$pr_1->lehreinheit_id = $lehreinheit_id;
$pr_1->student_uid = $student_uid;
$pr_1->mitarbeiter_uid = $user;
$pr_1->note = $pr_note;
$pr_1->punkte = $pr_punkte;
$pr_1->pruefungstyp_kurzbz = "Termin1";
$pr_1->datum = $benotungsdatum;
$pr_1->anmerkung = "";
$pr_1->insertamum = $jetzt;
$pr_1->insertvon = $user;
$pr_1->updateamum = null;
$pr_1->updatevon = null;
$pr_1->ext_id = null;
$pr_1->new = true;
$pr_1->save();
$response = "neu T1";
}
$pr_1 = new Pruefung();
$pr_1->lehreinheit_id = $lehreinheit_id;
$pr_1->student_uid = $student_uid;
$pr_1->mitarbeiter_uid = $user;
$pr_1->note = $pr_note;
$pr_1->punkte = $pr_punkte;
$pr_1->pruefungstyp_kurzbz = "Termin1";
$pr_1->datum = $benotungsdatum;
$pr_1->anmerkung = "";
$pr_1->insertamum = $jetzt;
$pr_1->insertvon = $user;
$pr_1->updateamum = null;
$pr_1->updatevon = null;
$pr_1->ext_id = null;
$pr_1->new = true;
$pr_1->save();
$prTermin2 = new Pruefung();
$pr_2 = new Pruefung();
// Die Pruefung wird als Termin2 eingetragen
if ($prTermin2->getPruefungen($student_uid, 'Termin2', $lvid, $stsem))
{
if ($prTermin2->result)
{
$pr_2->load($prTermin2->result[0]->pruefung_id);
$pr_2->new = null;
$pr_2->updateamum = $jetzt;
$pr_2->updatevon = $user;
$old_note = $pr_2->note;
$pr_2->note = $note;
$pr_2->punkte = $punkte;
$pr_2->datum = $datum;
$pr_2->anmerkung = "";
$response = "update T2";
}
else
{
$pr_2->lehreinheit_id = $lehreinheit_id;
$pr_2->student_uid = $student_uid;
$pr_2->mitarbeiter_uid = $user;
$pr_2->note = $note;
$pr_2->punkte = $punkte;
$pr_2->pruefungstyp_kurzbz = $typ;
$pr_2->datum = $datum;
$pr_2->anmerkung = "";
$pr_2->insertamum = $jetzt;
$pr_2->insertvon = $user;
$pr_2->updateamum = null;
$pr_2->updatevon = null;
$pr_2->ext_id = null;
$pr_2->new = true;
$old_note = -1;
$response = "new T2";
}
$pr_2->save();
}
}
}
$prTermin2 = new Pruefung();
$pr_2 = new Pruefung();
// Die Pruefung wird als Termin2 eingetragen
if ($prTermin2->getPruefungen($student_uid, $typ, $lvid, $stsem))
elseif ($typ == "Termin3")
{
if ($prTermin2->result)
$prTermin3 = new Pruefung();
$pr_3 = new Pruefung();
if ($prTermin3->getPruefungen($student_uid, 'Termin3', $lvid, $stsem))
{
$pr_2->load($prTermin2->result[0]->pruefung_id);
$pr_2->new = null;
$pr_2->updateamum = $jetzt;
$pr_2->updatevon = $user;
$old_note = $pr_2->note;
$pr_2->note = $note;
$pr_2->punkte = $punkte;
$pr_2->datum = $datum;
$pr_2->anmerkung = "";
if ($prTermin3->result)
{
$pr_3->load($prTermin3->result[0]->pruefung_id);
$pr_3->new = null;
$pr_3->updateamum = $jetzt;
$pr_3->updatevon = $user;
$old_note = $pr_3->note;
$pr_3->note = $note;
$pr_3->punkte = $punkte;
$pr_3->datum = $datum;
$pr_3->anmerkung = "";
$response = "update T3";
}
else
{
$pr_3->lehreinheit_id = $lehreinheit_id;
$pr_3->student_uid = $student_uid;
$pr_3->mitarbeiter_uid = $user;
$pr_3->note = $note;
$pr_3->punkte = $punkte;
$pr_3->pruefungstyp_kurzbz = $typ;
$pr_3->datum = $datum;
$pr_3->anmerkung = "";
$pr_3->insertamum = $jetzt;
$pr_3->insertvon = $user;
$pr_3->updateamum = null;
$pr_3->updatevon = null;
$pr_3->ext_id = null;
$pr_3->new = true;
$old_note = -1;
$response = "new T3";
}
$pr_3->save();
}
else
{
$pr_2->lehreinheit_id = $lehreinheit_id;
$pr_2->student_uid = $student_uid;
$pr_2->mitarbeiter_uid = $user;
$pr_2->note = $note;
$pr_2->punkte = $punkte;
$pr_2->pruefungstyp_kurzbz = $typ;
$pr_2->datum = $datum;
$pr_2->anmerkung = "";
$pr_2->insertamum = $jetzt;
$pr_2->insertvon = $user;
$pr_2->updateamum = null;
$pr_2->updatevon = null;
$pr_2->ext_id = null;
$pr_2->new = true;
$old_note = -1;
}
$pr_2->save();
}
else
{
$response = "fehlende oder fehlerhafte Inputparameter";
}
// Wenn eine Pruefung eingetragen wird, wird danach die LV-Note korrigiert
$jetzt = date("Y-m-d H:i:s");
$lvid = $_REQUEST["lvid"];
//Gesamtnote updaten
$lvgesamtnote = new lvgesamtnote();
if (!$lvgesamtnote->load($lvid, $student_uid, $stsem))
{
if (!$lvgesamtnote->load($lvid, $student_uid, $stsem))
{
$lvgesamtnote->student_uid = $student_uid;
$lvgesamtnote->lehrveranstaltung_id = $lvid;
$lvgesamtnote->studiensemester_kurzbz = $stsem;
@@ -272,9 +457,9 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
$lvgesamtnote->insertvon = $user;
$new = true;
$response = "neu";
}
else
{
}
else
{
$lvgesamtnote->note = $note;
$lvgesamtnote->punkte = $punkte;
$lvgesamtnote->benotungsdatum = $jetzt;
@@ -286,12 +471,11 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
else
$response = "update";
}
if (!$lvgesamtnote->save($new))
echo "<span class='error'>".$lvgesamtnote->errormsg."</span>";
return $lvgesamtnote->errormsg;
else
echo $response;
return $response;
}
else
echo "Fehler beim Eintragen der Pr&uuml;fungen";
?>
+99 -2
View File
@@ -35,6 +35,7 @@ require_once('../../../include/note.class.php');
require_once('../../../include/notenschluessel.class.php');
require_once('../../../include/Excel/excel.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/pruefung.class.php');
$uid = get_uid();
@@ -120,6 +121,13 @@ else
$format_highlightright->setBorderColor('white');
$format_highlightright->setAlign('right');
$format_highlightright_date=& $workbook->addFormat();
$format_highlightright_date->setFgColor(15);
$format_highlightright_date->setBorder(1);
$format_highlightright_date->setBorderColor('white');
$format_highlightright_date->setAlign('right');
$format_highlightright_date->setNumFormat(49);
$format_border_bottom =& $workbook->addFormat();
$format_border_bottom ->setBottom(2);
$format_border_bottom->setBold();
@@ -191,6 +199,19 @@ else
}
//Studenten holen
//Spaltengruppe für Nachprüfung
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
{
$worksheet->write($lines,8,$p->t('benotungstool/nachpruefung'),$format_bold);
}
//Spaltengruppe für 2.Nebensprüfungstermin
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
{
$worksheet->write($lines,12,$p->t('benotungstool/nachpruefung2'),$format_bold);
}
$lines++;
$worksheet->write($lines,1,$p->t('global/uid'),$format_border_bottom);
$worksheet->write($lines,2,$p->t('global/nachname'),$format_border_bottom);
@@ -203,6 +224,26 @@ else
else
$worksheet->write($lines,6,$p->t('benotungstool/note'),$format_border_bottom);
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
{
$worksheet->write($lines,8,$p->t('global/personenkennzeichen'),$format_border_bottom);
$worksheet->write($lines,9,$p->t('global/datum'),$format_border_bottom);
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
$worksheet->write($lines,10,$p->t('benotungstool/punkte'),$format_border_bottom);
else
$worksheet->write($lines,10,$p->t('benotungstool/note'),$format_border_bottom);
}
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
{
$worksheet->write($lines,12,$p->t('global/personenkennzeichen'),$format_border_bottom);
$worksheet->write($lines,13,$p->t('global/datum'),$format_border_bottom);
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
$worksheet->write($lines,14,$p->t('benotungstool/punkte'),$format_border_bottom);
else
$worksheet->write($lines,14,$p->t('benotungstool/note'),$format_border_bottom);
}
$stsem_obj = new studiensemester();
$stsem_obj->load($stsem);
$stsemdatumvon = $stsem_obj->start;
@@ -229,17 +270,18 @@ else
AND tbl_zeugnisnote.student_uid=tbl_student.student_uid
AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id)
LEFT JOIN bis.tbl_mobilitaet ON (bis.tbl_mobilitaet.prestudent_id = public.tbl_student.prestudent_id)
LEFT JOIN lehre.tbl_note USING(note)
WHERE
vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)."
AND vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);";";
AND vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);";";
if($lehreinheit_id!='')
$qry.=" AND vw_student_lehrveranstaltung.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER);
$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis, doubledegree DESC';
if($result = $db->db_query($qry))
{
$i=1;
@@ -282,6 +324,49 @@ else
$worksheet->write($lines,4,'="'.$elem->semester.$elem->verband.$elem->gruppe.'"');
$worksheet->write($lines,5,'="'.trim($elem->matrikelnr).'"',$format_highlight);
$worksheet->write($lines,6, $note, $format_highlightright);
// Nachprüfung
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
{
$worksheet->write($lines,8, '="'.trim($elem->matrikelnr).'"', $format_highlight);
$pr = new Pruefung();
$pr->getPruefungen($elem->uid, "Termin2", $lvid, $sem);
$output2 = $pr->result;
if ($output2)
{
$resultPr = $output2[0];
$worksheet->write($lines,9, date('d.m.Y', strtotime($resultPr->datum)), $format_highlightright_date);
$worksheet->write($lines,10, $resultPr->note, $format_highlightright);
}
else
{
$worksheet->write($lines,9, '', $format_highlightright_date);
$worksheet->write($lines,10, '', $format_highlightright);
}
}
// Nachprüfung
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
{
$worksheet->write($lines,12, '="'.trim($elem->matrikelnr).'"', $format_highlight);
$pr = new Pruefung();
$pr->getPruefungen($elem->uid, "Termin3", $lvid, $sem);
$output3 = $pr->result;
if ($output3)
{
$resultPr = $output3[0];
$worksheet->write($lines,13, date('d.m.Y', strtotime($resultPr->datum)), $format_highlightright_date);
$worksheet->write($lines,14, $resultPr->note, $format_highlightright);
}
else
{
$worksheet->write($lines,13, '', $format_highlightright_date);
$worksheet->write($lines,14, '', $format_highlightright);
}
}
$i++;
$lines++;
}
@@ -335,5 +420,17 @@ else
$worksheet->setColumn(0, 3, 25);
$worksheet->setColumn(0, 4, 7);
$worksheet->setColumn(0, 5, 21);
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
{
$worksheet->setColumn(8, 8, 15);
$worksheet->setColumn(9, 9, 10);
}
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
{
$worksheet->setColumn(12, 12, 15);
$worksheet->setColumn(13, 13, 10);
}
$workbook->close();
?>
+7 -3
View File
@@ -148,8 +148,11 @@ $this->phrasen['benotungstool/anzahlKommisionellePruefungen']='Anzahl kommission
$this->phrasen['benotungstool/pruefungAnlegenFuer']='Prüfung anlegen für';
$this->phrasen['benotungstool/kreuzerltool']='Kreuzerltool';
$this->phrasen['benotungstool/studentIstLvNichtZugeordnet']='Der Student %s %s (%s) ist dieser Lehrveranstaltung nicht zugeordnet. Die Note wird nicht uebernommen!';
$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Student mit Matrikelnummer %s existiert nicht.';
$this->phrasen['benotungstool/noteNichtUeberschreibbar']='Für Student mit Matrikelnummer %s eingetragene Zeugnisote %s ist nicht überschreibbar';
$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Student*in mit Matrikelnummer %s existiert nicht.';
$this->phrasen['benotungstool/datumsformatUnzulaessig']='Das Datum %s entspricht nicht dem Format TT.MM.JJJJ!';
$this->phrasen['benotungstool/NachpruefungNichtZulaessig']='Nachprüfung für Student*in %s nicht zulässig.';
$this->phrasen['benotungstool/noteUnzulaessig']='Die Note %s ist nicht zulaessig. Die Zeile wurde uebersprungen.';
$this->phrasen['benotungstool/noteNichtUeberschreibbar']='Für Student mit Matrikelnummer %s eingetragene Zeugnisnote %s ist nicht überschreibbar';
$this->phrasen['benotungstool/fehlerhafteNoteBeiStudent']='Fehlerhafte Note bei Student %s %s';
$this->phrasen['benotungstool/keineKreuzerllistenFuerDieseLehrveranstaltung']='Derzeit gibt es keine Kreuzerllisten für diese Lehrveranstaltung';
$this->phrasen['benotungstool/notenuebersichtFuer']='Notenübersicht</a> für';
@@ -170,7 +173,8 @@ $this->phrasen['benotungstool/eingetrageneNoten']='Eingetragene Noten';
$this->phrasen['benotungstool/zeunis']='Zeugnis';
$this->phrasen['benotungstool/handbuch']='Handbuch';
$this->phrasen['benotungstool/punkte']='Punkte';
$this->phrasen['benotungstool/importAnweisung']='Kopieren Sie die Spalten Personenkennzeichen und Note aus der Notenliste (bzw. StudentenUid und Note aus dem MoodleExport) und fügen Sie diese in folgendes Feld ein';
$this->phrasen['benotungstool/importAnweisung']='Kopieren Sie die Spalten StudentenUid und Note aus der Notenliste (bzw. StudentenUid und Note aus dem MoodleExport) und fügen Sie diese in folgendes Feld ein';
$this->phrasen['benotungstool/importAnweisungNachp']='Kopieren Sie die Spalten StudentenUid (bzw. Personenkennzeichen), Datum und Note aus der Notenliste bzw. dem Moodle Export File und fügen Sie diese in folgendes Feld ein';
$this->phrasen['benotungstool/pruefung']='Prüfung';
$this->phrasen['benotungstool/notenlisteImport']='Notenliste für den LV-Noten-Import (Excel)';
$this->phrasen['benotungstool/bearbeitetvon']='Bearbeitet von';
+3
View File
@@ -148,6 +148,8 @@ $this->phrasen['benotungstool/pruefungAnlegenFuer']='Create an examination for '
$this->phrasen['benotungstool/kreuzerltool']='"Kreuzerl" tool';
$this->phrasen['benotungstool/studentIstLvNichtZugeordnet']='Student is not assigned to this course. The grade was not accepted!';
$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Student with student ID number %s does not exist.';
$this->phrasen['benotungstool/NachpruefungNichtZulaessig']='Re-examination for student %s not allowed.';
$this->phrasen['benotungstool/datumsformatUnzulaessig']='The date %s is not in valid format TT.MM.JJJJ.';
$this->phrasen['benotungstool/noteNichtUeberschreibbar']='Transcript grade %2$s for student with Personal identifier %1$s is not rewritable';
$this->phrasen['benotungstool/fehlerhafteNoteBeiStudent']='Incorrect grade for student %s %s';
$this->phrasen['benotungstool/keineKreuzerllistenFuerDieseLehrveranstaltung']='There are currently no checklists for this course';
@@ -170,6 +172,7 @@ $this->phrasen['benotungstool/zeunis']='Transcript';
$this->phrasen['benotungstool/handbuch']='Handbook';
$this->phrasen['benotungstool/punkte']='Points';
$this->phrasen['benotungstool/importAnweisung']='Copy the columns "personal identifier" and "grade" from the grade list (or "student ID number" and "grade" from the moodle export file) and insert them in the following field';
$this->phrasen['benotungstool/importAnweisungNachp']='Copy the columns "student ID number" (or "personal identifier"), "date" and "grade" from the grade list or from the moodle export file and insert them in the following field';
$this->phrasen['benotungstool/pruefung']='Examination';
$this->phrasen['benotungstool/notenlisteImport']='Grade list for the subject grade import (Excel)';
$this->phrasen['benotungstool/geaenderteNotenVorhanden']='There are changed grades. Please send the changes to the assistant by clicking "Approval"';
@@ -1,6 +1,9 @@
const ANRECHNUNGSTATUS_APPROVED = 'approved';
const ANRECHNUNGSTATUS_REJECTED = 'rejected';
const HERKUNFT_DER_KENNTNISSE_MAX_LENGTH = 125;
const CHAR_LENGTH125 = 125;
const CHAR_LENGTH150 = 150;
const CHAR_LENGTH500 = 500;
const CHAR_LENGTH1000 = 1000;
const COLOR_DANGER = '#f2dede';
@@ -25,7 +28,7 @@ $(function(){
// Alert message inside Begruendungsbox, if maximum ECTS exceeded
requestAnrechnung.alertIfMaxEctsExceededInsideBegruendungsbox();
// Set chars counter for textarea 'Herkunft der Kenntnisse'
// Set chars counter for textareas
requestAnrechnung.setCharsCounter();
// If Sperregrund exists: display Sperre panel, hide Status panel and disable all form elements
@@ -98,6 +101,8 @@ $(function(){
begruendung: this.begruendung.value,
lv_id: this.lv_id.value,
studiensemester: this.studiensemester.value,
begruendung_ects: this.begruendung_ects.value,
begruendung_lvinhalt: this.begruendung_lvinhalt.value,
bestaetigung: this.bestaetigung.value,
uploadfile: this.uploadfile.files
},
@@ -207,11 +212,22 @@ var requestAnrechnung = {
},
setCharsCounter: function(){
$('#requestAnrechnung-herkunftDerKenntnisse').keyup(function() {
let length = HERKUNFT_DER_KENNTNISSE_MAX_LENGTH - $(this).val().length;
let length = CHAR_LENGTH125 - $(this).val().length;
$('#requestAnrechnung-herkunftDerKenntnisse-charCounter').text(length);
});
$('#requestAnrechnung-begruendungEcts').keyup(function() {
let length = CHAR_LENGTH150 - $(this).val().length;
$('#requestAnrechnung-begruendungEcts-charCounter').text(length);
});
$('#requestAnrechnung-begruendungLvinhalt').keyup(function() {
let maxlength = CHAR_LENGTH1000 - $(this).val().length;
$('#requestAnrechnung-begruendungLvinhalt-charCounterMax').text(maxlength);
let minlength = CHAR_LENGTH500 - $(this).val().length;
$('#requestAnrechnung-begruendungLvinhalt-charCounterMin').text(minlength);
});
},
formatAnrechnungIsApplied: function (antragdatum, dms_id, filename){
$('#requestAnrechnung-antragdatum').text(antragdatum);
+3 -1
View File
@@ -27,6 +27,7 @@ require_once('dbupdate_3.4/example.php');
require_once('dbupdate_3.4/example2.php');
...
*/
require_once('dbupdate_3.4/25003_notenimport_nachpruefung.php');
require_once('dbupdate_3.4/26173_index_webservicelog.php');
require_once('dbupdate_3.4/24682_reihungstest_zugangscode_fuer_login.php');
@@ -40,6 +41,7 @@ require_once('dbupdate_3.4/24913_tabelle_raumtyp_neues_attribut_aktiv.php');
require_once('dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php');
require_once('dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php');
require_once('dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php');
require_once('dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruendung.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -150,7 +152,7 @@ $tabellen=array(
"lehre.tbl_abschlusspruefung" => array("abschlusspruefung_id","student_uid","vorsitz","pruefer1","pruefer2","pruefer3","abschlussbeurteilung_kurzbz","akadgrad_id","pruefungstyp_kurzbz","datum","uhrzeit","sponsion","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","note","protokoll","endezeit","pruefungsantritt_kurzbz","freigabedatum"),
"lehre.tbl_abschlusspruefung_antritt" => array("pruefungsantritt_kurzbz","bezeichnung","bezeichnung_english","sort"),
"lehre.tbl_akadgrad" => array("akadgrad_id","akadgrad_kurzbz","studiengang_kz","titel","geschlecht"),
"lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id", "dms_id", "studiensemester_kurzbz", "anmerkung_student", "empfehlung_anrechnung"),
"lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id", "dms_id", "studiensemester_kurzbz", "anmerkung_student", "empfehlung_anrechnung", "begruendung_ects", "begruendung_lvinhalt"),
"lehre.tbl_anrechnungstatus" => array("status_kurzbz", "bezeichnung_mehrsprachig"),
"lehre.tbl_anrechnung_anrechnungstatus" => array("anrechnungstatus_id", "anrechnung_id", "status_kurzbz", "datum", "insertamum", "insertvon"),
"lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"),
@@ -0,0 +1,15 @@
<?php
// lehre.tbl_pruefungstyp: add type Termin3
if($result = $db->db_query("SELECT 1 FROM lehre.tbl_pruefungstyp WHERE pruefungstyp_kurzbz='Termin3'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "INSERT INTO lehre.tbl_pruefungstyp(pruefungstyp_kurzbz, beschreibung, abschluss) VALUES('Termin3', '3.Termin', false);";
if(!$db->db_query($qry))
echo '<strong>Prüfungstyp: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Prüfungstyp 3.Termin in lehre.tbl_pruefungstyp hinzugefügt';
}
}
@@ -0,0 +1,28 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
//Add column begruendung_ects to lehre.tbl_anrechnung
if(!@$db->db_query("SELECT begruendung_ects FROM lehre.tbl_anrechnung LIMIT 1"))
{
$qry = "ALTER TABLE lehre.tbl_anrechnung ADD COLUMN begruendung_ects text;
COMMENT ON COLUMN lehre.tbl_anrechnung.begruendung_ects IS 'Begruendung gleichwertiger ECTS';
";
if(!$db->db_query($qry))
echo '<strong>lehre.tbl_anrechnung '.$db->db_last_error().'</strong><br>';
else
echo '<br>Spalte begruendung_ects zu Tabelle lehre.tbl_anrechnung hinzugefügt';
}
//Add column begruendung_lvinhalt to lehre.tbl_anrechnung
if(!@$db->db_query("SELECT begruendung_lvinhalt FROM lehre.tbl_anrechnung LIMIT 1"))
{
$qry = "ALTER TABLE lehre.tbl_anrechnung ADD COLUMN begruendung_lvinhalt text;
COMMENT ON COLUMN lehre.tbl_anrechnung.begruendung_lvinhalt IS 'Begruendung gleichwertiger LV-Inhalte';
";
if(!$db->db_query($qry))
echo '<strong>lehre.tbl_anrechnung '.$db->db_last_error().'</strong><br>';
else
echo '<br>Spalte begruendung_lvinhalt zu Tabelle lehre.tbl_anrechnung hinzugefügt';
}
+192
View File
@@ -10909,6 +10909,178 @@ Any unusual occurrences
)
)
),
array(
'app' => 'core',
'category' => 'anrechnung',
'phrase' => 'begruendungEcts',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Begründen Sie die Gleichwertigkeit der ECTS',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Give reasons for the equivalence of ECTS',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'anrechnung',
'phrase' => 'begruendungLvinhalt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Begründen Sie die Gleichwertigkeit der Lehrveranstaltungsinhalte',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Give reasons for the equivalence of the course contents',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'anrechnung',
'phrase' => 'anrechnungBegruendungEctsTooltipText',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Hinsichtlich des Umfangs der LV, die Sie anrechnen lassen wollen: Bitte erläutern Sie, warum Ihr Zeugnis bzw. Ihre berufliche Praxis mit dem Umfang der LV gleichwertig ist.<br><br>Referenzbeispiele für die ECTS-Berechnung finden Sie rechts in der Infobox.',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Regarding the scope of the course you want to have credited: Please explain why your certificate or your professional practice is equivalent to the scope of the course.<br><br>Reference examples for the ECTS calculation can be found in the info box on the right.',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'anrechnung',
'phrase' => 'anrechnungBegruendungLvinhaltTooltipText',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Hinsichtlich der Lernergebnisse der LV (vgl. CIS), die Sie anrechnen lassen wollen: Bitte erläutern Sie, warum die von Ihnen erworbenen Kompetenzen mit diesen Lernergebnissen gleichwertig sind.',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'With regard to the learning outcomes of the course (cf. CIS) for which you want to receive credit: Please explain why the competences you have acquired are equivalent to these learning outcomes.',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'anrechnung',
'phrase' => 'requestAnrechnungInfoEctsBerechnungTitle',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Referenzbeispiele ECTS-Berechnung',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Reference examples of ECTS calculation',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'anrechnung',
'phrase' => 'requestAnrechnungInfoEctsBerechnungBody',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "<b>1 ECTS an der FH Technikum Wien entspricht einem Arbeitsaufwand von 25 Stunden.</b>
<br><br><u>Schulisches Zeugnis:</u>
<br>Bitte die Unterrichtsstunden nachvollziehbar in ECTS umrechnen (ein Schuljahr besteht aus ca. 40 Wochen; d.h., eine Unterrichtsstunde pro Woche sind insgesamt ca. 40 Stunden Jahresaufwand.)
<br><br><u>Hochschulzeugnis:</u>
<br>Bitte die ECTS angeben.
<br><br><u>Berufliche Praxis:</u>
<br>Bitte die Dauer der einschlägigen beruflichen Praxis nachvollziehbar in ECTS umrechnen (1,5 ECTS sind ungefähr eine Arbeitswoche im Umfang von 37,5 Stunden).",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "<br>1 ECTS at the FH Technikum Wien corresponds to a workload of 25 hours.</b>
<br><br><u>School certificate:</u>
<br>Please convert the teaching hours into ECTS in a comprehensible way (a school year consists of approx. 40 weeks; i.e. one teaching hour per week is a total of approx. 40 hours of annual work).
<br><br><u>University certificate:</u>
<br>Please indicate the ECTS.
<br><br><u>Professional practice:</u>
<br>Please convert the duration of the relevant professional practice into ECTS in a comprehensible way (1.5 ECTS are approximately one working week of 37.5 hours).",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'anrechnung',
'phrase' => 'begruendungEctsLabel',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Begründung Gleichwertigkeit ECTS',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Reason Equivalency of ECTS',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'anrechnung',
'phrase' => 'begruendungLvinhaltLabel',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Begründung Gleichwertigkeit LV-Inhalt',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Reason Equivalency of Course content',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'anrechnung',
@@ -13745,6 +13917,26 @@ array(
)
)
),
array(
'app' => 'core',
'category' => 'ui',
'phrase' => 'fehlendeMinZeichen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Fehlende min. Zeichen",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "Missing min. Characters",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'anrechnung',