Merge branch 'master' into feature/Anrechnungen_NEU

# Conflicts:
#	application/models/crm/Prestudent_model.php
#	system/dbupdate_3.3.php
This commit is contained in:
cris-technikum
2021-07-07 15:05:31 +02:00
19 changed files with 476 additions and 154 deletions
@@ -70,6 +70,7 @@ class InfoCenter extends Auth_Controller
const INTERESSENTSTATUS = 'Interessent';
const ABGEWIESENERSTATUS = 'Abgewiesener';
const BEWERBERSTATUS = 'Bewerber';
const WARTENDER = 'Wartender';
// Statusgruende for which no Studiengangsfreigabemessage should be sent
private $_statusgruendeNoStgFreigabeMessage = array('FIT Programm', 'FIT program', 'FIT programme');
@@ -108,7 +109,9 @@ class InfoCenter extends Auth_Controller
'setOnHold' => 'infocenter:rw',
'removeOnHold' => 'infocenter:rw',
'getStudienjahrEnd' => 'infocenter:r',
'setNavigationMenuArrayJson' => 'infocenter:r'
'setNavigationMenuArrayJson' => 'infocenter:r',
'getAbsageData' => 'infocenter:r',
'saveAbsageForAll' => 'infocenter:rw'
)
);
@@ -433,11 +436,14 @@ class InfoCenter extends Auth_Controller
* Saves Absage for Prestudent including the reason for the Absage (statusgrund).
* inserts Studiensemester and Ausbildungssemester for the new Absage of (chronologically) last status.
*/
public function saveAbsage()
public function saveAbsage($prestudent_id = null, $statusgrund = null)
{
$json = null;
$prestudent_id = $this->input->post('prestudent_id');
$statusgrund = $this->input->post('statusgrund');
if (is_null($prestudent_id))
$prestudent_id = $this->input->post('prestudent_id');
if (is_null($statusgrund))
$statusgrund = $this->input->post('statusgrund');
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
@@ -446,8 +452,10 @@ class InfoCenter extends Auth_Controller
if (hasData($lastStatus) && hasData($statusgrresult))
{
//check if still Interessent and not freigegeben yet
if ($lastStatus->retval[0]->status_kurzbz === self::INTERESSENTSTATUS && !isset($lastStatus->retval[0]->bestaetigtam))
//check if still Interessent
if ($lastStatus->retval[0]->status_kurzbz === self::INTERESSENTSTATUS
|| $lastStatus->retval[0]->status_kurzbz === self::BEWERBERSTATUS
|| $lastStatus->retval[0]->status_kurzbz === self::WARTENDER)
{
$result = $this->PrestudentstatusModel->insert(
array(
@@ -1358,6 +1366,8 @@ class InfoCenter extends Auth_Controller
|| isset($zgvpruefung->prestudentstatus->bestaetigtam)
|| $zgvpruefung->prestudentstatus->status_kurzbz != self::INTERESSENTSTATUS;
$zgvpruefung->abgewiesener = $zgvpruefung->prestudentstatus->status_kurzbz === self::ABGEWIESENERSTATUS;
//wether prestudent was freigegeben for RT/Stg
$zgvpruefung->isRtFreigegeben = false;
$zgvpruefung->isStgFreigegeben = false;
@@ -1427,8 +1437,8 @@ class InfoCenter extends Auth_Controller
$this->_sortPrestudents($zgvpruefungen);
$abwstatusgruende = $this->StatusgrundModel->loadWhere(array('status_kurzbz' => self::ABGEWIESENERSTATUS))->retval;
$intstatusgruende = $this->StatusgrundModel->loadWhere(array('status_kurzbz' => self::INTERESSENTSTATUS))->retval;
$abwstatusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
$intstatusgruende = $this->StatusgrundModel->getStatus(self::INTERESSENTSTATUS)->retval;
$data = array (
'zgvpruefungen' => $zgvpruefungen,
@@ -1687,4 +1697,45 @@ class InfoCenter extends Auth_Controller
$this->loglib->logError('Studiengang has no mail for sending Freigabe mail');
}
}
public function getAbsageData()
{
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
$statusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
$studiengaenge = $this->StudiengangModel->getStudiengaengeWithOrgForm(['b', 'm'], $studienSemester);
$data = array (
'statusgruende' => $statusgruende,
'studiengaenge' => $studiengaenge->retval
);
$this->outputJsonSuccess($data);
}
public function saveAbsageForAll()
{
$statusgrund = $this->input->post('statusgrund');
$studiengang = $this->input->post('studiengang');
$personen = $this->input->post('personen');
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
if ($statusgrund === 'null' || $studiengang === 'null' || empty($personen))
$this->terminateWithJsonError("Bitte Statusgrund, Studiengang und Personen auswählen.");
foreach($personen as $person)
{
$prestudent = $this->PrestudentModel->getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester);
if(!hasData($prestudent))
continue;
$prestudentData = getData($prestudent);
$this->saveAbsage($prestudentData[0]->prestudent_id, $statusgrund);
}
$this->outputJsonSuccess("Success");
}
}
@@ -610,4 +610,19 @@ class Prestudent_model extends DB_Model
'prestudent_id' => $prestudent_id
));
}
public function getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester)
{
$query = "SELECT ps.prestudent_id
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
WHERE ps.person_id = ?
AND UPPER((sg.typ || sg.kurzbz) || ':' || sp.orgform_kurzbz) = ?
AND pss.studiensemester_kurzbz = ?
";
return $this->execQuery($query, array($person, $studiengang, $studienSemester));
}
}
@@ -11,4 +11,18 @@ class Statusgrund_model extends DB_Model
$this->dbTable = "public.tbl_status_grund";
$this->pk = "statusgrund_id";
}
public function getStatus($status_kurzbz = null, $aktiv = null)
{
$this->addOrder('bezeichnung_mehrsprachig');
$where = array();
if (!is_null($status_kurzbz))
$where['status_kurzbz'] = $status_kurzbz;
if (!is_null($aktiv))
$where['aktiv'] = $aktiv;
$status = $this->loadWhere($where);
return success($status->retval);
}
}
@@ -481,4 +481,18 @@ class Studiengang_model extends DB_Model
return $this->loadWhere($condition);
}
public function getStudiengaengeWithOrgForm($typ, $semester)
{
$query = "SELECT DISTINCT (UPPER(sg.typ || sg.kurzbz || ':' || sp.orgform_kurzbz)) AS Studiengang
FROM public.tbl_studiengang sg
JOIN lehre.tbl_studienordnung USING (studiengang_kz)
JOIN lehre.tbl_studienplan sp USING (studienordnung_id)
JOIN lehre.tbl_studienplan_semester spsem USING (studienplan_id)
WHERE sp.aktiv = TRUE AND sg.aktiv = TRUE AND sg.typ IN ?
AND spsem.studiensemester_kurzbz = ?
ORDER BY Studiengang";
return $this->execQuery($query, array($typ, $semester));
}
}
@@ -189,7 +189,7 @@ $this->load->view(
<div class="col-xs-4 col-md-offset-0 col-md-4">
<div class="input-group">
<input id="username" type="hidden" autocomplete="username" value=""><!-- this is to prevent Chrome autofilling a random input field with the username-->
<input id="username" autocomplete="username" style="position: absolute; opacity: 0;"><!-- this is to prevent Chrome autofilling a random input field with the username-->
<input id="password" type="password" autocomplete="new-password" class="form-control" placeholder="CIS-<?php echo ucfirst($this->p->t('password', 'password')); ?>">
<span class="input-group-btn">
<button id="accept-lehrauftraege" class="btn btn-primary pull-right"><?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?></button>
@@ -48,6 +48,8 @@
name="period" value="today"><?php echo $this->p->t('ui','heute'); ?></button>
<button type="submit" class="btn btn-default <?php echo $period == 'lastWeek' ? 'active' : ''?>"
name="period" value="lastWeek"><?php echo $this->p->t('ui','letzteWoche'); ?></button>
<button type="submit" class="btn btn-default <?php echo $period == 'upcoming' ? 'active' : ''?>"
name="period" value="upcoming"><?php echo $this->p->t('ui','zukuenftige'); ?></button>
<button type="submit" class="btn btn-default <?php echo $period == 'all' ? 'active' : ''?>"
name="period" value="all"><?php echo $this->p->t('ui','alle'); ?></button>
</div>
@@ -19,9 +19,10 @@ FROM
WHERE
vorsitz='".$UID."'
AND (
'". $PERIOD. "' = 'today' AND datum = NOW()::date OR
'". $PERIOD. "' = 'lastWeek' AND datum = (NOW() - interval '1 week')::date OR
'". $PERIOD. "' = 'all' AND datum >= '2020-05-27'
('". $PERIOD. "' = 'today' AND datum = NOW()::date) OR
('". $PERIOD. "' = 'lastWeek' AND datum >= (NOW() - interval '1 week')::date AND datum < NOW()::date) OR
('". $PERIOD. "' = 'upcoming' AND datum > NOW()::date) OR
('". $PERIOD. "' = 'all' AND datum >= '2020-05-27')
)
ORDER BY datum, nachname, vorname
";
@@ -0,0 +1,35 @@
<div class="modal fade absageModalForAll"
tabindex="-1"
role="dialog"
aria-labelledby="absageModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-hidden="true">
&times;
</button>
<h4 class="modal-title"
id="absageModalLabel"><?php echo $this->p->t('infocenter', 'absageBestaetigen') ?></h4>
</div>
<div class="modal-body">
<?php echo $this->p->t('infocenter', 'absageBestaetigenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
<?php echo $this->p->t('ui', 'abbrechen') ?>
</button>
<button class="btn btn-primary saveAbsage" id="saveAbsageForAll">
<?php echo $this->p->t('infocenter', 'interessentAbweisen') ?>
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
@@ -13,6 +13,7 @@
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'dialoglib' => true,
'phrases' => array(
'person' => array('vorname', 'nachname'),
'global' => array('mailAnXversandt'),
@@ -40,6 +41,7 @@
</div>
<div>
<?php $this->load->view('system/infocenter/infocenterData.php'); ?>
<?php $this->load->view('system/infocenter/absageModal.php'); ?>
</div>
</div>
</div>
@@ -13,6 +13,7 @@
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'dialoglib' => true,
'phrases' => array(
'person' => array('vorname', 'nachname'),
'global' => array('mailAnXversandt'),
@@ -40,6 +41,7 @@
</div>
<div>
<?php $this->load->view('system/infocenter/infocenterFreigegebenData.php'); ?>
<?php $this->load->view('system/infocenter/absageModal.php'); ?>
</div>
</div>
</div>
@@ -114,6 +114,12 @@
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
AND NOT EXISTS (
SELECT 1
FROM tbl_prestudentstatus spss
WHERE spss.prestudent_id = ps.prestudent_id
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
)
LIMIT 1
) AS "StgAbgeschickt",
(
@@ -13,6 +13,7 @@
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'dialoglib' => true,
'phrases' => array(
'person' => array('vorname', 'nachname'),
'global' => array('mailAnXversandt'),
@@ -40,6 +41,7 @@
</div>
<div>
<?php $this->load->view('system/infocenter/infocenterReihungstestAbsolviertData.php'); ?>
<?php $this->load->view('system/infocenter/absageModal.php'); ?>
</div>
</div>
</div>
@@ -83,10 +83,11 @@
LIMIT 1
) AS "AnzahlAbgeschickt",
(
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz || \':\' || sg.orgform_kurzbz)), \', \')
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz || \':\' || sp.orgform_kurzbz)), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
@@ -344,7 +344,7 @@
<?php
//Prestudenten cannot be abgewiesen or freigegeben if already done
if (!$infoonly) :
if (!$infoonly || (isset($zgvpruefung->prestudentstatus->status_kurzbz) && in_array($zgvpruefung->prestudentstatus->status_kurzbz, ['Bewerber', 'Wartender']))) :
?>
<div class="panel-footer solidtop">
<div class="row">
@@ -368,130 +368,97 @@
</button>
</span>
</div>
<div class="modal fade absageModal" id="absageModal_<?php echo $zgvpruefung->prestudent_id ?>"
tabindex="-1"
role="dialog"
aria-labelledby="absageModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-hidden="true">
&times;
</button>
<h4 class="modal-title"
id="absageModalLabel"><?php echo $this->p->t('infocenter', 'absageBestaetigen') ?></h4>
</div>
<div class="modal-body">
<?php echo $this->p->t('infocenter', 'absageBestaetigenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
<?php echo $this->p->t('ui', 'abbrechen') ?>
</button>
<button class="btn btn-primary saveAbsage" id="saveAbsage_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'interessentAbweisen') ?>
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
</div>
</div><!-- /.column-absage -->
<?php
$disabled = $disabledStg = $disabledTxt = $disabledStgTxt = '';
if (isEmptyString($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum))
{
$disabled = $disabledStg = 'disabled';
$disabledTxt = $disabledStgTxt = $this->p->t('infocenter', 'bewerbungMussAbgeschickt');
}
<?php
$disabled = $disabledStg = $disabledTxt = $disabledStgTxt = '';
if (isEmptyString($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum))
{
$disabled = $disabledStg = 'disabled';
$disabledTxt = $disabledStgTxt = $this->p->t('infocenter', 'bewerbungMussAbgeschickt');
}
if ($studiengangtyp !== 'b')
{
$disabled = 'disabled';
$disabledTxt = $this->p->t('infocenter', 'nurBachelorFreigeben');
if ($studiengangtyp !== 'b')
{
$disabled = 'disabled';
$disabledTxt = $this->p->t('infocenter', 'nurBachelorFreigeben');
// FIT-Lehrgänge: exceptions, can be freigegeben in Infocenter
if (!in_array($studiengang_kz, $fit_programme_studiengaenge))
{
$disabledStg = 'disabled';
$disabledStgTxt = $this->p->t('infocenter', 'nurBachelorFreigeben');
}
// FIT-Lehrgänge: exceptions, can be freigegeben in Infocenter
if (!in_array($studiengang_kz, $fit_programme_studiengaenge))
{
$disabledStg = 'disabled';
$disabledStgTxt = $this->p->t('infocenter', 'nurBachelorFreigeben');
}
?>
<div class="col-lg-8 text-right">
<div class="form-inline">
<div class="input-group frgstatusgrselect" id="frgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
<select name="frgstatusgrund"
class="d-inline float-right"
<?php echo $disabledStg ?>
required>
<option value="null"
selected="selected"><?php echo ucfirst($this->p->t('ui', 'freigabeart')) . '...' ?>
</option>
<?php foreach ($intstatusgruende as $statusgrund): ?>
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
<?php endforeach ?>
</select>
<span class="input-group-btn">
<button class="btn btn-default freigabebtnstg" <?php echo $disabledStg ?> id="freigabebtnstg_<?php echo $zgvpruefung->prestudent_id ?>"
data-toggle="tooltip" title="<?php echo $disabledStgTxt ?>">
<?php echo $this->p->t('ui', 'freigabeAnStudiengang') ?>
}
if (!$infoonly) :
?>
<div class="col-lg-8 text-right">
<div class="form-inline">
<div class="input-group frgstatusgrselect" id="frgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
<select name="frgstatusgrund"
class="d-inline float-right"
<?php echo $disabledStg ?>
required>
<option value="null"
selected="selected"><?php echo ucfirst($this->p->t('ui', 'freigabeart')) . '...' ?>
</option>
<?php foreach ($intstatusgruende as $statusgrund): ?>
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
<?php endforeach ?>
</select>
<span class="input-group-btn">
<button class="btn btn-default freigabebtnstg" <?php echo $disabledStg ?> id="freigabebtnstg_<?php echo $zgvpruefung->prestudent_id ?>"
data-toggle="tooltip" title="<?php echo $disabledStgTxt ?>">
<?php echo $this->p->t('ui', 'freigabeAnStudiengang') ?>
</button>
</span>
</div>
<div class="input-group" id="igrfrgbtn">
<button type="button" id="freigabebtn_<?php echo $zgvpruefung->prestudent_id ?>" class="btn btn-default freigabebtn" <?php echo $disabled ?>
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
<?php echo $this->p->t('ui', 'freigabeZumReihungstest') ?>
</button>
</span>
</div>
<div class="input-group" id="igrfrgbtn">
<button type="button" id="freigabebtn_<?php echo $zgvpruefung->prestudent_id ?>" class="btn btn-default freigabebtn" <?php echo $disabled ?>
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
<?php echo $this->p->t('ui', 'freigabeZumReihungstest') ?>
</button>
</div>
</div>
</div>
</div>
<div class="modal fade freigabeModal" id="freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>" tabindex="-1"
role="dialog"
aria-labelledby="freigabeModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
data-dismiss="modal"
aria-hidden="true">&times;
</button>
<h4 class="modal-title"
id="freigabeModalLabel">
<?php echo $this->p->t('infocenter', 'freigabeBestaetigen') ?>
<span id="freigabeModalStgr_<?php echo $zgvpruefung->prestudent_id ?>"></span>
</h4>
</div>
<div class="modal-body">
<?php echo $this->p->t('infocenter', 'interessentFreigebenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal"><?php echo $this->p->t('ui', 'abbrechen') ?>
</button>
<button type="button"
class="btn btn-primary saveFreigabe" id="saveFreigabe_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
</button>
<button type="button"
class="btn btn-primary saveStgFreigabe" id="saveStgFreigabe_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal-fade -->
<div class="modal fade freigabeModal" id="freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>" tabindex="-1"
role="dialog"
aria-labelledby="freigabeModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
data-dismiss="modal"
aria-hidden="true">&times;
</button>
<h4 class="modal-title"
id="freigabeModalLabel">
<?php echo $this->p->t('infocenter', 'freigabeBestaetigen') ?>
<span id="freigabeModalStgr_<?php echo $zgvpruefung->prestudent_id ?>"></span>
</h4>
</div>
<div class="modal-body">
<?php echo $this->p->t('infocenter', 'interessentFreigebenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal"><?php echo $this->p->t('ui', 'abbrechen') ?>
</button>
<button type="button"
class="btn btn-primary saveFreigabe" id="saveFreigabe_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
</button>
<button type="button"
class="btn btn-primary saveStgFreigabe" id="saveStgFreigabe_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal-fade -->
<?php endif; ?>
</div><!-- /.row -->
</div><!-- /.panel-footer -->
<?php elseif (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent'): ?>
@@ -508,9 +475,69 @@
</label>
</div>
</div><!-- /.row -->
<div class="row">
<div class="col-lg-4 text-left">
<div class="input-group" id="absgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
<select name="absgstatusgrund"
class="d-inline float-right"
required>
<option value="null"
selected="selected"><?php echo ucfirst($this->p->t('infocenter', 'absagegrund')) . '...' ?>
</option>
<?php foreach ($abwstatusgruende as $statusgrund): ?>
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
<?php endforeach ?>
</select>
<span class="input-group-btn">
<button type="button"
class="btn btn-default absageBtn" id="absagebtn_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('ui', 'absagen') ?>
</button>
</span>
</div>
</div>
</div>
</div><!-- /.panel-footer -->
<?php endif; //end if infoonly
?>
<?php
endif;
?>
<div class="modal fade absageModal" id="absageModal_<?php echo $zgvpruefung->prestudent_id ?>"
tabindex="-1"
role="dialog"
aria-labelledby="absageModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-hidden="true">
&times;
</button>
<h4 class="modal-title"
id="absageModalLabel"><?php echo $this->p->t('infocenter', 'absageBestaetigen') ?></h4>
</div>
<div class="modal-body">
<?php echo $this->p->t('infocenter', 'absageBestaetigenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
<?php echo $this->p->t('ui', 'abbrechen') ?>
</button>
<button class="btn btn-primary saveAbsage" id="saveAbsage_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'interessentAbweisen') ?>
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
</div><!-- /.div collapse -->
</div><!-- /.panel -->
<?php