diff --git a/cis/testtool/login.php b/cis/testtool/login.php
index 2774293fd..6195f2903 100644
--- a/cis/testtool/login.php
+++ b/cis/testtool/login.php
@@ -51,17 +51,17 @@ if(isset($_POST['tag']) && isset($_POST['monat']) && isset($_POST['jahr']))
$gebdatum='';
}
-if (isset($_POST['prestudent']) && isset($gebdatum) && isset($_POST['zugangscode']))
+if (isset($_POST['prestudent']) && isset($gebdatum))
{
$ps=new prestudent($_POST['prestudent']);
//Geburtsdatum Pruefen
if ($gebdatum==$ps->gebdatum)
{
- //Zugangscode fuer zugeteilten Reihungstest pruefen
+ //Freischaltung fuer zugeteilten Reihungstest pruefen
$rt = new reihungstest();
if($rt->load($ps->reihungstest_id))
{
- if($_POST['zugangscode']==$rt->zugangscode)
+ if($rt->freigeschaltet)
{
$pruefling = new pruefling();
if($pruefling->getPruefling($ps->prestudent_id))
@@ -90,7 +90,7 @@ if (isset($_POST['prestudent']) && isset($gebdatum) && isset($_POST['zugangscode
}
else
{
- echo 'Der angegebene Zugangscode ist falsch';
+ echo 'Der zuteilte Reihungstest ist noch nicht freigeschalten';
}
}
else
@@ -272,7 +272,6 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id']))
for($i=date('Y');$i>date('Y')-99;$i--)
echo '';
echo '';
- echo ' Zugangscode: ';
echo ' ';
echo '';
diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php
index 36001d037..b588b4154 100644
--- a/include/reihungstest.class.php
+++ b/include/reihungstest.class.php
@@ -43,7 +43,7 @@ class reihungstest extends basis_db
public $insertvon; // bigint
public $updateamum; // timestamp
public $updatevon; // bigint
- public $zugangscode; // varchar(16)
+ public $freigeschaltet=false; // boolean
/**
* Konstruktor
@@ -87,7 +87,7 @@ class reihungstest extends basis_db
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
- $this->zugangscode = $row->zugangscode;
+ $this->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
return true;
}
else
@@ -132,7 +132,7 @@ class reihungstest extends basis_db
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
- $obj->zugangscode = $row->zugangscode;
+ $obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$this->result[] = $obj;
}
@@ -189,7 +189,7 @@ class reihungstest extends basis_db
//Neuen Datensatz einfuegen
$qry='BEGIN; INSERT INTO public.tbl_reihungstest (studiengang_kz, ort_kurzbz, anmerkung, datum, uhrzeit,
- ext_id, insertamum, insertvon, updateamum, updatevon, zugangscode) VALUES('.
+ ext_id, insertamum, insertvon, updateamum, updatevon, freigeschaltet) VALUES('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->ort_kurzbz).', '.
$this->db_add_param($this->anmerkung).', '.
@@ -198,7 +198,7 @@ class reihungstest extends basis_db
$this->db_add_param($this->ext_id, FHC_INTEGER).', now(), '.
$this->db_add_param($this->insertvon).', now(), '.
$this->db_add_param($this->updatevon).','.
- 'trunc(random()*100000));';
+ $this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).');';
}
else
{
@@ -210,7 +210,8 @@ class reihungstest extends basis_db
'uhrzeit='.$this->db_add_param($this->uhrzeit).', '.
'ext_id='.$this->db_add_param($this->ext_id, FHC_INTEGER).', '.
'updateamum= now(), '.
- 'updatevon='.$this->db_add_param($this->updatevon).' '.
+ 'updatevon='.$this->db_add_param($this->updatevon).', '.
+ 'freigeschaltet='.$this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).' '.
'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';';
}
@@ -277,7 +278,7 @@ class reihungstest extends basis_db
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
- $obj->zugangscode = $row->zugangscode;
+ $obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$this->result[] = $obj;
}
diff --git a/system/checksystem.php b/system/checksystem.php
index 3ef6f3382..d4fb49ad0 100644
--- a/system/checksystem.php
+++ b/system/checksystem.php
@@ -3558,18 +3558,17 @@ if(!@$db->db_query("SELECT 1 from public.tbl_preoutgoing LIMIT 1"))
echo 'PreOutgoing Modul hinzugefuegt!
';
}
-// Zugangscode fuer Reihungstest
-if(!@$db->db_query("SELECT zugangscode FROM public.tbl_reihungstest LIMIT 1"))
+// Freischaltung fuer Reihungstest
+if(!@$db->db_query("SELECT freigeschaltet FROM public.tbl_reihungstest LIMIT 1"))
{
$qry = "
- ALTER TABLE public.tbl_reihungstest ADD COLUMN zugangscode varchar(16);
- UPDATE public.tbl_reihungstest SET zugangscode=trunc(random()*100000);
+ ALTER TABLE public.tbl_reihungstest ADD COLUMN freigeschaltet boolean NOT NULL DEFAULT false;
";
if(!$db->db_query($qry))
echo 'public.tbl_reihungstest: '.$db->db_last_error().'
';
else
- echo 'Tabelle public.tbl_reihungstest Spalte zugangscode hinzugefuegt!
';
+ echo 'Tabelle public.tbl_reihungstest Spalte freigeschaltet hinzugefuegt!
';
}
// anmerkungsfelder und stdienrichtung für Outgoing
@@ -3607,6 +3606,52 @@ if(!@$db->db_query("SELECT nummer_myfare FROM wawi.tbl_betriebsmittel LIMIT 1"))
else
echo 'Tabelle wawi.tbl_betriebsmittel Spalte nummer_myfare hinzugefuegt';
}
+
+// View fuer Testtool Auswertung
+if(!@$db->db_query("SELECT * FROM testtool.vw_auswertung_kategorie_semester LIMIT 1"))
+{
+ $qry = "
+ CREATE OR REPLACE testtool.vw_auswertung_kategorie_semester AS
+ SELECT
+ tbl_kategorie.kategorie_kurzbz, tbl_person.vorname, tbl_person.nachname,
+ tbl_person.gebdatum, tbl_person.geschlecht, tbl_prestudent.prestudent_id,
+ tbl_prestudent.reihungstest_id, tbl_gebiet.gebiet_id,
+ upper(tbl_studiengang.typ::character varying(1)::text || tbl_studiengang.kurzbz::text) AS stg_kurzbz,
+ tbl_studiengang.bezeichnung AS stg_bez, tbl_pruefling.registriert, tbl_pruefling.idnachweis,
+ tbl_pruefling.semester, tbl_pruefling.pruefling_id,
+ ( SELECT sum(tbl_vorschlag.punkte) AS sum
+ FROM testtool.tbl_vorschlag
+ JOIN testtool.tbl_antwort USING (vorschlag_id)
+ JOIN testtool.tbl_frage USING (frage_id)
+ WHERE testtool.tbl_antwort.pruefling_id = testtool.tbl_pruefling.pruefling_id
+ AND testtool.tbl_frage.gebiet_id = testtool.tbl_gebiet.gebiet_id
+ AND testtool.tbl_frage.kategorie_kurzbz::text = testtool.tbl_kategorie.kategorie_kurzbz::text
+ ) AS punkte
+ FROM testtool.tbl_pruefling
+ JOIN testtool.tbl_ablauf ON tbl_ablauf.studiengang_kz = tbl_pruefling.studiengang_kz
+ JOIN testtool.tbl_gebiet USING (gebiet_id)
+ JOIN testtool.tbl_kategorie USING (gebiet_id)
+ JOIN public.tbl_prestudent USING (prestudent_id)
+ JOIN public.tbl_person USING (person_id)
+ JOIN public.tbl_studiengang ON public.tbl_prestudent.studiengang_kz = public.tbl_studiengang.studiengang_kz;
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'testtool.vw_auswertung_kategorie_semester: '.$db->db_last_error().'
';
+ else
+ echo 'View testtool.vw_auswertung_kategorie_semester hinzugefuegt';
+}
+
+// Gesperrt Attribut fuer Tabelle Gruppe
+if(!@$db->db_query("SELECT gesperrt FROM public.tbl_gruppe LIMIT 1"))
+{
+ $qry = "ALTER TABLE public.tbl_gruppe ADD COLUMN gesperrt boolean;";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_gruppe: '.$db->db_last_error().'
';
+ else
+ echo 'Tabelle public.tbl_gruppe Spalte gesperrt hinzugefuegt';
+}
echo '
';
$tabellen=array(
@@ -3731,7 +3776,7 @@ $tabellen=array(
"public.tbl_firmatag" => array("firma_id","tag","insertamum","insertvon"),
"public.tbl_funktion" => array("funktion_kurzbz","beschreibung","aktiv","fachbereich","semester"),
"public.tbl_geschaeftsjahr" => array("geschaeftsjahr_kurzbz","start","ende","bezeichnung"),
- "public.tbl_gruppe" => array("gruppe_kurzbz","studiengang_kz","semester","bezeichnung","beschreibung","sichtbar","lehre","aktiv","sort","mailgrp","generiert","updateamum","updatevon","insertamum","insertvon","ext_id","orgform_kurzbz","gid","content_visible"),
+ "public.tbl_gruppe" => array("gruppe_kurzbz","studiengang_kz","semester","bezeichnung","beschreibung","sichtbar","lehre","aktiv","sort","mailgrp","generiert","updateamum","updatevon","insertamum","insertvon","ext_id","orgform_kurzbz","gid","content_visible","gesperrt"),
"public.tbl_kontakt" => array("kontakt_id","person_id","kontakttyp","anmerkung","kontakt","zustellung","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id"),
"public.tbl_kontaktmedium" => array("kontaktmedium_kurzbz","beschreibung"),
"public.tbl_kontakttyp" => array("kontakttyp","beschreibung"),
@@ -3759,7 +3804,7 @@ $tabellen=array(
"public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat"),
"public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id"),
"public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung"),
- "public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","zugangscode"),
+ "public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet"),
"public.tbl_status" => array("status_kurzbz","beschreibung","anmerkung","ext_id"),
"public.tbl_semesterwochen" => array("semester","studiengang_kz","wochen"),
"public.tbl_sprache" => array("sprache","locale","flagge","index","content","bezeichnung"),
diff --git a/vilesci/stammdaten/reihungstest_administration.php b/vilesci/stammdaten/reihungstest_administration.php
index 04b33baef..fbea142e9 100644
--- a/vilesci/stammdaten/reihungstest_administration.php
+++ b/vilesci/stammdaten/reihungstest_administration.php
@@ -29,15 +29,12 @@ require_once('../../include/prestudent.class.php');
require_once('../../include/pruefling.class.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/reihungstest.class.php');
-
require_once('../../include/studiensemester.class.php');
-
-
// Studiengang lesen
- $s=new studiengang();
- $s->getAll('typ, kurzbz', false);
- $studiengang=$s->result;
+$s=new studiengang();
+$s->getAll('typ, kurzbz', false);
+$studiengang=$s->result;
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -58,10 +55,10 @@ if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='prestudent')
JOIN public.tbl_prestudent USING(person_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE
- lower(nachname) like '%".addslashes(mb_strtolower($search))."%' OR
- lower(vorname) like '%".addslashes(mb_strtolower($search))."%' OR
- lower(nachname || ' ' || vorname) like '%".addslashes(mb_strtolower($search))."%' OR
- lower(vorname || ' ' || nachname) like '%".addslashes(mb_strtolower($search))."%'
+ lower(nachname) like '%".$db->db_escape(mb_strtolower($search))."%' OR
+ lower(vorname) like '%".$db->db_escape(mb_strtolower($search))."%' OR
+ lower(nachname || ' ' || vorname) like '%".$db->db_escape(mb_strtolower($search))."%' OR
+ lower(vorname || ' ' || nachname) like '%".$db->db_escape(mb_strtolower($search))."%'
";
if($result = $db->db_query($qry))
{
@@ -85,7 +82,6 @@ echo '
-
@@ -217,13 +213,13 @@ if(isset($_POST['deleteteilgebiet']))
if($pruefling->pruefling_id=='')
die('Pruefling wurde nicht gefunden');
- $qry = "DELETE FROM testtool.tbl_pruefling_frage where pruefling_id='$pruefling->pruefling_id' AND
- frage_id IN (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id='".$_POST['gebiet']."');
+ $qry = "DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=".$db->db_add_param($pruefling->pruefling_id, FHC_INTEGER)." AND
+ frage_id IN (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($_POST['gebiet']).");
DELETE FROM testtool.tbl_antwort
- WHERE pruefling_id='$pruefling->pruefling_id' AND
+ WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id)." AND
vorschlag_id IN (SELECT vorschlag_id FROM testtool.tbl_vorschlag WHERE frage_id IN
- (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id='".$_POST['gebiet']."'));";
+ (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($_POST['gebiet'])."));";
if($result = $db->db_query($qry))
{
echo ''.$db->db_affected_rows($result).' Antworten wurden gelöscht';
@@ -244,8 +240,8 @@ if(isset($_POST['delete_all']))
if($pruefling->pruefling_id=='')
die('Pruefling wurde nicht gefunden');
- $qry = "DELETE FROM testtool.tbl_pruefling_frage where pruefling_id='$pruefling->pruefling_id';
- DELETE FROM testtool.tbl_antwort WHERE pruefling_id='$pruefling->pruefling_id';";
+ $qry = "DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";
+ DELETE FROM testtool.tbl_antwort WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";";
if($result = $db->db_query($qry))
@@ -272,7 +268,7 @@ if(isset($_POST['testergebnisanzeigen']) && isset($_POST['prestudent_id']))
JOIN testtool.tbl_pruefling_frage ON (tbl_pruefling.pruefling_id=tbl_pruefling_frage.pruefling_id AND tbl_frage.frage_id =tbl_pruefling_frage.frage_id)
JOIN public.tbl_prestudent USING (prestudent_id)
JOIN public.tbl_person USING (person_id)
- WHERE prestudent_id='".$_POST['prestudent_id']."'
+ WHERE prestudent_id=".$db->db_add_param($_POST['prestudent_id'])."
ORDER BY kurzbz,tbl_pruefling_frage.begintime,nummer";
if($result = $db->db_query($qry))
{
@@ -318,8 +314,8 @@ if(isset($_POST['testergebnisanzeigen']) && isset($_POST['prestudent_id']))
echo '
| Stg | +Ort | +Datum | +Uhrzeit | +Anmerkung | +Action | +
|---|---|---|---|---|---|
| '.$row->studiengang_kz.' | '; + echo ''.$row->ort_kurzbz.' | '; + echo ''.$row->datum.' | '; + echo ''.$row->uhrzeit.' | '; + echo ''.$row->anmerkung.' | '; + echo 'Sperren | '; + echo '