- Checksystem adds new column account_creation to the table public.tbl_studiengang

- Changed include/studiengang.class.php to make use of the new column account_creation
- Changed vilesci/stammdaten/studiengang* to make use of the new column account_creation
This commit is contained in:
Paolo
2026-10-06 11:01:49 +02:00
parent 4ba2869632
commit b2af21124e
5 changed files with 94 additions and 4 deletions
+36 -3
View File
@@ -57,6 +57,7 @@ class studiengang extends basis_db
public $foerderrelevant; // boolean public $foerderrelevant; // boolean
public $standort_code; // integer public $standort_code; // integer
public $melde_studiengang_kz; // varchar(32) public $melde_studiengang_kz; // varchar(32)
public $account_creation; // boolean
public $kuerzel; // = typ + kurzbz (Bsp: BBE) public $kuerzel; // = typ + kurzbz (Bsp: BBE)
public $kuerzel_arr = array(); // Array mit allen Kurzeln Index=studiengangs_kz public $kuerzel_arr = array(); // Array mit allen Kurzeln Index=studiengangs_kz
@@ -76,6 +77,8 @@ class studiengang extends basis_db
{ {
parent::__construct(); parent::__construct();
$this->account_creation = true; // default value
if(!is_null($studiengang_kz)) if(!is_null($studiengang_kz))
$this->load($studiengang_kz); $this->load($studiengang_kz);
} }
@@ -136,6 +139,7 @@ class studiengang extends basis_db
$this->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $this->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
$this->standort_code = $row->standort_code; $this->standort_code = $row->standort_code;
$this->melde_studiengang_kz = $row->melde_studiengang_kz; $this->melde_studiengang_kz = $row->melde_studiengang_kz;
$this->account_creation = $this->db_parse_bool($row->account_creation);
$this->bezeichnung_arr['German'] = $this->bezeichnung; $this->bezeichnung_arr['German'] = $this->bezeichnung;
$this->bezeichnung_arr['English'] = $this->english; $this->bezeichnung_arr['English'] = $this->english;
@@ -213,6 +217,7 @@ class studiengang extends basis_db
$stg_obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $stg_obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
$stg_obj->standort_code = $row->standort_code; $stg_obj->standort_code = $row->standort_code;
$stg_obj->melde_studiengang_kz = $row->melde_studiengang_kz; $stg_obj->melde_studiengang_kz = $row->melde_studiengang_kz;
$stg_obj->account_creation = $this->db_parse_bool($row->account_creation);
$stg_obj->bezeichnung_arr['German'] = $row->bezeichnung; $stg_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$stg_obj->bezeichnung_arr['English'] = $row->english; $stg_obj->bezeichnung_arr['English'] = $row->english;
@@ -435,6 +440,7 @@ class studiengang extends basis_db
$stg_obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $stg_obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
$stg_obj->standort_code = $row->standort_code; $stg_obj->standort_code = $row->standort_code;
$stg_obj->melde_studiengang_kz = $row->melde_studiengang_kz; $stg_obj->melde_studiengang_kz = $row->melde_studiengang_kz;
$stg_obj->account_creation = $this->db_parse_bool($row->account_creation);
$stg_obj->bezeichnung_arr['German'] = $row->bezeichnung; $stg_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$stg_obj->bezeichnung_arr['English'] = $row->english; $stg_obj->bezeichnung_arr['English'] = $row->english;
@@ -510,7 +516,7 @@ class studiengang extends basis_db
typ, farbe, email, telefon, max_verband, max_semester, max_gruppe, erhalter_kz, bescheid, bescheidbgbl1, typ, farbe, email, telefon, max_verband, max_semester, max_gruppe, erhalter_kz, bescheid, bescheidbgbl1,
bescheidbgbl2, bescheidgz, bescheidvom, titelbescheidvom, aktiv, onlinebewerbung, orgform_kurzbz, zusatzinfo_html, bescheidbgbl2, bescheidgz, bescheidvom, titelbescheidvom, aktiv, onlinebewerbung, orgform_kurzbz, zusatzinfo_html,
oe_kurzbz, moodle, sprache, testtool_sprachwahl, studienplaetze, lgartcode, mischform,projektarbeit_note_anzeige, oe_kurzbz, moodle, sprache, testtool_sprachwahl, studienplaetze, lgartcode, mischform,projektarbeit_note_anzeige,
melderelevant, foerderrelevant, standort_code, melde_studiengang_kz) VALUES ('. melderelevant, foerderrelevant, standort_code, melde_studiengang_kz, account_creation) VALUES ('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->kurzbz).', '. $this->db_add_param($this->kurzbz).', '.
$this->db_add_param($this->kurzbzlang).', '. $this->db_add_param($this->kurzbzlang).', '.
@@ -545,7 +551,8 @@ class studiengang extends basis_db
$this->db_add_param($this->melderelevant, FHC_BOOLEAN).','. $this->db_add_param($this->melderelevant, FHC_BOOLEAN).','.
$this->db_add_param($this->foerderrelevant, FHC_BOOLEAN).','. $this->db_add_param($this->foerderrelevant, FHC_BOOLEAN).','.
$this->db_add_param($this->standort_code).','. $this->db_add_param($this->standort_code).','.
$this->db_add_param($this->melde_studiengang_kz).');'; $this->db_add_param($this->melde_studiengang_kz).','.
$this->db_add_param($this->account_creation, FHC_BOOLEAN).');';
} }
else else
{ {
@@ -586,7 +593,8 @@ class studiengang extends basis_db
'melderelevant='.$this->db_add_param($this->melderelevant, FHC_BOOLEAN).', '. 'melderelevant='.$this->db_add_param($this->melderelevant, FHC_BOOLEAN).', '.
'foerderrelevant='.$this->db_add_param($this->foerderrelevant, FHC_BOOLEAN).', '. 'foerderrelevant='.$this->db_add_param($this->foerderrelevant, FHC_BOOLEAN).', '.
'standort_code='.$this->db_add_param($this->standort_code).', '. 'standort_code='.$this->db_add_param($this->standort_code).', '.
'melde_studiengang_kz='.$this->db_add_param($this->melde_studiengang_kz).' '. 'melde_studiengang_kz='.$this->db_add_param($this->melde_studiengang_kz).', '.
'account_creation='.$this->db_add_param($this->account_creation, FHC_BOOLEAN).' '.
'WHERE studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER, false).';'; 'WHERE studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER, false).';';
} }
@@ -627,6 +635,27 @@ class studiengang extends basis_db
} }
/**
* Toggle the IDAM flag account_creation
*/
public function toggleAccountCreation($studiengang_kz)
{
if( !is_numeric($studiengang_kz))
{
$this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein';
return false;
}
$qry = 'UPDATE public.tbl_studiengang SET account_creation = NOT account_creation WHERE studiengang_kz = '.$this->db_add_param($studiengang_kz, FHC_INTEGER);
if (!$this->db_query($qry))
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
}
return true;
}
/** /**
* Liefert die UIDs der Studiengangsleiter * Liefert die UIDs der Studiengangsleiter
* *
@@ -713,6 +742,7 @@ class studiengang extends basis_db
$this->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $this->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
$this->standort_code = $row->standort_code; $this->standort_code = $row->standort_code;
$this->melde_studiengang_kz = $row->melde_studiengang_kz; $this->melde_studiengang_kz = $row->melde_studiengang_kz;
$this->account_creation = $this->db_parse_bool($row->account_creation);
$this->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige); $this->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
$this->bezeichnung_arr['German'] = $this->bezeichnung; $this->bezeichnung_arr['German'] = $this->bezeichnung;
@@ -857,6 +887,7 @@ class studiengang extends basis_db
$obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
$obj->standort_code = $row->standort_code; $obj->standort_code = $row->standort_code;
$obj->melde_studiengang_kz = $row->melde_studiengang_kz; $obj->melde_studiengang_kz = $row->melde_studiengang_kz;
$obj->account_creation = $this->db_parse_bool($row->account_creation);
$obj->aktiv = $this->db_parse_bool($row->aktiv); $obj->aktiv = $this->db_parse_bool($row->aktiv);
$this->result[] = $obj; $this->result[] = $obj;
@@ -1038,6 +1069,7 @@ class studiengang extends basis_db
$obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
$obj->standort_code = $row->standort_code; $obj->standort_code = $row->standort_code;
$obj->melde_studiengang_kz = $row->melde_studiengang_kz; $obj->melde_studiengang_kz = $row->melde_studiengang_kz;
$obj->account_creation = $this->db_parse_bool($row->account_creation);
$obj->bezeichnung_arr['German'] = $obj->bezeichnung; $obj->bezeichnung_arr['German'] = $obj->bezeichnung;
$obj->bezeichnung_arr['English'] = $obj->english; $obj->bezeichnung_arr['English'] = $obj->english;
@@ -1176,6 +1208,7 @@ class studiengang extends basis_db
$obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
$obj->standort_code = $row->standort_code; $obj->standort_code = $row->standort_code;
$obj->melde_studiengang_kz = $row->melde_studiengang_kz; $obj->melde_studiengang_kz = $row->melde_studiengang_kz;
$obj->account_creation = $this->db_parse_bool($row->account_creation);
$obj->bezeichnung_arr['German'] = $obj->bezeichnung; $obj->bezeichnung_arr['German'] = $obj->bezeichnung;
$obj->bezeichnung_arr['English'] = $obj->english; $obj->bezeichnung_arr['English'] = $obj->english;
+2 -1
View File
@@ -104,6 +104,7 @@ require_once('dbupdate_3.4/77080_tabulator_presets_table.php');
require_once('dbupdate_3.4/78292_gehaltsanpassungtyp.php'); require_once('dbupdate_3.4/78292_gehaltsanpassungtyp.php');
require_once('dbupdate_3.4/54225_reihungstest_ablauf_fuer_quereinsteiger.php'); require_once('dbupdate_3.4/54225_reihungstest_ablauf_fuer_quereinsteiger.php');
require_once('dbupdate_3.4/77757_widgets_berechtigungen.php'); require_once('dbupdate_3.4/77757_widgets_berechtigungen.php');
require_once('dbupdate_3.4/83575_IDAM_Exclude_Degree_Program_from_Student_Sync.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>'; echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -397,7 +398,7 @@ $tabellen=array(
"public.tbl_statistik" => array("statistik_kurzbz","bezeichnung","url","gruppe","sql","content_id","insertamum","insertvon","updateamum","updatevon","berechtigung_kurzbz","publish","preferences"), "public.tbl_statistik" => array("statistik_kurzbz","bezeichnung","url","gruppe","sql","content_id","insertamum","insertvon","updateamum","updatevon","berechtigung_kurzbz","publish","preferences"),
"public.tbl_student" => array("student_uid","matrikelnr","prestudent_id","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"), "public.tbl_student" => array("student_uid","matrikelnr","prestudent_id","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"),
"public.tbl_studentlehrverband" => array("student_uid","studiensemester_kurzbz","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"), "public.tbl_studentlehrverband" => array("student_uid","studiensemester_kurzbz","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"),
"public.tbl_studiengang" => array("studiengang_kz","kurzbz","kurzbzlang","typ","bezeichnung","english","farbe","email","telefon","max_semester","max_verband","max_gruppe","erhalter_kz","bescheid","bescheidbgbl1","bescheidbgbl2","bescheidgz","bescheidvom","orgform_kurzbz","titelbescheidvom","aktiv","ext_id","zusatzinfo_html","moodle","sprache","testtool_sprachwahl","studienplaetze","oe_kurzbz","lgartcode","mischform","projektarbeit_note_anzeige", "onlinebewerbung","melderelevant","foerderrelevant","standort_code","melde_studiengang_kz"), "public.tbl_studiengang" => array("studiengang_kz","kurzbz","kurzbzlang","typ","bezeichnung","english","farbe","email","telefon","max_semester","max_verband","max_gruppe","erhalter_kz","bescheid","bescheidbgbl1","bescheidbgbl2","bescheidgz","bescheidvom","orgform_kurzbz","titelbescheidvom","aktiv","ext_id","zusatzinfo_html","moodle","sprache","testtool_sprachwahl","studienplaetze","oe_kurzbz","lgartcode","mischform","projektarbeit_note_anzeige", "onlinebewerbung","melderelevant","foerderrelevant","standort_code","melde_studiengang_kz", "account_creation"),
"public.tbl_studiengangstyp" => array("typ","bezeichnung","beschreibung","bezeichnung_mehrsprachig"), "public.tbl_studiengangstyp" => array("typ","bezeichnung","beschreibung","bezeichnung_mehrsprachig"),
"public.tbl_studienjahr" => array("studienjahr_kurzbz","bezeichnung"), "public.tbl_studienjahr" => array("studienjahr_kurzbz","bezeichnung"),
"public.tbl_studiensemester" => array("studiensemester_kurzbz","bezeichnung","start","ende","studienjahr_kurzbz","ext_id","beschreibung","onlinebewerbung"), "public.tbl_studiensemester" => array("studiensemester_kurzbz","bezeichnung","start","ende","studienjahr_kurzbz","ext_id","beschreibung","onlinebewerbung"),
@@ -0,0 +1,17 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
// Add column account_creation to public.tbl_studiengang
if( !@$db->db_query('SELECT account_creation FROM public.tbl_studiengang LIMIT 1'))
{
$qry = 'ALTER TABLE public.tbl_studiengang ADD COLUMN IF NOT EXISTS account_creation BOOLEAN NOT NULL DEFAULT TRUE;';
$qry .= "COMMENT ON COLUMN public.tbl_studiengang.account_creation IS 'Flag for the student accounts creation on IDAM';";
if (!$db->db_query($qry))
echo '<strong>public.tbl_studiengang.account_creation: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.tbl_studiengang.account_creation: Neue Spalte hinzugefügt';
}
@@ -93,6 +93,7 @@ $melderelevant = false;
$foerderrelevant = false; $foerderrelevant = false;
$standort_code=''; $standort_code='';
$melde_studiengang_kz = ''; $melde_studiengang_kz = '';
$account_creation = true;
$schick = filter_input(INPUT_POST, 'schick'); $schick = filter_input(INPUT_POST, 'schick');
$onlinebewerbung = false; $onlinebewerbung = false;
@@ -157,6 +158,7 @@ if($schick)
$foerderrelevant = filter_input(INPUT_POST, 'foerderrelevant', FILTER_VALIDATE_BOOLEAN); $foerderrelevant = filter_input(INPUT_POST, 'foerderrelevant', FILTER_VALIDATE_BOOLEAN);
$standort_code = filter_input(INPUT_POST, 'standort_code'); $standort_code = filter_input(INPUT_POST, 'standort_code');
$melde_studiengang_kz = filter_input(INPUT_POST, 'melde_studiengang_kz'); $melde_studiengang_kz = filter_input(INPUT_POST, 'melde_studiengang_kz');
$account_creation = filter_input(INPUT_POST, 'account_creation', FILTER_VALIDATE_BOOLEAN);
$ext_id = filter_input(INPUT_POST, 'ext_id'); $ext_id = filter_input(INPUT_POST, 'ext_id');
@@ -226,6 +228,7 @@ if($schick)
$sg_update->foerderrelevant = $foerderrelevant; $sg_update->foerderrelevant = $foerderrelevant;
$sg_update->standort_code = $standort_code; $sg_update->standort_code = $standort_code;
$sg_update->melde_studiengang_kz = $melde_studiengang_kz; $sg_update->melde_studiengang_kz = $melde_studiengang_kz;
$sg_update->account_creation = $account_creation;
$sg_update->bescheidvom=$date->formatDatum($sg_update->bescheidvom,'Y-m-d'); $sg_update->bescheidvom=$date->formatDatum($sg_update->bescheidvom,'Y-m-d');
$sg_update->titelbescheidvom=$date->formatDatum($sg_update->titelbescheidvom,'Y-m-d'); $sg_update->titelbescheidvom=$date->formatDatum($sg_update->titelbescheidvom,'Y-m-d');
@@ -296,6 +299,7 @@ if ((isset($_REQUEST['studiengang_kz'])) && ((!isset($_REQUEST['neu'])) || ($_RE
$foerderrelevant = $sg->foerderrelevant; $foerderrelevant = $sg->foerderrelevant;
$standort_code = $sg->standort_code; $standort_code = $sg->standort_code;
$melde_studiengang_kz = $sg->melde_studiengang_kz; $melde_studiengang_kz = $sg->melde_studiengang_kz;
$account_creation = $sg->account_creation;
} }
$erh = new erhalter(); $erh = new erhalter();
@@ -446,6 +450,13 @@ if (!$erh->getAll('kurzbz'))
<input type="checkbox" name="mischform" <?php echo $mischform ? 'checked' : '' ?> onchange="submitable()"> <input type="checkbox" name="mischform" <?php echo $mischform ? 'checked' : '' ?> onchange="submitable()">
</td> </td>
</tr> </tr>
<tr>
<td valign="top">IDAM student accounts creation</td>
<td>
<input type="hidden" name="account_creation" value="0">
<input type="checkbox" name="account_creation" <?php echo $account_creation ? 'checked' : '' ?> onchange="submitable()">
</td>
</tr>
</table> </table>
</td> </td>
<td valign="top"> <td valign="top">
@@ -49,6 +49,23 @@ require_once('../../include/benutzerberechtigung.class.php');
else else
die('Sie haben keine Rechte fuer diese Aktion'); die('Sie haben keine Rechte fuer diese Aktion');
} }
if (isset($_GET["toggleAC"]) && ($_GET["kz"] != ""))
{
$kennzahl = intval($_GET["kz"]);
$stg_hlp = new studiengang();
if(!$stg_hlp->load($kennzahl))
die('Studiengang nicht gefunden');
if ($rechte->isBerechtigt('basis/studiengang', $stg_hlp->oe_kurzbz, 'suid'))
{
$sg_update = new studiengang();
if (!$sg_update->toggleAccountCreation($kennzahl))
die($sg_update->errormsg);
}
else
die('Sie haben keine Rechte fuer diese Aktion');
}
$sg = new studiengang(); $sg = new studiengang();
if (!$sg->loadArray($rechte->getStgKz('basis/studiengang'),'kurzbzlang',false)) if (!$sg->loadArray($rechte->getStgKz('basis/studiengang'),'kurzbzlang',false))
@@ -67,6 +84,7 @@ require_once('../../include/benutzerberechtigung.class.php');
<th>Englisch</th> <th>Englisch</th>
<th>Lehrgangsart</th> <th>Lehrgangsart</th>
<th data-placeholder="t or f">Aktiv</th> <th data-placeholder="t or f">Aktiv</th>
<th data-placeholder="t or f">IDAM</th>
<th>Email</th> <th>Email</th>
</tr></thead><tbody> </tr></thead><tbody>
'; ';
@@ -93,6 +111,16 @@ require_once('../../include/benutzerberechtigung.class.php');
$aktivlink = "?toggle=true&kz=".$stg->studiengang_kz; $aktivlink = "?toggle=true&kz=".$stg->studiengang_kz;
$htmlstr .= " <td align='center'><a href='".$aktivlink."'><img src='../../skin/images/".$aktivbild."' height='20px' alt='".$aktivbild."'></a></td>\n"; $htmlstr .= " <td align='center'><a href='".$aktivlink."'><img src='../../skin/images/".$aktivbild."' height='20px' alt='".$aktivbild."'></a></td>\n";
// IDAM account activation
if($stg->account_creation)
$acbild = "true.png";
else
$acbild = "false.png";
$aclink = "?toggleAC=true&kz=".$stg->studiengang_kz;
$htmlstr .= " <td align='center'><a href='".$aclink."'><img src='../../skin/images/".$acbild."' height='20px' alt='".$acbild."'></a></td>\n";
$htmlstr .= " <td><a href='mailto:".$stg->email."'>".$stg->email."</a></td>\n"; $htmlstr .= " <td><a href='mailto:".$stg->email."'>".$stg->email."</a></td>\n";
$htmlstr .= " </tr>\n"; $htmlstr .= " </tr>\n";
$i++; $i++;