mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-19 21:19:29 +00:00
Merge branch 'master' into feature-27388/Anrechnungen_Zeitfenster-pflegen
This commit is contained in:
@@ -44,6 +44,7 @@ class IssueResolver extends IssueResolver_Controller
|
||||
'CORE_STUDENTSTATUS_0012' => 'CORE_STUDENTSTATUS_0012',
|
||||
'CORE_STUDENTSTATUS_0013' => 'CORE_STUDENTSTATUS_0013',
|
||||
'CORE_STUDENTSTATUS_0014' => 'CORE_STUDENTSTATUS_0014',
|
||||
'CORE_STUDENTSTATUS_0015' => 'CORE_STUDENTSTATUS_0015',
|
||||
'CORE_PERSON_0001' => 'CORE_PERSON_0001',
|
||||
'CORE_PERSON_0002' => 'CORE_PERSON_0002',
|
||||
'CORE_PERSON_0003' => 'CORE_PERSON_0003',
|
||||
|
||||
@@ -4,6 +4,8 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Plausichecks extends Auth_Controller
|
||||
{
|
||||
const GENERIC_ISSUE_OCCURED_TEXT = 'Issue aufgetreten';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
@@ -78,20 +80,27 @@ class Plausichecks extends Auth_Controller
|
||||
// optionally replace fehler parameters in text, output the fehlertext
|
||||
if (hasData($fehlerRes))
|
||||
{
|
||||
// use issue fehler text from database if present
|
||||
$fehlerText = getData($fehlerRes)[0]->fehlertext;
|
||||
|
||||
if (!isEmptyArray($fehlertext_params))
|
||||
{
|
||||
// replace placeholder with params, if present
|
||||
if (count($fehlertext_params) != substr_count($fehlerText, '%s'))
|
||||
$this->terminateWithJsonError('Wrong number of parameters for Fehlertext, fehler_kurzbz ' . $fehler_kurzbz);
|
||||
|
||||
$fehlerText = vsprintf($fehlerText, $fehlertext_params);
|
||||
}
|
||||
|
||||
if (isset($person_id)) $fehlerText .= "; person_id: $person_id";
|
||||
if (isset($oe_kurzbz)) $fehlerText .= "; oe_kurzbz: $oe_kurzbz";
|
||||
$issueTexts[$fehler_kurzbz][] = $fehlerText;
|
||||
}
|
||||
else // if no issue text found, use generic text
|
||||
{
|
||||
$fehlerText = self::GENERIC_ISSUE_OCCURED_TEXT;
|
||||
}
|
||||
|
||||
// add generic parameters to issue text
|
||||
if (isset($person_id)) $fehlerText .= "; person_id: $person_id";
|
||||
if (isset($oe_kurzbz)) $fehlerText .= "; oe_kurzbz: $oe_kurzbz";
|
||||
$issueTexts[$fehler_kurzbz][] = $fehlerText;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,16 +86,22 @@ class PlausicheckLib
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_benutzer benutzer on(benutzer.uid = student.student_uid)
|
||||
JOIN public.tbl_studiengang stg ON prestudent.studiengang_kz = stg.studiengang_kz
|
||||
LEFT JOIN lehre.tbl_studienplan stpl USING (studienplan_id)
|
||||
WHERE
|
||||
benutzer.aktiv = true
|
||||
AND status.status_kurzbz='Student'
|
||||
AND status.status_kurzbz IN ('Student', 'Unterbrecher', 'Abbrecher', 'Diplomand', 'Absolvent')
|
||||
AND studiengang.studiengang_kz < 10000
|
||||
AND status.studiensemester_kurzbz = ?
|
||||
AND NOT (status.orgform_kurzbz IS NULL AND studiengang.mischform = FALSE)
|
||||
AND NOT EXISTS(
|
||||
SELECT 1 FROM lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
SELECT 1
|
||||
FROM
|
||||
lehre.tbl_studienplan
|
||||
JOIN
|
||||
lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE
|
||||
tbl_studienordnung.studiengang_kz = prestudent.studiengang_kz
|
||||
tbl_studienplan.studienplan_id = stpl.studienplan_id
|
||||
AND tbl_studienordnung.studiengang_kz = prestudent.studiengang_kz
|
||||
AND tbl_studienplan.orgform_kurzbz = status.orgform_kurzbz)";
|
||||
|
||||
if (isset($prestudent_id))
|
||||
@@ -106,7 +112,7 @@ class PlausicheckLib
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$qry .= " AND studiengang.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
@@ -879,6 +885,57 @@ class PlausicheckLib
|
||||
return $this->_db->execReadOnlyQuery($qry, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Student with active status should have been charged, i.e. have a Kontobuchung with a negative or zero value.
|
||||
* @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester
|
||||
* @param studiengang_kz int if check is to be executed for certain Studiengang
|
||||
* @param prestudent_id int if check is to be executed only for one prestudent
|
||||
* @return success with prestudents or error
|
||||
*/
|
||||
public function getAktiverStudentstatusOhneKontobuchung($studiensemester_kurzbz, $studiengang_kz = null, $prestudent_id = null)
|
||||
{
|
||||
$params = array($studiensemester_kurzbz);
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT ON (pre.prestudent_id)
|
||||
pre.person_id, pre.prestudent_id, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz, status.studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudent pre
|
||||
JOIN public.tbl_person pers USING(person_id)
|
||||
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang stg USING(studiengang_kz)
|
||||
WHERE
|
||||
status.studiensemester_kurzbz = ?
|
||||
AND status.status_kurzbz IN ('Student', 'Incoming')
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM
|
||||
public.tbl_konto
|
||||
WHERE
|
||||
person_id = pers.person_id
|
||||
AND studiensemester_kurzbz = status.studiensemester_kurzbz
|
||||
AND buchungsnr_verweis IS NULL
|
||||
AND betrag <= 0
|
||||
)
|
||||
AND stg.melderelevant
|
||||
AND pre.bismelden";
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= " AND stg.studiengang_kz = ?";
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$qry .= " AND pre.prestudent_id = ?";
|
||||
$params[] = $prestudent_id;
|
||||
}
|
||||
|
||||
return $this->_db->execReadOnlyQuery($qry, $params);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Person checks
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ class PlausicheckProducerLib
|
||||
'AbschlussstatusFehlt' => 'AbschlussstatusFehlt',
|
||||
'AktSemesterNull' => 'AktSemesterNull',
|
||||
'AktiverStudentOhneStatus' => 'AktiverStudentOhneStatus',
|
||||
'AktiverStudentstatusOhneKontobuchung' => 'AktiverStudentstatusOhneKontobuchung',
|
||||
'AusbildungssemPrestudentUngleichAusbildungssemStatus' => 'AusbildungssemPrestudentUngleichAusbildungssemStatus',
|
||||
'BewerberNichtZumRtAngetreten' => 'BewerberNichtZumRtAngetreten',
|
||||
'DatumAbschlusspruefungFehlt' => 'DatumAbschlusspruefungFehlt',
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
require_once('PlausiChecker.php');
|
||||
|
||||
/**
|
||||
* Student with active status should have been charged, i.e. have a Kontobuchung with negative or zero value.
|
||||
*/
|
||||
class AktiverStudentstatusOhneKontobuchung extends PlausiChecker
|
||||
{
|
||||
public function executePlausiCheck($params)
|
||||
{
|
||||
$results = array();
|
||||
|
||||
// pass parameters needed for plausicheck
|
||||
$studiensemester_kurzbz = isset($params['studiensemester_kurzbz']) ? $params['studiensemester_kurzbz'] : null;
|
||||
$studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null;
|
||||
|
||||
// get all students failing the plausicheck
|
||||
$prestudentRes = $this->_ci->plausichecklib->getAktiverStudentstatusOhneKontobuchung($studiensemester_kurzbz, $studiengang_kz);
|
||||
|
||||
if (isError($prestudentRes)) return $prestudentRes;
|
||||
|
||||
if (hasData($prestudentRes))
|
||||
{
|
||||
$prestudents = getData($prestudentRes);
|
||||
|
||||
// populate results with data necessary for writing issues
|
||||
foreach ($prestudents as $prestudent)
|
||||
{
|
||||
$results[] = array(
|
||||
'person_id' => $prestudent->person_id,
|
||||
'oe_kurzbz' => $prestudent->prestudent_stg_oe_kurzbz,
|
||||
'fehlertext_params' => array(
|
||||
'prestudent_id' => $prestudent->prestudent_id,
|
||||
'studiensemester_kurzbz' => $prestudent->studiensemester_kurzbz
|
||||
),
|
||||
'resolution_params' => array(
|
||||
'prestudent_id' => $prestudent->prestudent_id,
|
||||
'studiensemester_kurzbz' => $prestudent->studiensemester_kurzbz
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// return the results
|
||||
return success($results);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Student with active status should have been charged, i.e. have a Kontobuchung with negative or zero value.
|
||||
*/
|
||||
class CORE_STUDENTSTATUS_0015 implements IIssueResolvedChecker
|
||||
{
|
||||
public function checkIfIssueIsResolved($params)
|
||||
{
|
||||
if (!isset($params['prestudent_id']) || !is_numeric($params['prestudent_id']))
|
||||
return error('Prestudent Id missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
if (!isset($params['studiensemester_kurzbz']) || isEmptyString($params['studiensemester_kurzbz']))
|
||||
return error('Studiensemester missing, issue_id: '.$params['issue_id']);
|
||||
|
||||
$this->_ci =& get_instance(); // get code igniter instance
|
||||
|
||||
$this->_ci->load->library('issues/PlausicheckLib');
|
||||
|
||||
// check if issue persists
|
||||
$checkRes = $this->_ci->plausichecklib->getAktiverStudentstatusOhneKontobuchung(
|
||||
$params['studiensemester_kurzbz'],
|
||||
null,
|
||||
$params['prestudent_id']
|
||||
);
|
||||
|
||||
if (isError($checkRes)) return $checkRes;
|
||||
|
||||
if (hasData($checkRes))
|
||||
return success(false); // not resolved if issue is still present
|
||||
else
|
||||
return success(true); // resolved otherwise
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
<?php
|
||||
class Paabgabe_model extends DB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
@@ -11,4 +10,24 @@ class Paabgabe_model extends DB_Model
|
||||
$this->dbTable = 'campus.tbl_paabgabe';
|
||||
$this->pk = 'paabgabe_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets last Endabgabe of a Projektarbeit, including filename.
|
||||
* @param int $projektarbeit_id
|
||||
* @return object
|
||||
*/
|
||||
public function getEndabgabe($projektarbeit_id)
|
||||
{
|
||||
$qry = "SELECT paabgabe_id, student_uid, paabg.datum, paabg.abgabedatum, projekttyp_kurzbz, titel, titel_english,
|
||||
paabgabe_id || '_' || student_uid || '.pdf' AS filename
|
||||
FROM campus.tbl_paabgabe paabg
|
||||
JOIN lehre.tbl_projektarbeit USING (projektarbeit_id)
|
||||
WHERE projektarbeit_id = ?
|
||||
AND paabgabetyp_kurzbz = 'end'
|
||||
AND paabg.abgabedatum IS NOT NULL
|
||||
ORDER BY paabg.abgabedatum, paabg.datum DESC
|
||||
LIMIT 1";
|
||||
|
||||
return $this->execQuery($qry, array($projektarbeit_id));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,18 +54,28 @@ class Projektbetreuer_model extends DB_Model
|
||||
$qry = "SELECT DISTINCT ON (pers.person_id) pers.person_id, betreuerart_kurzbz, vorname, nachname,
|
||||
trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as voller_name,
|
||||
anrede, titelpre, titelpost, gebdatum, geschlecht, pa.projekttyp_kurzbz,
|
||||
ben.uid, ben.alias, ma.personalnummer, mitarbeiter_uid, student_uid
|
||||
FROM lehre.tbl_projektarbeit pa
|
||||
JOIN lehre.tbl_projektbetreuer USING (projektarbeit_id)
|
||||
JOIN public.tbl_person pers USING (person_id)
|
||||
LEFT JOIN public.tbl_benutzer ben USING (person_id)
|
||||
LEFT JOIN public.tbl_mitarbeiter ma ON ben.uid = ma.mitarbeiter_uid
|
||||
WHERE ben.aktiv
|
||||
AND projektarbeit_id = ?
|
||||
AND betreuerart_kurzbz = ?
|
||||
ORDER BY pers.person_id, CASE WHEN ma.mitarbeiter_uid IS NULL THEN 1 ELSE 0 END, /*Mitarbeiter account first*/
|
||||
CASE WHEN ben.uid IS NULL THEN 1 ELSE 0 END, /*user with account first*/
|
||||
ben.insertamum";
|
||||
ben.uid, ben.alias, ma.personalnummer, mitarbeiter_uid, student_uid,
|
||||
(
|
||||
SELECT kontakt
|
||||
FROM public.tbl_kontakt
|
||||
WHERE kontakttyp = 'email'
|
||||
AND person_id = pers.person_id
|
||||
ORDER BY
|
||||
CASE WHEN zustellung THEN 0 ELSE 1 END,
|
||||
insertamum DESC NULLS LAST
|
||||
LIMIT 1
|
||||
) AS private_email
|
||||
FROM lehre.tbl_projektarbeit pa
|
||||
JOIN lehre.tbl_projektbetreuer USING (projektarbeit_id)
|
||||
JOIN public.tbl_person pers USING (person_id)
|
||||
LEFT JOIN public.tbl_benutzer ben USING (person_id)
|
||||
LEFT JOIN public.tbl_mitarbeiter ma ON ben.uid = ma.mitarbeiter_uid
|
||||
WHERE (ben.aktiv OR ben.aktiv IS NULL)
|
||||
AND projektarbeit_id = ?
|
||||
AND betreuerart_kurzbz = ?
|
||||
ORDER BY pers.person_id, CASE WHEN ma.mitarbeiter_uid IS NULL THEN 1 ELSE 0 END, /*Mitarbeiter account first*/
|
||||
CASE WHEN ben.uid IS NULL THEN 1 ELSE 0 END, /*user with account first*/
|
||||
ben.insertamum";
|
||||
|
||||
return $this->execQuery($qry, array($projektarbeit_id, $betreuerart_kurzbz));
|
||||
}
|
||||
@@ -77,14 +87,14 @@ class Projektbetreuer_model extends DB_Model
|
||||
*/
|
||||
public function getBetreuerByToken($zugangstoken)
|
||||
{
|
||||
$qry = '
|
||||
$qry = "
|
||||
SELECT tbl_projektbetreuer.person_id, tbl_projektbetreuer.projektarbeit_id, student_uid
|
||||
FROM lehre.tbl_projektbetreuer
|
||||
JOIN lehre.tbl_projektarbeit USING (projektarbeit_id)
|
||||
WHERE zugangstoken = ? AND zugangstoken_gueltigbis >= NOW()
|
||||
ORDER BY tbl_projektbetreuer.insertamum DESC, projektarbeit_id DESC
|
||||
LIMIT 1
|
||||
';
|
||||
";
|
||||
|
||||
return $this->execQuery($qry, array($zugangstoken));
|
||||
}
|
||||
@@ -96,31 +106,60 @@ class Projektbetreuer_model extends DB_Model
|
||||
* @param $student_uid string uid des Studenten der Arbeit abgibt
|
||||
* @return object | bool
|
||||
*/
|
||||
public function getZweitbegutachterWithToken($erstbegutachter_person_id, $projektarbeit_id, $student_uid)
|
||||
public function getZweitbegutachterWithToken($erstbegutachter_person_id, $projektarbeit_id, $student_uid, $zweitbegutachter_person_id = null)
|
||||
{
|
||||
$qry_betr = "SELECT betr.person_id, betr.projektarbeit_id, pers.anrede, betr.zugangstoken, betr.zugangstoken_gueltigbis, tbl_benutzer.uid, kontakt,
|
||||
trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as voller_name,
|
||||
CASE WHEN tbl_benutzer.uid IS NULL THEN kontakt ELSE tbl_benutzer.uid || '@".DOMAIN."' END AS email, abg.abgabedatum
|
||||
FROM lehre.tbl_projektbetreuer betr
|
||||
JOIN lehre.tbl_projektarbeit parb ON betr.projektarbeit_id = parb.projektarbeit_id
|
||||
JOIN public.tbl_person pers ON betr.person_id = pers.person_id
|
||||
LEFT JOIN public.tbl_kontakt ON pers.person_id = tbl_kontakt.person_id AND kontakttyp = 'email' AND zustellung = true
|
||||
LEFT JOIN public.tbl_benutzer ON pers.person_id = tbl_benutzer.person_id
|
||||
LEFT JOIN campus.tbl_paabgabe abg ON betr.projektarbeit_id = abg.projektarbeit_id AND abg.paabgabetyp_kurzbz = 'end'
|
||||
WHERE betr.betreuerart_kurzbz = 'Zweitbegutachter'
|
||||
AND betr.projektarbeit_id = ?
|
||||
AND parb.student_uid = ?
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM lehre.tbl_projektbetreuer
|
||||
WHERE person_id = ?
|
||||
AND betreuerart_kurzbz = 'Erstbegutachter'
|
||||
AND projektarbeit_id = betr.projektarbeit_id
|
||||
)
|
||||
AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)
|
||||
ORDER BY betr.insertamum DESC
|
||||
LIMIT 1";
|
||||
$params = array($erstbegutachter_person_id, $erstbegutachter_person_id, $projektarbeit_id, $student_uid);
|
||||
|
||||
return $this->execQuery($qry_betr, array($projektarbeit_id, $student_uid, $erstbegutachter_person_id));
|
||||
$qry_betr = "SELECT betr.person_id, betr.projektarbeit_id, pers.anrede, betr.zugangstoken, betr.zugangstoken_gueltigbis, tbl_benutzer.uid,
|
||||
trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as voller_name,
|
||||
CASE WHEN tbl_benutzer.uid IS NULL THEN kontakt ELSE tbl_benutzer.uid || '@".DOMAIN."' END AS email, kontakt,
|
||||
abg.abgabedatum, betr.betreuerart_kurzbz
|
||||
FROM lehre.tbl_projektbetreuer betr
|
||||
JOIN lehre.tbl_projektarbeit parb ON betr.projektarbeit_id = parb.projektarbeit_id
|
||||
JOIN public.tbl_person pers ON betr.person_id = pers.person_id
|
||||
LEFT JOIN public.tbl_kontakt ON pers.person_id = tbl_kontakt.person_id AND kontakttyp = 'email' AND zustellung = true
|
||||
LEFT JOIN public.tbl_benutzer ON pers.person_id = tbl_benutzer.person_id
|
||||
LEFT JOIN campus.tbl_paabgabe abg ON betr.projektarbeit_id = abg.projektarbeit_id AND abg.paabgabetyp_kurzbz = 'end'
|
||||
WHERE
|
||||
(
|
||||
(
|
||||
betr.betreuerart_kurzbz = 'Zweitbegutachter'
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM lehre.tbl_projektbetreuer
|
||||
WHERE person_id = ?
|
||||
AND betreuerart_kurzbz = 'Erstbegutachter'
|
||||
AND projektarbeit_id = betr.projektarbeit_id
|
||||
)
|
||||
)
|
||||
OR /* either Zweitbegutachter of masterarbeit, or Kommissionsprüfer if Kommission */
|
||||
(
|
||||
betr.betreuerart_kurzbz = 'Senatsmitglied'
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM lehre.tbl_projektbetreuer
|
||||
WHERE person_id = ?
|
||||
AND betreuerart_kurzbz = 'Senatsvorsitz'
|
||||
AND projektarbeit_id = betr.projektarbeit_id
|
||||
)
|
||||
)
|
||||
)
|
||||
AND betr.projektarbeit_id = ?
|
||||
AND parb.student_uid = ?
|
||||
AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)";
|
||||
|
||||
if (isset($zweitbegutachter_person_id))
|
||||
{
|
||||
$qry_betr .= " AND betr.person_id = ?";
|
||||
$params[] = $zweitbegutachter_person_id;
|
||||
}
|
||||
|
||||
$qry_betr .= " ORDER BY betr.person_id DESC,
|
||||
(CASE WHEN EXISTS ( /* if multiple accounts, prioritize mitarbeiter */
|
||||
SELECT 1 FROM public.tbl_mitarbeiter ma
|
||||
WHERE ma.mitarbeiter_uid = tbl_benutzer.uid
|
||||
) THEN 0 ELSE 1 END), betr.insertamum DESC
|
||||
LIMIT 1";
|
||||
|
||||
return $this->execQuery($qry_betr, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -131,23 +170,23 @@ class Projektbetreuer_model extends DB_Model
|
||||
*/
|
||||
public function generateZweitbegutachterToken($zweitbegutachter_person_id, $projektarbeit_id)
|
||||
{
|
||||
$betreuerUidQry = "SELECT uid, zugangstoken, zugangstoken_gueltigbis, tbl_projektbetreuer.person_id
|
||||
$betreuerUidQry = "SELECT uid, zugangstoken, zugangstoken_gueltigbis, tbl_projektbetreuer.person_id, betreuerart_kurzbz
|
||||
FROM lehre.tbl_projektbetreuer
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
LEFT JOIN public.tbl_benutzer USING(person_id)
|
||||
WHERE projektarbeit_id = ?
|
||||
AND tbl_projektbetreuer.person_id = ?
|
||||
AND betreuerart_kurzbz = 'Zweitbegutachter'
|
||||
AND betreuerart_kurzbz IN ('Zweitbegutachter', 'Senatsmitglied')
|
||||
LIMIT 1";
|
||||
|
||||
$betreueruidres = $this->execQuery($betreuerUidQry, array($projektarbeit_id, $zweitbegutachter_person_id));
|
||||
$betreueruidRes = $this->execQuery($betreuerUidQry, array($projektarbeit_id, $zweitbegutachter_person_id));
|
||||
|
||||
if (!hasData($betreueruidres))
|
||||
if (!hasData($betreueruidRes))
|
||||
return error('Zweitbegutachter nicht gefunden');
|
||||
|
||||
$row_betr = getData($betreueruidres)[0];
|
||||
$zweitbetreuer = getData($betreueruidRes)[0];
|
||||
|
||||
if (!isset($row_betr->uid))
|
||||
if (!isset($zweitbetreuer->uid))
|
||||
{
|
||||
do {
|
||||
$token = generateToken(16);
|
||||
@@ -156,8 +195,8 @@ class Projektbetreuer_model extends DB_Model
|
||||
|
||||
$result = $this->update(
|
||||
array('projektarbeit_id' => $projektarbeit_id,
|
||||
'person_id' => $row_betr->person_id,
|
||||
'betreuerart_kurzbz' => 'Zweitbegutachter'),
|
||||
'person_id' => $zweitbetreuer->person_id,
|
||||
'betreuerart_kurzbz' => $zweitbetreuer->betreuerart_kurzbz),
|
||||
array('zugangstoken' => $token,
|
||||
'zugangstoken_gueltigbis' => date('Y-m-d', strtotime('+1 year')))
|
||||
);
|
||||
@@ -167,4 +206,29 @@ class Projektbetreuer_model extends DB_Model
|
||||
else
|
||||
return success("Account vorhanden, kein Token benötigt");
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets betreuerart of a Betreuer for a Projektarbeit.
|
||||
* Main Betreuer are prioritized (normally one Betreuer should be assigned to a Projektarbeit another time with a different Betreuerart).
|
||||
* @param int projektarbeit_id
|
||||
* @param int betreuer_person_id
|
||||
* @return object success or error
|
||||
*/
|
||||
public function getBetreuerart($projektarbeit_id, $betreuer_person_id)
|
||||
{
|
||||
$qry = "SELECT betreuerart_kurzbz
|
||||
FROM lehre.tbl_projektbetreuer
|
||||
WHERE projektarbeit_id = ?
|
||||
AND person_id = ?
|
||||
ORDER BY CASE WHEN betreuerart_kurzbz = 'Senatsvorsitz' THEN 1 /*Senatsvorsitz has priority*/
|
||||
WHEN betreuerart_kurzbz = 'Begutachter' THEN 2
|
||||
WHEN betreuerart_kurzbz = 'Erstbegutachter' THEN 3
|
||||
WHEN betreuerart_kurzbz = 'Zweitbegutachter' THEN 4
|
||||
WHEN betreuerart_kurzbz = 'Senatsmitglied' THEN 5
|
||||
ELSE 5
|
||||
END, insertamum DESC
|
||||
LIMIT 1";
|
||||
|
||||
return $this->execQuery($qry, array($projektarbeit_id, $betreuer_person_id));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,8 +61,10 @@ $sql_query = "SELECT
|
||||
FROM
|
||||
(SELECT tbl_person.vorname, tbl_person.nachname, tbl_studiengang.typ, tbl_studiengang.kurzbz,
|
||||
tbl_projektarbeit.projekttyp_kurzbz, tbl_projekttyp.bezeichnung, tbl_projektarbeit.titel, tbl_projektarbeit.projektarbeit_id,
|
||||
tbl_projektbetreuer.betreuerart_kurzbz, tbl_benutzer.uid, tbl_student.matrikelnr, tbl_lehreinheit.studiensemester_kurzbz
|
||||
FROM lehre.tbl_projektarbeit LEFT JOIN lehre.tbl_projektbetreuer using(projektarbeit_id)
|
||||
tbl_projektbetreuer.betreuerart_kurzbz, tbl_betreuerart.beschreibung AS betreuerart_beschreibung, tbl_benutzer.uid, tbl_student.matrikelnr, tbl_lehreinheit.studiensemester_kurzbz
|
||||
FROM lehre.tbl_projektarbeit
|
||||
LEFT JOIN lehre.tbl_projektbetreuer using(projektarbeit_id)
|
||||
LEFT JOIN lehre.tbl_betreuerart using(betreuerart_kurzbz)
|
||||
LEFT JOIN public.tbl_benutzer on(uid=student_uid)
|
||||
LEFT JOIN public.tbl_student on(public.tbl_benutzer.uid=public.tbl_student.student_uid)
|
||||
LEFT JOIN public.tbl_person on(tbl_benutzer.person_id=tbl_person.person_id)
|
||||
@@ -75,8 +77,7 @@ $sql_query = "SELECT
|
||||
WHERE public.tbl_benutzer.person_id=lehre.tbl_projektbetreuer.person_id
|
||||
AND public.tbl_benutzer.uid=".$db->db_add_param($getuid).")
|
||||
".($showall?'':' AND public.tbl_benutzer.aktiv AND lehre.tbl_projektarbeit.note IS NULL ')."
|
||||
AND (betreuerart_kurzbz='Betreuer' OR betreuerart_kurzbz='Begutachter' OR betreuerart_kurzbz='Erstbegutachter'
|
||||
OR betreuerart_kurzbz='Zweitbegutachter' OR betreuerart_kurzbz='Erstbetreuer')
|
||||
AND betreuerart_kurzbz IN ('Betreuer', 'Begutachter', 'Erstbegutachter', 'Zweitbegutachter', 'Erstbetreuer', 'Senatsvorsitz', 'Senatsmitglied')
|
||||
ORDER BY tbl_projektarbeit.projektarbeit_id, betreuerart_kurzbz desc) as xy
|
||||
ORDER BY nachname";
|
||||
|
||||
@@ -112,7 +113,7 @@ else
|
||||
$htmlstr .= " <td>".strtoupper($row->typ.$row->kurzbz)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->studiensemester_kurzbz)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->titel)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->betreuerart_kurzbz)."</td>\n";
|
||||
$htmlstr .= " <td>".($row->betreuerart_beschreibung == null ? $db->convert_html_chars($row->betreuerart_kurzbz) : $db->convert_html_chars($row->betreuerart_beschreibung))."</td>\n";
|
||||
$htmlstr .= " </tr>\n";
|
||||
$i++;
|
||||
}
|
||||
@@ -127,11 +128,11 @@ echo '
|
||||
<title>'.$p->t('abgabetool/abgabetool').'</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
|
||||
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
|
||||
@@ -119,11 +119,12 @@ if(!$projektarbeit_obj->load($projektarbeit_id))
|
||||
die('Fehler beim Laden der Projektarbeit');
|
||||
$titel = $projektarbeit_obj->titel;
|
||||
$student_uid = $projektarbeit_obj->student_uid;
|
||||
$projekttyp_kurzbz = $projektarbeit_obj->projekttyp_kurzbz;
|
||||
|
||||
// paarbeit sollte nur ab bestimmten Zeitpunkt online bewertet werden
|
||||
$num_rows_sem = $projektarbeit_obj->projektarbeitIsCurrent($projektarbeit_id);
|
||||
$paIsCurrent = $projektarbeit_obj->projektarbeitIsCurrent($projektarbeit_id);
|
||||
|
||||
if(!is_numeric($num_rows_sem) || $num_rows_sem < 0)
|
||||
if(!is_numeric($paIsCurrent) || $paIsCurrent < 0)
|
||||
{
|
||||
echo "<font color=\"#FF0000\">".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."</font><br> ";
|
||||
}
|
||||
@@ -143,27 +144,28 @@ if($num_rows_endupload < 0)
|
||||
}
|
||||
|
||||
// Zweitbegutachter holen
|
||||
if($betreuerart=="Erstbegutachter")
|
||||
if(in_array($betreuerart, array('Erstbegutachter', 'Senatsvorsitz')))
|
||||
{
|
||||
$projektbetreuer = new projektbetreuer();
|
||||
$alleBegutachter = $projektbetreuer->getProjektbetreuer($projektarbeit_id);
|
||||
$alleBegutachter = new projektbetreuer();
|
||||
$alleBegutachterRes = $alleBegutachter->getProjektbetreuer($projektarbeit_id);
|
||||
|
||||
if ($alleBegutachter)
|
||||
if ($alleBegutachterRes)
|
||||
{
|
||||
$alleBegutachterResults = $projektbetreuer->result;
|
||||
|
||||
foreach ($alleBegutachterResults as $begutachter)
|
||||
$zweitbetreuerArr = array();
|
||||
foreach ($alleBegutachter->result as $begutachter)
|
||||
{
|
||||
if ($begutachter->betreuerart_kurzbz == "Erstbegutachter")
|
||||
if (in_array($begutachter->betreuerart_kurzbz, array('Erstbegutachter', 'Senatsvorsitz')))
|
||||
{
|
||||
// dem Erstbetreuer zugewiesene Zweitbetreuer holen
|
||||
$erstbetreuer_id = $begutachter->person_id;
|
||||
$zweitbegutachter = $projektbetreuer->getZweitbegutachterWithToken($erstbetreuer_id, $projektarbeit_id, $student_uid);
|
||||
break;
|
||||
$zweitbegutachter = new projektbetreuer();
|
||||
$zweitbegutachterRes = $zweitbegutachter->getZweitbegutachterWithToken($erstbetreuer_id, $projektarbeit_id, $student_uid);
|
||||
if ($zweitbegutachterRes) $zweitbetreuerArr = array_merge($zweitbetreuerArr, $zweitbegutachter->result);
|
||||
}
|
||||
}
|
||||
|
||||
// Mail mit Token an Zweitbegutachter senden
|
||||
if ($zweitbegutachter && $num_rows_sem >= 1 && isset($_GET['zweitbegutachtertoken']))
|
||||
if (count($zweitbetreuerArr) > 0 && $paIsCurrent >= 1 && isset($_GET['zweitbegutachtertoken']) && isset($_GET['zweitbetreuer_person_id']))
|
||||
{
|
||||
$qry_std="SELECT * FROM campus.vw_benutzer where uid=".$db->db_add_param($uid);
|
||||
if(!$result_std=$db->db_query($qry_std))
|
||||
@@ -173,15 +175,24 @@ if($betreuerart=="Erstbegutachter")
|
||||
else
|
||||
{
|
||||
$row_std=@$db->db_fetch_object($result_std);
|
||||
$mailres = sendZweitbegutachterMail($zweitbegutachter, $erstbetreuer_id, $row_std);
|
||||
foreach ($zweitbetreuerArr as $zbg)
|
||||
{
|
||||
// if Zweitbetreuer is the one for which token was requested, send mail
|
||||
if ($zbg->person_id == $_GET['zweitbetreuer_person_id'])
|
||||
{
|
||||
$mailres = sendZweitbegutachterMail($zbg, $erstbetreuer_id, $row_std, $projekttyp_kurzbz);
|
||||
|
||||
if ($mailres)
|
||||
{
|
||||
echo "<br><span style='color: green; '>".$p->t('abgabetool/zweitbegutachterMailGesendet', $zweitbegutachter->email)."</span><br> ";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<font color=\"#FF0000\">".$p->t('abgabetool/fehlerMailZweitBegutachter')." Mail: ".$zweitbegutachter->email."</font><br> ";
|
||||
if ($mailres)
|
||||
{
|
||||
echo "<br><span style='color: green; '>"
|
||||
.$p->t('abgabetool/zweitbegutachterMailGesendet', array($zbg->voller_name, $zbg->email))
|
||||
."</span><br> ";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<font color=\"#FF0000\">".$p->t('abgabetool/fehlerMailZweitBegutachter')." Mail: ".$zbg->email."</font><br> ";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -214,12 +225,14 @@ echo '
|
||||
cursor: pointer;
|
||||
outline: inherit;
|
||||
}
|
||||
|
||||
#zweitbetrmailicon {
|
||||
top: 4px;
|
||||
height: 18px;
|
||||
width: 18px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#tokenmailicon {
|
||||
top: 2px;
|
||||
height: 15px;
|
||||
@@ -227,6 +240,9 @@ echo '
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.warningtext {
|
||||
color: #8a6d3b;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script language="Javascript">
|
||||
@@ -465,12 +481,13 @@ $htmlstr .= "<table id='beurteilungheadertable' width=100%>\n";
|
||||
$htmlstr .= "<tr><td style='font-size:16px'>".$p->t('abgabetool/student').": <b>".$db->convert_html_chars($studentenname)."</b></td>";
|
||||
$htmlstr .= "<td width=10% align=center>";
|
||||
|
||||
$semester_benotbar = $num_rows_sem >= 1;
|
||||
$semester_benotbar = $paIsCurrent >= 1;
|
||||
$endupload_vorhanden = $num_rows_endupload >= 1;
|
||||
|
||||
if ($semester_benotbar && $endupload_vorhanden)
|
||||
{
|
||||
$htmlstr .= "<form action='../../../index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung' title='Benotungsformular' target='_blank' method='GET'>";
|
||||
$beurtPfad = $betreuerart == 'Zweitbegutachter' ? 'ProjektarbeitsbeurteilungZweitbegutachter' : 'ProjektarbeitsbeurteilungErstbegutachter';
|
||||
$htmlstr .= "<form action='../../../index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/".$beurtPfad."' title='Benotungsformular' target='_blank' method='GET'>";
|
||||
$htmlstr .= "<input type='hidden' name='projektarbeit_id' value='".$projektarbeit_id."'>\n";
|
||||
$htmlstr .= "<input type='hidden' name='uid' value='".$uid."'>\n";
|
||||
$htmlstr .= "<input type='submit' name='note' value='".$p->t('abgabetool/benoten')."'></form>";
|
||||
@@ -496,32 +513,51 @@ else
|
||||
{
|
||||
$htmlstr .= "<td> </td></tr>";
|
||||
}
|
||||
$htmlstr .= "<tr><td style='font-size:16px'>" . $p->t('abgabetool/titel') . ": <b>".$db->convert_html_chars($titel)."<b></td><td></td><td valign=\"right\"><a href='abgabe_student_frameset.php?uid=$uid' target='_blank'>".$p->t('abgabetool/studentenansicht')."</a></td>";
|
||||
$htmlstr .= "<tr>
|
||||
<td style='font-size:16px'>" . $p->t('abgabetool/titel') . ": <b>".$db->convert_html_chars($titel)."<b></td>
|
||||
<td align='center' class='warningtext'>".(isset($quick_info) ? $quick_info : '')."</td>
|
||||
<td valign=\"right\"><a href='abgabe_student_frameset.php?uid=$uid' target='_blank'>".$p->t('abgabetool/studentenansicht')."</a></td>";
|
||||
$htmlstr .= "</tr>\n";
|
||||
if (isset($zweitbegutachter) && $zweitbegutachter) // wenn es Zweitbegutachter gibt
|
||||
|
||||
if (isset($zweitbetreuerArr) && is_array($zweitbetreuerArr)) // wenn es Zweitbetreuer gibt
|
||||
{
|
||||
// Zweitbegutachter anzeigen
|
||||
// Zweitbetreuer anzeigen
|
||||
$htmlstr .= "<tr>\n";
|
||||
$htmlstr .= "<td style='font-size:16px'>" . $p->t('abgabetool/zweitBegutachter') . ": <b>" . $zweitbegutachter->voller_name . "</b>";
|
||||
|
||||
// keine Mail -> Fehler anzeigen
|
||||
if (!isset($zweitbegutachter->email))
|
||||
$htmlstr .= " <img src='../../../skin/images/exclamation.png' title='" . $p->t('abgabetool/zweitBegutachterEmailFehlt') . "' alt='" . $p->t('abgabetool/zweitBegutachterEmailFehlt') . "'/>";
|
||||
|
||||
// Token senden button wenn Zweitbegutachter extern ist und Projektarbeit nicht für altes Semester ist
|
||||
if (isset($zweitbegutachter->email) && !isset($zweitbegutachter->uid) && $num_rows_sem >= 1)
|
||||
$htmlstr .= "<td style='font-size:16px'>";
|
||||
$bart = '';
|
||||
foreach($zweitbetreuerArr as $zweitbetreuer)
|
||||
{
|
||||
$htmlstr .= "<form action='" . htmlspecialchars($_SERVER['PHP_SELF']) . "' method='GET' style='display: inline'>\n";
|
||||
$htmlstr .= "<input type='hidden' name='uid' value='" . $student_uid . "'>";
|
||||
$htmlstr .= "<input type='hidden' name='projektarbeit_id' value='" . $projektarbeit_id . "'>";
|
||||
$htmlstr .= "<input type='hidden' name='betreuerart' value='" . $betreuerart . "'>";
|
||||
$htmlstr .= " <a href='mailto:".$zweitbegutachter->email."'><img id='zweitbetrmailicon' src='../../../skin/images/email.png'
|
||||
title='" . $p->t('abgabetool/zweitbetreuerMailSenden', $zweitbegutachter->email) . "' alt='" . $p->t('abgabetool/zweitbetreuerMailSenden', $zweitbegutachter->email) . "'/></a>\n";
|
||||
$htmlstr .= " <button type='submit' name='zweitbegutachtertoken' title='" . $p->t('abgabetool/zweitbetreuerTokenMailSenden') . "'>
|
||||
<img id='tokenmailicon' src='../../../skin/images/repeat.png' alt='" . $p->t('abgabetool/zweitbetreuerTokenMailSenden') . "'/></button>\n";
|
||||
$htmlstr .= "</form>";
|
||||
}
|
||||
if ($bart !== $zweitbetreuer->betreuerart_kurzbz)
|
||||
{
|
||||
$htmlstr .= ($zweitbetreuer->betreuerart_kurzbz == 'Senatsmitglied' ? $p->t('abgabetool/senatsMitglied') : $p->t('abgabetool/zweitBegutachter'));
|
||||
$htmlstr .= ": ";
|
||||
$bart = $zweitbetreuer->betreuerart_kurzbz;
|
||||
}
|
||||
else
|
||||
$htmlstr .= ", ";
|
||||
|
||||
$htmlstr .= "<b>" . $zweitbetreuer->voller_name . "</b>";
|
||||
|
||||
// keine Mail -> Fehler anzeigen
|
||||
if (!isset($zweitbetreuer->email))
|
||||
$htmlstr .= " <img src='../../../skin/images/exclamation.png' title='" . $p->t('abgabetool/zweitBegutachterEmailFehlt') . "' alt='" . $p->t('abgabetool/zweitBegutachterEmailFehlt') . "'/>";
|
||||
|
||||
// Token senden button wenn Zweitbegutachter extern ist und Projektarbeit nicht für altes Semester ist
|
||||
if (isset($zweitbetreuer->email) && !isset($zweitbetreuer->uid) && $paIsCurrent >= 1)
|
||||
{
|
||||
$htmlstr .= "<form action='" . htmlspecialchars($_SERVER['PHP_SELF']) . "' method='GET' style='display: inline'>\n";
|
||||
$htmlstr .= "<input type='hidden' name='uid' value='" . $student_uid . "'>";
|
||||
$htmlstr .= "<input type='hidden' name='projektarbeit_id' value='" . $projektarbeit_id . "'>";
|
||||
$htmlstr .= "<input type='hidden' name='betreuerart' value='" . $betreuerart . "'>";
|
||||
$htmlstr .= "<input type='hidden' name='zweitbetreuer_person_id' value='" . $zweitbetreuer->person_id . "'>";
|
||||
$htmlstr .= " <a href='mailto:".$zweitbetreuer->email."'><img id='zweitbetrmailicon' src='../../../skin/images/email.png'
|
||||
title='" . $p->t('abgabetool/zweitbetreuerMailSenden', array($zweitbetreuer->voller_name, $zweitbetreuer->email)) . "'
|
||||
alt='" . $p->t('abgabetool/zweitbetreuerMailSenden', array($zweitbetreuer->voller_name, $zweitbetreuer->email)) . "'/></a>\n";
|
||||
$htmlstr .= " <button type='submit' name='zweitbegutachtertoken' title='" . $p->t('abgabetool/zweitbetreuerTokenMailSenden') . "'>
|
||||
<img id='tokenmailicon' src='../../../skin/images/repeat.png' alt='" . $p->t('abgabetool/zweitbetreuerTokenMailSenden') . "'/></button>";
|
||||
$htmlstr .= "</form>";
|
||||
}
|
||||
}
|
||||
$htmlstr .= "</td>\n";
|
||||
$htmlstr .= "<td></td>\n";
|
||||
$htmlstr .= "<td></td>\n";
|
||||
@@ -545,122 +581,122 @@ $htmlstr .= "<tr>
|
||||
<td></td>
|
||||
</tr>\n";
|
||||
$result=@$db->db_query($qry);
|
||||
while ($row=@$db->db_fetch_object($result))
|
||||
while ($row=@$db->db_fetch_object($result))
|
||||
{
|
||||
$htmlstr .= "<form action='".$_SERVER['PHP_SELF']."' method='POST' name='".$row->projektarbeit_id."'>\n";
|
||||
$htmlstr .= "<input type='hidden' name='projektarbeit_id' value='".$row->projektarbeit_id."'>\n";
|
||||
$htmlstr .= "<input type='hidden' name='paabgabe_id' value='".$row->paabgabe_id."'>\n";
|
||||
$htmlstr .= "<input type='hidden' name='uid' value='".$uid."'>\n";
|
||||
$htmlstr .= "<input type='hidden' name='betreuerart' value='".$betreuerart."'>\n";
|
||||
$htmlstr .= "<input type='hidden' name='command' value='update'>\n";
|
||||
$htmlstr .= "<tr id='".$row->projektarbeit_id."'>\n";
|
||||
if(!$row->abgabedatum)
|
||||
{
|
||||
$htmlstr .= "<form action='".$_SERVER['PHP_SELF']."' method='POST' name='".$row->projektarbeit_id."'>\n";
|
||||
$htmlstr .= "<input type='hidden' name='projektarbeit_id' value='".$row->projektarbeit_id."'>\n";
|
||||
$htmlstr .= "<input type='hidden' name='paabgabe_id' value='".$row->paabgabe_id."'>\n";
|
||||
$htmlstr .= "<input type='hidden' name='uid' value='".$uid."'>\n";
|
||||
$htmlstr .= "<input type='hidden' name='betreuerart' value='".$betreuerart."'>\n";
|
||||
$htmlstr .= "<input type='hidden' name='command' value='update'>\n";
|
||||
$htmlstr .= "<tr id='".$row->projektarbeit_id."'>\n";
|
||||
if ($row->datum<date('Y-m-d'))
|
||||
{
|
||||
//Termin vorbei - weiß auf rot
|
||||
$bgcol='#FF0000';
|
||||
$fcol='#FFFFFF';
|
||||
}
|
||||
elseif (($row->datum>=date('Y-m-d')) && ($row->datum<date('Y-m-d',mktime(0, 0, 0, date("m") , date("d")+11, date("Y")))))
|
||||
{
|
||||
//Termin nahe - schwarz auf gelb
|
||||
$bgcol='#FFFF00';
|
||||
$fcol='#000000';
|
||||
}
|
||||
else
|
||||
{
|
||||
//"normaler" Termin - schwarz auf weiß
|
||||
$bgcol='#FFFFFF';
|
||||
$fcol='#000000';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($row->abgabedatum>$row->datum)
|
||||
{
|
||||
//Abgabe nach Termin - weiß auf hellrot
|
||||
$bgcol='#EA7B7B';
|
||||
$fcol='#FFFFFF';
|
||||
}
|
||||
else
|
||||
{
|
||||
//Abgabe vor Termin - schwarz auf grün
|
||||
$bgcol='#00FF00';
|
||||
$fcol='#000000';
|
||||
}
|
||||
}
|
||||
//$htmlstr .= "<td><input type='checkbox' name='fixtermin' ".($row->fixtermin=='t'?'checked=\"checked\"':'')." >";
|
||||
//$htmlstr .= "<td><input type='checkbox' name='fixtermin' ".($row->fixtermin=='t'?'checked="checked" style="background-color:#FF0000;"':'')." disabled>";
|
||||
if($row->fixtermin=='t')
|
||||
{
|
||||
$htmlstr .= "<td><img src='../../../skin/images/bullet_red.png' alt='J' title='".$p->t('abgabetool/fixerAbgabetermin')."' border=0></td>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= "<td><img src='../../../skin/images/bullet_green.png' alt='N' title='".$p->t('abgabetool/variablerAbgabetermin')."' border=0></td>";
|
||||
}
|
||||
$htmlstr .= " </td>\n";
|
||||
$htmlstr .= " <td><input type='text' name='datum' style='background-color:".$bgcol.";font-weight:bold; color:".$fcol." ' value='".$datum_obj->formatDatum($row->datum,'d.m.Y')."' size='10' maxlegth='10'></td>\n";
|
||||
$htmlstr .= " <td><select name='paabgabetyp_kurzbz'>\n";
|
||||
//$htmlstr .= " <option value=''> </option>";
|
||||
$qry_typ="SELECT * FROM campus.tbl_paabgabetyp";
|
||||
$result_typ=@$db->db_query($qry_typ);
|
||||
while ($row_typ=@$db->db_fetch_object($result_typ))
|
||||
{
|
||||
if($row->paabgabetyp_kurzbz==$row_typ->paabgabetyp_kurzbz)
|
||||
{
|
||||
$htmlstr .= " <option value='".$row_typ->paabgabetyp_kurzbz."' selected>$row_typ->bezeichnung</option>";
|
||||
}
|
||||
else
|
||||
{
|
||||
if($row_typ->paabgabetyp_kurzbz!='end' && $row_typ->paabgabetyp_kurzbz!='note' && $row_typ->paabgabetyp_kurzbz!='enda')
|
||||
{
|
||||
$htmlstr .= " <option value='".$row_typ->paabgabetyp_kurzbz."'>$row_typ->bezeichnung</option>";
|
||||
}
|
||||
}
|
||||
}
|
||||
$htmlstr .= " </select></td>\n";
|
||||
$htmlstr .= " <td><input type='text' name='kurzbz' value='".htmlspecialchars($row->kurzbz,ENT_QUOTES)."' size='60' maxlegth='256'></td>\n";
|
||||
$htmlstr .= " <td>".($row->abgabedatum==''?' ':$datum_obj->formatDatum($row->abgabedatum,'d.m.Y'))."</td>\n";
|
||||
if($user==$row->insertvon && $betreuerart!="Zweitbegutachter")
|
||||
{
|
||||
$htmlstr .= " <td><input type='submit' name='schick' value='".$p->t('global/speichern')."' title='".$p->t('abgabetool/terminaenderungSpeichern')."'></td>";
|
||||
|
||||
if(!$row->abgabedatum)
|
||||
{
|
||||
if ($row->datum<date('Y-m-d'))
|
||||
{
|
||||
//Termin vorbei - weiß auf rot
|
||||
$bgcol='#FF0000';
|
||||
$fcol='#FFFFFF';
|
||||
}
|
||||
elseif (($row->datum>=date('Y-m-d')) && ($row->datum<date('Y-m-d',mktime(0, 0, 0, date("m") , date("d")+11, date("Y")))))
|
||||
{
|
||||
//Termin nahe - schwarz auf gelb
|
||||
$bgcol='#FFFF00';
|
||||
$fcol='#000000';
|
||||
}
|
||||
else
|
||||
{
|
||||
//"normaler" Termin - schwarz auf weiß
|
||||
$bgcol='#FFFFFF';
|
||||
$fcol='#000000';
|
||||
}
|
||||
$htmlstr .= " <td><input type='submit' name='del' value='".$p->t('global/loeschen')."' onclick='return confdel()' title='".$p->t('abgabetool/terminLoeschen')."'></td>";
|
||||
}
|
||||
else
|
||||
{
|
||||
if($row->abgabedatum>$row->datum)
|
||||
{
|
||||
//Abgabe nach Termin - weiß auf hellrot
|
||||
$bgcol='#EA7B7B';
|
||||
$fcol='#FFFFFF';
|
||||
}
|
||||
else
|
||||
{
|
||||
//Abgabe vor Termin - schwarz auf grün
|
||||
$bgcol='#00FF00';
|
||||
$fcol='#000000';
|
||||
}
|
||||
$htmlstr .= " <td> </td>";
|
||||
}
|
||||
//$htmlstr .= "<td><input type='checkbox' name='fixtermin' ".($row->fixtermin=='t'?'checked=\"checked\"':'')." >";
|
||||
//$htmlstr .= "<td><input type='checkbox' name='fixtermin' ".($row->fixtermin=='t'?'checked="checked" style="background-color:#FF0000;"':'')." disabled>";
|
||||
if($row->fixtermin=='t')
|
||||
{
|
||||
$htmlstr .= "<td><img src='../../../skin/images/bullet_red.png' alt='J' title='".$p->t('abgabetool/fixerAbgabetermin')."' border=0></td>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= "<td><img src='../../../skin/images/bullet_green.png' alt='N' title='".$p->t('abgabetool/variablerAbgabetermin')."' border=0></td>";
|
||||
}
|
||||
$htmlstr .= " </td>\n";
|
||||
$htmlstr .= " <td><input type='text' name='datum' style='background-color:".$bgcol.";font-weight:bold; color:".$fcol." ' value='".$datum_obj->formatDatum($row->datum,'d.m.Y')."' size='10' maxlegth='10'></td>\n";
|
||||
$htmlstr .= " <td><select name='paabgabetyp_kurzbz'>\n";
|
||||
//$htmlstr .= " <option value=''> </option>";
|
||||
$qry_typ="SELECT * FROM campus.tbl_paabgabetyp";
|
||||
$result_typ=@$db->db_query($qry_typ);
|
||||
while ($row_typ=@$db->db_fetch_object($result_typ))
|
||||
{
|
||||
if($row->paabgabetyp_kurzbz==$row_typ->paabgabetyp_kurzbz)
|
||||
{
|
||||
$htmlstr .= " <option value='".$row_typ->paabgabetyp_kurzbz."' selected>$row_typ->bezeichnung</option>";
|
||||
}
|
||||
else
|
||||
{
|
||||
if($row_typ->paabgabetyp_kurzbz!='end' && $row_typ->paabgabetyp_kurzbz!='note' && $row_typ->paabgabetyp_kurzbz!='enda')
|
||||
{
|
||||
$htmlstr .= " <option value='".$row_typ->paabgabetyp_kurzbz."'>$row_typ->bezeichnung</option>";
|
||||
}
|
||||
}
|
||||
}
|
||||
$htmlstr .= " </select></td>\n";
|
||||
$htmlstr .= " <td><input type='text' name='kurzbz' value='".htmlspecialchars($row->kurzbz,ENT_QUOTES)."' size='60' maxlegth='256'></td>\n";
|
||||
$htmlstr .= " <td>".($row->abgabedatum==''?' ':$datum_obj->formatDatum($row->abgabedatum,'d.m.Y'))."</td>\n";
|
||||
if($user==$row->insertvon && $betreuerart!="Zweitbegutachter")
|
||||
{
|
||||
$htmlstr .= " <td><input type='submit' name='schick' value='".$p->t('global/speichern')."' title='".$p->t('abgabetool/terminaenderungSpeichern')."'></td>";
|
||||
|
||||
if(!$row->abgabedatum)
|
||||
{
|
||||
$htmlstr .= " <td><input type='submit' name='del' value='".$p->t('global/loeschen')."' onclick='return confdel()' title='".$p->t('abgabetool/terminLoeschen')."'></td>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td> </td>";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td> </td><td> </td>";
|
||||
}
|
||||
if(file_exists(PAABGABE_PATH.$row->paabgabe_id.'_'.$uid.'.pdf'))
|
||||
{
|
||||
$htmlstr .= " <td><a href='".$_SERVER['PHP_SELF']."?id=".$row->paabgabe_id."&uid=$uid' target='_blank'><img src='../../../skin/images/pdf.ico' alt='PDF' title='".$p->t('abgabetool/abgegebeneDatei')."' border=0></a></td>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td> </td>";
|
||||
}
|
||||
if($row->abgabedatum && $row->paabgabetyp_kurzbz=="end")
|
||||
{
|
||||
$htmlstr .= " <td><a href='abgabe_lektor_zusatz.php?paabgabe_id=".$row->paabgabe_id."&uid=$uid&projektarbeit_id=$projektarbeit_id' target='_blank'><img src='../../../skin/images/folder.gif' alt='zusätzliche Daten' title='".$p->t('abgabetool/kontrolleZusatzdaten')."' border=0></a></td>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td> </td>";
|
||||
}
|
||||
$htmlstr .= " </tr>\n";
|
||||
|
||||
|
||||
$htmlstr .= "</form>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td> </td><td> </td>";
|
||||
}
|
||||
if(file_exists(PAABGABE_PATH.$row->paabgabe_id.'_'.$uid.'.pdf'))
|
||||
{
|
||||
$htmlstr .= " <td><a href='".$_SERVER['PHP_SELF']."?id=".$row->paabgabe_id."&uid=$uid' target='_blank'><img src='../../../skin/images/pdf.ico' alt='PDF' title='".$p->t('abgabetool/abgegebeneDatei')."' border=0></a></td>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td> </td>";
|
||||
}
|
||||
if($row->abgabedatum && $row->paabgabetyp_kurzbz=="end")
|
||||
{
|
||||
$htmlstr .= " <td><a href='abgabe_lektor_zusatz.php?paabgabe_id=".$row->paabgabe_id."&uid=$uid&projektarbeit_id=$projektarbeit_id' target='_blank'><img src='../../../skin/images/folder.gif' alt='zusätzliche Daten' title='".$p->t('abgabetool/kontrolleZusatzdaten')."' border=0></a></td>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td> </td>";
|
||||
}
|
||||
$htmlstr .= " </tr>\n";
|
||||
|
||||
|
||||
$htmlstr .= "</form>\n";
|
||||
}
|
||||
|
||||
//Eingabezeile fuer neuen Termin
|
||||
$htmlstr .= '<form action="'.htmlspecialchars($_SERVER['PHP_SELF']).'" method="POST" name="'.$db->convert_html_chars($projektarbeit_id).'">'."\n";
|
||||
@@ -708,7 +744,7 @@ echo $htmlstr;
|
||||
* @param object $student
|
||||
* @return bool|projektbetreuer|void|null
|
||||
*/
|
||||
function sendZweitbegutachterMail($zweitbegutachter, $erstbegutachter_person_id, $student)
|
||||
function sendZweitbegutachterMail($zweitbegutachter, $erstbegutachter_person_id, $student, $projekttyp_kurzbz)
|
||||
{
|
||||
if (!isset($zweitbegutachter->email) || $zweitbegutachter->email == '')
|
||||
return false;
|
||||
@@ -721,12 +757,20 @@ function sendZweitbegutachterMail($zweitbegutachter, $erstbegutachter_person_id,
|
||||
if (!$projektbetreuer)
|
||||
return $projektbetreuer;
|
||||
|
||||
$zweitbetr = $projektbetreuer->getZweitbegutachterWithToken($erstbegutachter_person_id, $zweitbegutachter->projektarbeit_id, $student->uid);
|
||||
$zweitbetrRes = $projektbetreuer->getZweitbegutachterWithToken(
|
||||
$erstbegutachter_person_id,
|
||||
$zweitbegutachter->projektarbeit_id,
|
||||
$student->uid,
|
||||
$zweitbegutachter->person_id
|
||||
);
|
||||
|
||||
if ($zweitbetr)
|
||||
if ($zweitbetrRes && isset($projektbetreuer->result[0]))
|
||||
{
|
||||
$zweitbetr = $projektbetreuer->result[0];
|
||||
$intern = isset($zweitbetr->uid);
|
||||
$mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung";
|
||||
$mail_link_path = $zweitbetr->betreuerart_kurzbz == 'Zweitbegutachter' ? 'ProjektarbeitsbeurteilungZweitbegutachter' : 'ProjektarbeitsbeurteilungErstbegutachter';
|
||||
$mail_subject = $projekttyp_kurzbz == 'Diplom' ? 'Masterarbeitsbetreuung' : 'Bachelorarbeitsbetreuung';
|
||||
$mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/$mail_link_path";
|
||||
$mail_fulllink = "$mail_baselink?projektarbeit_id=".$zweitbegutachter->projektarbeit_id."&uid=".$student->uid;
|
||||
$mail_link = $intern ? $mail_fulllink : $mail_baselink;
|
||||
|
||||
@@ -745,7 +789,7 @@ function sendZweitbegutachterMail($zweitbegutachter, $erstbegutachter_person_id,
|
||||
'ParbeitsbeurteilungEndupload',
|
||||
$maildata,
|
||||
$zweitbetr->email,
|
||||
"Masterarbeitsbetreuung",
|
||||
$mail_subject,
|
||||
'sancho_header_min_bw.jpg',
|
||||
'sancho_footer_min_bw.jpg'
|
||||
);
|
||||
|
||||
@@ -1,248 +1,283 @@
|
||||
<?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: Christian Paminger < christian.paminger@technikum-wien.at >
|
||||
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/person.class.php');
|
||||
require_once('../../../include/benutzer.class.php');
|
||||
require_once('../../../include/student.class.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
|
||||
|
||||
$getuid=get_uid();
|
||||
$uid=$getuid;
|
||||
|
||||
if(isset($_GET['uid']))
|
||||
{
|
||||
//Studentenansicht
|
||||
$uid = $_GET['uid'];
|
||||
//Rechte Pruefen
|
||||
$allowed=false;
|
||||
|
||||
$student = new student();
|
||||
if(!$student->load($uid))
|
||||
die($p->t('global/fehlerBeimErmittelnDerUID'));
|
||||
|
||||
$stg_obj = new studiengang();
|
||||
if(!$stg_obj->load($student->studiengang_kz))
|
||||
die($p->t('global/fehlerBeimLesenAusDatenbank'));
|
||||
|
||||
//Berechtigung ueber das Berechtigungssystem
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($getuid);
|
||||
if($rechte->isBerechtigt('lehre/abgabetool',$stg_obj->oe_kurzbz,'s'))
|
||||
$allowed=true;
|
||||
|
||||
//oder Lektor mit Betreuung dieses Studenten
|
||||
$qry = "SELECT 1
|
||||
FROM
|
||||
lehre.tbl_projektarbeit
|
||||
JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id)
|
||||
JOIN campus.vw_benutzer on(vw_benutzer.person_id=tbl_projektbetreuer.person_id)
|
||||
WHERE
|
||||
tbl_projektarbeit.student_uid=".$db->db_add_param($uid)." AND
|
||||
vw_benutzer.uid=".$db->db_add_param($getuid).";";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
if($db->db_num_rows($result)>0)
|
||||
{
|
||||
$allowed=true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$allowed)
|
||||
{
|
||||
die($p->t('abgabetool/keineBerechtigungStudentenansicht'));
|
||||
}
|
||||
}
|
||||
$htmlstr = '';
|
||||
$htmlstr1 = '';
|
||||
$vorname='';
|
||||
$nachname='';
|
||||
$zweitbetreuer = '';
|
||||
|
||||
$sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bnachname,
|
||||
(SELECT vorname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bvorname,
|
||||
(SELECT titelpre FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS btitelpre,
|
||||
(SELECT titelpost FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS btitelpost,
|
||||
(SELECT person_id FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id=tbl_projektarbeit.projektarbeit_id
|
||||
AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter') LIMIT 1) AS zweitbetreuer_person_id,
|
||||
(SELECT betreuerart_kurzbz FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id=tbl_projektarbeit.projektarbeit_id
|
||||
AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter') LIMIT 1) AS zweitbetreuer_betreuerart_kurzbz,
|
||||
tbl_projektbetreuer.person_id AS betreuer_person_id,
|
||||
tbl_projekttyp.bezeichnung AS prjbez, *,
|
||||
lehre.tbl_projektbetreuer.note as note,
|
||||
public.tbl_benutzer.aktiv as aktiv,
|
||||
(SELECT abgeschicktvon FROM extension.tbl_projektarbeitsbeurteilung WHERE projektarbeit_id = tbl_projektarbeit.projektarbeit_id AND betreuer_person_id = tbl_projektbetreuer.person_id) AS babgeschickt,
|
||||
(SELECT abgeschicktvon FROM extension.tbl_projektarbeitsbeurteilung WHERE projektarbeit_id = tbl_projektarbeit.projektarbeit_id AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter') LIMIT 1) AS zweitbetreuer_abgeschickt
|
||||
FROM lehre.tbl_projektarbeit
|
||||
LEFT JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id)
|
||||
LEFT JOIN public.tbl_benutzer ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id)
|
||||
LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz)
|
||||
WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom')
|
||||
AND (tbl_projektbetreuer.betreuerart_kurzbz='Betreuer'
|
||||
OR tbl_projektbetreuer.betreuerart_kurzbz='Begutachter'
|
||||
OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbetreuer'
|
||||
OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter')
|
||||
AND tbl_projektarbeit.student_uid=".$db->db_add_param($uid)."
|
||||
ORDER BY studiensemester_kurzbz desc, tbl_lehrveranstaltung.kurzbz";
|
||||
|
||||
//AND tbl_projektarbeit.student_uid='$getuid' 'ie07m102';
|
||||
if(!$erg=$db->db_query($sql_query))
|
||||
{
|
||||
$errormsg=$p->t('global/fehlerBeimLesenAusDatenbank');
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= "<form name='formular'><input type='hidden' name='check' value=''></form><table id='t1' class='tablesorter'>\n";
|
||||
$htmlstr .= "<thead><tr>\n";
|
||||
$htmlstr .= "
|
||||
<th>".$p->t('abgabetool/details')."</th>
|
||||
<th>".$p->t('lvplan/sem')."</th>
|
||||
<th>".$p->t('lvplan/stg')."</th>
|
||||
<th>".$p->t('global/mail')."</th>
|
||||
<th>".$p->t('abgabetool/betreuer')."</th>
|
||||
<th>".$p->t('abgabetool/typ')."</th>
|
||||
<th>".$p->t('abgabetool/titel')."</th>
|
||||
<!--<th>".$p->t('abgabetool/betreuerart')."</th>-->";
|
||||
$htmlstr .= "</tr></thead><tbody>\n";
|
||||
$i = 0;
|
||||
while($row=$db->db_fetch_object($erg))
|
||||
{
|
||||
$htmlstr1 = '';
|
||||
$zweitbetreuer_obj = new person();
|
||||
if ($zweitbetreuer_obj->load($row->zweitbetreuer_person_id))
|
||||
{
|
||||
$zweitbetreuer = ', <b>'.$db->convert_html_chars($row->zweitbetreuer_betreuerart_kurzbz).'</b>: '.$zweitbetreuer_obj->titelpre.' '.$zweitbetreuer_obj->vorname.' '.$zweitbetreuer_obj->nachname.' '.$zweitbetreuer_obj->titelpost;
|
||||
}
|
||||
$htmlstr1 = '<b>'.$db->convert_html_chars($row->betreuerart_kurzbz).'</b>: ';
|
||||
$vorname=$row->vorname;
|
||||
$nachname=$row->nachname;
|
||||
$uid=$row->uid;
|
||||
($row->btitelpre!=''?$htmlstr1 .= $row->btitelpre.' ':$htmlstr1 .= '');
|
||||
$htmlstr1 .= $row->bvorname.' '.$row->bnachname;
|
||||
($row->btitelpost!=''?$htmlstr1 .= ' '.$row->btitelpost:$htmlstr1 .= '');
|
||||
$htmlstr1 .= $zweitbetreuer;
|
||||
$htmlstr .= " <tr>\n"; //class='liste".($i%2)."'
|
||||
|
||||
if (is_null($row->note) && $row->aktiv === 't')
|
||||
$htmlstr .= " <td><a href='abgabe_student_details.php?uid=".$row->uid."&projektarbeit_id=".$row->projektarbeit_id."&bid=".$row->betreuer_person_id."' target='as_detail' title='Details anzeigen'>".$p->t('abgabetool/upload')."</a></td>\n";
|
||||
elseif (!is_null($row->babgeschickt) || !is_null($row->zweitbetreuer_abgeschickt))
|
||||
{
|
||||
$htmlstr .= "<td>";
|
||||
|
||||
if (!is_null($row->babgeschickt))
|
||||
$htmlstr .= "<a href='../pdfExport.php?xml=projektarbeitsbeurteilung.xml.php&xsl=Projektbeurteilung&betreuerart_kurzbz=" . $row->betreuerart_kurzbz . "&projektarbeit_id=" . $row->projektarbeit_id . "&person_id=" . $row->betreuer_person_id ."' title='".$p->t('abgabetool/projektbeurteilungDownload')."'>".$p->t('abgabetool/projektbeurteilungErstDownload')."</a>";
|
||||
|
||||
if (!is_null($row->babgeschickt) && !is_null($row->zweitbetreuer_abgeschickt))
|
||||
$htmlstr .= "/";
|
||||
|
||||
if (!is_null($row->zweitbetreuer_abgeschickt))
|
||||
$htmlstr .= "<a href='../pdfExport.php?xml=projektarbeitsbeurteilung.xml.php&xsl=Projektbeurteilung&betreuerart_kurzbz=" . $row->zweitbetreuer_betreuerart_kurzbz . "&projektarbeit_id=" . $row->projektarbeit_id . "&person_id=" . $row->zweitbetreuer_person_id."' title='".$p->t('abgabetool/projektbeurteilungDownload')."'>".$p->t('abgabetool/projektbeurteilungZweitDownload')."</a>";
|
||||
|
||||
$htmlstr .= "</td>";
|
||||
} else
|
||||
{
|
||||
$htmlstr .= "<td></td>";
|
||||
}
|
||||
|
||||
|
||||
$htmlstr .= " <td>".$row->studiensemester_kurzbz."</td>\n";
|
||||
$htmlstr .= " <td>".strtoupper($row->typ.$row->kurzbz)."</td>\n";
|
||||
$htmlstr .= " <td align= center>";
|
||||
|
||||
$qry_betr="SELECT mitarbeiter_uid FROM public.tbl_person
|
||||
JOIN public.tbl_benutzer USING(person_id)
|
||||
JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid)
|
||||
WHERE person_id=".$db->db_add_param($row->betreuer_person_id, FHC_INTEGER).";";
|
||||
if($result_betr=$db->db_query($qry_betr))
|
||||
{
|
||||
if($row_betr=$db->db_fetch_object($result_betr))
|
||||
{
|
||||
$htmlstr.="<a href='mailto:$row_betr->mitarbeiter_uid@".DOMAIN."?subject=Betreuung%20".$row->prjbez."%20von%20".$row->vorname."%20".$row->nachname."'><img src='../../../skin/images/email.png' alt='email' title='".$p->t('abgabetool/emailAnBetreuer')."'></a>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr.="UID unknown!";
|
||||
}
|
||||
}
|
||||
$htmlstr .= " </td>";
|
||||
$htmlstr .= " <td>".$htmlstr1." </td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->prjbez)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->titel)."</td>\n";
|
||||
// $htmlstr .= " <td>".$db->convert_html_chars($row->betreuerart_kurzbz)."</td>\n";
|
||||
$htmlstr .= " </tr>\n";
|
||||
$i++;
|
||||
}
|
||||
$htmlstr .= "</tbody></table>\n";
|
||||
}
|
||||
echo '
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>Abgabesystem_Studentensicht</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
|
||||
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[4,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>';
|
||||
|
||||
echo '<h1><div style="float:left">'.$p->t('abgabetool/ueberschrift');
|
||||
if(trim($uid)!='')
|
||||
echo " ($uid $vorname $nachname)</div> <div style='text-align:right'><a href='".$p->t('dms_link/abgabetoolStudentHandbuch')."' target='_blank'><img src='../../../skin/images/information.png' alt='Anleitung' title='Anleitung Abgabetool' border=0> ".$p->t('global/handbuch')."</a></div>";
|
||||
echo '</h1>';
|
||||
echo $htmlstr;
|
||||
echo '</body>
|
||||
</html>';
|
||||
?>
|
||||
<?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: Christian Paminger < christian.paminger@technikum-wien.at >
|
||||
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/person.class.php');
|
||||
require_once('../../../include/benutzer.class.php');
|
||||
require_once('../../../include/student.class.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/projektbetreuer.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
|
||||
|
||||
$getuid=get_uid();
|
||||
$uid=$getuid;
|
||||
|
||||
if(isset($_GET['uid']))
|
||||
{
|
||||
//Studentenansicht
|
||||
$uid = $_GET['uid'];
|
||||
//Rechte Pruefen
|
||||
$allowed=false;
|
||||
|
||||
$student = new student();
|
||||
if(!$student->load($uid))
|
||||
die($p->t('global/fehlerBeimErmittelnDerUID'));
|
||||
|
||||
$stg_obj = new studiengang();
|
||||
if(!$stg_obj->load($student->studiengang_kz))
|
||||
die($p->t('global/fehlerBeimLesenAusDatenbank'));
|
||||
|
||||
//Berechtigung ueber das Berechtigungssystem
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($getuid);
|
||||
if($rechte->isBerechtigt('lehre/abgabetool',$stg_obj->oe_kurzbz,'s'))
|
||||
$allowed=true;
|
||||
|
||||
//oder Lektor mit Betreuung dieses Studenten
|
||||
$qry = "SELECT 1
|
||||
FROM
|
||||
lehre.tbl_projektarbeit
|
||||
JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id)
|
||||
JOIN campus.vw_benutzer on(vw_benutzer.person_id=tbl_projektbetreuer.person_id)
|
||||
WHERE
|
||||
tbl_projektarbeit.student_uid=".$db->db_add_param($uid)." AND
|
||||
vw_benutzer.uid=".$db->db_add_param($getuid).";";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
if($db->db_num_rows($result)>0)
|
||||
{
|
||||
$allowed=true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$allowed)
|
||||
{
|
||||
die($p->t('abgabetool/keineBerechtigungStudentenansicht'));
|
||||
}
|
||||
}
|
||||
$htmlstr = '';
|
||||
$htmlstr1 = '';
|
||||
$vorname='';
|
||||
$nachname='';
|
||||
$zweitbetreuer = '';
|
||||
$senatsmitglied = '';
|
||||
|
||||
$sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bnachname,
|
||||
(SELECT vorname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bvorname,
|
||||
(SELECT titelpre FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS btitelpre,
|
||||
(SELECT titelpost FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS btitelpost,
|
||||
tbl_betreuerart.beschreibung AS betreuerart_beschreibung,
|
||||
(SELECT person_id FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id=tbl_projektarbeit.projektarbeit_id
|
||||
AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter') LIMIT 1) AS zweitbetreuer_person_id,
|
||||
(SELECT betreuerart_kurzbz FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id=tbl_projektarbeit.projektarbeit_id
|
||||
AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter') LIMIT 1) AS zweitbetreuer_betreuerart_kurzbz,
|
||||
(SELECT tbl_betreuerart.beschreibung FROM lehre.tbl_projektbetreuer JOIN lehre.tbl_betreuerart USING(betreuerart_kurzbz) WHERE projektarbeit_id=tbl_projektarbeit.projektarbeit_id
|
||||
AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter', 'Senatsmitglied') LIMIT 1) AS zweitbetreuer_betreuerart_beschreibung,
|
||||
tbl_projektbetreuer.person_id AS betreuer_person_id,
|
||||
tbl_projekttyp.bezeichnung AS prjbez, *,
|
||||
lehre.tbl_projektbetreuer.note as note,
|
||||
public.tbl_benutzer.aktiv as aktiv,
|
||||
(SELECT abgeschicktvon FROM extension.tbl_projektarbeitsbeurteilung WHERE projektarbeit_id = tbl_projektarbeit.projektarbeit_id AND betreuer_person_id = tbl_projektbetreuer.person_id) AS babgeschickt,
|
||||
(SELECT abgeschicktvon FROM extension.tbl_projektarbeitsbeurteilung WHERE projektarbeit_id = tbl_projektarbeit.projektarbeit_id AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter') LIMIT 1) AS zweitbetreuer_abgeschickt,
|
||||
(SELECT datum FROM campus.tbl_paabgabe WHERE paabgabetyp_kurzbz = 'end' AND abgabedatum IS NOT NULL AND projektarbeit_id = tbl_projektarbeit.projektarbeit_id LIMIT 1) AS abgegeben
|
||||
FROM lehre.tbl_projektarbeit
|
||||
LEFT JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id)
|
||||
LEFT JOIN public.tbl_benutzer ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id)
|
||||
LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz)
|
||||
LEFT JOIN lehre.tbl_betreuerart USING(betreuerart_kurzbz)
|
||||
WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom')
|
||||
AND betreuerart_kurzbz IN ('Betreuer', 'Begutachter', 'Erstbegutachter', 'Senatsvorsitz')
|
||||
AND tbl_projektarbeit.student_uid=".$db->db_add_param($uid)."
|
||||
ORDER BY studiensemester_kurzbz desc, tbl_lehrveranstaltung.kurzbz";
|
||||
|
||||
//AND tbl_projektarbeit.student_uid='$getuid' 'ie07m102';
|
||||
if(!$erg=$db->db_query($sql_query))
|
||||
{
|
||||
$errormsg=$p->t('global/fehlerBeimLesenAusDatenbank');
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= "<form name='formular'><input type='hidden' name='check' value=''></form><table id='t1' class='tablesorter'>\n";
|
||||
$htmlstr .= "<thead><tr>\n";
|
||||
$htmlstr .= "
|
||||
<th>".$p->t('abgabetool/details')."</th>
|
||||
<th>".$p->t('lvplan/sem')."</th>
|
||||
<th>".$p->t('lvplan/stg')."</th>
|
||||
<th>".$p->t('global/mail')."</th>
|
||||
<th>".$p->t('abgabetool/betreuer')."</th>
|
||||
<th>".$p->t('abgabetool/typ')."</th>
|
||||
<th>".$p->t('abgabetool/titel')."</th>
|
||||
<!--<th>".$p->t('abgabetool/betreuerart')."</th>-->";
|
||||
$htmlstr .= "</tr></thead><tbody>\n";
|
||||
$i = 0;
|
||||
while($row=$db->db_fetch_object($erg))
|
||||
{
|
||||
// get zweitbetreuer, if any
|
||||
$htmlstr1 = '';
|
||||
$zweitbetreuer_obj = new person();
|
||||
if ($zweitbetreuer_obj->load($row->zweitbetreuer_person_id))
|
||||
{
|
||||
$zweitbetreuer = ', <b>'.$db->convert_html_chars($row->zweitbetreuer_betreuerart_kurzbz).'</b>: '.$zweitbetreuer_obj->titelpre.' '.$zweitbetreuer_obj->vorname.' '.$zweitbetreuer_obj->nachname.' '.$zweitbetreuer_obj->titelpost;
|
||||
}
|
||||
|
||||
// get senatsmitglied, if any
|
||||
if ($row->betreuerart_kurzbz == 'Senatsvorsitz')
|
||||
{
|
||||
// write beschreibung of Betreuerart for Senatsvorsitz
|
||||
$htmlstr1 = '<b>'.$db->convert_html_chars($row->betreuerart_beschreibung).'</b>: ';
|
||||
|
||||
$senatsmitglied_obj = new projektbetreuer();
|
||||
$senatsmitgliedRes = $senatsmitglied_obj->getZweitbegutachterWithToken($row->betreuer_person_id, $row->projektarbeit_id, $row->uid);
|
||||
if ($senatsmitgliedRes)
|
||||
{
|
||||
$senatsmitglied .= ', <b>'.$db->convert_html_chars($row->zweitbetreuer_betreuerart_beschreibung).'</b>: ';
|
||||
$first = true;
|
||||
foreach($senatsmitglied_obj->result as $spr)
|
||||
{
|
||||
if (!$first)
|
||||
$senatsmitglied .= ', ';
|
||||
$senatsmitglied .= $spr->voller_name;
|
||||
$first = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
$htmlstr1 = '<b>'.$db->convert_html_chars($row->betreuerart_kurzbz).'</b>: ';
|
||||
|
||||
$vorname=$row->vorname;
|
||||
$nachname=$row->nachname;
|
||||
$uid=$row->uid;
|
||||
|
||||
($row->btitelpre!=''?$htmlstr1 .= $row->btitelpre.' ':$htmlstr1 .= '');
|
||||
$htmlstr1 .= $row->bvorname.' '.$row->bnachname;
|
||||
($row->btitelpost!=''?$htmlstr1 .= ' '.$row->btitelpost:$htmlstr1 .= '');
|
||||
$htmlstr1 .= $zweitbetreuer;
|
||||
$htmlstr1 .= $senatsmitglied;
|
||||
$htmlstr .= " <tr>\n"; //class='liste".($i%2)."'
|
||||
|
||||
if (is_null($row->note) && $row->aktiv === 't')
|
||||
$htmlstr .= " <td><a href='abgabe_student_details.php?uid=".$row->uid."&projektarbeit_id=".$row->projektarbeit_id."&bid=".$row->betreuer_person_id."' target='as_detail' title='Details anzeigen'>".$p->t('abgabetool/upload')."</a></td>\n";
|
||||
elseif (!is_null($row->babgeschickt) || !is_null($row->zweitbetreuer_abgeschickt))
|
||||
{
|
||||
$htmlstr .= "<td>";
|
||||
|
||||
if (!is_null($row->babgeschickt))
|
||||
$htmlstr .= "<a href='../pdfExport.php?xml=projektarbeitsbeurteilung.xml.php&xsl=Projektbeurteilung&betreuerart_kurzbz=" . $row->betreuerart_kurzbz . "&projektarbeit_id=" . $row->projektarbeit_id . "&person_id=" . $row->betreuer_person_id ."' title='".$p->t('abgabetool/projektbeurteilungDownload')."'>".$p->t('abgabetool/projektbeurteilungErstDownload')."</a>";
|
||||
|
||||
if (!is_null($row->babgeschickt) && !is_null($row->zweitbetreuer_abgeschickt))
|
||||
$htmlstr .= "/";
|
||||
|
||||
if (!is_null($row->zweitbetreuer_abgeschickt))
|
||||
$htmlstr .= "<a href='../pdfExport.php?xml=projektarbeitsbeurteilung.xml.php&xsl=Projektbeurteilung&betreuerart_kurzbz=" . $row->zweitbetreuer_betreuerart_kurzbz . "&projektarbeit_id=" . $row->projektarbeit_id . "&person_id=" . $row->zweitbetreuer_person_id."' title='".$p->t('abgabetool/projektbeurteilungDownload')."'>".$p->t('abgabetool/projektbeurteilungZweitDownload')."</a>";
|
||||
|
||||
$htmlstr .= "</td>";
|
||||
}
|
||||
elseif (!is_null($row->abgegeben))
|
||||
{
|
||||
$htmlstr .= "<td>".$p->t('abgabetool/abgegeben')."</td>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= "<td>-</td>";
|
||||
}
|
||||
|
||||
$htmlstr .= " <td>".$row->studiensemester_kurzbz."</td>\n";
|
||||
$htmlstr .= " <td>".strtoupper($row->typ.$row->kurzbz)."</td>\n";
|
||||
$htmlstr .= " <td align= center>";
|
||||
|
||||
$qry_betr="SELECT mitarbeiter_uid FROM public.tbl_person
|
||||
JOIN public.tbl_benutzer USING(person_id)
|
||||
JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid)
|
||||
WHERE person_id=".$db->db_add_param($row->betreuer_person_id, FHC_INTEGER).";";
|
||||
if($result_betr=$db->db_query($qry_betr))
|
||||
{
|
||||
if($row_betr=$db->db_fetch_object($result_betr))
|
||||
{
|
||||
$htmlstr.="<a href='mailto:$row_betr->mitarbeiter_uid@".DOMAIN."?subject=Betreuung%20".$row->prjbez."%20von%20".$row->vorname."%20".$row->nachname."'><img src='../../../skin/images/email.png' alt='email' title='".$p->t('abgabetool/emailAnBetreuer')."'></a>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr.="UID unknown!";
|
||||
}
|
||||
}
|
||||
$htmlstr .= " </td>";
|
||||
$htmlstr .= " <td>".$htmlstr1." </td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->prjbez)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->titel)."</td>\n";
|
||||
// $htmlstr .= " <td>".$db->convert_html_chars($row->betreuerart_kurzbz)."</td>\n";
|
||||
$htmlstr .= " </tr>\n";
|
||||
$i++;
|
||||
}
|
||||
$htmlstr .= "</tbody></table>\n";
|
||||
}
|
||||
echo '
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>Abgabesystem_Studentensicht</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
|
||||
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[4,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>';
|
||||
|
||||
echo '<h1><div style="float:left">'.$p->t('abgabetool/ueberschrift');
|
||||
if(trim($uid)!='')
|
||||
echo " ($uid $vorname $nachname)</div> <div style='text-align:right'><a href='".$p->t('dms_link/abgabetoolStudentHandbuch')."' target='_blank'><img src='../../../skin/images/information.png' alt='Anleitung' title='Anleitung Abgabetool' border=0> ".$p->t('global/handbuch')."</a></div>";
|
||||
echo '</h1>';
|
||||
echo $htmlstr;
|
||||
echo '</body>
|
||||
</html>';
|
||||
?>
|
||||
|
||||
@@ -433,8 +433,10 @@ if($command=="update" && $error!=true)
|
||||
$row_std=$db->db_fetch_object($result_std);
|
||||
|
||||
// 1. Begutachter mail ohne Token
|
||||
$mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung";
|
||||
$mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/ProjektarbeitsbeurteilungErstbegutachter";
|
||||
$mail_fulllink = "$mail_baselink?projektarbeit_id=".$projektarbeit_id."&uid=".$row_std->uid;
|
||||
$projekttyp_kurzbz = $projektarbeit_obj->projekttyp_kurzbz;
|
||||
$subject = $projektarbeit_obj->projekttyp_kurzbz == 'Diplom' ? 'Masterarbeitsbetreuung' : 'Bachelorarbeitsbetreuung';
|
||||
$abgabetyp = $paabgabetyp_kurzbz == 'end' ? 'Endabgabe' : 'Zwischenabgabe';
|
||||
|
||||
$maildata = array();
|
||||
@@ -452,7 +454,7 @@ if($command=="update" && $error!=true)
|
||||
'ParbeitsbeurteilungEndupload',
|
||||
$maildata,
|
||||
$row_betr->mitarbeiter_uid."@".DOMAIN,
|
||||
"Bachelor-/Masterarbeitsbetreuung",
|
||||
$subject,
|
||||
'sancho_header_min_bw.jpg',
|
||||
'sancho_footer_min_bw.jpg',
|
||||
$user."@".DOMAIN);
|
||||
@@ -465,48 +467,66 @@ if($command=="update" && $error!=true)
|
||||
// 2. Begutachter mail, wenn Endabgabe, mit Token wenn extern
|
||||
if ($paabgabetyp_kurzbz == 'end')
|
||||
{
|
||||
$projektbetreuer = new projektbetreuer();
|
||||
$zweitbetr = $projektbetreuer->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid);
|
||||
// Zweitbegutachter holen
|
||||
$zweitbegutachter = new projektbetreuer();
|
||||
$zweitbegutachterRes = $zweitbegutachter->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid);
|
||||
|
||||
if ($zweitbetr)
|
||||
if ($zweitbegutachterRes)
|
||||
{
|
||||
$tokenGenRes = $projektbetreuer->generateZweitbegutachterToken($zweitbetr->person_id, $projektarbeit_id);
|
||||
$zweitbegutachterResults = $zweitbegutachter->result;
|
||||
|
||||
if (!$tokenGenRes)
|
||||
echo "<font color=\"#FF0000\">" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "</font><br> ";
|
||||
|
||||
$zweitbetr = $projektbetreuer->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid);
|
||||
|
||||
if (!$zweitbetr)
|
||||
echo "<font color=\"#FF0000\">" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "</font><br> ";
|
||||
|
||||
$intern = isset($zweitbetr->uid);
|
||||
$mail_link = $intern ? $mail_fulllink : $mail_baselink;
|
||||
|
||||
$zweitbetmaildata = array();
|
||||
$zweitbetmaildata['geehrt'] = "geehrte" . ($zweitbetr->anrede == "Herr" ? "r" : "");
|
||||
$zweitbetmaildata['anrede'] = $zweitbetr->anrede;
|
||||
$zweitbetmaildata['betreuer_voller_name'] = $zweitbetr->voller_name;
|
||||
$zweitbetmaildata['student_anrede'] = $maildata['student_anrede'];
|
||||
$zweitbetmaildata['student_voller_name'] = $maildata['student_voller_name'];
|
||||
$zweitbetmaildata['abgabetyp'] = $abgabetyp;
|
||||
$zweitbetmaildata['parbeituebersichtlink'] = $intern ? $maildata['parbeituebersichtlink'] : "";
|
||||
$zweitbetmaildata['bewertunglink'] = $num_rows_sem >= 1 ? "<p><a href='$mail_link'>Zur Beurteilung der Arbeit</a></p>" : "";
|
||||
$zweitbetmaildata['token'] = $num_rows_sem >= 1 && isset($zweitbetr->zugangstoken) && !$intern ? "<p>Zugangstoken: " . $zweitbetr->zugangstoken . "</p>" : "";
|
||||
|
||||
$mailres = sendSanchoMail(
|
||||
'ParbeitsbeurteilungEndupload',
|
||||
$zweitbetmaildata,
|
||||
$zweitbetr->email,
|
||||
"Masterarbeitsbetreuung",
|
||||
'sancho_header_min_bw.jpg',
|
||||
'sancho_footer_min_bw.jpg',
|
||||
$user . "@" . DOMAIN
|
||||
);
|
||||
|
||||
if (!$mailres)
|
||||
foreach ($zweitbegutachterResults as $begutachter)
|
||||
{
|
||||
echo "<font color=\"#FF0000\">" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "</font><br> ";
|
||||
// token generieren, wenn noch nicht vorhanden und notwendig (wird in methode überprüft)
|
||||
$tokenGenRes = $zweitbegutachter->generateZweitbegutachterToken($begutachter->person_id, $projektarbeit_id);
|
||||
|
||||
if (!$tokenGenRes)
|
||||
echo "<font color=\"#FF0000\">" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "</font><br> ";
|
||||
|
||||
// Zweitbegutachter (evtl. mit Token) holen
|
||||
$zweitbegutachterMitToken = new projektbetreuer();
|
||||
$begutachterMitTokenRes = $zweitbegutachterMitToken->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid, $begutachter->person_id);
|
||||
|
||||
if (!$begutachterMitTokenRes)
|
||||
echo "<font color=\"#FF0000\">" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "</font><br> ";
|
||||
|
||||
// Email an Zweitbegutachter senden
|
||||
if (isset($zweitbegutachterMitToken->result[0]))
|
||||
{
|
||||
$begutachterMitToken = $zweitbegutachterMitToken->result[0];
|
||||
|
||||
$path = $begutachterMitToken->betreuerart_kurzbz == 'Zweitbegutachter' ? 'ProjektarbeitsbeurteilungZweitbegutachter' : 'ProjektarbeitsbeurteilungErstbegutachter';
|
||||
$mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/$path";
|
||||
$mail_fulllink = "$mail_baselink?projektarbeit_id=".$projektarbeit_id."&uid=".$row_std->uid;
|
||||
$intern = isset($begutachterMitToken->uid);
|
||||
$mail_link = $intern ? $mail_fulllink : $mail_baselink;
|
||||
|
||||
$zweitbetmaildata = array();
|
||||
$zweitbetmaildata['geehrt'] = "geehrte" . ($begutachterMitToken->anrede == "Herr" ? "r" : "");
|
||||
$zweitbetmaildata['anrede'] = $begutachterMitToken->anrede;
|
||||
$zweitbetmaildata['betreuer_voller_name'] = $begutachterMitToken->voller_name;
|
||||
$zweitbetmaildata['student_anrede'] = $maildata['student_anrede'];
|
||||
$zweitbetmaildata['student_voller_name'] = $maildata['student_voller_name'];
|
||||
$zweitbetmaildata['abgabetyp'] = $abgabetyp;
|
||||
$zweitbetmaildata['parbeituebersichtlink'] = $intern ? $maildata['parbeituebersichtlink'] : "";
|
||||
$zweitbetmaildata['bewertunglink'] = $num_rows_sem >= 1 ? "<p><a href='$mail_link'>Zur Beurteilung der Arbeit</a></p>" : "";
|
||||
$zweitbetmaildata['token'] = $num_rows_sem >= 1 && isset($begutachterMitToken->zugangstoken) && !$intern ? "<p>Zugangstoken: " . $begutachterMitToken->zugangstoken . "</p>" : "";
|
||||
|
||||
$mailres = sendSanchoMail(
|
||||
'ParbeitsbeurteilungEndupload',
|
||||
$zweitbetmaildata,
|
||||
$begutachterMitToken->email,
|
||||
$subject,
|
||||
'sancho_header_min_bw.jpg',
|
||||
'sancho_footer_min_bw.jpg',
|
||||
$user . "@" . DOMAIN
|
||||
);
|
||||
|
||||
if (!$mailres)
|
||||
{
|
||||
echo "<font color=\"#FF0000\">" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "</font><br> ";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -922,7 +922,7 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
|
||||
$name = $mit->anrede.' '.$mit->vorname.' '.$mit->nachname.' ('.$mit->kurzbz.')';
|
||||
|
||||
$betreff = 'Notenfreigabe ' . $lv->bezeichnung . ' ' . $lv->orgform_kurzbz . ' - ' . $studienplan_bezeichnung;
|
||||
$mail = new mail($adressen, 'vilesci@' . DOMAIN, $betreff, '');
|
||||
$mail = new mail($adressen, 'no-reply@' . DOMAIN, $betreff, '');
|
||||
$htmlcontent = "<html>
|
||||
<body>
|
||||
$name hat neue Noten für die Lehrveranstaltung\n\n<br>
|
||||
@@ -931,10 +931,10 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
|
||||
<br>eingetragen.\n<br><br>
|
||||
Die Noten können jetzt ins Zeugnis übernommen werden.\n";
|
||||
|
||||
$htmlcontent .= $studlist;
|
||||
$htmlcontent .= $studlist;
|
||||
|
||||
$htmlcontent.= "
|
||||
<br>Anzahl der Noten:" . $neuenoten . "
|
||||
<br>Anzahl der Noten: " . $neuenoten . "
|
||||
<br><br>" . $p->t('abgabetool/mailVerschicktAn') . ": " . $adressen . "
|
||||
</body></html>";
|
||||
$mail->setHTMLContent($htmlcontent);
|
||||
|
||||
@@ -290,7 +290,7 @@ if ($result = $db->db_query($qry)) {
|
||||
'personenkennzeichen' => trim($row->matrikelnr),
|
||||
'geschlecht' => $row->geschlecht,
|
||||
'foto_gesperrt' => $row->foto_sperre, // f/t
|
||||
'foto_url' => $foto_url,
|
||||
'foto_url' => 'Pictures/' . trim($row->person_id) . '.jpg',
|
||||
'studiengruppe' => $student_studiengruppe,
|
||||
'verband' => trim($row->verband),
|
||||
'gruppe' => trim($row->gruppe),
|
||||
|
||||
@@ -150,14 +150,14 @@ if (isset($_GET['betreuerart_kurzbz']))
|
||||
if (isset($_GET['xsl']) && $_GET['xsl'] == 'Zahlung')
|
||||
{
|
||||
$requestdata = $_SERVER['QUERY_STRING'];
|
||||
|
||||
|
||||
$log = new Webservicelog();
|
||||
$log->webservicetyp_kurzbz = 'content';
|
||||
$log->request_id = isset($_GET['buchungsnummern']) && !empty($_GET['buchungsnummern']) ? $_GET['buchungsnummern'] : NULL;
|
||||
$log->beschreibung = 'Zahlungsbestaetigungsdownload';
|
||||
$log->request_data = $requestdata;
|
||||
$log->execute_user = get_uid();
|
||||
|
||||
|
||||
$log->save(true);
|
||||
}
|
||||
|
||||
@@ -207,6 +207,7 @@ if (isset($_GET['xsl']) && ($_GET['xsl'] === 'Projektbeurteilung'))
|
||||
switch ($_GET['betreuerart_kurzbz'])
|
||||
{
|
||||
case 'Begutachter' :
|
||||
case 'Senatsvorsitz' :
|
||||
$xsl = 'ProjektBeurteilungBA';
|
||||
break;
|
||||
case 'Erstbegutachter' :
|
||||
|
||||
@@ -1,339 +1,343 @@
|
||||
<?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> </td>
|
||||
<td> </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><NR:".$fragen->nummer.($fragen->level!=""?" Level: ".$fragen->level."":"").($fragen->demo=="t"?" Demo":"")."></b><br> ";
|
||||
//Sound einbinden
|
||||
if($spracheFrage->audio!='')
|
||||
{
|
||||
echo ' <audio src="../sound.php?src=frage&frage_id='.$spracheFrage->frage_id.'&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&frage_id=$spracheFrage->frage_id&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;"> '.$vorschlag->text.'</td></tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<tr><td style="border-right:1px solid;">'.$vor->nummer.'</td><td> '.$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&vorschlag_id=$vor->vorschlag_id&sprache=".$sprache."' /><br/>";
|
||||
if ($loesungen)
|
||||
{
|
||||
echo "<br>".$vor->punkte."</td>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "</td>";
|
||||
}
|
||||
|
||||
$anzahlBild++;
|
||||
}
|
||||
if($vorschlag->audio!='')
|
||||
{
|
||||
echo ' <audio src="../sound.php?src=vorschlag&vorschlag_id='.$vorschlag->vorschlag_id.'&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> </td>
|
||||
<td> </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">Offsetpunkte:</td>
|
||||
<td>'.$gebietdetails->offsetpunkte.'</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><NR:".$fragen->nummer.($fragen->level!=""?" Level: ".$fragen->level."":"").($fragen->demo=="t"?" Demo":"")."></b><br> ";
|
||||
//Sound einbinden
|
||||
if($spracheFrage->audio!='')
|
||||
{
|
||||
echo ' <audio src="../sound.php?src=frage&frage_id='.$spracheFrage->frage_id.'&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&frage_id=$spracheFrage->frage_id&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;"> '.$vorschlag->text.'</td></tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<tr><td style="border-right:1px solid;">'.$vor->nummer.'</td><td> '.$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&vorschlag_id=$vor->vorschlag_id&sprache=".$sprache."' /><br/>";
|
||||
if ($loesungen)
|
||||
{
|
||||
echo "<br>".$vor->punkte."</td>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "</td>";
|
||||
}
|
||||
|
||||
$anzahlBild++;
|
||||
}
|
||||
if($vorschlag->audio!='')
|
||||
{
|
||||
echo ' <audio src="../sound.php?src=vorschlag&vorschlag_id='.$vorschlag->vorschlag_id.'&sprache='.$sprache.'" controls="controls">
|
||||
<div>
|
||||
<p>Ihr Browser unterstützt dieses Audioelement leider nicht.</p>
|
||||
</div>
|
||||
</audio>';
|
||||
}
|
||||
|
||||
}
|
||||
echo "</table><br><hr>";
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
</body>
|
||||
@@ -783,6 +783,22 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#statusgrund" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-prestudent-tree-rolle-statusgrund" label="Insertamum" flex="1" hidden="true" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#insertamum" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-prestudent-tree-rolle-insertvon" label="Insertvon" flex="1" hidden="true" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#insertvon" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-prestudent-tree-rolle-updateamum" label="Updateamum" flex="1" hidden="true" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#updateamum" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-prestudent-tree-rolle-updatevon" label="Updatevon" flex="1" hidden="true" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#updatevon" />
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
@@ -804,6 +820,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<treecell label="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#bestaetigt_am"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#bewerbung_abgeschicktamum"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#statusgrund"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#insertamum"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#insertvon"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#updateamum"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#updatevon"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
|
||||
+714
-659
File diff suppressed because it is too large
Load Diff
@@ -312,5 +312,42 @@ class berechtigung extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sucht nach Berechtigungen
|
||||
* @param string $searchItem Suchbegriff
|
||||
* @return boolean
|
||||
*/
|
||||
public function searchBerechtigungen($searchItem)
|
||||
{
|
||||
$this->result=array();
|
||||
$qry = 'SELECT * FROM system.tbl_berechtigung WHERE
|
||||
(
|
||||
LOWER(berechtigung_kurzbz) LIKE LOWER(\'%'.$this->db_escape(($searchItem)).'%\')
|
||||
OR
|
||||
LOWER(beschreibung) LIKE LOWER(\'%'.$this->db_escape(($searchItem)).'%\')
|
||||
)';
|
||||
|
||||
$qry .= ' ORDER BY berechtigung_kurzbz';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new berechtigung();
|
||||
|
||||
$obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Berechtigungen';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -663,10 +663,10 @@ class lehreinheit extends basis_db
|
||||
$sql_lkt=mb_substr($sql_lkt,3);
|
||||
$sql_query="SELECT * FROM campus.tbl_zeitsperre
|
||||
WHERE ($sql_lkt) AND
|
||||
( (vondatum<".$this->db_add_param($datum)." AND bisdatum>".$this->db_add_param($datum).")
|
||||
OR (vondatum=".$this->db_add_param($datum)." AND bisdatum=".$this->db_add_param($datum)." AND vonstunde<=".$this->db_add_param($stunde)." AND bisstunde>=".$this->db_add_param($stunde).")
|
||||
OR (vondatum=".$this->db_add_param($datum)." AND bisdatum>".$this->db_add_param($datum)." AND vonstunde<=".$this->db_add_param($stunde).")
|
||||
OR (vondatum<".$this->db_add_param($datum)." AND bisdatum=".$this->db_add_param($datum)." AND bisstunde>=".$this->db_add_param($stunde).") )";
|
||||
(vondatum <= ".$this->db_add_param($datum)." AND
|
||||
bisdatum >= ".$this->db_add_param($datum)." AND
|
||||
(vonstunde <= ". $this->db_add_param($stunde)." OR vonstunde IS NULL) AND
|
||||
(bisstunde >= ". $this->db_add_param($stunde)." OR bisstunde IS NULL))";
|
||||
//echo $sql_query.'<br>';
|
||||
if (!$this->db_query($sql_query))
|
||||
{
|
||||
|
||||
@@ -660,6 +660,8 @@ class lehrstunde extends basis_db
|
||||
$stunde->titel=$row->titel;
|
||||
$stunde->anmerkung=$row->beschreibung;
|
||||
$stunde->anmerkung_lehreinheit=$row->beschreibung;
|
||||
$stunde->updateamum=$row->insertamum;
|
||||
$stunde->updatevon=$row->insertvon;
|
||||
$stunde->farbe='';
|
||||
$this->lehrstunden[]=$stunde;
|
||||
}
|
||||
|
||||
@@ -472,10 +472,65 @@ class projektarbeit extends basis_db
|
||||
|
||||
/**
|
||||
* Prüft ob Projektarbeit aktuell ist (ab bestimmtem Semester).
|
||||
* Masterarbeiten sind ab der Änderung zur Gewichtung der Punkte aktuell,
|
||||
* Bachelorarbeiten schon ab dem Umstieg auf das Online Beurteilungsformular.
|
||||
* @param $projektarbeit_id
|
||||
* @return int -1 wenn Fehler, 0 wenn nicht aktuell, 1 wenn aktuell
|
||||
*/
|
||||
public function projektarbeitIsCurrent($projektarbeit_id)
|
||||
{
|
||||
// paarbeit sollte nur ab einem Studiensemester online bewertet werden
|
||||
$qry="SELECT 1
|
||||
FROM lehre.tbl_projektarbeit
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
|
||||
AND
|
||||
(
|
||||
(
|
||||
projekttyp_kurzbz = 'Diplom'
|
||||
AND tbl_studiensemester.start::date >= (
|
||||
SELECT start
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = 'SS2023'
|
||||
)::date
|
||||
)
|
||||
OR
|
||||
(
|
||||
projekttyp_kurzbz <> 'Diplom'
|
||||
AND tbl_studiensemester.start::date >= (
|
||||
SELECT start
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = 'SS2022'
|
||||
)::date
|
||||
)
|
||||
)
|
||||
LIMIT 1";
|
||||
|
||||
$result_sem=$this->db_query($qry);
|
||||
|
||||
if (!$result_sem)
|
||||
{
|
||||
$this->errormsg = "Fehler beim Ermitteln der Projektarbeit Aktualität";
|
||||
return -1;
|
||||
}
|
||||
|
||||
$num_rows = $this->db_num_rows($result_sem);
|
||||
|
||||
if ($num_rows < 0)
|
||||
{
|
||||
$this->errormsg = "Fehler beim Ermitteln der Anzahl der aktuellen Projektarbeiten";
|
||||
}
|
||||
|
||||
return $num_rows;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft ob Projektarbeit aktuell ist (ab bestimmtem Semester), vor der Änderung zur Gewichtung der Punkte.
|
||||
* @param $projektarbeit_id
|
||||
* @return int -1 wenn Fehler, 0 wenn nicht aktuell, 1 wenn aktuell
|
||||
*/
|
||||
public function projektarbeitIsCurrentBeforeWeightening($projektarbeit_id)
|
||||
{
|
||||
// paarbeit sollte nur ab einem Studiensemester online bewertet werden
|
||||
$qry="SELECT 1
|
||||
|
||||
@@ -395,40 +395,66 @@ class projektbetreuer extends basis_db
|
||||
* @param $erstbegutachter_person_id int person_id des Erstbegutachters
|
||||
* @param $projektarbeit_id int
|
||||
* @param $student_uid string uid des Studenten der Arbeit abgibt
|
||||
* @param $zweitbegutachter_person_id int person_id des Zweitbegutachters (wenn mehrere Zweitbetreuer zu einem Erstbegutachter erwartet werden)
|
||||
* @return object | bool
|
||||
*/
|
||||
public function getZweitbegutachterWithToken($erstbegutachter_person_id, $projektarbeit_id, $student_uid)
|
||||
public function getZweitbegutachterWithToken($erstbegutachter_person_id, $projektarbeit_id, $student_uid, $zweitbegutachter_person_id = null)
|
||||
{
|
||||
$qry_betr="SELECT betr.person_id, betr.projektarbeit_id, pers.anrede, betr.zugangstoken, betr.zugangstoken_gueltigbis, tbl_benutzer.uid, kontakt,
|
||||
$qry_betr="SELECT DISTINCT ON (betr.person_id) betr.person_id, betr.projektarbeit_id, pers.anrede, betr.zugangstoken, betr.zugangstoken_gueltigbis,
|
||||
tbl_benutzer.uid, kontakt, betr.betreuerart_kurzbz,
|
||||
trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as voller_name,
|
||||
CASE WHEN tbl_benutzer.uid IS NULL THEN kontakt ELSE tbl_benutzer.uid || '@".DOMAIN."' END AS email, abg.abgabedatum
|
||||
FROM lehre.tbl_projektbetreuer betr
|
||||
JOIN lehre.tbl_projektarbeit parb ON betr.projektarbeit_id = parb.projektarbeit_id
|
||||
JOIN lehre.tbl_projektarbeit parb ON betr.projektarbeit_id = parb.projektarbeit_id
|
||||
JOIN public.tbl_person pers ON betr.person_id = pers.person_id
|
||||
LEFT JOIN public.tbl_kontakt ON pers.person_id = tbl_kontakt.person_id AND kontakttyp = 'email' AND zustellung = true
|
||||
LEFT JOIN public.tbl_benutzer ON pers.person_id = tbl_benutzer.person_id
|
||||
LEFT JOIN campus.tbl_paabgabe abg ON betr.projektarbeit_id = abg.projektarbeit_id AND abg.paabgabetyp_kurzbz = 'end'
|
||||
WHERE betr.betreuerart_kurzbz = 'Zweitbegutachter'
|
||||
WHERE
|
||||
(
|
||||
(
|
||||
betr.betreuerart_kurzbz = 'Zweitbegutachter'
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM lehre.tbl_projektbetreuer
|
||||
WHERE person_id = ".$this->db_add_param($erstbegutachter_person_id, FHC_INTEGER)."
|
||||
AND betreuerart_kurzbz = 'Erstbegutachter'
|
||||
AND projektarbeit_id = betr.projektarbeit_id
|
||||
)
|
||||
)
|
||||
OR /* either Zweitbegutachter of masterarbeit, or Kommissionsprüfer if Kommission */
|
||||
(
|
||||
betr.betreuerart_kurzbz = 'Senatsmitglied'
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM lehre.tbl_projektbetreuer
|
||||
WHERE person_id = ".$this->db_add_param($erstbegutachter_person_id, FHC_INTEGER)."
|
||||
AND betreuerart_kurzbz = 'Senatsvorsitz'
|
||||
AND projektarbeit_id = betr.projektarbeit_id
|
||||
)
|
||||
)
|
||||
)
|
||||
AND betr.projektarbeit_id = ".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
|
||||
AND parb.student_uid = ".$this->db_add_param($student_uid)."
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM lehre.tbl_projektbetreuer
|
||||
WHERE person_id = ".$this->db_add_param($erstbegutachter_person_id, FHC_INTEGER)."
|
||||
AND betreuerart_kurzbz = 'Erstbegutachter'
|
||||
AND projektarbeit_id = betr.projektarbeit_id
|
||||
)
|
||||
AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)
|
||||
ORDER BY betr.insertamum DESC
|
||||
LIMIT 1";
|
||||
AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)";
|
||||
|
||||
if (isset($zweitbegutachter_person_id))
|
||||
{
|
||||
$qry_betr .= " AND betr.person_id = ".$this->db_add_param($zweitbegutachter_person_id, FHC_INTEGER);
|
||||
}
|
||||
|
||||
$qry_betr .= " ORDER BY betr.person_id DESC,
|
||||
(CASE WHEN EXISTS ( /* if multiple accounts, prioritize mitarbeiter */
|
||||
SELECT 1 FROM public.tbl_mitarbeiter ma
|
||||
WHERE ma.mitarbeiter_uid = tbl_benutzer.uid
|
||||
) THEN 0 ELSE 1 END), betr.insertamum DESC";
|
||||
|
||||
if ($betr=$this->db_query($qry_betr))
|
||||
{
|
||||
$row_betr = $this->db_fetch_object($betr);
|
||||
|
||||
if ($row_betr)
|
||||
return $row_betr;
|
||||
else
|
||||
return false;
|
||||
$result = array();
|
||||
while ($row_betr = $this->db_fetch_object())
|
||||
{
|
||||
$this->result[] = $row_betr;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -451,7 +477,7 @@ class projektbetreuer extends basis_db
|
||||
LEFT JOIN public.tbl_benutzer USING(person_id)
|
||||
WHERE projektarbeit_id = ".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
|
||||
AND tbl_projektbetreuer.person_id = ".$this->db_add_param($zweitbegutachter_person_id, FHC_INTEGER)."
|
||||
AND betreuerart_kurzbz = 'Zweitbegutachter'
|
||||
AND betreuerart_kurzbz IN ('Zweitbegutachter', 'Senatsmitglied')
|
||||
LIMIT 1";
|
||||
|
||||
if ($betreueruidres = $this->db_query($betreuerUidQry))
|
||||
@@ -494,7 +520,7 @@ class projektbetreuer extends basis_db
|
||||
zugangstoken_gueltigbis = CURRENT_DATE + interval '1 year'
|
||||
WHERE projektarbeit_id = " . $this->db_add_param($projektarbeit_id, FHC_INTEGER) . "
|
||||
AND person_id = " . $this->db_add_param($row_betr->person_id, FHC_INTEGER) . "
|
||||
AND betreuerart_kurzbz = 'Zweitbegutachter'";
|
||||
AND betreuerart_kurzbz IN ('Zweitbegutachter', 'Senatsmitglied')";
|
||||
|
||||
if ($this->db_query($qry_upd))
|
||||
{
|
||||
|
||||
@@ -718,10 +718,10 @@ class projektphase extends basis_db
|
||||
(
|
||||
(
|
||||
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
|
||||
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
|
||||
AND (tbl_projekt.ende + interval '7 month 1 day' >=now() OR tbl_projekt.ende is null)
|
||||
) AND (
|
||||
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
|
||||
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
|
||||
AND (tbl_projektphase.ende + interval '7 month 1 day' >=now() OR tbl_projektphase.ende is null)
|
||||
)
|
||||
)
|
||||
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
|
||||
@@ -787,10 +787,10 @@ class projektphase extends basis_db
|
||||
(
|
||||
(
|
||||
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
|
||||
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
|
||||
AND (tbl_projekt.ende + interval '7 month 1 day' >=now() OR tbl_projekt.ende is null)
|
||||
) AND (
|
||||
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
|
||||
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
|
||||
AND (tbl_projektphase.ende + interval '7 month 1 day' >=now() OR tbl_projektphase.ende is null)
|
||||
)
|
||||
)
|
||||
AND mitarbeiter_uid = ".$this->db_add_param($mitarbeiter_uid)."
|
||||
|
||||
@@ -52,6 +52,7 @@ class statistik extends basis_db
|
||||
// Daten der Statistik
|
||||
public $data; // DB ressource
|
||||
public $html;
|
||||
public $countRows;
|
||||
public $csv;
|
||||
public $json;
|
||||
|
||||
@@ -510,6 +511,7 @@ class statistik extends basis_db
|
||||
$this->html='';
|
||||
$this->csv='';
|
||||
$this->json=array();
|
||||
$this->countRows=0;
|
||||
set_time_limit(120);
|
||||
|
||||
if($this->sql!='')
|
||||
@@ -572,6 +574,7 @@ class statistik extends basis_db
|
||||
$this->json[] = $row;
|
||||
$this->html.= '</tr>';
|
||||
$this->csv=substr($this->csv,0,-1)."\n";
|
||||
$this->countRows++;
|
||||
}
|
||||
$this->html.= '</tbody>';
|
||||
}
|
||||
@@ -586,8 +589,7 @@ class statistik extends basis_db
|
||||
|
||||
function getHtmlTable($id, $class='')
|
||||
{
|
||||
|
||||
return '<table class="'.$class.'" id="'.$id.'">'.$this->html.'</table>';
|
||||
return '<p>'.$this->countRows.' Zeilen</p><table class="'.$class.'" id="'.$id.'">'.$this->html.'</table>';
|
||||
}
|
||||
|
||||
function getCSV()
|
||||
|
||||
@@ -83,12 +83,14 @@ $this->phrasen['abgabetool/gelesenUndAkzeptiert']='Gelesen und akzeptiert';
|
||||
$this->phrasen['abgabetool/erklaerungNichtAkzeptiert']='Erklärung nicht akzeptiert';
|
||||
$this->phrasen['abgabetool/downloadProjektarbeit']='Dokument herunterladen';
|
||||
$this->phrasen['abgabetool/zweitBegutachter']='ZweitbegutachterIn';
|
||||
$this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Zugangstoken an ZweitbegutachterIn noch einmal senden';
|
||||
$this->phrasen['abgabetool/zweitbegutachterMailGesendet']='Mail an ZweitbegutachterIn (%s) gesendet';
|
||||
$this->phrasen['abgabetool/zweitbetreuerMailSenden']='Mail an ZweitbegutachterIn (%s) senden';
|
||||
$this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='keine Zustellmail für Zweitbegutachter vorhanden!';
|
||||
$this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Zugangstoken noch einmal senden';
|
||||
$this->phrasen['abgabetool/zweitbegutachterMailGesendet']='Mail an %s (%s) gesendet';
|
||||
$this->phrasen['abgabetool/zweitbetreuerMailSenden']='Mail an %s (%s) senden';
|
||||
$this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='keine Zustellmail vorhanden!';
|
||||
$this->phrasen['abgabetool/projektbeurteilungDownload']='Projektbeurteilung herunterladen';
|
||||
$this->phrasen['abgabetool/projektbeurteilungErstDownload']='Erst-/Begutachter';
|
||||
$this->phrasen['abgabetool/projektbeurteilungZweitDownload']='Zweitbegutachter';
|
||||
$this->phrasen['abgabetool/fehlerErmittelnEndabgabeProjektarbeit']='Fehler beim Ermitteln des Enduplaods der Projektarbeit';
|
||||
$this->phrasen['abgabetool/senatsMitglied']='Mitglied Prüfungssenat';
|
||||
$this->phrasen['abgabetool/abgegeben']='Abgegeben, in Beurteilung';
|
||||
?>
|
||||
|
||||
@@ -84,11 +84,13 @@ $this->phrasen['abgabetool/erklaerungNichtAkzeptiert']='Declaration not accepted
|
||||
$this->phrasen['abgabetool/downloadProjektarbeit']='Download File';
|
||||
$this->phrasen['abgabetool/zweitBegutachter']='Second assessor';
|
||||
$this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Resend access token to second assessor';
|
||||
$this->phrasen['abgabetool/zweitbetreuerMailSenden']='Send mail to second assessor (%s)';
|
||||
$this->phrasen['abgabetool/zweitbegutachterMailGesendet']='Mail sent to second assessor (%s)';
|
||||
$this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='Second assessor has no delivery mail adress!';
|
||||
$this->phrasen['abgabetool/zweitbetreuerMailSenden']='Send mail to assessor %s (%s)';
|
||||
$this->phrasen['abgabetool/zweitbegutachterMailGesendet']='Mail sent to assessor %s (%s)';
|
||||
$this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='Assessor has no delivery mail adress!';
|
||||
$this->phrasen['abgabetool/projektbeurteilungDownload']='Thesis-Assessment download';
|
||||
$this->phrasen['abgabetool/projektbeurteilungErstDownload']='First-/Assessor';
|
||||
$this->phrasen['abgabetool/projektbeurteilungZweitDownload']='Second Assessor';
|
||||
$this->phrasen['abgabetool/fehlerErmittelnEndabgabeProjektarbeit']='Error when getting endupload of project work';
|
||||
$this->phrasen['abgabetool/senatsMitglied']='Examiner';
|
||||
$this->phrasen['abgabetool/abgegeben']='handed in, in assessment';
|
||||
?>
|
||||
|
||||
@@ -257,7 +257,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
|
||||
if($row->typ=='d')
|
||||
{
|
||||
echo ' <niveau_code>UNESCO ISCED 7</niveau_code>';
|
||||
echo ' <zulassungsvoraussetzungen_deutsch><![CDATA[Allgemeine Universitätsreife (vgl. §4 Abs. 3 FHStG idgF), Berufsreifeprüfung bzw. Studienberechtigungsprüfung oder einschlägige berufliche Qualifikation (Lehrabschluss bzw. Abschluss einer berufsbildenden mittleren Schule mit Zusatzprüfungen). Die Aufnahme erfolgt auf Basis eines Auswahlverfahrens (Werdegang, Eignungstest, Bewerbungsgespräch).]]></zulassungsvoraussetzungen_deutsch>';
|
||||
echo ' <zulassungsvoraussetzungen_deutsch><![CDATA[Allgemeine Universitätsreife (vgl. §4 Abs. 3 FHG idgF), Berufsreifeprüfung bzw. Studienberechtigungsprüfung oder einschlägige berufliche Qualifikation (Lehrabschluss bzw. Abschluss einer berufsbildenden mittleren Schule mit Zusatzprüfungen). Die Aufnahme erfolgt auf Basis eines Auswahlverfahrens (Werdegang, Eignungstest, Bewerbungsgespräch).]]></zulassungsvoraussetzungen_deutsch>';
|
||||
echo ' <zulassungsvoraussetzungen_englisch><![CDATA[Austrian or equivalent foreign school leaving certificate (Reifeprüfung), university entrance examination certificate (Studienberechtigungsprüfung), certificate or equivalent relevant professional qualification (Berufsreifeprüfung) plus entrance examination equal to the university entrance examination. Admission is on the basis of a selection process (including entrance exam and interview, professional background is considered).]]></zulassungsvoraussetzungen_englisch>';
|
||||
echo ' <anforderungen_deutsch><![CDATA[Das Studium erfordert die positive Absolvierung von Lehrveranstaltungen (Vorlesungen, Übungen, Seminaren, Projekten, integrierten Lehrveranstaltungen) im Ausmaß von jeweils 30 ECTS pro Semester gemäß dem vorgeschriebenen Studienplan. Die Ausbildung integriert technische, wirtschaftliche, organisatorische und persönlichkeitsbildende Elemente. '.$anforderungen_praxis.' Im Rahmen des Studiums ist eine Diplomarbeit zu verfassen und eine abschließende Prüfung (Diplomprüfung) zu absolvieren. Der Studiengang (Kennzahl '.$studiengang_kz.') ist von der AQ Austria akkreditiert.]]></anforderungen_deutsch>';
|
||||
echo ' <anforderungen_englisch><![CDATA[The program requires the positive completion of all courses (lectures, labs, seminars, project work, and integrated courses) to the extend of 30 ECTS per semester according to the curriculum. The program integrates technical, economical, management and personal study elements. '.$anforderungen_praxiseng.' The degree is awarded upon the successful completion of a diploma theses and the final examination. The program (classification number '.$studiengang_kz.') is accredited by AQ Austria.]]></anforderungen_englisch>';
|
||||
@@ -269,7 +269,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
|
||||
elseif($row->typ=='m')
|
||||
{
|
||||
echo ' <niveau_code>UNESCO ISCED 7</niveau_code>';
|
||||
echo ' <zulassungsvoraussetzungen_deutsch><![CDATA[Die fachliche Zugangsvoraussetzung (vgl. §4 Abs. 2 FHStG idgF) zu einem FH-Masterstudiengang ist ein abgeschlossener facheinschlägiger FH-Bachelorstudiengang oder der Abschluss eines gleichwertigen Studiums an einer anerkannten inländischen oder ausländischen postsekundären Bildungseinrichtung. Die Aufnahme in den Studiengang erfolgt auf Basis eines Auswahlverfahrens.]]></zulassungsvoraussetzungen_deutsch>';
|
||||
echo ' <zulassungsvoraussetzungen_deutsch><![CDATA[Die fachliche Zugangsvoraussetzung (vgl. §4 Abs. 2 FHG idgF) zu einem FH-Masterstudiengang ist ein abgeschlossener facheinschlägiger FH-Bachelorstudiengang oder der Abschluss eines gleichwertigen Studiums an einer anerkannten inländischen oder ausländischen postsekundären Bildungseinrichtung. Die Aufnahme in den Studiengang erfolgt auf Basis eines Auswahlverfahrens.]]></zulassungsvoraussetzungen_deutsch>';
|
||||
echo ' <zulassungsvoraussetzungen_englisch><![CDATA[ Admission to the master\'s degree program is granted on the basis of the successful completion of a relevant bachelor\'s degree program or a comparable Austrian or foreign post-secondary degree acknowledged to be its equivalent. Admission is on the basis of a selection process. ]]></zulassungsvoraussetzungen_englisch>';
|
||||
echo ' <anforderungen_deutsch><![CDATA[Das Studium erfordert die positive Absolvierung von Lehrveranstaltungen (Vorlesungen, Übungen, Seminaren, Projekten, integrierten Lehrveranstaltungen) im Ausmaß von jeweils 30 ECTS pro Semester gemäß dem vorgeschriebenen Studienplan. Die Ausbildung integriert technische, wirtschaftliche, organisatorische und persönlichkeitsbildende Elemente. Im Rahmen des Studiums ist eine Masterarbeit zu verfassen und eine abschließende Prüfung (Masterprüfung) zu absolvieren. Der Studiengang (Kennzahl '.$studiengang_kz.') ist von der AQ Austria akkreditiert.]]></anforderungen_deutsch>';
|
||||
echo ' <anforderungen_englisch><![CDATA[The program requires the positive completion of all courses (lectures, labs, seminars, project work, and integrated courses) to the extend of 30 ECTS per semester according to the curriculum. The program integrates technical, economical, management and personal study elements. The degree is awarded upon the successful completion of a Master´s Thesis and the final examination. The program (classification number '.$studiengang_kz.') is accredited by AQ Austria.]]></anforderungen_englisch>';
|
||||
@@ -281,7 +281,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
|
||||
elseif($row->typ=='b')
|
||||
{
|
||||
echo ' <niveau_code>UNESCO ISCED 6</niveau_code>';
|
||||
echo ' <zulassungsvoraussetzungen_deutsch><![CDATA[Allgemeine Universitätsreife (vgl. §4 Abs. 3 FHStG idgF), Berufsreifeprüfung bzw. Studienberechtigungsprüfung oder einschlägige berufliche Qualifikation (Lehrabschluss bzw. Abschluss einer berufsbildenden mittleren Schule mit Zusatzprüfungen). Die Aufnahme erfolgt auf Basis eines Auswahlverfahrens (Werdegang, Eignungstest, Bewerbungsgespräch).]]></zulassungsvoraussetzungen_deutsch>';
|
||||
echo ' <zulassungsvoraussetzungen_deutsch><![CDATA[Allgemeine Universitätsreife (vgl. §4 Abs. 3 FHG idgF), Berufsreifeprüfung bzw. Studienberechtigungsprüfung oder einschlägige berufliche Qualifikation (Lehrabschluss bzw. Abschluss einer berufsbildenden mittleren Schule mit Zusatzprüfungen). Die Aufnahme erfolgt auf Basis eines Auswahlverfahrens (Werdegang, Eignungstest, Bewerbungsgespräch).]]></zulassungsvoraussetzungen_deutsch>';
|
||||
echo ' <zulassungsvoraussetzungen_englisch><![CDATA[Austrian or equivalent foreign school leaving certificate (Reifeprüfung), university entrance examination certificate (Studienberechtigungsprüfung), certificate or equivalent relevant professional qualification (Berufsreifeprüfung) plus entrance examination equal to the university entrance examination. Admission is on the basis of a selection process. (including entrance exam and interview, professional background is considered).]]></zulassungsvoraussetzungen_englisch>';
|
||||
echo ' <anforderungen_deutsch><![CDATA[Das Studium erfordert die positive Absolvierung von Lehrveranstaltungen (Vorlesungen, Übungen, Seminaren, Projekten, integrierten Lehrveranstaltungen) im Ausmaß von jeweils 30 ECTS pro Semester gemäß dem vorgeschriebenen Studienplan. Die Ausbildung integriert technische, wirtschaftliche, organisatorische und persönlichkeitsbildende Elemente. '.$anforderungen_praxis.' Im Rahmen des Studiums ist eine Bachelorarbeit zu verfassen und eine abschließende Prüfung (Bachelorprüfung) zu absolvieren. Der Studiengang (Kennzahl '.$studiengang_kz.') ist von der AQ Austria akkreditiert.]]></anforderungen_deutsch>';
|
||||
echo ' <anforderungen_englisch><![CDATA[The program requires the positive completion of all courses (lectures, labs, seminars, project work, and integrated courses) to the extend of 30 ECTS per semester according to the curriculum. The program integrates technical, economical, management and personal study elements. '.$anforderungen_praxiseng.' The degree is awarded upon the successful completion of 1 bachelor theses and the final examination. The program (classification number '.$studiengang_kz.') is accredited by AQ Austria.]]></anforderungen_englisch>';
|
||||
@@ -299,8 +299,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
|
||||
elseif($row->typ=='l' || $row->typ=='k' || $row->typ=='e')
|
||||
{
|
||||
echo ' <niveau_code>UNESCO ISCED 7</niveau_code>';
|
||||
echo ' <niveau_deutsch>Lehrgang zur Weiterbildung nach §9 FHStG idgF.</niveau_deutsch>';
|
||||
echo ' <niveau_englisch>Certificate Program for Further Education subjected to § 9 FHStG</niveau_englisch>';
|
||||
echo ' <niveau_deutsch>Lehrgang zur Weiterbildung nach §9 FHG idgF.</niveau_deutsch>';
|
||||
echo ' <niveau_englisch>Certificate Program for Further Education subjected to § 9 FHG</niveau_englisch>';
|
||||
echo ' <zulassungsvoraussetzungen_deutsch><![CDATA[Facheinschlägiger Studienabschluss oder einschlägige Berufserfahrung]]></zulassungsvoraussetzungen_deutsch>';
|
||||
echo ' <zulassungsvoraussetzungen_englisch><![CDATA[Appropriate university degree or appropriate work experience]]></zulassungsvoraussetzungen_englisch>';
|
||||
echo ' <anforderungen_deutsch><![CDATA[Das Studium erfordert die positive Absolvierung von Lehrveranstaltungen (Vorlesungen, Übungen, Seminaren, Projekten, integrierten Lehrveranstaltungen) im Ausmaß der laut Studienplan vorgeschriebenen ECTS. Die Ausbildung integriert technische, wirtschaftliche, organisatorische und persönlichkeitsbildende Elemente. Im Rahmen des Master-Lehrgangs ist eine Master Thesis zu verfassen und eine abschließende Prüfung (Masterprüfung) zu absolvieren. Der Lehrgang ist vom Kollegium der FH Technikum Wien genehmigt und der AQ Austria (Kennzahl '.$studiengang_kz.') gemeldet.]]></anforderungen_deutsch>';
|
||||
|
||||
@@ -119,6 +119,10 @@ foreach($ps->result as $row)
|
||||
<ROLLE:statusgrund_id><![CDATA['.$row->statusgrund_id.']]></ROLLE:statusgrund_id>
|
||||
<ROLLE:statusgrund><![CDATA['.(isset($statusgrund_arr[$row->statusgrund_id])?$statusgrund_arr[$row->statusgrund_id]:'').']]></ROLLE:statusgrund>
|
||||
<ROLLE:lehrverband><![CDATA['.$lehrverband.']]></ROLLE:lehrverband>
|
||||
<ROLLE:insertamum><![CDATA['.$datum->formatDatum($row->insertamum,'d.m.Y H:i:s').']]></ROLLE:insertamum>
|
||||
<ROLLE:insertvon><![CDATA['.$row->insertvon.']]></ROLLE:insertvon>
|
||||
<ROLLE:updateamum><![CDATA['.$datum->formatDatum($row->updateamum,'d.m.Y H:i:s').']]></ROLLE:updateamum>
|
||||
<ROLLE:updatevon><![CDATA['.$row->updatevon.']]></ROLLE:updatevon>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
';
|
||||
|
||||
@@ -32,6 +32,7 @@ require_once('dbupdate_3.4/26173_index_webservicelog.php');
|
||||
require_once('dbupdate_3.4/24682_reihungstest_zugangscode_fuer_login.php');
|
||||
require_once('dbupdate_3.4/17512_fehlercode_constraints.php');
|
||||
require_once('dbupdate_3.4/27388_anrechnungen_zeitfenster_pflegen.php');
|
||||
require_once('dbupdate_3.4/19154_beurteilungsformulare_pruefungssenat.php');
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
if (! defined('DB_NAME')) exit('No direct script access allowed');
|
||||
|
||||
// lehre.tbl_betreuerart: add type Senatsvorsitz
|
||||
if($result = $db->db_query("SELECT 1 FROM lehre.tbl_betreuerart WHERE betreuerart_kurzbz='Senatsvorsitz'"))
|
||||
{
|
||||
if($db->db_num_rows($result)==0)
|
||||
{
|
||||
$qry = "INSERT INTO lehre.tbl_betreuerart(betreuerart_kurzbz, beschreibung) VALUES('Senatsvorsitz', 'Vorsitz Prüfungssenat');";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>Betreuerart: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Neue Betreuerart Senatsvorsitz in lehre.tbl_betreuerart hinzugefügt';
|
||||
}
|
||||
}
|
||||
|
||||
// lehre.tbl_betreuerart: add type Senatsmitglied
|
||||
if($result = $db->db_query("SELECT 1 FROM lehre.tbl_betreuerart WHERE betreuerart_kurzbz='Senatsmitglied'"))
|
||||
{
|
||||
if($db->db_num_rows($result)==0)
|
||||
{
|
||||
$qry = "INSERT INTO lehre.tbl_betreuerart(betreuerart_kurzbz, beschreibung) VALUES('Senatsmitglied', 'Mitglied Prüfungssenat');";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>Betreuerart: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Neue Betreuerart Senatsmitglied in lehre.tbl_betreuerart hinzugefügt';
|
||||
}
|
||||
}
|
||||
@@ -277,6 +277,14 @@ $fehlerArr = array(
|
||||
'fehlertyp_kurzbz' => 'error',
|
||||
'app' => 'core'
|
||||
),
|
||||
array(
|
||||
'fehlercode' => 'CORE_STUDENTSTATUS_0015',
|
||||
'fehler_kurzbz' => 'AktiverStudentstatusOhneKontobuchung',
|
||||
'fehlercode_extern' => null,
|
||||
'fehlertext' => 'Keine Kontobuchung bei aktivem Studentstatus (prestudent_id %s, Studiensemester %s)',
|
||||
'fehlertyp_kurzbz' => 'error',
|
||||
'app' => 'core'
|
||||
),
|
||||
array(
|
||||
'fehlercode' => 'CORE_PERSON_0001',
|
||||
'fehler_kurzbz' => 'GbDatumWeitZurueck',
|
||||
|
||||
@@ -1035,7 +1035,6 @@ $filters = array(
|
||||
{"name": "Note"},
|
||||
{"name": "ErstNachname"},
|
||||
{"name": "ErstAbgeschickt"},
|
||||
{"name": "ZweitNachname"},
|
||||
{"name": "ZweitAbgeschickt"}
|
||||
],
|
||||
"filters": []
|
||||
@@ -1111,12 +1110,12 @@ $filters = array(
|
||||
{"name": "Standardkostenstelle"}
|
||||
],
|
||||
"filters": [
|
||||
{
|
||||
"name": "Nachname",
|
||||
"option": "",
|
||||
"condition": "",
|
||||
"operation": ""
|
||||
}
|
||||
{
|
||||
"name": "Nachname",
|
||||
"option": "",
|
||||
"condition": "",
|
||||
"operation": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
',
|
||||
|
||||
+161
-1
@@ -9326,7 +9326,7 @@ Any unusual occurrences
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Total points',
|
||||
'text' => 'total points',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
@@ -10389,6 +10389,166 @@ Any unusual occurrences
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'projektarbeitsbeurteilung',
|
||||
'category' => 'projektarbeitsbeurteilung',
|
||||
'phrase' => 'senatsvorsitz',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Vorsitz Prüfungssenat',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Assessor',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'projektarbeitsbeurteilung',
|
||||
'category' => 'projektarbeitsbeurteilung',
|
||||
'phrase' => 'parbeitDownload',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Download Projektarbeit',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Download thesis',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'projektarbeitsbeurteilung',
|
||||
'category' => 'projektarbeitsbeurteilung',
|
||||
'phrase' => 'betreuerart',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Betreuerart',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Assessor type',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'projektarbeitsbeurteilung',
|
||||
'category' => 'projektarbeitsbeurteilung',
|
||||
'phrase' => 'nebenBegutachter',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Nebenbegutachter*in',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'secondary assessor',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'projektarbeitsbeurteilung',
|
||||
'category' => 'projektarbeitsbeurteilung',
|
||||
'phrase' => 'notenschluesselHinweisGewichtung',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Die Punkteanzahl der Kriterien "1 - 5" wird mit 70%; die Punkteanzahl der Kriterien "6 - 10" mit 30% gewichtet.',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'The number of points for criteria "1 - 5" is weighted with 70%; the number of points for criteria "6 - 10" is weighted with 30%.',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'projektarbeitsbeurteilung',
|
||||
'category' => 'projektarbeitsbeurteilung',
|
||||
'phrase' => 'gewichtet',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'gewichtete',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'weightened',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'projektarbeitsbeurteilung',
|
||||
'category' => 'projektarbeitsbeurteilung',
|
||||
'phrase' => 'sprache',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Sprache',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'language',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'projektarbeitsbeurteilung',
|
||||
'category' => 'projektarbeitsbeurteilung',
|
||||
'phrase' => 'spracheAendernFehler',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Fehler beim Ändern der Sprache',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Error when changing language',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'anrechnung',
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:template match="content">
|
||||
<html>
|
||||
<head>
|
||||
<title><xsl:value-of select="titel" /></title>
|
||||
<link rel="stylesheet" href="../skin/style.css.php" type="text/css" />
|
||||
<link rel="stylesheet" href="../skin/jquery.css" type="text/css" />
|
||||
<link rel="stylesheet" type="text/css" href="../skin/jquery-ui-1.9.2.custom.min.css" />
|
||||
|
||||
<script type="text/javascript" src="../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../FHC-vendor/jquery-tablesorter/css/theme.default.css"/>
|
||||
<script src="../FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.js"></script>
|
||||
<script src="../FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.widgets.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../include/vendor_custom/jquery-tablesorter/tablesort.css"/>
|
||||
|
||||
<script type="text/javascript" src="../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<link rel="stylesheet" href="../skin/tablesort.css" type="text/css"/>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
$(".tablesorter").each(function()
|
||||
{
|
||||
var col=0;
|
||||
var sort=0;
|
||||
var no_sort=1;
|
||||
var classes = $(this).attr("class");
|
||||
var class_arr = classes.split(" ");
|
||||
var headersobj={};
|
||||
|
||||
for(i in class_arr)
|
||||
{
|
||||
if(class_arr[i].indexOf("tablesorter_col_")!=-1)
|
||||
{
|
||||
col = class_arr[i].substr(16);
|
||||
}
|
||||
if(class_arr[i].indexOf("tablesorter_sort_")!=-1)
|
||||
{
|
||||
sort = class_arr[i].substr(17);
|
||||
}
|
||||
if(class_arr[i].indexOf("tablesorter_no_sort_")!=-1)
|
||||
{
|
||||
no_sort = class_arr[i].substr(20);
|
||||
headersobj[no_sort]={sorter:false};
|
||||
}
|
||||
}
|
||||
|
||||
$(this).tablesorter(
|
||||
{
|
||||
sortList: [[col,sort]],
|
||||
widgets: ["zebra","filter"],
|
||||
headers: headersobj
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1><xsl:value-of select="titel" /></h1>
|
||||
<xsl:value-of select="inhalt" disable-output-escaping="yes" />
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet >
|
||||
@@ -149,11 +149,7 @@ else
|
||||
LEFT JOIN PUBLIC.tbl_benutzer ON (PUBLIC.tbl_benutzer.person_id = PUBLIC.tbl_person.person_id)
|
||||
LEFT JOIN PUBLIC.tbl_mitarbeiter ON (PUBLIC.tbl_benutzer.uid = PUBLIC.tbl_mitarbeiter.mitarbeiter_uid)
|
||||
WHERE projektarbeit_id = ".$db->db_add_param($row->projektarbeit_id, FHC_INTEGER)."
|
||||
AND (
|
||||
tbl_projektbetreuer.betreuerart_kurzbz = 'Erstbegutachter'
|
||||
OR tbl_projektbetreuer.betreuerart_kurzbz = 'Betreuer'
|
||||
OR tbl_projektbetreuer.betreuerart_kurzbz = 'Begutachter'
|
||||
)
|
||||
AND tbl_projektbetreuer.betreuerart_kurzbz IN ('Erstbegutachter', 'Betreuer', 'Begutachter', 'Senatsvorsitz')
|
||||
|
||||
UNION
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
require_once('../../../config/vilesci.config.inc.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/studiensemester.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/variable.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
|
||||
@@ -39,8 +40,38 @@ $user = get_uid();
|
||||
$variable = new variable();
|
||||
$variable->loadVariables($user);
|
||||
|
||||
//Studiengänge ermitteln, auf die die Person Rechte hat
|
||||
$qryOE = " SELECT
|
||||
studiengang_kz
|
||||
FROM
|
||||
public.tbl_organisationseinheit
|
||||
JOIN
|
||||
public.tbl_studiengang USING (oe_kurzbz)
|
||||
WHERE
|
||||
oe_kurzbz IN(
|
||||
SELECT oe_kurzbz
|
||||
FROM public.tbl_benutzerfunktion
|
||||
WHERE
|
||||
funktion_kurzbz='Leitung'
|
||||
AND uid='$user'
|
||||
AND (datum_von is null OR datum_von <= now())
|
||||
AND (datum_bis is null OR datum_bis >= now())
|
||||
)
|
||||
OR
|
||||
tbl_organisationseinheit.oe_kurzbz IN(SELECT oe_kurzbz FROM system.vw_berechtigung WHERE uid='$user' AND berechtigung_kurzbz in('admin','assistenz'))";
|
||||
|
||||
if($result_rechte = $db->db_query($qryOE))
|
||||
{
|
||||
while($row_rechte = $db->db_fetch_object($result_rechte))
|
||||
{
|
||||
$stgBerechtigt[] = $row_rechte->studiengang_kz;
|
||||
}
|
||||
}
|
||||
|
||||
$stg_get = isset($_GET['stg'])?$_GET['stg'] : '';
|
||||
|
||||
$stg = new studiengang();
|
||||
$stg->getAll('typ, kurzbz');
|
||||
$stg->loadArray($stgBerechtigt, 'typ, kurzbz');
|
||||
|
||||
if(isset($_GET['stsem']))
|
||||
$stsem = $_GET['stsem'];
|
||||
@@ -65,12 +96,22 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www
|
||||
|
||||
echo '<h2>Übersicht - Verplanung der Lehreinheiten ('.$variable->variable->db_stpl_table.')</h2>';
|
||||
|
||||
echo '<form method="GET">Studiensemester <select name="stsem">';
|
||||
echo '<form method="GET">';
|
||||
echo 'Studiensemester <select name="stsem">';
|
||||
foreach ($stsem_obj->studiensemester as $row)
|
||||
{
|
||||
echo '<option value="'.$row->studiensemester_kurzbz.'" '.($row->studiensemester_kurzbz==$stsem?'selected':'').'>'.$row->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
echo '</select> <input type="submit" value="Anzeigen"></form>';
|
||||
echo '</select><br>';
|
||||
echo 'Studiengang <select name="stg">';
|
||||
echo '<option value="">-- Alle Berechtigten --</option>';
|
||||
foreach($stg->result as $row_stg)
|
||||
{
|
||||
echo '<option value="'.$row_stg->studiengang_kz.'" '.($row_stg->studiengang_kz==$stg_get?'selected':'').'>'.$row_stg->kuerzel.' - '.$row_stg->bezeichnung.'</option>';
|
||||
}
|
||||
echo '</select>';
|
||||
echo '<input type="submit" value="Anzeigen">';
|
||||
echo '</form>';
|
||||
|
||||
$gesamt=0;
|
||||
$gesamt_verplant=0;
|
||||
@@ -98,24 +139,29 @@ function drawprogress($prozent, $ueberplanung=0)
|
||||
|
||||
$content = '<div style="border: '.$bordercolor.'; width: 300px"><div style="background-color: '.$color.'; width: '.(intval($prozent*3)).'px"> '.$prozent.'%</div>';
|
||||
if($ueberplanung>0)
|
||||
$content.= '<div style="background-color: gray; width: '.(intval($ueberplanung*3)).'px"> +'.$ueberplanung.'% Überbuchung</div>';
|
||||
$content.= '<div style="background-color: gray; width: '.(intval($ueberplanung*3)).'px"> +'.$ueberplanung.'% zusätzliche Planstunden</div>';
|
||||
$content.= '</div>';
|
||||
return $content;
|
||||
}
|
||||
|
||||
//Alle Studiengaenge durchlaufen
|
||||
$content.= "\n<table>";
|
||||
$content.= "\n<tr><th>Studiengang/Semester</th><th></th><th colspan='2'>Lehreinheiten</th><th></th><th colspan='2'>Stunden</th></tr>";
|
||||
$content.= "\n<tr><th>Studiengang/Semester</th><th></th><th colspan='2'>Lehreinheiten</th><th></th><th colspan='2'>Planstunden</th></tr>";
|
||||
foreach($stg->result as $row_stg)
|
||||
{
|
||||
if (isset($stg_get) && $stg_get != '' && $stg_get != $row_stg->studiengang_kz)
|
||||
continue;
|
||||
|
||||
$content.= "\n<tr><td colspan='2'><h3>".$row_stg->kuerzel.'</h3></td></tr>';
|
||||
|
||||
//Anzahl der Lehreinheiten holen
|
||||
$qry = "SELECT count(*) as anzahl, semester
|
||||
FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_lehrform ON (tbl_lehreinheit.lehrform_kurzbz=tbl_lehrform.lehrform_kurzbz)
|
||||
WHERE studiengang_kz='$row_stg->studiengang_kz' AND studiensemester_kurzbz='$stsem'
|
||||
AND lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id)
|
||||
AND lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheitmitarbeiter.planstunden > 0)
|
||||
AND tbl_lehreinheit.lehre
|
||||
AND tbl_lehrform.verplanen
|
||||
GROUP BY semester
|
||||
ORDER BY semester ASC";
|
||||
|
||||
@@ -128,7 +174,9 @@ foreach($stg->result as $row_stg)
|
||||
|
||||
//Anzahl der verplanten Lehreinheiten holen
|
||||
$qry = "SELECT count(*) as verplant FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
WHERE studiengang_kz='$row_stg->studiengang_kz' AND studiensemester_kurzbz='$stsem' AND semester='$row_sem->semester' AND tbl_lehreinheit.lehre
|
||||
JOIN lehre.tbl_lehrform ON (tbl_lehreinheit.lehrform_kurzbz=tbl_lehrform.lehrform_kurzbz)
|
||||
WHERE studiengang_kz='$row_stg->studiengang_kz' AND studiensemester_kurzbz='$stsem' AND semester='$row_sem->semester'
|
||||
AND tbl_lehreinheit.lehre AND tbl_lehrform.verplanen
|
||||
AND lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_".$variable->variable->db_stpl_table." WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id)
|
||||
AND lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id)";
|
||||
|
||||
@@ -152,11 +200,13 @@ foreach($stg->result as $row_stg)
|
||||
lehre.tbl_lehreinheit
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrform ON (tbl_lehreinheit.lehrform_kurzbz=tbl_lehrform.lehrform_kurzbz)
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.studiengang_kz='$row_stg->studiengang_kz' AND
|
||||
tbl_lehrveranstaltung.semester='$row_sem->semester' AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz='$stsem' AND
|
||||
tbl_lehreinheit.lehre";
|
||||
tbl_lehreinheit.lehre AND
|
||||
tbl_lehrform.verplanen";
|
||||
$ps=0;
|
||||
if($result_ps = $db->db_query($qry))
|
||||
{
|
||||
@@ -174,11 +224,13 @@ foreach($stg->result as $row_stg)
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_".$variable->variable->db_stpl_table." USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrform ON (tbl_lehreinheit.lehrform_kurzbz=tbl_lehrform.lehrform_kurzbz)
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.studiengang_kz='$row_stg->studiengang_kz' AND
|
||||
tbl_lehrveranstaltung.semester='$row_sem->semester' AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz='$stsem' AND
|
||||
tbl_lehreinheit.lehre
|
||||
tbl_lehreinheit.lehre AND
|
||||
tbl_lehrform.verplanen
|
||||
) a";
|
||||
$stdverplant=0;
|
||||
|
||||
@@ -192,8 +244,16 @@ foreach($stg->result as $row_stg)
|
||||
|
||||
//offene Stunden ermitteln
|
||||
$qry = "
|
||||
SELECT distinct lehreinheit_id, planstunden, mitarbeiter_uid FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
|
||||
WHERE studiengang_kz='$row_stg->studiengang_kz' AND semester='$row_sem->semester' AND studiensemester_kurzbz='$stsem' AND tbl_lehreinheit.lehre";
|
||||
SELECT distinct lehreinheit_id, planstunden, mitarbeiter_uid
|
||||
FROM lehre.tbl_lehreinheit
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrform ON (tbl_lehreinheit.lehrform_kurzbz=tbl_lehrform.lehrform_kurzbz)
|
||||
WHERE studiengang_kz='$row_stg->studiengang_kz'
|
||||
AND semester='$row_sem->semester'
|
||||
AND studiensemester_kurzbz='$stsem'
|
||||
AND tbl_lehreinheit.lehre
|
||||
AND tbl_lehrform.verplanen";
|
||||
|
||||
$offen=0;
|
||||
if($result_std = $db->db_query($qry))
|
||||
@@ -234,7 +294,7 @@ foreach($stg->result as $row_stg)
|
||||
|
||||
$content.= '</td><td nowrap>';
|
||||
$content.=drawprogress($prozent, $prozentueber);
|
||||
$content.= 'offene Stunden: '.$offen;
|
||||
$content.= 'offene Planstunden: '.$offen;
|
||||
$content.='</td></tr>';
|
||||
}
|
||||
$content.='<tr><td> </td><td> </td></tr>';
|
||||
@@ -259,7 +319,7 @@ if($gesamt_ps==0)
|
||||
$prozent=0;
|
||||
else
|
||||
$prozent = round($gesamt_ps_verplant*100/$gesamt_ps,2);
|
||||
echo "<b>Stunden:</b> (".$gesamt_ps_verplant.'/'.$gesamt_ps.')</td><td width="20px"></td><td>';
|
||||
echo "<b>Planstunden:</b> (".$gesamt_ps_verplant.'/'.$gesamt_ps.')</td><td width="20px"></td><td>';
|
||||
echo drawprogress($prozent);
|
||||
|
||||
echo "</td></tr></table>\n<hr>";
|
||||
|
||||
@@ -0,0 +1,139 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (C) 2010 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: Manfred Kindl <kindlm@technikum-wien.at>
|
||||
*/
|
||||
require_once ('../../config/vilesci.config.inc.php');
|
||||
require_once ('../../include/functions.inc.php');
|
||||
require_once ('../../include/basis_db.class.php');
|
||||
require_once ('../../include/ort.class.php');
|
||||
require_once ('../../include/benutzer.class.php');
|
||||
require_once ('../../include/studiengang.class.php');
|
||||
require_once ('../../include/berechtigung.class.php');
|
||||
require_once ('../../include/organisationseinheit.class.php');
|
||||
require_once ('../../include/sprache.class.php');
|
||||
require_once ('../../include/wawi_kostenstelle.class.php');
|
||||
|
||||
if (! $db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
$uid = get_uid();
|
||||
$sprache = getSprache();
|
||||
|
||||
if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'benutzer')
|
||||
{
|
||||
$search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : ''));
|
||||
if (is_null($search) || $search == '')
|
||||
exit();
|
||||
|
||||
$benutzer = new benutzer();
|
||||
|
||||
if ($benutzer->search(array(
|
||||
$search
|
||||
)))
|
||||
{
|
||||
$result_obj = array();
|
||||
foreach ($benutzer->result as $row)
|
||||
{
|
||||
$item['vorname'] = html_entity_decode($row->vorname);
|
||||
$item['nachname'] = html_entity_decode($row->nachname);
|
||||
$item['uid'] = html_entity_decode($row->uid);
|
||||
$result_obj[] = $item;
|
||||
}
|
||||
echo json_encode($result_obj);
|
||||
}
|
||||
exit();
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'berechtigung')
|
||||
{
|
||||
$search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : ''));
|
||||
if (is_null($search) || $search == '')
|
||||
exit();
|
||||
|
||||
$berechtigung = new berechtigung();
|
||||
|
||||
if ($berechtigung->searchBerechtigungen($search))
|
||||
{
|
||||
$result_obj = array();
|
||||
foreach ($berechtigung->result as $row)
|
||||
{
|
||||
$item['berechtigung_kurzbz'] = html_entity_decode($row->berechtigung_kurzbz);
|
||||
$item['beschreibung'] = html_entity_decode($row->beschreibung);
|
||||
$result_obj[] = $item;
|
||||
}
|
||||
echo json_encode($result_obj);
|
||||
}
|
||||
exit();
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'oe_kurzbz')
|
||||
{
|
||||
$search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : ''));
|
||||
if (is_null($search) || $search == '')
|
||||
exit();
|
||||
|
||||
$search = array($search);
|
||||
$oe = new organisationseinheit();
|
||||
$oe->search($search);
|
||||
|
||||
$stg = new studiengang();
|
||||
$stg->search($search);
|
||||
foreach($stg->result as $row)
|
||||
{
|
||||
if($row->aktiv===true)
|
||||
$oe->result[] = new organisationseinheit($row->oe_kurzbz);
|
||||
}
|
||||
|
||||
if(is_array($oe->result) && count($oe->result) > 0)
|
||||
{
|
||||
$result_obj = array();
|
||||
foreach($oe->result as $row)
|
||||
{
|
||||
if($row->aktiv==true)
|
||||
{
|
||||
$item['oe_kurzbz'] = html_entity_decode($row->oe_kurzbz);
|
||||
$item['organisationseinheittyp_kurzbz'] = html_entity_decode($row->organisationseinheittyp_kurzbz);
|
||||
$item['bezeichnung'] = html_entity_decode($row->bezeichnung);
|
||||
$result_obj[] = $item;
|
||||
}
|
||||
}
|
||||
echo json_encode($result_obj);
|
||||
}
|
||||
exit();
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'kostenstelle')
|
||||
{
|
||||
$search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : ''));
|
||||
if (is_null($search) || $search == '')
|
||||
exit();
|
||||
|
||||
$kst = new wawi_kostenstelle();
|
||||
|
||||
if ($kst->getAll($search))
|
||||
{
|
||||
$result_obj = array();
|
||||
foreach ($kst->result as $row)
|
||||
{
|
||||
$item['kostenstelle_id'] = html_entity_decode($row->kostenstelle_id);
|
||||
$item['bezeichnung'] = html_entity_decode($row->bezeichnung);
|
||||
$result_obj[] = $item;
|
||||
}
|
||||
echo json_encode($result_obj);
|
||||
}
|
||||
exit();
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,166 @@
|
||||
<?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: Christian Paminger < christian.paminger@technikum-wien.at >
|
||||
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/berechtigung.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/funktion.class.php');
|
||||
require_once('../../include/organisationseinheit.class.php');
|
||||
require_once('../../include/wawi_kostenstelle.class.php');
|
||||
require_once('../../include/benutzer.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
$uid = isset($_GET['uid']) && $_GET['uid']!='' ? $_GET['uid'] : die('UID muss übergeben werden');
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($uid);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/berechtigung'))
|
||||
die('Sie habe keine Rechte um diese Seite anzuzeigen');
|
||||
|
||||
?>
|
||||
<html>
|
||||
<head>
|
||||
<title>Detaillierte Berechtigungsliste</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<link href="../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
|
||||
<?php
|
||||
include('../../include/meta/jquery.php');
|
||||
include('../../include/meta/jquery-tablesorter.php');
|
||||
?>
|
||||
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[0, 0], [1, 0], [2, 0]],
|
||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||
widgetOptions: {
|
||||
filter_functions: {
|
||||
// Add select menu to this column
|
||||
8: {
|
||||
"Aktive/Wartende": function (e, n, f, i, $r, c, data) {
|
||||
return e == 'Aktiv' || e == 'Wartend';
|
||||
},
|
||||
"Aktive": function (e, n, f, i, $r, c, data) {
|
||||
return /Aktiv/.test(e);
|
||||
},
|
||||
"Wartende": function (e, n, f, i, $r, c, data) {
|
||||
return /Wartend/.test(e);
|
||||
},
|
||||
"Inaktive": function (e, n, f, i, $r, c, data) {
|
||||
return /Inaktiv/.test(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="background_main">
|
||||
<h2>Detaillierte Berechtigungsliste von <?php echo $benutzer->vorname.' '.$benutzer->nachname ?></h2>
|
||||
|
||||
<?php
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
$funktionsArray = array();
|
||||
$funktionen = new funktion();
|
||||
$funktionen->getAll();
|
||||
|
||||
foreach ($funktionen->result as $item)
|
||||
{
|
||||
$funktionsArray[$item->funktion_kurzbz] = $item->beschreibung;
|
||||
}
|
||||
|
||||
$kostenstelleArray = array();
|
||||
$kostenstellen = new wawi_kostenstelle();
|
||||
$kostenstellen->getAll();
|
||||
|
||||
foreach ($kostenstellen->result as $item)
|
||||
{
|
||||
$kostenstelleArray[$item->kostenstelle_id] = $item->bezeichnung.' ('.$item->kostenstelle_id.')';
|
||||
}
|
||||
|
||||
$oeArray = array();
|
||||
$oes = new organisationseinheit();
|
||||
$oes->getAll();
|
||||
|
||||
foreach ($oes->result as $item)
|
||||
{
|
||||
$oeArray[$item->oe_kurzbz] = $item->organisationseinheittyp_kurzbz.' '.$item->bezeichnung;
|
||||
}
|
||||
$heute = strtotime(date('Y-m-d'));
|
||||
|
||||
echo '<table id="t1" class="tablesorter">
|
||||
<thead><tr>
|
||||
<th>Funktion</th>
|
||||
<th>Rolle</th>
|
||||
<th>Recht</th>
|
||||
<th>Art</th>
|
||||
<th>Organisationseinheit</th>
|
||||
<th>Kostenstelle</th>
|
||||
<th>Gültig ab</th>
|
||||
<th>Gültig bis</th>
|
||||
<th data-value="Aktive/Wartende">Status</th>
|
||||
</tr></thead><tbody>';
|
||||
foreach ($rechte->berechtigungen AS $key)
|
||||
{
|
||||
|
||||
if ($key->ende!='' && strtotime($key->ende) < $heute)
|
||||
{
|
||||
$titel="Inaktiv";
|
||||
}
|
||||
elseif ($key->start!='' && strtotime($key->start) > $heute)
|
||||
{
|
||||
$titel="Wartend";
|
||||
}
|
||||
else
|
||||
{
|
||||
$titel="Aktiv";
|
||||
}
|
||||
echo '<tr>';
|
||||
echo '<td>'.($key->funktion_kurzbz != '' ? $funktionsArray[$key->funktion_kurzbz] : '').'</td>';
|
||||
echo '<td>'.($key->rolle_kurzbz != '' ? $key->rolle_kurzbz : '').'</td>';
|
||||
echo '<td>'.($key->berechtigung_kurzbz != '' ? $key->berechtigung_kurzbz : '').'</td>';
|
||||
echo '<td>'.($key->art != '' ? $key->art : '').'</td>';
|
||||
echo '<td>'.($key->oe_kurzbz != '' ? $oeArray[$key->oe_kurzbz] : '').'</td>';
|
||||
echo '<td>'.($key->kostenstelle_id != '' ? $kostenstelleArray[$key->kostenstelle_id] : '').'</td>';
|
||||
echo '<td>'.($key->start != '' ? $key->start : '').'</td>';
|
||||
echo '<td>'.($key->ende != '' ? $key->ende : '').'</td>';
|
||||
echo '<td>'.$titel.'</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
echo '</tbody></table>';
|
||||
|
||||
?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -73,7 +73,7 @@ $(document).ready(function()
|
||||
{
|
||||
// Add select menu to this column
|
||||
6 : {
|
||||
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
|
||||
"Ja" : function(e, n, f, i, $r, c, data) { return e == "Ja" || e == "" },
|
||||
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
|
||||
},
|
||||
7 : {
|
||||
@@ -361,7 +361,15 @@ if($berechtigung_kurzbz != '')
|
||||
{
|
||||
$htmlstr .= "<h3>".$berechtigung_kurzbz."</h3>\n";
|
||||
$htmlstr .= "<table id='t2' class='tablesorter'><thead><tr>\n";
|
||||
$htmlstr .= "<th>Rolle</th><th>Funktion</th><th>Nachname</th><th>Vorname</th><th>UID</th><th>Art</th><th>Benutzer Aktiv</th><th>Status</th><th>Aktion</th>";
|
||||
$htmlstr .= "<th>Rolle</th>
|
||||
<th>Funktion</th>
|
||||
<th>Nachname</th>
|
||||
<th>Vorname</th>
|
||||
<th>UID</th>
|
||||
<th>Art</th>
|
||||
<th data-value='Ja'>Benutzer Aktiv</th>
|
||||
<th data-value='Aktiv'>Status</th>
|
||||
<th>Aktion</th>";
|
||||
$htmlstr .= "</tr></thead><tbody>\n";
|
||||
|
||||
foreach($berechtigungen->result as $row)
|
||||
@@ -554,8 +562,8 @@ if($rolle_kurzbz != '')
|
||||
<th>Vorname</th>
|
||||
<th>UID</th>
|
||||
<th>Art</th>
|
||||
<th>Benutzer Aktiv</th>
|
||||
<th>Status</th>
|
||||
<th data-value='Ja'>Benutzer Aktiv</th>
|
||||
<th data-value='Aktiv'>Status</th>
|
||||
<th>Aktion</th>";
|
||||
$htmlstr .= "</tr></thead><tbody>\n";
|
||||
|
||||
|
||||
@@ -41,27 +41,59 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
<title>Berechtigungen Uebersicht</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<link href="../../skin/tablesort.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<link href="../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
|
||||
<?php
|
||||
include('../../include/meta/jquery.php');
|
||||
include('../../include/meta/jquery-tablesorter.php');
|
||||
?>
|
||||
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script language="Javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[0,0]],
|
||||
widgets: ["zebra"],
|
||||
headers: {3:{sorter:false}}
|
||||
});
|
||||
|
||||
$("#t2").tablesorter(
|
||||
{
|
||||
sortList: [[0,0]],
|
||||
widgets: ["zebra"],
|
||||
headers: {2:{sorter:false}}
|
||||
});
|
||||
|
||||
// Breite des Autocompletes korrigieren um das Springen zu verhindern
|
||||
$.extend($.ui.autocomplete.prototype.options, {
|
||||
open: function(event, ui) {
|
||||
$(this).autocomplete("widget").css({
|
||||
"width": ($(".ui-menu-item").width()+ 20 + "px"),
|
||||
"padding-left": "5px"
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$(".berechtigung_autocomplete").autocomplete({
|
||||
source: "benutzerberechtigung_autocomplete.php?autocomplete=berechtigung",
|
||||
minLength:2,
|
||||
response: function(event, ui)
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[0,0]],
|
||||
widgets: ["zebra"],
|
||||
headers: {3:{sorter:false}}
|
||||
});
|
||||
$("#t2").tablesorter(
|
||||
{
|
||||
sortList: [[0,0]],
|
||||
widgets: ["zebra"],
|
||||
headers: {2:{sorter:false}}
|
||||
});
|
||||
});
|
||||
//Value und Label fuer die Anzeige setzen
|
||||
for(i in ui.content)
|
||||
{
|
||||
ui.content[i].value=ui.content[i].berechtigung_kurzbz;
|
||||
ui.content[i].label=ui.content[i].berechtigung_kurzbz+" - "+ui.content[i].beschreibung;
|
||||
}
|
||||
},
|
||||
select: function(event, ui)
|
||||
{
|
||||
//Ausgewaehlte Ressource zuweisen und Textfeld wieder leeren
|
||||
$(this).val(ui.item.berechtigung_kurzbz);
|
||||
}
|
||||
});
|
||||
});
|
||||
function confdel()
|
||||
{
|
||||
var value=prompt('Achtung! Sie sind dabei eine Rolle zu löschen. Die Zuordnungen gehen dadurch verloren! Um diese Rolle wirklich zu Löschen tippen Sie "LÖSCHEN" in das untenstehende Feld.');
|
||||
@@ -71,11 +103,42 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
else
|
||||
return false;
|
||||
}
|
||||
function validateNewData()
|
||||
{
|
||||
if($('#berechtigung_neu_autocomplete').val() == '')
|
||||
{
|
||||
alert('Berechtigung darf nicht leer sein')
|
||||
return false;
|
||||
}
|
||||
else if ($('#art_neu').val() == '')
|
||||
{
|
||||
alert('Art darf nicht leer sein')
|
||||
return false;
|
||||
}
|
||||
else if ($('#art_neu').val() != '')
|
||||
{
|
||||
var eingabe, c, erlaubt = 'suid', laenge;
|
||||
eingabe = $('#art_neu').val();
|
||||
eingabe = eingabe.toLowerCase();
|
||||
laenge = eingabe.length;
|
||||
for (c = 0; c < laenge; c++)
|
||||
{
|
||||
d = eingabe.charAt(c);
|
||||
if (erlaubt.indexOf(d) == -1)
|
||||
{
|
||||
alert ('Erlaubte Werte für Art sind s,u,i,d');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="background_main">
|
||||
<h2>Berechtigung - Rolle - Übersicht</h2>
|
||||
<h2>Berechtigung - Rolle - <?php echo $rolle_kurzbz ?></h2>
|
||||
|
||||
<?php
|
||||
if(isset($rolle_kurzbz))
|
||||
@@ -107,25 +170,24 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
if(!$berechtigung->deleteRolleBerechtigung($rolle_kurzbz, $berechtigung_kurzbz)): ?>
|
||||
<b>Fehler beim Löschen: </b><?php echo $berechtigung->errormsg ?>
|
||||
<?php else: ?>
|
||||
<b>Berechtigung gelöscht!</b>
|
||||
<b>Berechtigung <?php echo $berechtigung_kurzbz.' mit '.$art ?> gelöscht!</b>
|
||||
<?php endif;
|
||||
} ?>
|
||||
|
||||
<br>
|
||||
<a href="<?php echo basename(__FILE__) ?>">
|
||||
Zurück
|
||||
Zurück zur Rollenübersicht
|
||||
</a>
|
||||
<h3>RolleBerechtigung "<?php echo $rolle_kurzbz ?>":</h3>
|
||||
|
||||
<br><br>
|
||||
<?php
|
||||
$berechtigung = new berechtigung();
|
||||
$berechtigung->getBerechtigungen();
|
||||
?>
|
||||
<form action="<?php echo basename(__FILE__) ?>" method="GET">
|
||||
<input type="text" placeholder="Berechtigung" id="berechtigung_neu_autocomplete" class="berechtigung_autocomplete" name="berechtigung_kurzbz" style="width: 300px">
|
||||
<input type="hidden" name="rolle_kurzbz" value="<?php echo $rolle_kurzbz ?>">
|
||||
<SELECT name="berechtigung_kurzbz">
|
||||
<!-- <SELECT name="berechtigung_kurzbz">-->
|
||||
<?php
|
||||
$berechtigungen = new berechtigung();
|
||||
/*$berechtigungen = new berechtigung();
|
||||
$berechtigungen->getRolleBerechtigung($rolle_kurzbz);
|
||||
$berechtigungen_arr = array();
|
||||
foreach ($berechtigungen->result as $row)
|
||||
@@ -137,10 +199,10 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
<?php echo array_search($row->berechtigung_kurzbz,$berechtigungen_arr)!==false ? 'disabled' : '' ?>>
|
||||
<?php echo $row->berechtigung_kurzbz ?>
|
||||
</OPTION>
|
||||
<?php endforeach; ?>
|
||||
</SELECT>
|
||||
<input type="text" value="suid" size="4" name="art">
|
||||
<input type="submit" name="save" value="Hinzufügen">
|
||||
<?php endforeach; */?>
|
||||
<!-- </SELECT>-->
|
||||
<input type="text" id="art_neu" value="suid" size="4" name="art">
|
||||
<input type="submit" name="save" value="Hinzufügen" onclick="return validateNewData()">
|
||||
</form>
|
||||
|
||||
<table id="t1" class="tablesorter">
|
||||
@@ -154,6 +216,8 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$berechtigungen = new berechtigung();
|
||||
$berechtigungen->getRolleBerechtigung($rolle_kurzbz);
|
||||
|
||||
foreach($berechtigungen->result as $rolle): ?>
|
||||
<tr>
|
||||
@@ -161,7 +225,7 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
<td><?php echo $rolle->art ?></td>
|
||||
<td><?php echo $rolle->beschreibung ?></td>
|
||||
<td>
|
||||
<a href="<?php echo basename(__FILE__) ?>?delete=1&rolle_kurzbz=<?php echo $rolle->rolle_kurzbz ?>&berechtigung_kurzbz=<?php echo $rolle->berechtigung_kurzbz ?>">
|
||||
<a href="<?php echo basename(__FILE__) ?>?delete=1&rolle_kurzbz=<?php echo $rolle->rolle_kurzbz ?>&berechtigung_kurzbz=<?php echo $rolle->berechtigung_kurzbz ?>&art=<?php echo $rolle->art ?>">
|
||||
entfernen
|
||||
</a>
|
||||
</td>
|
||||
@@ -270,24 +334,24 @@ $delete = filter_input(INPUT_GET, 'delete', FILTER_VALIDATE_BOOLEAN);
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<br>
|
||||
<br><div style="vertical-align: top">
|
||||
<?php
|
||||
if($edit):
|
||||
?>
|
||||
<form method="POST">
|
||||
Kurzbz: <input type="text" name="kurzbz" value="<?php echo $rolle_edit->rolle_kurzbz ?>" disabled />
|
||||
Beschreibung: <input type="text" name="beschreibung" value="<?php echo $rolle_edit->beschreibung ?>" />
|
||||
Kurzbz: <input type="text" maxlength="32" size="35" name="kurzbz" value="<?php echo $rolle_edit->rolle_kurzbz ?>" disabled />
|
||||
Beschreibung: <textarea style="vertical-align: top; font-family: inherit; font-size: small;" cols="50" rows="3" type="text" maxlength="256" size="200" name="beschreibung" value="" /><?php echo $rolle_edit->beschreibung ?></textarea>
|
||||
<input type="submit" name="edit" value="Speichern" />
|
||||
</form>
|
||||
<a href="<?php echo basename(__FILE__) ?>">Neue Rolle anlegen</a>
|
||||
<?php else: ?>
|
||||
<form method="POST">
|
||||
Kurzbz: <input type="text" name="kurzbz" value="" />
|
||||
Beschreibung: <input type="text" name="beschreibung" value="" />
|
||||
Kurzbz: <input type="text" maxlength="32" size="35" name="kurzbz" value="" />
|
||||
Beschreibung: <textarea style="vertical-align: top; font-family: inherit; font-size: small;" cols="50" rows="3" type="text" maxlength="256" size="200" name="beschreibung" value="" /></textarea>
|
||||
<input type="submit" name="save" value="Anlegen" />
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
<?php } ?>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
|
||||
$neu = "true";
|
||||
|
||||
if(isset($_POST["schick"]))
|
||||
if(isset($_POST["schick"]) || isset($_POST["kopieren"]))
|
||||
{
|
||||
if(!$rechte->isBerechtigt('basis/ort', null, 'suid'))
|
||||
die('Sie haben keine Berechtigung fuer diese Aktion');
|
||||
@@ -118,7 +118,7 @@
|
||||
$sg_update->updateamum = date('Y-m-d H:i:s');
|
||||
$sg_update->updatevon = $user;
|
||||
|
||||
if ($_POST["neu"] == "true")
|
||||
if ($_POST["neu"] == "true" || isset($_POST["kopieren"]))
|
||||
{
|
||||
$sg_update->insertamum = date('Y-m-d H:i:s');
|
||||
$sg_update->insertvon = $user;
|
||||
@@ -366,18 +366,30 @@
|
||||
<td>Organisationseinheit</td>
|
||||
<td colspan="3">';
|
||||
$oe=new organisationseinheit();
|
||||
$oe->getAll();
|
||||
$oe->getAll(null, null, 'organisationseinheittyp_kurzbz, bezeichnung');
|
||||
$inaktivWarning = false;
|
||||
$htmlstr.='<select name="oe_kurzbz">';
|
||||
$htmlstr.='<option value="">-- keine Auswahl --</option>';
|
||||
foreach($oe->result as $row_oe)
|
||||
{
|
||||
if($row_oe->oe_kurzbz==$oe_kurzbz)
|
||||
$selected='selected';
|
||||
{
|
||||
$selected = 'selected';
|
||||
if ($row_oe->aktiv == false)
|
||||
{
|
||||
$inaktivWarning = ' <span style="color: red; font-weight: bold">Inaktive OE !</span>';
|
||||
}
|
||||
}
|
||||
else
|
||||
$selected='';
|
||||
|
||||
//Inaktive OEs übersrpingen, außer es ist die gespeicherte
|
||||
if ($row_oe->aktiv == false && $row_oe->oe_kurzbz != $oe_kurzbz)
|
||||
continue;
|
||||
|
||||
$htmlstr.='<option value="'.$row_oe->oe_kurzbz.'" '.$selected.'>'.$row_oe->organisationseinheittyp_kurzbz.' '.$row_oe->bezeichnung.'</option>';
|
||||
}
|
||||
$htmlstr.='</select>';
|
||||
$htmlstr.='</select>'.$inaktivWarning;
|
||||
$htmlstr.='
|
||||
</td>
|
||||
</tr>
|
||||
@@ -401,8 +413,9 @@
|
||||
<div align="right" id="sub">
|
||||
<span id="submsg" style="color:red; visibility:hidden;">Datensatz geändert! </span>
|
||||
<input type="hidden" name="neu" value="'.$neu.'">
|
||||
<input type="submit" value="Speichern" name="schick">
|
||||
<input type="submit" value="Kopieren" name="kopieren" onclick="return confirm(\'Eintrag kopieren?\')">
|
||||
<input type="button" value="Reset" onclick="unchanged()">
|
||||
<input type="submit" value="Speichern" name="schick">
|
||||
</div>
|
||||
</form>
|
||||
<div class="inserterror">'.$errorstr.'</div>';
|
||||
|
||||
@@ -81,7 +81,7 @@ if (!$filter->loadAll())
|
||||
<form name="formular">
|
||||
<input type="hidden" name="check" value="">
|
||||
</form>
|
||||
<table class="tablesorter" id="t1">
|
||||
<table class="tablesorter" id="t1" style="table-layout: fixed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th onmouseup="document.formular.check.value=0">
|
||||
@@ -144,8 +144,8 @@ if (!$filter->loadAll())
|
||||
<td>
|
||||
<?php echo $db->convert_html_chars($filter->htmlattr) ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo $db->convert_html_chars(substr($filter->sql,0,32)) ?>...
|
||||
<td style="text-overflow: ellipsis; white-space: nowrap; overflow:hidden;">
|
||||
<?php echo $db->convert_html_chars($filter->sql) ?>
|
||||
</td>
|
||||
<td>
|
||||
<form action="<?php echo basename(__FILE__) ?>" name="form_<?php echo $filter->filter_id ?>" method="POST">
|
||||
|
||||
Reference in New Issue
Block a user