Merge branch 'master' into feature-11836/reihungstest_starten_von_fremden_gebieten_verhindern

This commit is contained in:
Andreas Österreicher
2023-02-07 14:46:24 +01:00
49 changed files with 1557 additions and 462 deletions
@@ -121,6 +121,7 @@ class InfoCenter extends Auth_Controller
'unlockPerson' => 'infocenter:rw',
'saveFormalGeprueft' => 'infocenter:rw',
'saveDocTyp' => 'infocenter:rw',
'updateStammdaten' => 'infocenter:rw',
'saveNachreichung' => 'infocenter:rw',
'getPrestudentData' => 'infocenter:r',
'getLastPrestudentWithZgvJson' => 'infocenter:r',
@@ -172,11 +173,16 @@ class InfoCenter extends Auth_Controller
$this->load->model('codex/Zgv_model', 'ZgvModel');
$this->load->model('codex/Zgvmaster_model', 'ZgvmasterModel');
$this->load->model('codex/Nation_model', 'NationModel');
$this->load->model('person/Kontakt_model', 'KontaktModel');
$this->load->model('person/Geschlecht_model', 'GeschlechtModel');
$this->load->model('person/adresse_model', 'AdresseModel');
// Loads libraries
$this->load->library('PersonLogLib');
$this->load->library('WidgetLib');
$this->load->config('infocenter');
$this->loadPhrases(
array(
'global',
@@ -1111,14 +1117,14 @@ class InfoCenter extends Auth_Controller
public function reloadDoks($person_id)
{
$dokumente_nachgereicht = $this->AkteModel->getAktenWithDokInfo($person_id, null, true);
$dokumente_nachgereicht = $this->AkteModel->getAktenWithDokInfo($person_id, null, true, false);
$this->load->view('system/infocenter/dokNachzureichend.php', array('dokumente_nachgereicht' => $dokumente_nachgereicht->retval));
}
public function reloadUebersichtDoks($person_id)
{
$dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false);
$dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false, false);
$this->DokumentModel->addOrder('bezeichnung');
$dokumentdata = array('dokumententypen' => (getData($this->DokumentModel->load())));
@@ -1320,6 +1326,126 @@ class InfoCenter extends Auth_Controller
$this->outputJsonSuccess('success');
}
public function updateStammdaten()
{
if (isEmptyString($this->input->post('nachname')) ||
isEmptyString($this->input->post('geschlecht')) ||
isEmptyString($this->input->post('gebdatum')))
{
$this->terminateWithJsonError($this->p->t('infocenter', 'stammdatenFeldFehlt'));
}
$datum = explode('.', $this->input->post('gebdatum'));
if (!checkdate($datum[1], $datum[0], $datum[2]))
{
$this->terminateWithJsonError($this->p->t('infocenter', 'datumUngueltig'));
}
$person_id = $this->input->post('personid');
$update = $this->PersonModel->update(
array
(
'person_id' => $person_id
),
array
(
'titelpre' => isEmptyString($this->input->post('titelpre')) ? null : $this->input->post('titelpre'),
'vorname' => isEmptyString($this->input->post('vorname')) ? null : $this->input->post('vorname'),
'nachname' => $this->input->post('nachname'),
'titelpost' => isEmptyString($this->input->post('titelpost')) ? null : $this->input->post('titelpost'),
'gebdatum' => isEmptyString($this->input->post('gebdatum')) ? null : date("Y-m-d", strtotime($this->input->post('gebdatum'))),
'svnr' => isEmptyString($this->input->post('svnr')) ? null : $this->input->post('svnr'),
'staatsbuergerschaft' => isEmptyString($this->input->post('buergerschaft')) ? null : $this->input->post('buergerschaft'),
'geschlecht' => $this->input->post('geschlecht'),
'geburtsnation' => isEmptyString($this->input->post('gebnation')) ? null : $this->input->post('gebnation'),
'gebort' => isEmptyString($this->input->post('gebort')) ? null : $this->input->post('gebort'),
'updateamum' => date('Y-m-d H:i:s'),
'updatevon' => $this->_uid
)
);
if (isError($update))
$this->terminateWithJsonError($this->p->t('ui', 'fehlerBeimSpeichern'));
$kontakte = $this->input->post('kontakt');
foreach ($kontakte as $kontakt)
{
$kontaktExists = $this->KontaktModel->loadWhere(array(
'kontakt_id' => $kontakt['id'],
'person_id' => $person_id,
));
if (hasData($kontaktExists))
{
$kontaktExists = getData($kontaktExists)[0];
if ($kontaktExists->kontakt === $kontakt['value'])
continue;
$update = $this->KontaktModel->update(
array
(
'kontakt_id' => $kontakt['id']
),
array
(
'kontakt' => isEmptyString($kontakt['value']) ? null : $kontakt['value'],
'updateamum' => date('Y-m-d H:i:s'),
'updatevon' => $this->_uid
)
);
if (isError($update))
$this->terminateWithJsonError($this->p->t('ui', 'fehlerBeimSpeichern'));
}
}
$adressen = $this->input->post('adresse');
foreach ($adressen as $adresse)
{
$adresseExists = $this->AdresseModel->loadWhere(array(
'adresse_id' => $adresse['id'],
'person_id' => $person_id,
));
if (hasData($adresseExists))
{
$adresse = $adresse['value'];
$adresseExists = getData($adresseExists)[0];
if ($adresseExists->strasse !== $adresse['strasse'] ||
$adresseExists->plz !== $adresse['plz'] ||
$adresseExists->ort !== $adresse['ort'] ||
$adresseExists->nation !== $adresse['nation'])
{
$update = $this->AdresseModel->update(
array
(
'adresse_id' => $adresseExists->adresse_id
),
array
(
'strasse' => isEmptyString($adresse['strasse']) ? null : $adresse['strasse'],
'plz' => isEmptyString($adresse['plz']) ? null : $adresse['plz'],
'ort' => isEmptyString($adresse['ort']) ? null : $adresse['ort'],
'nation' => isEmptyString($adresse['nation']) ? null : $adresse['nation'],
'updateamum' => date('Y-m-d H:i:s'),
'updatevon' => $this->_uid
)
);
if (isError($update))
$this->terminateWithJsonError($this->p->t('ui', 'fehlerBeimSpeichern'));
}
}
}
$this->outputJsonSuccess('Success');
}
public function saveNachreichung($person_id)
{
$nachreichungAm = $this->input->post('nachreichungAm');
@@ -1794,14 +1920,14 @@ class InfoCenter extends Auth_Controller
if (!isset($stammdaten->retval))
return null;
$dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false);
$dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false, false);
if (isError($dokumente))
{
show_error(getError($dokumente));
}
$dokumente_nachgereicht = $this->AkteModel->getAktenWithDokInfo($person_id, null, true);
$dokumente_nachgereicht = $this->AkteModel->getAktenWithDokInfo($person_id, null, true, false);
if (isError($dokumente_nachgereicht))
{
@@ -1996,6 +2122,12 @@ class InfoCenter extends Auth_Controller
$this->NationModel->addOrder('langtext');
$allNations = getData($this->NationModel->load());
$additional_stg = explode(',', ($this->config->item('infocenter_studiengang_kz')));
$this->GeschlechtModel->addOrder('sort');
$allGenders = getData($this->GeschlechtModel->load());
$data = array (
'zgvpruefungen' => $zgvpruefungen,
'abwstatusgruende' => $abwstatusgruende,
@@ -2004,6 +2136,8 @@ class InfoCenter extends Auth_Controller
'all_zgvs' => $allZGVs,
'all_zgvs_master' => $allZGVsMaster,
'all_nations' => $allNations,
'additional_stg' => $additional_stg,
'all_genders' => $allGenders
);
return $data;
@@ -2164,8 +2298,8 @@ class InfoCenter extends Auth_Controller
$prestudentstatus = $prestudent->prestudentstatus;
$person_id = $prestudent->person_id;
$person = $this->PersonModel->getPersonStammdaten($person_id, true)->retval;
$dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false)->retval;
$dokumenteNachzureichen = $this->AkteModel->getAktenWithDokInfo($person_id, null, true)->retval;
$dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false, false)->retval;
$dokumenteNachzureichen = $this->AkteModel->getAktenWithDokInfo($person_id, null, true, false)->retval;
//fill mail variables
$interessentbez = $person->geschlecht == 'm' ? 'Ein Interessent' : 'Eine Interessentin';
@@ -2262,12 +2396,10 @@ class InfoCenter extends Auth_Controller
public function getAbsageData()
{
$studiengang_kz_all = $this->permissionlib->getSTG_isEntitledFor('infocenter');
$stg_typ = $this->StudiengangModel->getStudiengangTyp($studiengang_kz_all, ['b', 'm']);
$stg_typ = $this->getStudienArtBerechtigung(['b', 'm']);
if (hasData($stg_typ))
if (!is_null($stg_typ))
{
$stg_typ = getData($stg_typ);
$statusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
$studiengaenge = $this->StudiengangModel->getStudiengaengeWithOrgForm(array_column($stg_typ, 'typ'), $studienSemester);
@@ -2283,15 +2415,16 @@ class InfoCenter extends Auth_Controller
$this->outputJsonSuccess(null);
}
public function getStudienArtBerechtigung()
public function getStudienArtBerechtigung($typ = null)
{
$studiengang_kz_all = $this->permissionlib->getSTG_isEntitledFor('infocenter');
$stg_typ = $this->StudiengangModel->getStudiengangTyp($studiengang_kz_all, ['b', 'm', 'l']);
$stg_typ = $this->StudiengangModel->getStudiengangTyp($studiengang_kz_all, $typ);
return getData($stg_typ);
}
public function getStudienartData()
{
$this->outputJsonSuccess($this->getStudienArtBerechtigung());
$this->outputJsonSuccess($this->getStudienArtBerechtigung(['b', 'm', 'l']));
}
public function saveAbsageForAll()
+4 -1
View File
@@ -171,7 +171,7 @@ class Akte_model extends DB_Model
* @param bool $nachgereicht if true, retrieves only nachgereichte Dokumente. if false, only not nachgereichte. default: null, all Dokumente
* @return array
*/
public function getAktenWithDokInfo($person_id, $dokument_kurzbz = null, $nachgereicht = null)
public function getAktenWithDokInfo($person_id, $dokument_kurzbz = null, $nachgereicht = null, $archiv = null)
{
$this->addSelect('public.tbl_akte.*, bezeichnung_mehrsprachig, dokumentbeschreibung_mehrsprachig, public.tbl_dokument.bezeichnung as dokument_bezeichnung, bis.tbl_nation.*, ausstellungsdetails');
$this->addJoin('public.tbl_dokument', 'dokument_kurzbz');
@@ -184,6 +184,9 @@ class Akte_model extends DB_Model
if(is_bool($nachgereicht))
$where['nachgereicht'] = $nachgereicht;
if (is_bool($archiv))
$where['archiv'] = $archiv;
$dokumente = $this->loadWhere($where);
if($dokumente->error) return $dokumente;
+29 -3
View File
@@ -309,13 +309,39 @@ class Prestudent_model extends DB_Model
*/
public function getLastPrestudent($person_id, $withzgv = false)
{
$qry = 'SELECT * FROM public.tbl_prestudent
WHERE person_id = ?
$qry = 'SELECT * FROM public.tbl_prestudent ps
%s
WHERE ps.person_id = ?
ORDER BY updateamum DESC NULLS LAST, insertamum DESC NULLS LAST
LIMIT 1';
$zgvwhere = $withzgv === true ? 'AND zgv_code IS NOT NULL' : '';
$zgvwhere = '';
if ($withzgv === true)
{
$zgvwhere = '
LEFT JOIN (
SELECT ps2.zgvmas_code,
ps2.zgvmanation,
ps2.zgvmadatum,
ps2.zgvmaort,
ps2.zgvmas_erfuellt,
ps2.person_id
FROM tbl_prestudent ps2
WHERE zgvmas_code IS NOT NULL
ORDER BY updateamum DESC NULLS LAST, insertamum DESC NULLS LAST
) zgvmas ON zgvmas.person_id = ps.person_id
LEFT JOIN (
SELECT ps2.zgv_code,
ps2.zgvnation,
ps2.zgvdatum,
ps2.zgvort,
ps2.zgv_erfuellt,
ps2.person_id
FROM tbl_prestudent ps2
WHERE zgv_code IS NOT NULL
ORDER BY updateamum DESC NULLS LAST, insertamum DESC NULLS LAST
)zgv ON zgv.person_id = ps.person_id';
}
$qry = sprintf($qry, $zgvwhere);
@@ -508,13 +508,20 @@ class Studiengang_model extends DB_Model
return $this->execQuery($query, array($typ, $semester));
}
public function getStudiengangTyp($studiengang_kz, $typ)
public function getStudiengangTyp($studiengang_kz, $typ = null)
{
$query = "SELECT DISTINCT(sgt.*)
FROM tbl_studiengangstyp sgt JOIN tbl_studiengang sg on sgt.typ = sg.typ
WHERE studiengang_kz IN ? and sgt.typ IN ?";
WHERE studiengang_kz IN ?";
return $this->execQuery($query, array($studiengang_kz, $typ));
$params[] = $studiengang_kz;
if (!is_null($typ))
{
$query .= " AND sgt.typ IN ?";
$params[] = $typ;
}
return $this->execQuery($query, $params);
}
}
@@ -0,0 +1,14 @@
<?php
class Geschlecht_model extends DB_Model
{
/**
*
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'public.tbl_geschlecht';
$this->pk = 'geschlecht';
}
}
@@ -25,7 +25,8 @@
'public/js/infocenter/messageList.js',
'public/js/infocenter/infocenterDetails.js',
'public/js/infocenter/zgvUeberpruefung.js',
'public/js/infocenter/docUeberpruefung.js'
'public/js/infocenter/docUeberpruefung.js',
'public/js/infocenter/stammdaten.js'
),
'phrases' => array(
'infocenter' => array(
@@ -1,60 +1,104 @@
<div class="row">
<div class="col-lg-6 table-responsive">
<div class="col-lg-6 table-responsive stammdaten_form">
<table class="table">
<?php if (!empty($stammdaten->titelpre)): ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','titelpre')) ?></strong></td>
<td><?php echo $stammdaten->titelpre ?></td>
<td>
<div class='stammdaten' id="titelpre"><?php echo $stammdaten->titelpre ?></div>
</td>
</tr>
<?php endif; ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','vorname')) ?></strong></td>
<td><?php echo $stammdaten->vorname ?></td>
<td>
<div class='stammdaten' id="vorname"><?php echo $stammdaten->vorname ?></div>
</td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','nachname')) ?></strong></td>
<td>
<?php echo $stammdaten->nachname ?></td>
<div class='stammdaten' id="nachname"><?php echo $stammdaten->nachname ?></div>
</td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','titelpost')) ?></strong></td>
<td>
<div class='stammdaten' id="titelpost"><?php echo $stammdaten->titelpost ?></div>
</td>
</tr>
<?php if (!empty($stammdaten->titelpost)): ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','titelpost')) ?></strong></td>
<td><?php echo $stammdaten->titelpost ?></td>
</tr>
<?php endif; ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','geburtsdatum')) ?></strong></td>
<td>
<?php echo date_format(date_create($stammdaten->gebdatum), 'd.m.Y') ?></td>
<div class='stammdaten' id="gebdatum"><?php echo date_format(date_create($stammdaten->gebdatum), 'd.m.Y') ?></div>
</td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','svnr')) ?></strong></td>
<td>
<?php echo $stammdaten->svnr ?></td>
<div class='stammdaten' id="svnr"><?php echo $stammdaten->svnr ?></div>
</td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','staatsbuergerschaft')) ?></strong></td>
<td>
<?php echo $stammdaten->staatsbuergerschaft ?></td>
<select id="buergerschaft" disabled>
<?php
foreach ($all_nations as $nation)
{
$selected = '';
if ($nation->nation_code === $stammdaten->staatsbuergerschaft_code)
$selected = 'selected';
echo "<option value='". $nation->nation_code ."' " . $selected . ">". $nation->langtext . "</option>";
}
?>
</select>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','geschlecht')) ?></strong></td>
<td>
<?php echo $stammdaten->geschlecht ?></td>
<?php
$language = getUserLanguage() == 'German' ? 0 : 1;
?>
<select id="geschlecht" disabled>
<?php
foreach ($all_genders as $gender)
{
$selected = '';
if ($gender->geschlecht === $stammdaten->geschlecht)
$selected = 'selected';
echo "<option value='". $gender->geschlecht ."' " . $selected . ">". ucfirst($gender->bezeichnung_mehrsprachig[$language]) . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','geburtsnation')) ?></strong></td>
<td>
<?php echo $stammdaten->geburtsnation ?></td>
<select id="gebnation" disabled>
<?php
foreach ($all_nations as $nation)
{
$selected = '';
if ($nation->nation_code === $stammdaten->geburtsnation_code)
$selected = 'selected';
echo "<option value='". $nation->nation_code ."' " . $selected . ">". $nation->langtext . "</option>";
}
?>
</select>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','geburtsort')) ?></strong></td>
<td><?php echo $stammdaten->gebort ?></td>
<td>
<div class='stammdaten' id="gebort"><?php echo $stammdaten->gebort ?></div>
</td>
</tr>
</table>
</div>
<div class="col-lg-6 table-responsive">
<table class="table table-bordered">
<table class="table table-bordered stammdaten_form">
<thead>
<tr>
<th colspan="4" class="text-center"><?php echo ucfirst($this->p->t('global','kontakt')) ?></th>
@@ -78,7 +122,7 @@
<td><?php echo ucfirst($kontakt->kontakttyp) ?></td>
<?php endif; ?>
<td>
<?php echo '<span class="'.$kontakt->kontakttyp.'">';?>
<?php echo '<span class="kontakt '.$kontakt->kontakttyp.'" data-id="'. $kontakt->kontakt_id .'" data-value="' . $kontakt->kontakt .'">';?>
<?php if ($kontakt->kontakttyp === 'email'): ?>
<a href="mailto:<?php echo $kontakt->kontakt; ?>" target="_top">
<?php $lastMailAdress = $kontakt->kontakt;
@@ -99,8 +143,30 @@
<?php echo ucfirst($this->p->t('person','adresse')) ?>
</td>
<td>
<?php echo isset($adresse) ? $adresse->strasse.', '.$adresse->plz.' '.$adresse->ort : '' ?>
<?php echo isset($adresse->nationkurztext) ? '<br />'.$adresse->nationkurztext : '' ?>
<?php if (isset($adresse)): ?>
<div class="row adresse col-sm-12" data-id="<?php echo $adresse->adresse_id ?>">
<div class="float-left" data-value="<?php echo $adresse->strasse ?>" data-type="strasse"><?php echo $adresse->strasse ?></div>
<div class="float-left" data-value="<?php echo $adresse->plz ?>" data-type="plz"><?php echo $adresse->plz ?></div>
<div class="float-left" data-value="<?php echo $adresse->ort ?>" data-type="ort"><?php echo $adresse->ort ?></div>
<?php if (isset($adresse->nationkurztext)): ?>
<select id="nation_<?php echo $adresse->adresse_id ?>" disabled>
<?php
foreach ($all_nations as $nation)
{
$selected = '';
if ($nation->nation_code === $adresse->nation)
$selected = 'selected';
echo "<option value='". $nation->nation_code ."' " . $selected . ">". $nation->langtext . "</option>";
}
?>
</select>
</div>
<br />
<?php endif; ?>
<?php endif; ?>
</td>
<td>
<?php echo ($adresse->heimatadresse === true ? 'Heimatadresse' : '').
@@ -126,6 +192,16 @@
target='_blank'><i class="glyphicon glyphicon-new-window"></i>&nbsp;<?php echo $this->p->t('infocenter','zugangBewerbung') ?></a>
</div>
<?php endif; ?>
<div class="col-xs-6">
<a class="editStammdaten">
<i class="fa fa-edit"></i>&nbsp;<?php echo $this->p->t('ui','bearbeiten'); ?></a>
<div class="editActionStammdaten" style="display:none">
<a class="cancelStammdaten">
<i class="fa fa-trash"></i>&nbsp;<?php echo $this->p->t('ui','abbrechen');?></a>
<a class="saveStammdaten">
<i class="fa fa-save"></i>&nbsp;<?php echo $this->p->t('ui','speichern'); ?></a>
</div>
</div>
</div>
</div>
</div>
@@ -2,7 +2,7 @@
<?php
$unique_studsemester = array();
$first = true;
$fit_programme_studiengaenge = array(10021, 10027);
$fit_programme_studiengaenge = $additional_stg;
foreach ($zgvpruefungen as $zgvpruefung):
$infoonly = $zgvpruefung->infoonly;
$studiengangkurzbz = $studiengangbezeichnung = $studiengangtyp = '';
+17 -3
View File
@@ -56,7 +56,7 @@ $query .= "SELECT issue_id, fehlercode AS \"Fehlercode\", iss.fehlercode_extern
WHERE person_id = pers.person_id
ORDER BY prestudent_id DESC
) prestudents
WHERE last_status IN ('Aufgenommener', 'Student', 'Incoming', 'Diplomand', 'Abbrecher', 'Unterbrecher', 'Absolvent')
WHERE last_status IN ('Abgewiesener','Aufgenommener', 'Student', 'Incoming', 'Diplomand', 'Abbrecher', 'Unterbrecher', 'Absolvent')
GROUP BY person_id
LIMIT 1;
) AS \"Zugehörigkeit\",
@@ -89,7 +89,9 @@ $query .= "SELECT issue_id, fehlercode AS \"Fehlercode\", iss.fehlercode_extern
LEFT JOIN public.tbl_funktion fu USING (funktion_kurzbz)
WHERE fehlercode = fr.fehlercode
GROUP BY fehlercode
) AS \"Organisationseinheit Zuständigkeiten\"
) AS \"Organisationseinheit Zuständigkeiten\",
pers.bpk AS \"BPK\",
pers.matr_nr AS \"Matrikelnummer\"
FROM system.tbl_issue iss
JOIN system.tbl_fehler fr USING (fehlercode)
JOIN system.tbl_fehlertyp ftyp USING (fehlertyp_kurzbz)
@@ -172,7 +174,9 @@ $filterWidgetArray = array(
ucfirst($this->p->t('fehlermonitoring', 'zugehoerigkeit')),
ucfirst($this->p->t('fehlermonitoring', 'hauptzustaendig')),
ucfirst($this->p->t('fehlermonitoring', 'zustaendigePersonen')),
ucfirst($this->p->t('fehlermonitoring', 'zustaendigeOrganisationseinheiten'))
ucfirst($this->p->t('fehlermonitoring', 'zustaendigeOrganisationseinheiten')),
'BPK',
'Matrikelnummer'
),
'formatRow' => function($datasetRaw) {
@@ -221,6 +225,16 @@ $filterWidgetArray = array(
$datasetRaw->{'Organisationseinheit Zuständigkeiten'} = '-';
}
if ($datasetRaw->{'BPK'} == null)
{
$datasetRaw->{'BPK'} = '-';
}
if ($datasetRaw->{'Matrikelnummer'} == null)
{
$datasetRaw->{'Matrikelnummer'} = '-';
}
return $datasetRaw;
},
'markRow' => function($datasetRaw) {
+3 -2
View File
@@ -180,7 +180,8 @@ $qry = 'SELECT DISTINCT ON
tbl_person.matr_nr,
tbl_person.geschlecht,
tbl_person.foto,
tbl_person.foto_sperre
tbl_person.foto_sperre,
(tbl_bisio.bis::timestamp - tbl_bisio.von::timestamp) as daysout
FROM
campus.vw_student_lehrveranstaltung
JOIN public.tbl_benutzer USING(uid)
@@ -200,7 +201,7 @@ $qry = 'SELECT DISTINCT ON
if ($lehreinheit != '')
$qry .= ' AND vw_student_lehrveranstaltung.lehreinheit_id=' . $db->db_add_param($lehreinheit, FHC_INTEGER);
$qry .= ' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC';
$qry .= ' ORDER BY nachname, vorname, person_id, daysout DESC';
$stsem_obj = new studiensemester();
$stsem_obj->load($studiensemester);
+2 -3
View File
@@ -353,10 +353,9 @@ function writePruefungsTable(e, data, anmeldung)
var time = termin[1].substring(0,5);
termin = termin[0].split("-");
// Wie viele Monate vor Prüfungen dürfen sich Studierende anmelden?
// Sperre "deaktiviert" indem man sich 24 Monate vorher anmelden darf
// Studierende dürfen sich 2 Monate vor Prüfungen anmelden
var minimumFrist = new Date(termin[0], termin[1]-1,termin[2]);
minimumFrist.setMonth(minimumFrist.getMonth() - 24);
minimumFrist.setMonth(minimumFrist.getMonth() - 2);
termin = new Date(termin[0], termin[1]-1,termin[2]);
var frist = termin;
+338 -262
View File
@@ -1,263 +1,339 @@
<?php
/* Copyright (C) 2009 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Karl Burkhart <burkhart@technikum-wien.at>,
*/
require_once("../../../config/cis.config.inc.php");
require_once('../../../include/basis_db.class.php');
require_once("../../../include/gebiet.class.php");
require_once("../../../include/frage.class.php");
require_once("../../../include/vorschlag.class.php");
require_once('../../../include/functions.inc.php');
require_once("../../../include/benutzerberechtigung.class.php");
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Testool Fragen Übersicht</title>
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
</head>
<body style="padding: 10px">
<?php
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('basis/testtool', null, 's'))
die('<span class="error">Sie haben keine Berechtigung für diese Seite</span>');
$gebiet = new gebiet();
$gebiet->getAll();
$sprache = (isset($_REQUEST['Sprache'])?$_REQUEST['Sprache']:'German');
$Auswahlgebiet = (isset($_REQUEST['AuswahlGebiet'])?$_REQUEST['AuswahlGebiet']:'');
$loesungen = (isset($_REQUEST['loesungen']) && $_REQUEST['loesungen'] != '' ? true:false);
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post" name="TesttoolUebersicht">
<table>
<tr>
<td>Gebiet:</td>
<td><select name="AuswahlGebiet"><option value="auswahl"> - Bitte Auswählen - </option>';
foreach ($gebiet->result as $gebietResult)
{
$selected ='';
if($Auswahlgebiet == $gebietResult->gebiet_id)
$selected = 'selected';
echo '<option value="'.$gebietResult->gebiet_id.'" '.$selected.'>'.$gebietResult->gebiet_id.' - '.$gebietResult->bezeichnung.' - '.$gebietResult->kurzbz.'</option>';
}
echo '</select></td></tr>
<tr>
<td>Sprache: </td>
<td><select name="Sprache">';
if($sprache == 'German')
echo '<option selected value="German">Deutsch</option>';
else
echo '<option value="German">Deutsch</option>';
if($sprache == 'English')
echo '<option selected value="English">Englisch</option>';
else
echo '<option value="English">Englisch</option>';
echo'</select>
</td>
</tr>
<tr>
<td>
Mit Lösungen
</td>
<td><input type="checkbox" name="loesungen" '.($loesungen ? 'checked':'').'></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Anzeigen"></td></tr>
</table><br>';
if(isset($_REQUEST['AuswahlGebiet']))
{
$gebiet_id = $_REQUEST['AuswahlGebiet'];
$gebietdetails = new gebiet();
$gebietdetails->load($gebiet_id);
$qry = "SELECT DISTINCT UPPER(typ||kurzbz) AS studiengang
FROM testtool.tbl_ablauf JOIN public.tbl_studiengang USING (studiengang_kz)
WHERE gebiet_id=".$db->db_add_param($gebiet_id)."
ORDER BY studiengang";
$result = $db->db_query($qry);
if ($gebietdetails)
{
echo '
<table>
<tr>
<td align="right">Gebiet:</td>
<td>'.$gebietdetails->bezeichnung.'</td>
</tr>
<tr>
<td valign="top">Verwendet in den Studiengängen:</td>
<td>';
$i=1;
while ($row = $db->db_fetch_object($result))
{
echo $row->studiengang.($db->db_num_rows($result)>1 && $db->db_num_rows($result)>$i?', ':'');
$i++;
if ($i % 10 == 0)
echo '<br>';
}
echo '</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td align="right">Beschreibung:</td>
<td>'.($gebietdetails->beschreibung!=''?$gebietdetails->beschreibung:'-').'</td>
</tr>
<tr>
<td align="right">Zeit:</td>
<td>'.$gebietdetails->zeit.'</td>
</tr>
<tr>
<td align="right">Multipleresponse:</td>
<td>'.($gebietdetails->multipleresponse==true?'Ja':'Nein').'</td>
</tr>
<tr>
<td align="right">Gestellte Fragen:</td>
<td>'.$gebietdetails->maxfragen.'</td>
</tr>
<tr>
<td align="right">Zufallsfrage:</td>
<td>'.($gebietdetails->zufallfrage==true?'Ja':'Nein').'</td>
</tr>
<tr>
<td align="right">Zufallsvorschlag:</td>
<td>'.($gebietdetails->zufallvorschlag==true?'Ja':'Nein').'</td>
</tr>
<tr>
<td align="right">Startlevel:</td>
<td>'.($gebietdetails->level_start!=''?$gebietdetails->level_start:'Keines').'</td>
</tr>
<tr>
<td align="right">Höheres Level nach:</td>
<td>'.($gebietdetails->level_sprung_auf!=''?$gebietdetails->level_sprung_auf.' richtigen Antwort(en)':'-').'</td>
</tr>
<tr>
<td align="right">Niedrigeres Level nach:</td>
<td>'.($gebietdetails->level_sprung_ab!=''?$gebietdetails->level_sprung_ab.' falschen Antwort(en)':'-').'</td>
</tr>
<tr>
<td align="right">Levelgleichverteilung:</td>
<td>'.($gebietdetails->levelgleichverteilung==true?'Ja':'Nein').'</td>
</tr>
<tr>
<td align="right">Maximalpunkte:</td>
<td>'.$gebietdetails->maxpunkte.'</td>
</tr>
<tr>
<td align="right">Antworten pro Zeile:</td>
<td>'.$gebietdetails->antwortenprozeile.'</td>
</tr>
</table><br><hr>';
}
$frage = new frage();
$frage->getFragenGebiet($gebiet_id);
foreach($frage->result as $fragen)
{
$sprachevorschlag = new vorschlag();
$spracheFrage = new frage();
$spracheFrage->getFrageSprache($fragen->frage_id, $sprache);
echo "<b>&lt;NR:".$fragen->nummer.($fragen->level!=""?"&nbsp;&nbsp;Level: ".$fragen->level."":"").($fragen->demo=="t"?"&nbsp;&nbsp;Demo":"")."&gt;</b><br> ";
//Sound einbinden
if($spracheFrage->audio!='')
{
echo ' <audio src="../sound.php?src=frage&amp;frage_id='.$spracheFrage->frage_id.'&amp;sprache='.$sprache.'" controls="controls">
<div>
<p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p>
</div>
</audio>';
}
// FRAGE anzeigen
echo "$spracheFrage->text<br/><br/>\n";
// Bild einbinden wenn vorhanden
if($spracheFrage->bild!='')
echo "<img class='testtoolfrage' src='../bild.php?src=frage&amp;frage_id=$spracheFrage->frage_id&amp;sprache=".$sprache."' /><br/><br/>\n";
echo"<br><table>";
// ANTWORTEN anzeigen
$sprachevorschlag->getVorschlag($fragen->frage_id, $sprache, $random=false);
$anzahlBild = 0;
foreach($sprachevorschlag->result as $vor)
{
$vorschlag = new vorschlag();
$vorschlag->loadVorschlagSprache($vor->vorschlag_id, $sprache);
if($vorschlag->bild == '')
{
if ($loesungen)
{
echo '<tr><td style="border-right:1px solid;">'.$vor->nummer.'</td></td><td align="right"><b>'.$vor->punkte.'</b></td><td style="border-left:1px solid;">&nbsp;'.$vorschlag->text.'</td></tr>';
}
else
{
echo '<tr><td style="border-right:1px solid;">'.$vor->nummer.'</td><td>&nbsp;'.$vorschlag->text.'</td></tr>';
}
}
if($vorschlag->bild!='')
{
// zeilenumbruch nach 4 bilder
if($anzahlBild%4==0)
echo "</tr>";
echo "<td>";
echo "<img class='testtoolvorschlag' src='../bild.php?src=vorschlag&amp;vorschlag_id=$vor->vorschlag_id&amp;sprache=".$sprache."' /><br/>";
if ($loesungen)
{
echo "<br>".$vor->punkte."</td>";
}
else
{
echo "</td>";
}
$anzahlBild++;
}
if($vorschlag->audio!='')
{
echo ' <audio src="../sound.php?src=vorschlag&amp;vorschlag_id='.$vorschlag->vorschlag_id.'&amp;sprache='.$sprache.'" controls="controls">
<div>
<p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p>
</div>
</audio>';
}
}
echo "</table><br><hr>";
}
}
?>
<?php
/* Copyright (C) 2009 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Karl Burkhart <burkhart@technikum-wien.at>,
*/
require_once("../../../config/cis.config.inc.php");
require_once('../../../include/basis_db.class.php');
require_once("../../../include/gebiet.class.php");
require_once("../../../include/frage.class.php");
require_once("../../../include/vorschlag.class.php");
require_once('../../../include/functions.inc.php');
require_once("../../../include/benutzerberechtigung.class.php");
require_once('../../../include/studiengang.class.php');
require_once('../../../include/ablauf.class.php');
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Testool Fragen Übersicht</title>
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
</head>
<body style="padding: 10px">
<?php
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('basis/testtool', null, 's'))
die('<span class="error">Sie haben keine Berechtigung für diese Seite</span>');
$gebiet = new gebiet();
$gebiet->getAll();
$sprache = (isset($_REQUEST['Sprache'])?$_REQUEST['Sprache']:'German');
$Auswahlgebiet = (isset($_REQUEST['AuswahlGebiet'])?$_REQUEST['AuswahlGebiet']:'');
$loesungen = (isset($_REQUEST['loesungen']) && $_REQUEST['loesungen'] != '' ? true:false);
$studiengang = new studiengang();
$studiengang->getAll('typ, kurzbz', false);
$stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:'-1');
$gebiet_id = (isset($_GET['gebiet_id'])?$_GET['gebiet_id']:'');
echo '<form action="'.$_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz.'" method="post" name="TesttoolUebersicht">
<table>
<tr>
<td>Studiengang:</td><td>';
//Liste der Studiengänge
echo '<select onchange="window.location.href=this.value">';
echo '<option value="'.$_SERVER['PHP_SELF'].'?" >Alle Studiengänge</option>';
foreach ($studiengang->result as $row)
{
$stg_arr[$row->studiengang_kz] = $row->kuerzel;
if ($stg_kz == '')
$stg_kz = $row->studiengang_kz;
if ($row->studiengang_kz == $stg_kz)
$selected = 'selected="selected"';
else
$selected = '';
echo '<option value="'.$_SERVER['PHP_SELF'].'?stg_kz='.$row->studiengang_kz.'" '.$selected.'>'.$db->convert_html_chars($row->kuerzel).' - '.$db->convert_html_chars($row->bezeichnung).'</option>'."\n";
}
echo '</select>';
echo '</td>
</tr>
<tr>
<td>Gebiet:</td><td>';
//Liste der Gebiete
$qry = "SELECT * FROM testtool.tbl_ablauf WHERE studiengang_kz=".$db->db_add_param($stg_kz);
$anzahl = $db->db_num_rows($db->db_query($qry));
if ($stg_kz !== "-1" && $anzahl !== 0)
{
$qry = "SELECT * FROM testtool.tbl_gebiet LEFT JOIN testtool.tbl_ablauf USING (gebiet_id)
WHERE studiengang_kz=".$db->db_add_param($stg_kz)." ORDER BY semester,reihung";
}
else
$qry = "SELECT * FROM testtool.tbl_gebiet ORDER BY bezeichnung";
if (($anzahl !== 0) || ($stg_kz == '-1') && ($stg_kz !== ''))
{
if ($result = $db->db_query($qry))
{
echo ' <select name="AuswahlGebiet">';
echo '<option value="auswahl"> - Bitte Auswählen - </option>';
while ($row = $db->db_fetch_object($result))
{
if ($Auswahlgebiet == $row->gebiet_id)
{
$selected = 'selected="selected"';
}
else
{
$selected = '';
}
if ($stg_kz == "-1")
{
echo '<option value="'.$row->gebiet_id.'" '.$selected.'>'.$row->bezeichnung.' - '.$row->kurzbz.' - ID:'.$row->gebiet_id.'</option>'."\n";
}
else
{
echo '<option value="'.$row->gebiet_id.'" '.$selected.'>('.$row->semester.') - '.$row->bezeichnung.' - '.$row->kurzbz.' - ID:'.$row->gebiet_id.'</option>'."\n";
}
}
echo '</select>';
}
}
elseif (($anzahl == 0))
{
echo 'Keine Gebiete für diesen Studiengang';
}
echo '</td>';
/*echo '<td><select name="AuswahlGebiet"><option value="auswahl"> - Bitte Auswählen - </option>';
foreach ($gebiet->result as $gebietResult)
{
$selected ='';
if($Auswahlgebiet == $gebietResult->gebiet_id)
$selected = 'selected';
echo '<option value="'.$gebietResult->gebiet_id.'" '.$selected.'>'.$gebietResult->gebiet_id.' - '.$gebietResult->bezeichnung.' - '.$gebietResult->kurzbz.'</option>';
}
echo '</select></td>';*/
echo '</tr>
<tr>
<td>Sprache: </td>
<td><select name="Sprache">';
if($sprache == 'German')
echo '<option selected value="German">Deutsch</option>';
else
echo '<option value="German">Deutsch</option>';
if($sprache == 'English')
echo '<option selected value="English">Englisch</option>';
else
echo '<option value="English">Englisch</option>';
echo'</select>
</td>
</tr>
<tr>
<td>
Mit Lösungen
</td>
<td><input type="checkbox" name="loesungen" '.($loesungen ? 'checked':'').'></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Anzeigen"></td></tr>
</table><br>';
if(isset($_REQUEST['AuswahlGebiet']))
{
$gebiet_id = $_REQUEST['AuswahlGebiet'];
$gebietdetails = new gebiet();
$gebietdetails->load($gebiet_id);
$qry = "SELECT DISTINCT UPPER(typ||kurzbz) AS studiengang
FROM testtool.tbl_ablauf JOIN public.tbl_studiengang USING (studiengang_kz)
WHERE gebiet_id=".$db->db_add_param($gebiet_id)."
ORDER BY studiengang";
$result = $db->db_query($qry);
if ($gebietdetails)
{
echo '
<table>
<tr>
<td align="right">Gebiet:</td>
<td>'.$gebietdetails->bezeichnung.'</td>
</tr>
<tr>
<td valign="top">Verwendet in den Studiengängen:</td>
<td>';
$i=1;
while ($row = $db->db_fetch_object($result))
{
echo $row->studiengang.($db->db_num_rows($result)>1 && $db->db_num_rows($result)>$i?', ':'');
$i++;
if ($i % 10 == 0)
echo '<br>';
}
echo '</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td align="right">Beschreibung:</td>
<td>'.($gebietdetails->beschreibung!=''?$gebietdetails->beschreibung:'-').'</td>
</tr>
<tr>
<td align="right">Zeit:</td>
<td>'.$gebietdetails->zeit.'</td>
</tr>
<tr>
<td align="right">Multipleresponse:</td>
<td>'.($gebietdetails->multipleresponse==true?'Ja':'Nein').'</td>
</tr>
<tr>
<td align="right">Gestellte Fragen:</td>
<td>'.$gebietdetails->maxfragen.'</td>
</tr>
<tr>
<td align="right">Zufallsfrage:</td>
<td>'.($gebietdetails->zufallfrage==true?'Ja':'Nein').'</td>
</tr>
<tr>
<td align="right">Zufallsvorschlag:</td>
<td>'.($gebietdetails->zufallvorschlag==true?'Ja':'Nein').'</td>
</tr>
<tr>
<td align="right">Startlevel:</td>
<td>'.($gebietdetails->level_start!=''?$gebietdetails->level_start:'Keines').'</td>
</tr>
<tr>
<td align="right">Höheres Level nach:</td>
<td>'.($gebietdetails->level_sprung_auf!=''?$gebietdetails->level_sprung_auf.' richtigen Antwort(en)':'-').'</td>
</tr>
<tr>
<td align="right">Niedrigeres Level nach:</td>
<td>'.($gebietdetails->level_sprung_ab!=''?$gebietdetails->level_sprung_ab.' falschen Antwort(en)':'-').'</td>
</tr>
<tr>
<td align="right">Levelgleichverteilung:</td>
<td>'.($gebietdetails->levelgleichverteilung==true?'Ja':'Nein').'</td>
</tr>
<tr>
<td align="right">Maximalpunkte:</td>
<td>'.$gebietdetails->maxpunkte.'</td>
</tr>
<tr>
<td align="right">Antworten pro Zeile:</td>
<td>'.$gebietdetails->antwortenprozeile.'</td>
</tr>
</table><br><hr>';
}
$frage = new frage();
$frage->getFragenGebiet($gebiet_id);
foreach($frage->result as $fragen)
{
$sprachevorschlag = new vorschlag();
$spracheFrage = new frage();
$spracheFrage->getFrageSprache($fragen->frage_id, $sprache);
echo "<b>&lt;NR:".$fragen->nummer.($fragen->level!=""?"&nbsp;&nbsp;Level: ".$fragen->level."":"").($fragen->demo=="t"?"&nbsp;&nbsp;Demo":"")."&gt;</b><br> ";
//Sound einbinden
if($spracheFrage->audio!='')
{
echo ' <audio src="../sound.php?src=frage&amp;frage_id='.$spracheFrage->frage_id.'&amp;sprache='.$sprache.'" controls="controls">
<div>
<p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p>
</div>
</audio>';
}
// FRAGE anzeigen
echo "$spracheFrage->text<br/><br/>\n";
// Bild einbinden wenn vorhanden
if($spracheFrage->bild!='')
echo "<img class='testtoolfrage' src='../bild.php?src=frage&amp;frage_id=$spracheFrage->frage_id&amp;sprache=".$sprache."' /><br/><br/>\n";
echo"<br><table>";
// ANTWORTEN anzeigen
$sprachevorschlag->getVorschlag($fragen->frage_id, $sprache, $random=false);
$anzahlBild = 0;
foreach($sprachevorschlag->result as $vor)
{
$vorschlag = new vorschlag();
$vorschlag->loadVorschlagSprache($vor->vorschlag_id, $sprache);
if($vorschlag->bild == '')
{
if ($loesungen)
{
echo '<tr><td style="border-right:1px solid;">'.$vor->nummer.'</td></td><td align="right"><b>'.$vor->punkte.'</b></td><td style="border-left:1px solid;">&nbsp;'.$vorschlag->text.'</td></tr>';
}
else
{
echo '<tr><td style="border-right:1px solid;">'.$vor->nummer.'</td><td>&nbsp;'.$vorschlag->text.'</td></tr>';
}
}
if($vorschlag->bild!='')
{
// zeilenumbruch nach 4 bilder
if($anzahlBild%4==0)
echo "</tr>";
echo "<td>";
echo "<img class='testtoolvorschlag' src='../bild.php?src=vorschlag&amp;vorschlag_id=$vor->vorschlag_id&amp;sprache=".$sprache."' /><br/>";
if ($loesungen)
{
echo "<br>".$vor->punkte."</td>";
}
else
{
echo "</td>";
}
$anzahlBild++;
}
if($vorschlag->audio!='')
{
echo ' <audio src="../sound.php?src=vorschlag&amp;vorschlag_id='.$vorschlag->vorschlag_id.'&amp;sprache='.$sprache.'" controls="controls">
<div>
<p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p>
</div>
</audio>';
}
}
echo "</table><br><hr>";
}
}
?>
</body>
+59 -4
View File
@@ -82,7 +82,8 @@ if (isset($_REQUEST['prestudent']))
$ps = new prestudent($_REQUEST['prestudent']);
$login_ok = false;
if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL && isset($_GET['confirmation']))
if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL &&
(isset($_GET['confirmation']) || isset($_GET['confirmed_code'])))
{
if (isset($_SESSION['bewerbung/personId']) && $ps->person_id == $_SESSION['bewerbung/personId'])
{
@@ -153,6 +154,33 @@ if (isset($_REQUEST['prestudent']))
{
// regenerate Session ID after Login
session_regenerate_id();
if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL)
{
if ($rt->zugangs_ueberpruefung && !is_null($rt->zugangscode))
{
$_SESSION['confirmed_code'] = false;
if (isset($_SESSION['confirmation_needed']) && $_SESSION['confirmation_needed'] === true)
{
if (isset($_GET['confirmed_code']))
{
if ($_GET['confirmed_code'] === $_SESSION['reihungstest_code'])
{
$_SESSION['confirmed_code'] = true;
}
else
$alertmsg .= '<div class="alert alert-danger">Code ist nicht korrekt.</div>';
}
}
if ($_SESSION['confirmed_code'] === false)
{
$_SESSION['reihungstest_code'] = $rt->zugangscode;
$_SESSION['confirmation_needed'] = true;
}
else
$reload_menu = true;
}
}
$pruefling = new pruefling();
if ($pruefling->getPruefling($ps->prestudent_id))
@@ -314,8 +342,11 @@ else
}
}
if (isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']))
if ((isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']) &&
!isset($_SESSION['confirmation_needed']) && !isset($_SESSION['confirmed_code'])) ||
(isset($_SESSION['confirmation_needed']) && $_SESSION['confirmation_needed'] === true &&
isset($_SESSION['confirmed_code']) && $_SESSION['confirmed_code'] === true &&
isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id'])))
{
$pruefling = new pruefling();
@@ -421,8 +452,32 @@ if (isset($_POST['save']) && isset($_SESSION['prestudent_id']))
<?php
if (isset($_SESSION['confirmation_needed']) && $_SESSION['confirmation_needed'] === true &&
isset($_SESSION['confirmed_code']) && $_SESSION['confirmed_code'] === false)
{
echo '
<div class="col-xs-11">
<div id="alertmsgdiv"></div>
<div id="alert">'.$alertmsg.'</div>
<div class="row text-center">
'.$p->t('testtool/freischalttext').'
<br />
<br />
<b>'.$p->t('testtool/freischaltcode').':</b>
<form action="login.php">
<input type="hidden" name="prestudent" value="'.$_REQUEST['prestudent'].'" />
<input id="confirmed_code" type="number" name="confirmed_code"/>
<br />
<br />
<button id="confirmation_access_submit" type="submit" class="btn btn-primary"/>
'.$p->t('testtool/start').'
</button>
</form>
</div>
</div>';
}
//REIHUNGSTEST STARTSEITE (nach Login)
if (isset($prestudent_id))
elseif (isset($prestudent_id))
{
$prestudent = new prestudent($prestudent_id);
$stg_obj = new studiengang($prestudent->studiengang_kz);
@@ -43,6 +43,7 @@ var lehrveranstaltungLvGesamtNotenSelectUID=null; //LehreinheitID des Noten Eint
var lehrveranstaltungNotenTreeloaded=false;
var lehrveranstaltungGesamtNotenTreeloaded=false;
var LehrveranstaltungAusbildungssemesterFilter='';
var LeDetailsDisabled = false; //Damit die Details von der Lehreinheit disabled bleiben soland der Rebuild nicht fertig ist
// Config-Eintrag, ob Vertragsdetails angezeigt werden sollen
var lehrveranstaltung_vertragsdetails_anzeigen = Boolean(<?php echo (defined('FAS_LV_LEKTORINNENZUTEILUNG_VERTRAGSDETAILS_ANZEIGEN') && FAS_LV_LEKTORINNENZUTEILUNG_VERTRAGSDETAILS_ANZEIGEN) ? true : false ?>);
@@ -80,6 +81,7 @@ var LvTreeListener =
didRebuild : function(builder)
{
//debug('didrebuild');
LeDetailsDisabled = false;
//timeout nur bei Mozilla notwendig da sonst die rows
//noch keine values haben. Ab Seamonkey funktionierts auch
//ohne dem setTimeout
@@ -452,7 +454,7 @@ function LvTreeSelectLehreinheit()
return false;
//In der globalen Variable ist die zu selektierende Lehreinheit gespeichert
if(LvSelectLehreinheit_id!=null)
if(LvSelectLehreinheit_id!=null && LeDetailsDisabled === false)
{
//Den Subtree der Lehrveranstaltung oeffnen zu der zuletzt die Lehreinheit gespeichert/angelegt wurde
//da diese sonst nicht markiert werden kann
@@ -754,6 +756,7 @@ function LeDetailSave()
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('lehrveranstaltung-detail-checkbox-new').checked=false;
LeDetailDisableFields(true);
LeDetailsDisabled = true;
//LvTreeRefresh();
LvSelectLehreinheit_id=val.dbdml_data;
LvOpenLehrveranstaltung_id=lehrveranstaltung;
@@ -820,7 +823,12 @@ function LeAuswahl()
LehrveranstaltungNotenLoad(lehrveranstaltung_id);
//Notizen Tab ausblenden
//document.getElementById('lehrveranstaltung-tab-notizen').collapsed=true;
document.getElementById('lehrveranstaltung-tab-notizen').collapsed=true;
if(document.getElementById('lehrveranstaltung-tabs').selectedItem === document.getElementById('lehrveranstaltung-tab-notizen'))
{
document.getElementById('lehrveranstaltung-tabs').selectedItem = document.getElementById('lehrveranstaltung-tab-detail');
}
//LV-Angebot Tab einblenden und Gruppen laden
document.getElementById('lehrveranstaltung-tab-lvangebot').collapsed=false;
@@ -845,7 +853,8 @@ function LeAuswahl()
}
else
{
LeDetailDisableFields(false);
if (LeDetailsDisabled === false)
LeDetailDisableFields(false);
LehrveranstaltungNotenDisableFields(true);
LehrveranstaltungNotenTreeUnload();
@@ -853,7 +862,7 @@ function LeAuswahl()
//document.getElementById('lehrveranstaltung-tab-noten').collapsed=true;
//Notizen Tab einblenden
//document.getElementById('lehrveranstaltung-tab-notizen').collapsed=false;
document.getElementById('lehrveranstaltung-tab-notizen').collapsed=false;
//LV-Angebot Tab ausblenden
document.getElementById('lehrveranstaltung-tab-lvangebot').collapsed=true;
@@ -216,6 +216,10 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungnotenov
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#studiensemester_kurzbz"/>
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-treecol-unr" label="UNR" flex="1" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#unr"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
@@ -249,6 +253,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungnotenov
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#studienplan_bezeichnung"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#lehrtyp_kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#studiensemester_kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrveranstaltung_einheiten/rdf#unr"/>
</treerow>
</treeitem>
</treechildren>
@@ -255,13 +255,22 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<label align="end" control="mitarbeiter-detail-menulist-standort" value="Standort"/>
<vbox>
<menulist id="mitarbeiter-detail-menulist-standort" disabled="true"
xmlns:STANDORT="http://www.technikum-wien.at/standort/rdf#"
datasources="<?php echo APP_ROOT; ?>rdf/standort.rdf.php?optional=true&amp;firmentyp_kurzbz=Intern"
ref="http://www.technikum-wien.at/standort/liste" oncommand="MitarbeiterDetailValueChange()">
<template>
<menupopup>
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/standort/rdf#bezeichnung"
value="rdf:http://www.technikum-wien.at/standort/rdf#standort_id"/>
</menupopup>
<rule STANDORT:bezeichnung_null="t">
<menupopup>
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/standort/rdf#kurzbz"
value="rdf:http://www.technikum-wien.at/standort/rdf#standort_id"/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem uri="rdf:*" label="rdf:http://www.technikum-wien.at/standort/rdf#bezeichnung"
value="rdf:http://www.technikum-wien.at/standort/rdf#standort_id"/>
</menupopup>
</rule>
</template>
</menulist>
<spacer flex="1"/>
@@ -179,6 +179,8 @@ $worksheet->write($zeile, ++$i, "RT_PUNKTE2", $format_bold);
$maxlength[$i] = 10;
$worksheet->write($zeile, ++$i, "RT_GESAMTPUNKTE", $format_bold);
$maxlength[$i] = 18;
$worksheet->write($zeile,++$i,"ANMERKUNG", $format_bold);
$maxlength[$i]=30;
$worksheet->write($zeile, ++$i, "PRIORITÄT", $format_bold);
$maxlength[$i] = 8;
@@ -659,7 +661,21 @@ function draw_content($row)
$maxlength[$i] = mb_strlen($row->rt_gesamtpunkte);
$worksheet->write($zeile, $i, $row->rt_gesamtpunkte);
$i++;
//Anmerkung
$qry_1 = "SELECT anmerkung FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)." LIMIT 1";
if($db->db_query($qry_1))
{
if($row_1 = $db->db_fetch_object())
{
if(mb_strlen($row_1->anmerkung)>$maxlength[$i])
$maxlength[$i]=mb_strlen($row_1->anmerkung);
$worksheet->write($zeile,$i, $row_1->anmerkung);
}
}
$i++;
//Priorisierung
$prio = $prio_relativ.' ('.$row->priorisierung.')';
if (mb_strlen($prio) > $maxlength[$i])
+26 -1
View File
@@ -821,7 +821,16 @@ if(!$error)
$prestudent->zgvdatum = $_POST['zgvdatum'];
$prestudent->zgvnation = $_POST['zgvnation'];
$prestudent->zgv_erfuellt = $_POST['zgv_erfuellt'];
$prestudent->zgvmas_code = $_POST['zgvmas_code'];
// Die Master-ZGV darf nur mit einem eigenen Recht geändert werden
if($rechte->isBerechtigt('student/editMakkZgv',$_POST['studiengang_kz'],'suid'))
{
$prestudent->zgvmas_code = $_POST['zgvmas_code'];
}
elseif ($prestudent->zgvmas_code != $_POST['zgvmas_code'])
{
$errormsg = 'Keine Berechtigung zum Ändern der ZGV';
$error = true;
}
$prestudent->zgvmaort = $_POST['zgvmaort'];
$prestudent->zgvmadatum = $_POST['zgvmadatum'];
$prestudent->zgvmanation = $_POST['zgvmanation'];
@@ -2499,7 +2508,23 @@ if(!$error)
}
if($exists)
{
$return = true;
$zusatz = "\n";
if (count($exists) > 10)
{
$zusatz .= "und ";
$persons = implode("\n- ", array_slice($exists, 0, 10));
if (count($exists) === 11)
$zusatz .= "einer weiteren Person.";
else
$zusatz .= (count($exists) - 10) . " weiteren Personen.";
}
else
$persons = implode("\n- ", $exists);
$data = "Es ist bereits eine Buchung vorhanden:\n- ". $persons . $zusatz ." Trotzdem fortfahren?";
}
else
$return = false;
}
+6 -6
View File
@@ -355,7 +355,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<rule ZGV:aktiv='f'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgv/rdf#code"
label="rdf:http://www.technikum-wien.at/zgv/rdf#kurzbz"
label="rdf:http://www.technikum-wien.at/zgv/rdf#bezeichnung"
uri="rdf:*"
style="text-decoration:line-through;"
/>
@@ -364,7 +364,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgv/rdf#code"
label="rdf:http://www.technikum-wien.at/zgv/rdf#kurzbz"
label="rdf:http://www.technikum-wien.at/zgv/rdf#bezeichnung"
uri="rdf:*"
/>
</menupopup>
@@ -425,7 +425,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<rule ZGVMASTER:aktiv='f'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgvmaster/rdf#code"
label="rdf:http://www.technikum-wien.at/zgvmaster/rdf#kurzbz"
label="rdf:http://www.technikum-wien.at/zgvmaster/rdf#bezeichnung"
uri="rdf:*"
style="text-decoration:line-through;"
/>
@@ -434,7 +434,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgvmaster/rdf#code"
label="rdf:http://www.technikum-wien.at/zgvmaster/rdf#kurzbz"
label="rdf:http://www.technikum-wien.at/zgvmaster/rdf#bezeichnung"
uri="rdf:*"
/>
</menupopup>
@@ -497,7 +497,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<rule ZGVDOKTOR:aktiv='f'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#code"
label="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#kurzbz"
label="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#bezeichnung"
uri="rdf:*"
style="text-decoration:line-through;"
/>
@@ -506,7 +506,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#code"
label="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#kurzbz"
label="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#bezeichnung"
uri="rdf:*"
/>
</menupopup>
@@ -184,12 +184,13 @@ function StudentMobilitaetDisableFields(val)
document.getElementById('student-mobilitaet-menulist-status').disabled=val;
document.getElementById('student-mobilitaet-textbox-ausbildungssemester').disabled=val;
document.getElementById('student-mobilitaet-button-speichern').disabled=val;
document.getElementById('student-mobilitaet-button-kopie-speichern').disabled=val;
}
// ****
// * Speichert den Mobilitaet Datensatz
// ****
function StudentMobilitaetSpeichern()
function StudentMobilitaetSpeichern(newval)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
@@ -200,7 +201,14 @@ function StudentMobilitaetSpeichern()
var gsprogramm = document.getElementById('student-mobilitaet-menulist-gsprogramm').value;
var mobilitaetsprogramm = document.getElementById('student-mobilitaet-menulist-mobilitaetsprogramm').value;
var studiensemester = document.getElementById('student-mobilitaet-menulist-studiensemester').value;
var neu = document.getElementById('student-mobilitaet-detail-checkbox-neu').checked;
if (newval == true)
{
var neu = true;
}
else
{
var neu = document.getElementById('student-mobilitaet-detail-checkbox-neu').checked;
}
var prestudent_id = document.getElementById('student-mobilitaet-detail-textbox-prestudent_id').value;
var mobilitaet_id = document.getElementById('student-mobilitaet-detail-textbox-mobilitaet_id').value;
@@ -215,6 +215,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</groupbox>
<hbox>
<spacer flex="1" />
<button id="student-mobilitaet-button-kopie-speichern" oncommand="StudentMobilitaetSpeichern(true)" label="Als Kopie speichern" disabled="true"/>
<button id="student-mobilitaet-button-speichern" oncommand="StudentMobilitaetSpeichern()" label="Speichern" disabled="true"/>
</hbox>
</vbox>
+17 -3
View File
@@ -1829,6 +1829,20 @@ function StudentPrestudentDisableFields(val)
document.getElementById('student-prestudent-menulist-zgvcode').disabled=true;
}
<?php
$studiengaengeMaster = $rechte->getStgKz('student/editMakkZgv');
// Anlegen eines Arrays mit allen berechtigten Stg-Kz
echo ' var berechtigte_master_studiengaenge = ['.implode(',',$studiengaengeMaster).'];';
?>
if (berechtigte_master_studiengaenge.indexOf(studiengang_kz) >= 0)
{
document.getElementById('student-prestudent-menulist-zgvmastercode').disabled=val;
}
else
{
document.getElementById('student-prestudent-menulist-zgvmastercode').disabled=true;
}
//Status Tree leeren
rollentree = document.getElementById('student-prestudent-tree-rolle');
@@ -3102,9 +3116,9 @@ function StudentKontoNeuSpeichern(dialog, person_ids, studiengang_kz)
{
exists = StudentCheckBuchung(person_ids, studiensemester_kurzbz, buchungstyp_kurzbz, studiengang_kz);
}
if (exists)
if (exists.dbdml_return)
{
if(!confirm('Die Buchung ist bereits vorhanden. Trotzdem fortfahren?'))
if(!confirm(exists.dbdml_data))
return false;
}
@@ -3159,7 +3173,7 @@ function StudentCheckBuchung(person_ids, studiensemester_kurzbz, buchungstyp_kur
var val = new ParseReturnValue(response);
return(val.dbdml_return);
return val;
}
// *****
+4 -3
View File
@@ -479,9 +479,9 @@ class anwesenheit extends basis_db
*/
public function loadAnwesenheitStudiensemester($studiensemester_kurzbz, $student_uid=null, $lehrveranstaltung_id=null)
{
$qry = "SELECT lehrveranstaltung_id, bezeichnung, vorname, nachname, uid, sum(anwesend) as anwesend, sum(nichtanwesend) as nichtanwesend, sum(gesamtstunden) as gesamtstunden FROM (
$qry = "SELECT lehrveranstaltung_id, bezeichnung, vorname, wahlname, nachname,uid, sum(anwesend) as anwesend, sum(nichtanwesend) as nichtanwesend, sum(gesamtstunden) as gesamtstunden FROM (
SELECT
lehrveranstaltung_id, bezeichnung, vorname, nachname, uid,
lehrveranstaltung_id, bezeichnung, vorname, wahlname, nachname, uid,
(
SELECT
sum(einheiten)
@@ -520,7 +520,7 @@ class anwesenheit extends basis_db
if(!is_null($student_uid))
$qry.=" AND uid=".$this->db_add_param($student_uid);
$qry.=") as b GROUP BY lehrveranstaltung_id, bezeichnung, vorname, nachname, uid";
$qry.=") as b GROUP BY lehrveranstaltung_id, bezeichnung, vorname, wahlname, nachname, uid";
if($lehrveranstaltung_id!='')
$qry.=" order by nachname, vorname ";
@@ -543,6 +543,7 @@ class anwesenheit extends basis_db
else
$obj->prozent = number_format(100-(100/$obj->gesamtstunden*$row->nichtanwesend),2);
$obj->vorname = $row->vorname;
$obj->wahlname = $row->wahlname;
$obj->nachname = $row->nachname;
$obj->uid = $row->uid;
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
+14 -10
View File
@@ -967,19 +967,23 @@ class konto extends basis_db
public function checkDoppelteBuchung($person_ids, $stsem, $typ)
{
$qry = "SELECT betrag
FROM public.tbl_konto
WHERE person_id IN (".$this->implode4SQL(array_filter($person_ids)).")
AND studiensemester_kurzbz = ".$this->db_add_param($stsem)."
AND buchungstyp_kurzbz = ".$this->db_add_param($typ)."
GROUP BY buchungsnr";
$qry = "SELECT person.vorname, person.nachname
FROM public.tbl_konto konto
JOIN public.tbl_person person USING(person_id)
WHERE konto.person_id IN (".$this->implode4SQL(array_filter($person_ids)).")
AND studiensemester_kurzbz = ".$this->db_add_param($stsem)."
AND buchungstyp_kurzbz = ".$this->db_add_param($typ)."
GROUP BY person.vorname, person.nachname
ORDER BY person.nachname, person.vorname";
if ($result = $this->db_query($qry))
{
if ($this->db_num_rows($result) > 0)
return true;
else
return false;
$persons = array();
while ($row = $this->db_fetch_object($result))
{
$persons[] = $row->nachname . ' ' . $row->vorname;
}
return $persons;
}
else
{
+4 -2
View File
@@ -208,7 +208,8 @@ class LehreListHelper
tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student,
tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang,
tbl_mobilitaet.mobilitaetstyp_kurzbz, tbl_zeugnisnote.note,
(CASE WHEN bis.tbl_mobilitaet.studiensemester_kurzbz = vw_student_lehrveranstaltung.studiensemester_kurzbz THEN 1 ELSE 0 END) as doubledegree
(CASE WHEN bis.tbl_mobilitaet.studiensemester_kurzbz = vw_student_lehrveranstaltung.studiensemester_kurzbz THEN 1 ELSE 0 END) as doubledegree,
(tbl_bisio.bis::timestamp - tbl_bisio.von::timestamp) as daysout
FROM
campus.vw_student_lehrveranstaltung
JOIN public.tbl_benutzer USING(uid)
@@ -230,10 +231,11 @@ class LehreListHelper
if($this->lehreinheit!='')
$qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$this->db->db_add_param($this->lehreinheit, FHC_INTEGER);
$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis, doubledegree DESC';
$qry.=' ORDER BY nachname, vorname, person_id, daysout DESC, doubledegree DESC';
$stsem_obj = new studiensemester();
$stsem_obj->load($this->studiensemester);
$stsemdatumvon = $stsem_obj->start;
$stsemdatumbis = $stsem_obj->ende;
+85
View File
@@ -2776,5 +2776,90 @@ class lehrveranstaltung extends basis_db
return null;
}
/**
* Prueft ob die Lehrveranstaltungen in dem Studiensemestern angeboten wird.
* Dazu wird geprueft ob die LVs einem aktuellen Studienplan zugeordnet ist und ob ein Lehrauftrag vorhanden ist.
*
* @param $lehrveranstaltung_id
* @param $studiensemester_kurzbz
* @return array
*/
public function getOfferedSemester($lehrveranstaltung_id, $studiensemester_kurzbz)
{
$qry = "SELECT
DISTINCT(studiensemester_kurzbz)
FROM
lehre.tbl_lehreinheit
WHERE lehrveranstaltung_id = ".$this->db_add_param($lehrveranstaltung_id)."
AND studiensemester_kurzbz IN (".$this->db_implode4SQL($studiensemester_kurzbz).")
AND EXISTS (
SELECT
*
FROM
lehre.tbl_studienplan_lehrveranstaltung
JOIN lehre.tbl_studienplan_semester USING(studienplan_id)
WHERE
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)."
AND studiensemester_kurzbz IN (".$this->db_implode4SQL($studiensemester_kurzbz).")
)";
$studiensemester = [];
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$studiensemester[] = $row;
}
return $studiensemester;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Prueft ob die Lehrveranstaltungen in den gewaehlten Studiensemestern angeboten wird.
* Dazu wird geprueft ob die LVs einem aktuellen Studienplan zugeordnet ist, und ob ein Lehrauftrag vorhanden ist.
*
* @param $lehrveranstaltung_id
* @param $studiensemester_kurzbz
* @return array
*/
public function getOfferedLVs($lehrveranstaltung_id, $studiensemester_kurzbz)
{
$qry = "SELECT
DISTINCT(tbl_lehreinheit.lehrveranstaltung_id)
FROM
lehre.tbl_lehreinheit
WHERE tbl_lehreinheit.lehrveranstaltung_id IN (".$this->db_implode4SQL($lehrveranstaltung_id).")
AND tbl_lehreinheit.studiensemester_kurzbz IN (".$this->db_implode4SQL($studiensemester_kurzbz).")
AND EXISTS (
SELECT
*
FROM
lehre.tbl_studienplan_lehrveranstaltung
JOIN lehre.tbl_studienplan_semester USING(studienplan_id)
WHERE
tbl_lehreinheit.lehrveranstaltung_id IN (".$this->db_implode4SQL($lehrveranstaltung_id).")
AND tbl_lehreinheit.studiensemester_kurzbz IN (".$this->db_implode4SQL($studiensemester_kurzbz).")
)";
$lehrveranstaltungen = [];
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$lehrveranstaltungen[] = $row;
}
return $lehrveranstaltungen;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>
+28
View File
@@ -1705,5 +1705,33 @@ class mitarbeiter extends benutzer
}
}
public function getMitarbeiterKostenstelle($von, $bis, $uid = null)
{
if (is_null($uid))
$uid = $this->uid;
$qry = "
SELECT o.oe_kurzbz AS standardkostenstelle, o.bezeichnung
FROM public.tbl_benutzerfunktion bf
JOIN public.tbl_organisationseinheit o USING(oe_kurzbz)
WHERE bf.funktion_kurzbz = 'kstzuordnung'
AND (bf.datum_bis IS NULL OR datum_bis >= ". $this->db_add_param($von). ")
AND (bf.datum_von IS NULL OR datum_von <= ". $this->db_add_param($bis). ")
AND bf.uid = ". $this->db_add_param($uid);
if ($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new StdClass();
$obj->oekurzbz = $row->standardkostenstelle;
$obj->bezeichnung = $row->bezeichnung;
$this->result []= $obj;
}
return true;
}
}
}
?>
+37
View File
@@ -938,5 +938,42 @@ class organisationseinheit extends basis_db
return false;
}
}
public function getOERoot($oe_kurzbz)
{
$qry = '
WITH RECURSIVE organizations(rid, oe_kurzbz, oe_parent_kurzbz) AS
(
SELECT 1 AS rid, o.oe_kurzbz, o.oe_parent_kurzbz
FROM public.tbl_organisationseinheit o
WHERE o.oe_kurzbz = '. $this->db_add_param($oe_kurzbz). '
UNION ALL
SELECT rid + 1 AS rid, oe.oe_kurzbz, oe.oe_parent_kurzbz
FROM organizations org, public.tbl_organisationseinheit oe
WHERE oe.oe_kurzbz = org.oe_parent_kurzbz
AND oe.aktiv = TRUE
)
SELECT oe_kurzbz
FROM organizations orgs
ORDER BY rid DESC
LIMIT 1
';
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->oe_kurzbz = $row->oe_kurzbz;
return true;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Organisationseinheiten';
return false;
}
}
}
?>
+42 -42
View File
@@ -588,7 +588,7 @@ class prestudent extends person
AND
status_kurzbz = 'Interessent'
AND
AND
NOT EXISTS (
SELECT 1 FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id AND status_kurzbz='Abgewiesener'
)";
@@ -2327,51 +2327,51 @@ class prestudent extends person
* false wenn nicht vorhanden
* false und errormsg wenn Fehler aufgetreten ist
*/
public function existsZGVIntern($person_id)
{
if (!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
public function existsZGVIntern($person_id)
{
if (!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT count(*) as anzahl FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_studiengang USING (studiengang_kz)
WHERE person_id = ".$this->db_add_param($person_id, FHC_INTEGER)."
AND status_kurzbz in ('Absolvent','Diplomand','Unterbrecher','Student')
AND typ = 'b'
AND get_rolle_prestudent(prestudent_id, null) != 'Abbrecher';";
$qry = "SELECT count(*) as anzahl FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING (prestudent_id)
JOIN public.tbl_studiengang USING (studiengang_kz)
WHERE person_id = ".$this->db_add_param($person_id, FHC_INTEGER)."
AND status_kurzbz in ('Absolvent','Diplomand','Unterbrecher','Student')
AND typ in ('b','m','d')";
if ($this->db_query($qry))
{
if ($row = $this->db_fetch_object())
{
if ($row->anzahl > 0)
{
$this->errormsg = '';
return true;
}
else
{
$this->errormsg = '';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
if ($this->db_query($qry))
{
if ($row = $this->db_fetch_object())
{
if ($row->anzahl > 0)
{
$this->errormsg = '';
return true;
}
else
{
$this->errormsg = '';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Befüllt MasterZGV-Felder: Nation mit Österreich und MasterZGV-code mit FH-Bachelor(I)
* @param int $person_id Personenkennzeichen.
+12 -3
View File
@@ -60,6 +60,9 @@ class reihungstest extends basis_db
public $anmeldedatum; // date
public $teilgenommen; // boolean
public $punkte; // numeric
public $zugangs_ueberpruefung = false; //boolean
public $zugangscode; //smallint
/**
@@ -114,6 +117,8 @@ class reihungstest extends basis_db
$this->stufe = $row->stufe;
$this->anmeldefrist = $row->anmeldefrist;
$this->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
$this->zugangs_ueberpruefung = $this->db_parse_bool($row->zugangs_ueberpruefung);
$this->zugangscode = $row->zugangscode;
return true;
}
@@ -229,7 +234,7 @@ class reihungstest extends basis_db
$qry = 'BEGIN; INSERT INTO public.tbl_reihungstest (studiengang_kz, ort_kurzbz, anmerkung, datum, uhrzeit,
insertamum, insertvon, updateamum, updatevon, max_teilnehmer, oeffentlich, freigeschaltet,
studiensemester_kurzbz, stufe, anmeldefrist, aufnahmegruppe_kurzbz) VALUES('.
studiensemester_kurzbz, stufe, anmeldefrist, aufnahmegruppe_kurzbz, zugangs_ueberpruefung, zugangscode) VALUES('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->ort_kurzbz).', '.
$this->db_add_param($this->anmerkung).', '.
@@ -243,7 +248,9 @@ class reihungstest extends basis_db
$this->db_add_param($this->studiensemester_kurzbz).','.
$this->db_add_param($this->stufe, FHC_INTEGER).','.
$this->db_add_param($this->anmeldefrist).','.
$this->db_add_param($this->aufnahmegruppe_kurzbz).');';
$this->db_add_param($this->aufnahmegruppe_kurzbz). ',' .
$this->db_add_param($this->zugangs_ueberpruefung, FHC_BOOLEAN).','.
$this->db_add_param($this->zugangscode) . ');';
}
else
{
@@ -261,7 +268,9 @@ class reihungstest extends basis_db
'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '.
'stufe='.$this->db_add_param($this->stufe, FHC_INTEGER).', '.
'anmeldefrist='.$this->db_add_param($this->anmeldefrist).', '.
'aufnahmegruppe_kurzbz='.$this->db_add_param($this->aufnahmegruppe_kurzbz).' '.
'aufnahmegruppe_kurzbz='.$this->db_add_param($this->aufnahmegruppe_kurzbz).', '.
'zugangs_ueberpruefung='.$this->db_add_param($this->zugangs_ueberpruefung, FHC_BOOLEAN).', '.
'zugangscode='.$this->db_add_param($this->zugangscode).' '.
'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';';
}
+1 -1
View File
@@ -525,7 +525,7 @@ class statistik extends basis_db
foreach($_REQUEST as $name=>$value)
{
// Inputs, die in eckigen Klammern stehen, werden als Array interpretiert
if (substr($value, 0, 1) == '[' && substr($value, -1) == ']')
if (is_string($value) && substr($value, 0, 1) == '[' && substr($value, -1) == ']')
{
//Eckige Klammern entfernen und String aufsplitten
$value = substr($value, 1);
+2
View File
@@ -897,6 +897,8 @@ or not exists
foreach ($this->result as $row)
{
if($row->aktivitaet_kurzbz == 'DienstreiseMT' ) continue;
$datumtag = $datum->formatDatum($row->datum, 'Y-m-d');
if (($tagesbeginn == '' || $datum->mktime_fromtimestamp($datum->formatDatum($tagesbeginn, $format = 'Y-m-d H:i:s')) > $datum->mktime_fromtimestamp($datum->formatDatum($row->start, $format = 'Y-m-d H:i:s'))) && $row->aktivitaet_kurzbz != 'LehreExtern' && $row->aktivitaet_kurzbz != 'Ersatzruhe')
+3 -1
View File
@@ -72,7 +72,6 @@ $this->phrasen['testtool/einfuehrungsText']='
<h1 style="white-space: normal">Welcome to the placement test</h1>
<a href="'.APP_ROOT.'cms/dms.php?id=145596" target="_blank"><img src="'.APP_ROOT.'cms/dms.php?id=142977" alt="Einfuehrungsvideo" style="border: 1px solid lightgray; border-radius: 10px; width:350px;"></a>
<br><br>
<a href="'.APP_ROOT.'cms/dms.php?id=207696" target="_blank"><img src="'.APP_ROOT.'cms/dms.php?id=46&version=1">&nbsp;<b>Bachelor</b>-Guideline for placement test</a><br>
<a href="'.APP_ROOT.'cms/dms.php?id=143930" target="_blank"><img src="'.APP_ROOT.'cms/dms.php?id=46&version=1">&nbsp;<b>Master</b>-Guideline for placement test</a>
<br><br>
Under the following link you can test the correct display of the placement test:<br><br>
@@ -80,5 +79,8 @@ $this->phrasen['testtool/einfuehrungsText']='
</div>
</div>';
$this->phrasen['testtool/prueflingGesperrt']='Bitte kontaktieren Sie die Reihungstestaufsicht!';
$this->phrasen['testtool/freischaltcode']='Freischaltcode';
$this->phrasen['testtool/freischalttext']='Ihren Freischaltcode erhalten Sie am Tag des Reihungstests nach erfolgter Einführung im ZOOM-Meeting (siehe Leitfaden) von der Aufsicht. <br /> Wir wünschen Ihnen viel Erfolg.';
?>
+2
View File
@@ -52,4 +52,6 @@ $this->phrasen['testtool/keinPrueflingseintragVorhanden']='No candidate entry av
$this->phrasen['testtool/fuerFolgendeStgAngemeldet']='You have applied for the following degree programs:';
$this->phrasen['testtool/invalideGebiete']='One or more question areas incorrect!<br>Please inform an assisting person.';
$this->phrasen['testtool/prueflingGesperrt']='Please contact the placement test supervisor!';
$this->phrasen['testtool/freischaltcode']='Activation code';
$this->phrasen['testtool/freischalttext']='You will receive your activation code on the day of the placement test after the introduction in the ZOOM meeting (see guideline) from the supervisor.<br /> We wish you good luck.'
?>
+7 -1
View File
@@ -150,6 +150,12 @@ var InfocenterDetails = {
if (FHC_AjaxClient.hasData(data))
{
var prestudent = data.retval[0];
if (prestudent.zgv_code === null && prestudent.zgvmas_code === null)
{
btn.after("<span id='zgvUebernehmenNotice' class='text-warning'>&nbsp;&nbsp;keine ZGV vorhanden</span>");
}
var zgvcode = prestudent.zgv_code !== null ? prestudent.zgv_code : "null";
var zgvort = prestudent.zgvort !== null ? prestudent.zgvort : "";
var zgvdatum = prestudent.zgvdatum;
@@ -183,7 +189,7 @@ var InfocenterDetails = {
}
else
{
btn.after("&nbsp;&nbsp;<span id='zgvUebernehmenNotice' class='text-warning'>keine ZGV vorhanden</span>");
btn.after("<span id='zgvUebernehmenNotice' class='text-warning'>&nbsp;&nbsp;Fehler beim Laden der Daten</span>");
}
},
errorCallback: function()
+195
View File
@@ -0,0 +1,195 @@
$(document).ready(function ()
{
var personid = $("#hiddenpersonid").val();
$('.editStammdaten').click(function()
{
Stammdaten._show();
});
$('.cancelStammdaten').click(function()
{
Stammdaten._hide();
});
$('.saveStammdaten').click(function()
{
var kontakt = [];
$('.kontakt_input').each(function(){
kontakt.push({
id: $(this).data('id'),
value: $(this).val()
});
});
var adresse = [];
$('.adresse').each(function(){
var id = $(this).data('id');
adresse.push({
id: id,
value: {
'strasse': $('#strasse_' + id).val(),
'plz': $('#plz_' + id).val(),
'ort': $('#ort_' + id).val(),
'nation': $('#nation_' + id).val(),
}
});
});
var data = {
"personid" : personid,
"titelpre" : $('#titelpre_input').val(),
"vorname" : $('#vorname_input').val(),
"nachname" : $('#nachname_input').val(),
"titelpost" : $('#titelpost_input').val(),
"gebdatum" : $('#gebdatum_input').val(),
"svnr" : $('#svnr_input').val(),
"buergerschaft" : $('#buergerschaft').val(),
"geschlecht" : $('#geschlecht').val(),
"gebnation" : $('#gebnation').val(),
"gebort" : $('#gebort_input').val(),
"kontakt" : kontakt,
"adresse" : adresse,
};
Stammdaten.update(personid, data);
});
});
var Stammdaten = {
update: function(personid, data)
{
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + "/updateStammdaten/",
data,
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.isSuccess(data))
{
FHC_DialogLib.alertSuccess("Done!");
Stammdaten._updated();
}
else
{
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
}
},
errorCallback: function() {
FHC_DialogLib.alertWarning("Fehler beim Speichern!");
}
}
);
},
_hide: function()
{
$('.stammdaten_input').each(function(){
$(this).parent('td').children('div').show();
$(this).remove();
});
$('.kontakt_input').each(function(){
$(this).parent('td').children('span').show();
$(this).remove();
});
$('.adresse_input').each(function(){
$(this).parent('div').children('div').show();
$(this).remove();
});
},
_show: function()
{
$('.stammdaten').each(function() {
var id = $(this).attr('id');
var input = $('<input />');
input.attr('id', id + '_input');
input.addClass('form-control stammdaten_input');
input.val($(this).html());
$(this).hide();
$(this).parent('td').append(input);
});
$('.kontakt').each(function() {
var id = $(this).data('id');
var value = $(this).data('value');
$(this).hide();
var input = $('<input />');
input.attr('data-id', id);
input.attr('value', value);
input.addClass('form-control kontakt_input');
input.val(value);
$(this).parent('td').append(input);
});
$('.adresse').each(function() {
var adressenID = $(this).data('id');
$($(this).children('div').get().reverse()).each(function() {
$(this).hide();
var type = $(this).data('type');
var value = $(this).data('value');
var input = $('<input />');
input.attr('data-type', type);
input.attr('id', type + '_' + adressenID);
input.attr('value', value);
input.attr('placeholder', type.toUpperCase());
input.addClass('form-control adresse_input');
input.val(value);
$(this).parent().prepend(input);
});
});
var stammdatenform = $('.stammdaten_form');
stammdatenform.find('select').attr('disabled', false);
$('.editActionStammdaten').show();
$('.editStammdaten').hide();
},
_updated: function()
{
$('.kontakt_input').each(function() {
var span = $(this).parent('td').children('span');
var value = $(this).val();
var oldSpanValue = span.data('value');
span.data('value', value);
var newhtml = span.html().replace(oldSpanValue, value);
span.html(newhtml);
if (span.hasClass('email'))
span.find('a').attr('href', 'mailto:' + value);
span.show();
$(this).remove();
});
$('.adresse').each(function() {
$(this).children('input').each(function() {
var value = $(this).val();
var type = $(this).data('type');
var div = $('div[data-type="' + type + '"]');
div.data('value', value);
div.html(value);
div.show();
$(this).remove();
});
});
$('.stammdaten_input').each(function() {
var div = $(this).parent('td').children('div');
var value = $(this).val();
div.html(value);
div.show();
$(this).remove();
});
var stammdatenform = $('.stammdaten_form');
stammdatenform.find('select').attr('disabled', true);
$('.editActionStammdaten').hide();
$('.editStammdaten').show();
},
}
+2 -1
View File
@@ -106,6 +106,7 @@ function draw_content($row)
<STANDORT:standort_id><![CDATA['.$row->standort_id.']]></STANDORT:standort_id>
<STANDORT:adresse_id><![CDATA['.$row->adresse_id.']]></STANDORT:adresse_id>
<STANDORT:bezeichnung><![CDATA['.$row->bezeichnung.']]></STANDORT:bezeichnung>
<STANDORT:bezeichnung_null><![CDATA['.(is_null($row->bezeichnung)?'t':'').']]></STANDORT:bezeichnung_null>
<STANDORT:kurzbz><![CDATA['.$row->kurzbz.']]></STANDORT:kurzbz>
<STANDORT:firma_id><![CDATA['.$row->firma_id.']]></STANDORT:firma_id>
</RDF:Description>
@@ -113,4 +114,4 @@ function draw_content($row)
}
?>
</RDF:Seq>
</RDF:RDF>
</RDF:RDF>
+1 -1
View File
@@ -58,7 +58,7 @@ if(isset($_GET['optional']) && $_GET['optional']=='true')
</RDF:li>
';
}
$qry = 'SELECT * FROM bis.tbl_zgv ORDER BY zgv_kurzbz';
$qry = 'SELECT * FROM bis.tbl_zgv ORDER BY zgv_bez';
$db = new basis_db();
if($db->db_query($qry))
+1 -1
View File
@@ -57,7 +57,7 @@ if(isset($_GET['optional']) && $_GET['optional']=='true')
</RDF:li>
';
}
$qry = 'SELECT * FROM bis.tbl_zgvdoktor ORDER BY zgvdoktor_code';
$qry = 'SELECT * FROM bis.tbl_zgvdoktor ORDER BY zgvdoktor_bez';
$db = new basis_db();
if($db->db_query($qry))
+1 -1
View File
@@ -57,7 +57,7 @@ if(isset($_GET['optional']) && $_GET['optional']=='true')
</RDF:li>
';
}
$qry = 'SELECT * FROM bis.tbl_zgvmaster ORDER BY zgvmas_code';
$qry = 'SELECT * FROM bis.tbl_zgvmaster ORDER BY zgvmas_bez';
$db = new basis_db();
if($db->db_query($qry))
+1
View File
@@ -205,6 +205,7 @@ $berechtigungen = array(
array('student/anwesenheit','Anwesenheiten im FAS'),
array('student/dokumente','Wenn SUID dann dürfen Dokumente auch wieder entfernt werden'),
array('student/editBakkZgv','Bearbeiten der Bachelor ZGV eines PreStudenten'),
array('student/editMakkZgv','Bearbeiten der Master ZGV eines PreStudenten'),
array('student/noten','Notenverwaltung'),
array('student/stammdaten','Stammdaten der Studenten'),
array('student/vorrueckung','Studentenvorrückung'),
+1
View File
@@ -29,6 +29,7 @@ require_once('dbupdate_3.4/example2.php');
*/
require_once('dbupdate_3.4/26173_index_webservicelog.php');
require_once('dbupdate_3.4/24682_reihungstest_zugangscode_fuer_login.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -0,0 +1,15 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
if(!$result = @$db->db_query("SELECT zugangs_ueberpruefung FROM public.tbl_reihungstest LIMIT 1"))
{
$qry = "ALTER TABLE public.tbl_reihungstest ADD COLUMN zugangs_ueberpruefung boolean NOT NULL DEFAULT false;
ALTER TABLE public.tbl_reihungstest ADD COLUMN zugangscode smallint DEFAULT NULL;";
if(!$db->db_query($qry))
echo '<strong>public.tbl_reihungstest: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.tbl_reihungstest: Spalte zugangs_ueberpruefung und zugangscode hinzugefuegt';
}
+28 -3
View File
@@ -16241,7 +16241,9 @@ array(
In Summe müssen 5 ECTS erworben werden, die im 6. Semester wirksam werden. <br/>
Das Modul „International skills“ wird mit der Beurteilung „Mit Erfolg teilgenommen“ abgeschlossen. <br />
Bitte wählen Sie die für Sie in Frage kommenden Maßnahmen aus und planen Sie das entsprechende Semester. <br />
Sobald die 5 ECTS erreicht wurden, überprüft der Studiengang die von Ihnen hochgeladenen Dokumente.',
Sobald die 5 ECTS erreicht wurden, überprüft der Studiengang die von Ihnen hochgeladenen Dokumente. <br /><br />
Fragen zum Status Ihrer Maßnahme u.ä. richten Sie bitte an den Studiengang. <br />
Bei allen weiteren Fragen zum Thema Organisation und Finanzierung des Auslandsaufenthalts und/oder Sprachkurs gibt Ihnen das International Office der FH Technikum Wien unter <a href="mailto:international.office@technikum-wien.at">international.office@technikum-wien.at</a> gerne Auskunft.',
'description' => '',
'insertvon' => 'system'
),
@@ -16252,7 +16254,10 @@ array(
In total, 5 ECTS must be acquired, which become effective in the 6th semester.<br />
The module “International skills” is completed with the assessment "Successfully participated". <br />
Please select the measures that apply to you and schedule the appropriate semester. <br />
Once the 5 ECTS have been achieved, the degree program will review the documents you have uploaded.',
Once the 5 ECTS have been achieved, the degree program will review the documents you have uploaded. <br /><br />
Please direct questions regarding the status of your measure and the like should be directed to the study program. <br />
For all further questions regarding the organization and financing of your stay abroad and/or language course, please contact the International Office of the UAS Technikum Wien at <a href="mailto:international.office@technikum-wien.at">international.office@technikum-wien.at</a>.
',
'description' => '',
'insertvon' => 'system'
)
@@ -17137,7 +17142,27 @@ array(
'insertvon' => 'system'
)
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'stammdatenFeldFehlt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bitte Nachname, Geschlecht und Geburtsdatum ausfüllen.',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Please fill out the last name, gender and date of birth.',
'description' => '',
'insertvon' => 'system'
)
)
),
);
+41 -38
View File
@@ -271,7 +271,8 @@ if (CAMPUS_NAME == 'FH Technikum Wien' && $stg_kz==10006)
DISTINCT ON(student_uid, nachname, vorname) *,
public.tbl_person.person_id AS pers_id, to_char(gebdatum, 'ddmmyy') AS vdat,
public.tbl_prestudent.foerderrelevant as pre_foerderrelevant,
public.tbl_studiengang.foerderrelevant as stg_foerderrelevant
public.tbl_studiengang.foerderrelevant as stg_foerderrelevant,
COALESCE(tbl_prestudent.standort_code, tbl_studiengang.standort_code) AS bis_standort_code
FROM
public.tbl_student
JOIN public.tbl_benutzer ON(student_uid=uid)
@@ -295,7 +296,8 @@ elseif ($stg_kz == 'alleBaMa')
DISTINCT ON(tbl_student.studiengang_kz, matrikelnr, nachname, vorname) *,
public.tbl_person.person_id AS pers_id, to_char(gebdatum, 'ddmmyy') AS vdat,
public.tbl_prestudent.foerderrelevant as pre_foerderrelevant,
public.tbl_studiengang.foerderrelevant as stg_foerderrelevant
public.tbl_studiengang.foerderrelevant as stg_foerderrelevant,
COALESCE(tbl_prestudent.standort_code, tbl_studiengang.standort_code) AS bis_standort_code
FROM
public.tbl_student
JOIN public.tbl_benutzer ON(student_uid=uid)
@@ -327,7 +329,8 @@ else
DISTINCT ON(student_uid, nachname, vorname) *,
public.tbl_person.person_id AS pers_id, to_char(gebdatum, 'ddmmyy') AS vdat,
public.tbl_prestudent.foerderrelevant as pre_foerderrelevant,
public.tbl_studiengang.foerderrelevant as stg_foerderrelevant
public.tbl_studiengang.foerderrelevant as stg_foerderrelevant,
COALESCE(tbl_prestudent.standort_code, tbl_studiengang.standort_code) AS bis_standort_code
FROM
public.tbl_student
JOIN public.tbl_benutzer ON(student_uid=uid)
@@ -397,23 +400,48 @@ if($result = $db->db_query($qry))
else
die('Fehler:'.$stg_obj->errormsg);
// Header am Beginn rausschreiben
// Erstes Studiengang Tag am Beginn rausschreiben
if ($stg_kz_index == '')
{
$header = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<Erhalter>
<ErhKz>".$erhalter."</ErhKz>
<MeldeDatum>".date("dmY", $datumobj->mktime_fromdate($bisdatum))."</MeldeDatum>
<StudierendenBewerberMeldung>";
<StudierendenBewerberMeldung>
<Studiengang>
<StgKz>".$row->studiengang_kz."</StgKz>";
$datei .= $header;
$dateiNurBewerber .= $header;
}
}
//Bewerberblock bei neuem Studiengang, und am Ende noch einmal
if (($stg_kz_index != '' && $row->studiengang_kz != $stg_kz_index) || $row_num == $num_rows)
// Student Daten schreiben
$datei .= GenerateXMLStudentBlock($row);
// wenn neuer Studiengang oder letzter Durchlauf...
if (($row_num > 1 && $row->studiengang_kz != $stg_kz_index) || $row_num == $num_rows)
{
// ...Studiengang Tag schliessen
$stgClose = "
</Studiengang>";
$datei .= $stgClose;
$dateiNurBewerber .= $stgClose;
}
// wenn neuer Studiengang...
if ($row->studiengang_kz != $stg_kz_index)
{
if ($row_num > 1)
{
// ...neuen Studiengang Tag öffnen
$stgOpen = "
<Studiengang>
<StgKz>".$row->studiengang_kz."</StgKz>";
$datei .= $stgOpen;
$dateiNurBewerber .= $stgOpen;
}
//Bewerberblock
// (bei Ausserordentlichen nicht anzeigen)
if($row->studiengang_kz!=('9'.$erhalter))
{
@@ -426,40 +454,16 @@ if($result = $db->db_query($qry))
foreach($orgcodes as $code)
{
$bewerberBlock=GenerateXMLBewerberBlock($row->studiengang_kz, $code);
$datei.=$bewerberBlock;
$dateiNurBewerber.=$bewerberBlock;
}
}
else
{
$bewerberBlock=GenerateXMLBewerberBlock($row->studiengang_kz);
$datei.=$bewerberBlock;
$dateiNurBewerber.=$bewerberBlock;
}
}
}
// wenn neuer Studiengang...
if ($row->studiengang_kz != $stg_kz_index)
{
// ...Studiengang Tag schliessen
if ($stg_kz_index != '')
{
$stgClose = "
</Studiengang>";
$datei .= $stgClose;
$dateiNurBewerber .= $stgClose;
}
// ...neuen Studiengang Tag öffnen
$stgOpen = "
<Studiengang>
<StgKz>".$row->studiengang_kz."</StgKz>";
$datei .= $stgOpen;
$dateiNurBewerber .= $stgOpen;
}
// Student Daten schreiben
$datei .= GenerateXMLStudentBlock($row);
};
// Studiengang kz speichern und Zeile erhöhen
$stg_kz_index = $row->studiengang_kz;
@@ -468,7 +472,6 @@ if($result = $db->db_query($qry))
}
$footer="
</Studiengang>
</StudierendenBewerberMeldung>
</Erhalter>";
@@ -744,7 +747,7 @@ if(file_exists($ddd))
}
if(file_exists($dddNurBew))
echo '<a href="'.$dddNurBew.'" target="_blank" download>XML-Datei f&uuml;r BIS-Meldung Stg '.$stg_kz.' - nur Bewerberdaten</a><br>';
echo '<a href="'.$dddNurBew.'" target="_blank" download>XML-Datei f&uuml;r BIS-Meldung Stg '.$stg_kz.' - Bewerberdaten</a><br>';
if(file_exists($eee))
{
@@ -1611,7 +1614,7 @@ function GenerateXMLStudentBlock($row)
if($studtyp!='E')
{
$datei.="
<StudStatusCode>".$status."</StudStatusCode>";
<StudStatusCode>".$status."</StudStatusCode>";
}
// IO container query
@@ -1637,7 +1640,7 @@ function GenerateXMLStudentBlock($row)
if(!$ausserordentlich)
{
$datei.="
<StandortCode>".$row->standort_code."</StandortCode>";
<StandortCode>".$row->bis_standort_code."</StandortCode>";
}
/*
* BMWFFoerderrung derzeit fuer alle Studierende auf Ja gesetzt
@@ -2038,7 +2041,7 @@ function GenerateXMLBewerberBlock($studiengang_kz, $orgformcode=null)
<OrgFormCode>".$orgform_code_array[$bworgform]."</OrgFormCode>";
if($stgart==2)
$datei.='
<ZugangMaCode>'.$key.'</ZugangMaCode>';
<ZugangMaStgCode>'.$key.'</ZugangMaStgCode>';
else
$datei.='
<ZugangCode>'.$key.'</ZugangCode>';
+36 -7
View File
@@ -65,8 +65,8 @@ echo '
{
$("#t1").tablesorter(
{
sortList: [[0,0]],
widgets: ["zebra"],
sortList: [[7,0],[0,0],[1,0]],
widgets: ["zebra","filter"],
});
});
</script>
@@ -212,6 +212,7 @@ if (isset($_POST['vorr']))
$statisticAdded = 0;
$statisticUebersprungen = 0;
$statisticStudienplanKorrektur = 0;
$errorMsg = array('Studenten im letzten Ausbildungssemester ohne Diplomandenstatus' => 0);
$stg_help = new studiengang();
if (!$stg_help->load($stg_kz))
@@ -306,13 +307,25 @@ if (isset($_POST['vorr']))
//auf statusgrund_kurzbz abfragen
$statusgrundObj = new statusgrund($row_status->statusgrund_id);
$statusgrundId = null;
if ($statusgrundObj->statusgrund_kurzbz === "prewiederholer" && $row_status->ausbildungssemester > 1)
if (isset($statusgrundObj->statusgrund_kurzbz) && $statusgrundObj->statusgrund_kurzbz === "prewiederholer" && $row_status->ausbildungssemester > 1)
{
$s = $row->semester_stlv - 1;
$ausbildungssemester = $row_status->ausbildungssemester - 1;
$statusgrundId = $statusgrundObj->getByStatusgrundKurzbz('wiederholer')->statusgrund_id;
}
// Wenn VORRUECKUNG_STATUS_MAX_SEMESTER true ist und
// der Student kein Wiederholer ist und
// der aktuelle Status "Student" im Max-Semester des Studiengangs ist, wird übersprungen
if (VORRUECKUNG_STATUS_MAX_SEMESTER
&& $statusgrundId == ''
&& $row_status->ausbildungssemester == $max[$stg_kz]
&& $row_status->status_kurzbz == 'Student')
{
$errorMsg['Studenten im letzten Ausbildungssemester ohne Diplomandenstatus'] = $errorMsg['Studenten im letzten Ausbildungssemester ohne Diplomandenstatus']+1;
continue;
}
$lvb = new lehrverband();
//Lehrverbandgruppe anlegen, wenn noch nicht vorhanden
@@ -352,6 +365,7 @@ if (isset($_POST['vorr']))
$db->db_add_param($row->gruppe_stlv).",NULL,NULL,now(),".
$db->db_add_param($user).",NULL);";
}
//Check, ob schon ein Status für das Zielsemester vorhanden ist
$qry_chk = "SELECT
*
FROM
@@ -360,7 +374,8 @@ if (isset($_POST['vorr']))
prestudent_id=".$db->db_add_param($row->prestudent_id)."
AND studiensemester_kurzbz=".$db->db_add_param($next_ss).";";
if ($db->db_num_rows($db->db_query($qry_chk)) < 1)
if ($db->db_num_rows($db->db_query($qry_chk)) < 1
&& $row_status->status_kurzbz != 'Absolvent')
{
// Pruefen ob der Studienplan fuer das vorgerueckte Semester noch gueltig ist
// und GGf einen besseren Studienplan suchen
@@ -405,9 +420,23 @@ if (isset($_POST['vorr']))
}
}
echo '<span class="ok">';
echo 'Vorgerückte Personen:'.$statisticAdded.'<br>';
echo 'Übersprungene Personen:'.$statisticUebersprungen.'<br>';
echo 'Studienplanzuordnung korrigiert:'.$statisticStudienplanKorrektur.'<br>';
if ($statisticAdded > 0)
echo 'Vorgerückte Personen: '.$statisticAdded.'<br>';
if ($statisticStudienplanKorrektur > 0)
echo 'Studienplanzuordnung korrigiert: '.$statisticStudienplanKorrektur.'<br>';
echo '</span>';
echo '<span class="warning">';
if ($statisticUebersprungen > 0)
echo $statisticUebersprungen.' Personen wurden übersprungen, weil schon ein Eintrag im Zielsemester vorhanden ist<br>';
echo '</span>';
echo '<span class="error">';
foreach($errorMsg AS $text=>$anzahl)
{
if ($anzahl > 0)
{
echo $anzahl.' '.$text;
}
}
echo '</span>';
}
+131 -4
View File
@@ -518,6 +518,67 @@ if ($rtprueflingEntSperren)
}
}
// Ajax-Request um einen Prüfling Zeit für ein bestimmtes Gebiet hinzuzufügen
$prueflingAddTime = filter_input(INPUT_POST, 'prueflingAddTime', FILTER_VALIDATE_BOOLEAN);
if ($prueflingAddTime)
{
if (!$rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'su'))
{
echo json_encode(array(
'status' => 'fehler',
'msg' => $rechte->errormsg
));
exit();
}
if (isset($_POST['pruefling_id']) && is_numeric($_POST['pruefling_id'])
&& isset($_POST['gebiet']) && is_numeric($_POST['gebiet'])
&& isset($_POST['time']) && is_numeric($_POST['time']))
{
$qry = "UPDATE testtool.tbl_pruefling_frage
SET begintime =
CASE WHEN
(begintime + (" .$db->db_add_param($_POST['time']) . " * interval '1 minute') > NOW())
THEN
NOW()
ELSE
(begintime + (" .$db->db_add_param($_POST['time']) . " * interval '1 minute'))
END,
endtime =
CASE WHEN
(endtime + (" .$db->db_add_param($_POST['time']) . " * interval '1 minute') > NOW())
THEN
NOW()
ELSE
(endtime + (" .$db->db_add_param($_POST['time']) . " * interval '1 minute'))
END
WHERE prueflingfrage_id IN
(
SELECT prueflingfrage_id
FROM testtool.tbl_pruefling
JOIN testtool.tbl_pruefling_frage USING (pruefling_id)
JOIN testtool.tbl_frage ON tbl_pruefling_frage.frage_id = tbl_frage.frage_id
WHERE pruefling_id = ". $db->db_add_param($_POST['pruefling_id']) . " AND gebiet_id = ". $db->db_add_param($_POST['gebiet']) ."
)";
if ($result = $db->db_query($qry))
{
echo json_encode(array(
'status' => 'ok',
'msg' => 'Zeit hinzugefügt'));
exit();
}
else
{
echo json_encode(array(
'status' => 'fehler',
'msg' => 'Fehler beim speichern der Daten'
));
exit();
}
}
}
// Ajax-Request um einen Reihungstest freizuschalten
$rtFreischalten = filter_input(INPUT_POST, 'rtFreischalten', FILTER_VALIDATE_BOOLEAN);
if ($rtFreischalten)
@@ -1289,7 +1350,8 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
tbl_ablauf.reihung,
tbl_ablauf.studiengang_kz,
tbl_ablauf.semester,
tbl_ablauf.gewicht
tbl_ablauf.gewicht,
tbl_gebiet.zeit
FROM PUBLIC.tbl_rt_person
JOIN PUBLIC.tbl_person ON (tbl_rt_person.person_id = tbl_person.person_id)
JOIN PUBLIC.tbl_prestudent ps ON (ps.person_id = tbl_rt_person.person_id)
@@ -1366,6 +1428,7 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
}
$gebiet[$row->gebiet_id]->name = $row->gebiet;
$gebiet[$row->gebiet_id]->gebiet_id = $row->gebiet_id;
$gebiet[$row->gebiet_id]->zeit = $row->zeit;
//gewicht ist meist für alle Studiengänge gleich (Bachelor, Master und Distance haben jeweilsandere Gebiete)
if (!isset($gebiet[$row->gebiet_id]->gewicht))
{
@@ -1487,6 +1550,7 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
tbl_pruefling.idnachweis,
tbl_pruefling.registriert,
tbl_pruefling.gesperrt,
tbl_pruefling.pruefling_id,
get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) AS letzter_status
FROM PUBLIC.tbl_rt_person
JOIN PUBLIC.tbl_person ON (tbl_rt_person.person_id = tbl_person.person_id)
@@ -1601,7 +1665,7 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
$ergebnis[$row->prestudent_id]->prestudent_id = $row->prestudent_id;
$ergebnis[$row->prestudent_id]->person_id = $row->person_id;
$ergebnis[$row->prestudent_id]->reihungstest_id = $row->reihungstest_id;
//$ergebnis[$row->prestudent_id]->pruefling_id = $row->pruefling_id;
$ergebnis[$row->prestudent_id]->pruefling_id = $row->pruefling_id;
$ergebnis[$row->prestudent_id]->nachname = $row->nachname;
$ergebnis[$row->prestudent_id]->vorname = $row->vorname;
$ergebnis[$row->prestudent_id]->gebdatum = $row->gebdatum;
@@ -2422,6 +2486,46 @@ else
});
}
}
function prueflingAddTime(pruefling_id, gebiet)
{
var min = $("#prueflingAddTime_" + pruefling_id + "_gebiet_" + gebiet).val();
data = {
pruefling_id: pruefling_id,
gebiet: gebiet,
time: min,
prueflingAddTime: true
};
$.ajax({
url: "auswertung_fhtw.php",
data: data,
type: "POST",
dataType: "json",
success: function(data)
{
if(data.status !== "ok")
{
$("#msgbox").attr("class","alert alert-danger");
$("#msgbox").show();
$("#msgbox").html(data["msg"]);
}
else
{
$("#msgbox").attr("class","alert alert-success");
$(".loaderIcon").hide();
$("#msgbox").show();
$("#msgbox").html(data["msg"]);
$("#msgbox").html(data["msg"]).delay(2000).fadeOut();
}
},
error: function(data)
{
$("#msgbox").attr("class","alert alert-danger");
$("#msgbox").show();
$("#msgbox").html(data["msg"]);
}
});
}
function deleteAllResults(prestudent_id, name)
{
if (confirm("Wollen Sie ALLE Ergebnisse der Person "+name+" wirklich löschen"))
@@ -3143,7 +3247,7 @@ else
foreach ($gebiet AS $gbt)
{
echo '<th colspan="3">' . $gbt->name . '</th>';
echo '<th colspan="4">' . $gbt->name . '</th>';
}
echo '</tr>
@@ -3158,6 +3262,7 @@ else
echo "<th><small>Punkte</small></th>";
echo "<th><small>Punkte mit Offset</small></th>";
echo "<th><small>Prozent</small></th>";
echo "<th><small>Zeit hinzufügen</small></th>";
}
echo '</tr></thead><tbody>';
@@ -3265,10 +3370,32 @@ else
echo '</td>';
echo '<td class="rightaligned ' . $zerovalclass . 'pst_' . $erg->prestudent_id . '_gbt_' . $gbt->gebiet_id . ' punkte '.$inaktiv.'" nowrap>' . ($erg->gebiet[$gbt->gebiet_id]->punktemitoffset != '' ? number_format($erg->gebiet[$gbt->gebiet_id]->punktemitoffset, 2, ',', ' ') : '') . '</td>';
echo '<td class="rightaligned ' . $zerovalclass . 'pst_' . $erg->prestudent_id . '_gbt_' . $gbt->gebiet_id . ' punkte '.$inaktiv.'" nowrap>' . ($erg->gebiet[$gbt->gebiet_id]->prozent != '' ? number_format($erg->gebiet[$gbt->gebiet_id]->prozent, 2, ',', ' ') . ' %' : '') . '</td>';
echo '<td class="rightaligned ' . $zerovalclass . 'pst_' . $erg->prestudent_id . '_gbt_' . $gbt->gebiet_id . ' punkte '.$inaktiv.'" nowrap>';
if (!is_null($erg->pruefling_id))
{
$time = strtotime($gbt->zeit);
$minutes = date('i', $time);
echo '<select id="prueflingAddTime_'.$erg->pruefling_id .'_gebiet_' . $gbt->gebiet_id . '">';
for ($i = 2; $i <= 10; $i = $i +2)
{
if ($i < $minutes)
echo '<option value="'. $i .'">00:' . sprintf("%02d", $i) .':00</option>';
}
echo '<option value="'. $minutes .'">'. $gbt->zeit .'</option>';
echo '</select>
<a href="#" id="prueflingAddTime_'.$erg->pruefling_id .'" onclick="prueflingAddTime('. $erg->pruefling_id. '' . ', ' .$gbt->gebiet_id .')">
<span class="glyphicon glyphicon-ok"></span>
</a>';
}
echo '</td>';
}
else
{
echo '<td></td><td></td><td></td>';
echo '<td></td><td></td><td></td><td></td>';
}
}
@@ -110,17 +110,17 @@ echo ' <script type="text/javascript" src="../../include/js/jquery.ui.datepicker
$("#t2").tablesorter(
{
sortList: [[6,0],[5,0]],
widgets: ["zebra"]
widgets: ["zebra","filter"]
});
$("#t3").tablesorter(
{
sortList: [[0,0],[1,0],[3,0]],
widgets: ["zebra"]
widgets: ["zebra","filter"]
});
$("#t4").tablesorter(
{
sortList: [[2,0],[3,0]],
widgets: ["zebra"],
widgets: ["zebra","filter"],
headers: {5:{sorter:false}}
});
@@ -583,7 +583,7 @@ if(isset($_POST['delete_all']))
}
// Testergebnisse anzeigen
echo '<hr><br><form action="'.$_SERVER['PHP_SELF'].'" method="POST">Testergebnisse der Person mit der Prestudent_id <input type="text" name="prestudent_id"><input type="submit" value="anzeigen" name="testergebnisanzeigen"></form>';
echo '<hr><br><form action="'.$_SERVER['PHP_SELF'].'" method="POST">Testergebnisse der Person mit der Prestudent_id <input type="text" name="prestudent_id" value="'.(isset($_POST['prestudent_id'])?$_POST['prestudent_id']:'').'"><input type="submit" value="anzeigen" name="testergebnisanzeigen"></form>';
if(isset($_POST['testergebnisanzeigen']) && isset($_POST['prestudent_id']))
{
if(is_numeric($_POST['prestudent_id']) && $_POST['prestudent_id']!='')
@@ -847,6 +847,12 @@ if(isset($_GET['excel']))
if ($('.ort_listitem').length == 0 && $('#max_teilnehmer').val() == '' && $('#ort').val() == '')
confirm('Wenn der Reihungstest "Öffentlich" ist, sollten Räume zugeteilt sein, oder "Max TeilnehmerInnen" gesetzt sein');
}
if ($('#zugangs_ueberpruefung').is(":checked") && $('#zugangcode').val() == '')
{
alert('Wenn die Zugangsüberprüfung aktiviert ist, ist ein Zugangscode verpflichtend.');
return false;
}
});
if ($('#oeffentlich').is(":checked") && $('.ort_listitem').length == 0 && $('#max_teilnehmer').val() == '' && $('#ort').val() == '')
@@ -1396,6 +1402,12 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren']))
$error = true;
}
}
if (isset($_POST['zugangs_ueberpruefung']) && $_POST['zugangcode'] === '')
{
$messageError .= '<p>Der Zugangscode muss ausgefüllt sein, wenn die Zugangsüberprüfung aktiviert ist. </p>';
$error = true;
}
if(!$error)
{
@@ -1407,6 +1419,8 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren']))
$reihungstest->stufe = filter_input(INPUT_POST, 'stufe', FILTER_VALIDATE_INT);
$reihungstest->aufnahmegruppe_kurzbz = filter_input(INPUT_POST, 'aufnahmegruppe');
$reihungstest->anmeldefrist = $datum_obj->formatDatum($_POST['anmeldefrist']);
$reihungstest->zugangs_ueberpruefung = false;
$reihungstest->zugangscode = null;
}
else
{
@@ -1421,6 +1435,8 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren']))
$reihungstest->anmeldefrist = $datum_obj->formatDatum($_POST['anmeldefrist']);
$reihungstest->updateamum = date('Y-m-d H:i:s');
$reihungstest->updatevon = $user;
$reihungstest->zugangs_ueberpruefung = isset($_POST['zugangs_ueberpruefung']);
$reihungstest->zugangscode = ($_POST['zugangcode'] === '' ? null : $_POST['zugangcode']);
}
$reihungstest->studiengang_kz = $_POST['studiengang_kz'];
//$reihungstest->ort_kurzbz = $_POST['ort_kurzbz'];
@@ -2504,6 +2520,18 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
(Kurz vor Testbeginn aktivieren)
</td>
</tr>
<tr>
<td class="feldtitel">Zugangsüberprüfung</td>
<td>
<input type="checkbox" id="zugangs_ueberpruefung" name="zugangs_ueberpruefung"<?php echo $reihungstest->zugangs_ueberpruefung ? 'checked="checked"' : '' ?>>
</td>
</tr>
<tr>
<td class="feldtitel">Zugangscode</td>
<td>
<input type="number" class="input" id="zugangcode" name="zugangcode" value="<?php echo $db->convert_html_chars($reihungstest->zugangscode) ?>"> (Verpflichtend, wenn die Zugangsüberprüfung aktiviert ist)
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>