diff --git a/cis/testtool/login.php b/cis/testtool/login.php
index d1944fe7a..2bd4601db 100644
--- a/cis/testtool/login.php
+++ b/cis/testtool/login.php
@@ -604,6 +604,7 @@ elseif (isset($prestudent_id))
$ps_obj->lastStatus = $ps_tmp->status_kurzbz; // letzten Status dem result array hinzufügen
$ps_obj->status_mehrsprachig = $ps_tmp->status_mehrsprachig;
+ $ps_obj->ausbildungssemester = $ps_tmp->ausbildungssemester;
}
// Falls Status 'Abgewiesene' vorhanden, nach hinten reihen
diff --git a/cis/testtool/menu.php b/cis/testtool/menu.php
index 7c8b12b9d..42ab8f8d3 100644
--- a/cis/testtool/menu.php
+++ b/cis/testtool/menu.php
@@ -29,6 +29,7 @@ require_once('../../include/sprache.class.php');
require_once '../../include/phrasen.class.php';
require_once '../../include/studiengang.class.php';
require_once('../../include/gebiet.class.php');
+require_once('../../include/gebiet_pruefling.class.php');
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
@@ -193,8 +194,8 @@ if (isset($_SESSION['pruefling_id']))
)
- SELECT DISTINCT ON
- (gebiet_id, semester, reihung)
+ SELECT * FROM (SELECT DISTINCT ON
+ (gebiet_id)
semester,
gebiet_id,
STRING_AGG(studiengang_kz::TEXT, ', ' ORDER BY studiengang_kz) AS studiengang_kz_list,
@@ -221,13 +222,7 @@ if (isset($_SESSION['pruefling_id']))
JOIN
testtool.tbl_gebiet USING (gebiet_id)
WHERE
- (
- (prestudent_data.semester= 1 AND tbl_ablauf.semester = 1)
- OR
- (prestudent_data.semester= 2 AND tbl_ablauf.semester = 2)
- OR
- (prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
- )
+ tbl_ablauf.semester <= prestudent_data.semester
AND (
prestudent_data.studienplan_id = tbl_ablauf.studienplan_id
OR
@@ -254,9 +249,7 @@ if (isset($_SESSION['pruefling_id']))
JOIN
testtool.tbl_gebiet USING (gebiet_id)
WHERE
- (prestudent_data.semester= 1 AND tbl_ablauf.semester = 1)
- OR
- (prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3))
+ tbl_ablauf.semester <= prestudent_data.semester
)
) temp
) temp2
@@ -265,7 +258,7 @@ if (isset($_SESSION['pruefling_id']))
semester,
gebiet_id,
bezeichnung,
- ". $bezeichnung_mehrsprachig_sel ."
+ ". $bezeichnung_mehrsprachig_sel ." ) temp3
ORDER BY
semester,
@@ -278,6 +271,8 @@ if (isset($_SESSION['pruefling_id']))
$lastsemester = '';
$quereinsteiger_stg = '';
$_SESSION['alleGebiete']= [];
+ $gebiet_pruefling = new gebiet_pruefling();
+ $quereinsteiger_menu = false;
while($row = $db->db_fetch_object($result))
{
//Jedes Semester in einer eigenen Tabelle anzeigen
@@ -289,8 +284,25 @@ if (isset($_SESSION['pruefling_id']))
}
$lastsemester = $row->semester;
- echo '
';
- echo '
';
+ if ($row->semester == '1')
+ {
+ // Basisgebiete anzeigen
+ echo '';
+ echo '
';
+ }
+ else
+ {
+ if (!$quereinsteiger_menu)
+ {
+ echo '';
+ echo '
';
+ $quereinsteiger_menu = true;
+ }
+ else
+ {
+ echo '';
+ }
+ }
}
// Bei Quereinstiegsgebieten nach STG clustern und die STG anzeigen
@@ -386,6 +398,12 @@ if (isset($_SESSION['pruefling_id']))
';
+ if (!$gebiet_pruefling->checkIfExists($_SESSION['pruefling_id'], $row->gebiet_id))
+ {
+ $gebiet_pruefling->pruefling_id = $_SESSION['pruefling_id'];
+ $gebiet_pruefling->gebiet_id = $row->gebiet_id;
+ $gebiet_pruefling->saveGebietForPruefling();
+ }
$_SESSION['alleGebiete'][] = $row->gebiet_id;
}
else
diff --git a/include/gebiet_pruefling.class.php b/include/gebiet_pruefling.class.php
new file mode 100644
index 000000000..9578bb546
--- /dev/null
+++ b/include/gebiet_pruefling.class.php
@@ -0,0 +1,97 @@
+db_add_param($pruefling_id, FHC_INTEGER);
+
+ if($this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object())
+ {
+ $this->prueflinggebiet_id = $row->prueflinggebiet_id;
+ $this->pruefling_id = $row->pruefling_id;
+ $this->gebiet_id = $row->gebiet_id;
+ return true;
+ }
+ else
+ {
+ $this->errormsg = "Pruefling nicht gefunden";
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = "Fehler beim Laden der Gebiete für den Pruefling";
+ return false;
+ }
+ }
+
+ public function checkIfExists($pruefling_id, $gebiet_id)
+ {
+ $qry = "SELECT 1
+ FROM testtool.tbl_pruefling_gebiet
+ WHERE pruefling_id =".$this->db_add_param($pruefling_id, FHC_INTEGER) ." AND gebiet_id =".$this->db_add_param($gebiet_id, FHC_INTEGER);
+
+ if ($result = $this->db_query($qry))
+ {
+ if ($this->db_num_rows($result) > 0)
+ return true;
+ else
+ return false;
+ }
+ }
+
+ public function saveGebietForPruefling()
+ {
+ $qry = "INSERT INTO testtool.tbl_pruefling_gebiet
+ (pruefling_id, gebiet_id)
+ VALUES(".
+ $this->db_add_param($this->pruefling_id, FHC_INTEGER).','.
+ $this->db_add_param($this->gebiet_id, FHC_INTEGER).');';
+
+ if ($this->db_query($qry))
+ {
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern der Daten';
+ return true;
+ }
+ }
+
+}
+?>
diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php
index 0af314c46..75bb58898 100644
--- a/system/dbupdate_3.4.php
+++ b/system/dbupdate_3.4.php
@@ -67,6 +67,7 @@ require_once('dbupdate_3.4/25999_C4_permission.php');
require_once('dbupdate_3.4/33683_digitale_anwesenheitsliste_und_entschuldigungsmanagement_fuer_studierende_prototyp.php');
require_once('dbupdate_3.4/40717_lv_faktor.php');
require_once('dbupdate_3.4/48526_pep_tagging.php');
+require_once('dbupdate_3.4/54225_reihungstest_ablauf_fuer_quereinsteiger.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
@@ -377,6 +378,7 @@ $tabellen=array(
"testtool.tbl_pruefling_frage" => array("prueflingfrage_id","pruefling_id","frage_id","nummer","begintime","endtime"),
"testtool.tbl_frage_sprache" => array("frage_id","sprache","text","bild","audio","insertamum","insertvon","updateamum","updatevon"),
"testtool.tbl_vorschlag_sprache" => array("vorschlag_id","sprache","text","bild","audio","insertamum","insertvon","updateamum","updatevon"),
+ "testtool.tbl_pruefling_gebiet" => array("prueflinggebiet_id","pruefling_id","gebiet_id","insertamum"),
"system.tbl_app" => array("app"),
"system.tbl_appdaten" => array("appdaten_id","uid","app","appversion","version","bezeichnung","daten","freigabe","insertamum","insertvon","updateamum","updatevon"),
"system.tbl_cronjob" => array("cronjob_id","server_kurzbz","titel","beschreibung","file","last_execute","aktiv","running","jahr","monat","tag","wochentag","stunde","minute","standalone","reihenfolge","updateamum", "updatevon","insertamum","insertvon","variablen"),
diff --git a/system/dbupdate_3.4/54225_reihungstest_ablauf_fuer_quereinsteiger.php b/system/dbupdate_3.4/54225_reihungstest_ablauf_fuer_quereinsteiger.php
new file mode 100644
index 000000000..8898afdf3
--- /dev/null
+++ b/system/dbupdate_3.4/54225_reihungstest_ablauf_fuer_quereinsteiger.php
@@ -0,0 +1,39 @@
+db_query('SELECT 1 FROM testtool.tbl_pruefling_gebiet LIMIT 1'))
+{
+ $qry = 'CREATE TABLE testtool.tbl_pruefling_gebiet
+ (
+ prueflinggebiet_id integer NOT NULL,
+ pruefling_id integer NOT NULL,
+ gebiet_id integer NOT NULL,
+ insertamum timestamp DEFAULT now()
+ );
+
+ ALTER TABLE testtool.tbl_pruefling_gebiet OWNER TO fhcomplete;
+ ALTER TABLE testtool.tbl_pruefling_gebiet ADD CONSTRAINT pk_tbl_pruefling_gebiet PRIMARY KEY (prueflinggebiet_id);
+
+ CREATE SEQUENCE testtool.tbl_pruefling_gebiet_prueflinggebiet_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+ ALTER TABLE testtool.tbl_pruefling_gebiet_prueflinggebiet_id_seq OWNER TO fhcomplete;
+ ALTER TABLE testtool.tbl_pruefling_gebiet ALTER COLUMN prueflinggebiet_id SET DEFAULT nextval(\'testtool.tbl_pruefling_gebiet_prueflinggebiet_id_seq\');
+
+ GRANT SELECT, UPDATE, INSERT, DELETE ON testtool.tbl_pruefling_gebiet TO web;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON testtool.tbl_pruefling_gebiet TO vilesci;
+ GRANT SELECT, UPDATE ON testtool.tbl_pruefling_gebiet_prueflinggebiet_id_seq TO vilesci;
+ GRANT SELECT, UPDATE ON testtool.tbl_pruefling_gebiet_prueflinggebiet_id_seq TO web;
+ ';
+
+ if (!$db->db_query($qry))
+ echo 'public.tbl_pruefling_gebiet: '.$db->db_last_error().'
';
+ else
+ echo '
public.tbl_pruefling_gebiet table created';
+}
+