diff --git a/application/controllers/api/frontend/v1/Abgabe.php b/application/controllers/api/frontend/v1/Abgabe.php
index 9be560034..8586c99bc 100644
--- a/application/controllers/api/frontend/v1/Abgabe.php
+++ b/application/controllers/api/frontend/v1/Abgabe.php
@@ -43,6 +43,20 @@ class Abgabe extends FHCAPI_Controller
$this->load->library('PhrasesLib');
+ // Loads LogLib with different debug trace levels to get data of the job that extends this class
+ // It also specify parameters to set database fields
+ $this->load->library('LogLib', array(
+ 'classIndex' => 5,
+ 'functionIndex' => 5,
+ 'lineIndex' => 4,
+ 'dbLogType' => 'API', // required
+ 'dbExecuteUser' => 'RESTful API',
+ 'requestId' => 'API',
+ 'requestDataFormatter' => function ($data) {
+ return json_encode($data);
+ }
+ ), 'logLib');
+
$this->loadPhrases(
array(
'global',
@@ -150,7 +164,6 @@ class Abgabe extends FHCAPI_Controller
}
}
-
$this->terminateWithSuccess(array($projektarbeiten, DOMAIN, $uid));
}
@@ -161,7 +174,6 @@ class Abgabe extends FHCAPI_Controller
*/
public function postStudentProjektarbeitZwischenabgabe()
{
-
$projektarbeit_id = $_POST['projektarbeit_id'];
$paabgabe_id = $_POST['paabgabe_id'];
$student_uid = $_POST['student_uid'];
@@ -189,6 +201,13 @@ class Abgabe extends FHCAPI_Controller
));
$this->sendUploadEmail($bperson_id, $projektarbeit_id, $paabgabetyp_kurzbz, $student_uid);
+
+ $this->logLib->logInfoDB(array('zwischenupload',$res, array(
+ 'abgabedatum' => date('Y-m-d'),
+ 'updatevon' => getAuthUID(),
+ 'updateamum' => date('Y-m-d H:i:s')
+ ), getAuthUID(), getAuthPersonId(), $student_uid));
+
$this->terminateWithSuccess($res);
} else {
$this->terminateWithError('Error moving File');
@@ -197,7 +216,6 @@ class Abgabe extends FHCAPI_Controller
} else {
$this->terminateWithError('File missing');
}
-
}
/**
@@ -275,6 +293,13 @@ class Abgabe extends FHCAPI_Controller
$this->sendUploadEmail($bperson_id, $projektarbeit_id, $paabgabetyp_kurzbz, $student_uid);
+ $this->logLib->logInfoDB(array('endupload',$res, array(
+ 'abgabedatum' => date('Y-m-d'),
+ 'updatevon' => getAuthUID(),
+ 'updateamum' => date('Y-m-d H:i:s')
+ ), getAuthUID(), getAuthPersonId(), array($projektarbeit_id,$sprache,$abstract,$abstract_en
+ ,$schlagwoerter, $schlagwoerter_en, $seitenanzahl)));
+
$this->terminateWithSuccess($res);
} else {
$this->terminateWithError('Error moving File');
@@ -531,6 +556,8 @@ class Abgabe extends FHCAPI_Controller
'insertamum' => date('Y-m-d H:i:s')
)
);
+
+ $this->logLib->logInfoDB(array('paabgabe created',$result, getAuthUID(), getAuthPersonId()));
} else {
// load existing entry of paabgabe and check if note has changed to negativ, to avoid sending when
// only notiz has changed.
@@ -554,6 +581,17 @@ class Abgabe extends FHCAPI_Controller
'updateamum' => date('Y-m-d H:i:s')
)
);
+
+ $this->logLib->logInfoDB(array('paabgabe updated',$result, array(
+ 'paabgabetyp_kurzbz' => $paabgabetyp_kurzbz,
+ 'datum' => $datum,
+ 'kurzbz' => $kurzbz,
+ 'note' => $note,
+ 'beurteilungsnotiz' => $beurteilungsnotiz,
+ 'upload_allowed' => $upload_allowed,
+ 'updatevon' => getAuthUID(),
+ 'updateamum' => date('Y-m-d H:i:s')
+ ), getAuthUID(), getAuthPersonId()));
}
// check if $paaabgabe is a qual gate and its note is deemed negative
@@ -583,12 +621,10 @@ class Abgabe extends FHCAPI_Controller
} else { // benotung legitimately changed -> email
$this->sendQualGateNegativEmail($projektarbeit_id, $betreuer_person_id, $paabgabe);
}
-
} else { // nothing existing previously -> send that mail
$this->sendQualGateNegativEmail($projektarbeit_id, $betreuer_person_id, $paabgabe);
}
-
}
}
@@ -603,15 +639,17 @@ class Abgabe extends FHCAPI_Controller
$this->load->model('education/Paabgabe_model', 'PaabgabeModel');
- $result = $this->PaabgabeModel->load($paabgabe_id);
- $result = $this->getDataOrTerminateWithError($result);
+ $paabgabeResult = $this->PaabgabeModel->load($paabgabe_id);
+ $paabgabeArr = $this->getDataOrTerminateWithError($paabgabeResult);
- if(count($result) == 0)
+ if(count($paabgabeArr) == 0)
$this->terminateWithError($this->p->t('global', 'wrongParameters'), 'general');
- if($result[0]->insertvon === getAuthUID()) {
+ if($paabgabeArr[0]->insertvon === getAuthUID()) {
$result = $this->PaabgabeModel->delete($paabgabe_id);
$result = $this->getDataOrTerminateWithError($result);
+
+ $this->logLib->logInfoDB(array($paabgabeArr[0], getAuthUID(), getAuthPersonId()));
$this->terminateWithSuccess($result);
}
@@ -705,6 +743,8 @@ class Abgabe extends FHCAPI_Controller
);
}
+ $this->logLib->logInfoDB(array('serientermin angelegt',$res, getAuthUID(), getAuthPersonId()));
+
$this->terminateWithSuccess($res);
}
@@ -725,7 +765,7 @@ class Abgabe extends FHCAPI_Controller
$this->load->model('education/Paabgabe_model', 'PaabgabeModel');
$result = $this->PaabgabeModel->getDeadlines($person_id);
$data = $this->getDataOrTerminateWithError($result);
-
+
$this->terminateWithSuccess($data);
}
diff --git a/public/css/components/abgabetool/abgabe.css b/public/css/components/abgabetool/abgabe.css
index 2c35da965..e8b0cb9da 100644
--- a/public/css/components/abgabetool/abgabe.css
+++ b/public/css/components/abgabetool/abgabe.css
@@ -3,7 +3,7 @@
background-color: var(--fhc-red-70);
font-weight: 600;
border-radius: 6px;
- padding: 0px 0px 0px 32px;
+ padding: 0px 0px 0px 34px;
transition: background-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
box-shadow: 0 1px 2px rgba(0,0,0,0.08);
}
@@ -31,7 +31,7 @@
background-color: var(--fhc-yellow-70);
font-weight: 600;
border-radius: 6px;
- padding: 0px 0px 0px 32px;
+ padding: 0px 0px 0px 34px;
transition: background-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
box-shadow: 0 1px 2px rgba(0,0,0,0.08);
}
@@ -56,29 +56,29 @@
/* Base Header */
.verspaetet-header {
- background-color: var(--fhc-pink-70);
+ background-color: var(--fhc-pink-40);
font-weight: 600;
border-radius: 6px;
- padding: 0px 0px 0px 32px;
+ padding: 0px 0px 0px 34px;
transition: background-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
box-shadow: 0 1px 2px rgba(0,0,0,0.08);
}
/* Hover State */
.verspaetet-header:hover {
- background-color: var(--fhc-pink-60);
+ background-color: var(--fhc-pink-20);
box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}
/* Active / Expanded State */
.p-accordion-tab-active > .verspaetet-header {
- background-color: var(--fhc-pink-50);
+ background-color: var(--fhc-pink-30);
box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
/* Hover State Active*/
.p-accordion-tab-active > .verspaetet-header:hover {
- background-color: var(--fhc-pink-60);
+ background-color: var(--fhc-pink-20);
box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}
@@ -87,7 +87,7 @@
background-color: var(--fhc-green-70);
font-weight: 600;
border-radius: 6px;
- padding: 0px 0px 0px 32px;
+ padding: 0px 0px 0px 34px;
transition: background-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
box-shadow: 0 1px 2px rgba(0,0,0,0.08);
}
@@ -115,7 +115,7 @@
background-color: var(--fhc-white-70);
font-weight: 600;
border-radius: 6px;
- padding: 0px 0px 0px 32px;
+ padding: 0px 0px 0px 34px;
transition: background-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
box-shadow: 0 1px 2px rgba(0,0,0,0.08);
}
diff --git a/public/js/components/Cis/Abgabetool/AbgabeMitarbeiterDetail.js b/public/js/components/Cis/Abgabetool/AbgabeMitarbeiterDetail.js
index d6b0040fd..fc804ea3a 100644
--- a/public/js/components/Cis/Abgabetool/AbgabeMitarbeiterDetail.js
+++ b/public/js/components/Cis/Abgabetool/AbgabeMitarbeiterDetail.js
@@ -16,7 +16,13 @@ export const AbgabeMitarbeiterDetail = {
AccordionTab: primevue.accordiontab,
VueDatePicker
},
- inject: ['abgabeTypeOptions', 'allowedNotenOptions', 'turnitin_link', 'old_abgabe_beurteilung_link', 'isMobile'],
+ inject: [
+ 'abgabeTypeOptions',
+ 'allowedNotenOptions',
+ 'turnitin_link',
+ 'old_abgabe_beurteilung_link',
+ 'isMobile'
+ ],
props: {
projektarbeit: {
type: Object,
@@ -164,23 +170,23 @@ export const AbgabeMitarbeiterDetail = {
const oneDayMs = 1000 * 60 * 60 * 24
return Math.round((new Date(datum) - new Date(today)) / oneDayMs)
},
- getDateStyle(termin, mode) {
+ getDateStyleClass(termin, mode) {
const datum = new Date(termin.datum)
const abgabedatum = new Date(termin.abgabedatum)
// https://wiki.fhcomplete.info/doku.php?id=cis:abgabetool_fuer_studierende
if (termin.abgabedatum === null) {
if(datum < today) {
- return 'verpasst-header'
+ return 'verpasst'
} else if (datum > today && this.dateDiffInDays(datum, today) <= 12) {
- return 'abzugeben-header'
+ return 'abzugeben'
} else {
- return 'standard-header'
+ return 'standard'
}
} else if(abgabedatum > datum) {
- return 'verspaetet-header'
+ return 'verspaetet'
} else {
- return 'abgegeben-header'
+ return 'abgegeben'
}
},
openBeurteilungLink(link) {
@@ -209,7 +215,7 @@ export const AbgabeMitarbeiterDetail = {
const link = FHC_JS_DATA_STORAGE_OBJECT.app_root + 'index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/' + path
window.open(link, '_blank')
},
- formatDate(dateParam) {
+ formatDate(dateParam, showTime = true) {
const date = new Date(dateParam)
// handle missing leading 0
const padZero = (num) => String(num).padStart(2, '0');
@@ -217,19 +223,21 @@ export const AbgabeMitarbeiterDetail = {
const month = padZero(date.getMonth() + 1); // Months are zero-based
const day = padZero(date.getDate());
const year = date.getFullYear();
-
- return `${day}.${month}.${year}`;
+
+ // abgabedatum should SHOW abgabezeit which should always be last minute of the day
+ return `${day}.${month}.${year}` + (showTime ? ' 23:59' : '');
},
getAccTabHeaderForTermin(termin) {
let tabTitle = ''
- const datumFormatted = this.formatDate(termin.datum)
+ const datumFormatted = this.formatDate(termin.datum, false)
tabTitle += termin.bezeichnung?.bezeichnung + ' ' + datumFormatted
return tabTitle
},
openCreateNewAbgabeModal() {
if(!this.newTermin) {
+ const typ = this.abgabeTypeOptions.find(opt => opt.paabgabetyp_kurzbz === 'zwischen')
this.newTermin = {
'paabgabe_id': -1,
'projektarbeit_id': this.projektarbeit.projektarbeit_id,
@@ -238,9 +246,9 @@ export const AbgabeMitarbeiterDetail = {
'datum': new Date().toISOString().split('T')[0],
'note': this.allowedNotenOptions.find(opt => opt.note == 9),
'beurteilungsnotiz': '',
- 'upload_allowed': false,
+ 'upload_allowed': typ.upload_allowed_default,
'paabgabetyp_kurzbz': '',
- 'bezeichnung': this.abgabeTypeOptions.find(opt => opt.paabgabetyp_kurzbz === 'zwischen'),
+ 'bezeichnung': typ,
'abgabedatum': null,
'insertvon': this.viewData?.uid ?? ''
}
@@ -290,6 +298,9 @@ export const AbgabeMitarbeiterDetail = {
},
computed: {
+ activeAbgabeTypeOptions() {
+ return this.abgabeTypeOptions?.filter(opt => opt.aktiv === true)
+ },
getEid() {
return this.$p.t('abgabetool/c4eidesstattlicheErklaerung')
},
@@ -317,6 +328,36 @@ export const AbgabeMitarbeiterDetail = {
},
getSpeedDialStyle() {
return 'position: static !important;'
+ },
+ getTooltipVerspaetet() {
+ return {
+ value: this.$p.t('abgabetool/c4tooltipVerspaetet'),
+ class: "custom-tooltip"
+ }
+ },
+ getTooltipVerpasst() {
+ return {
+ value: this.$p.t('abgabetool/c4tooltipVerpasst'),
+ class: "custom-tooltip"
+ }
+ },
+ getTooltipAbzugeben() {
+ return {
+ value: this.$p.t('abgabetool/c4tooltipAbzugeben'),
+ class: "custom-tooltip"
+ }
+ },
+ getTooltipStandard() {
+ return {
+ value: this.$p.t('abgabetool/c4tooltipStandard'),
+ class: "custom-tooltip"
+ }
+ },
+ getTooltipAbgegeben() {
+ return {
+ value: this.$p.t('abgabetool/c4tooltipAbgegeben'),
+ class: "custom-tooltip"
+ }
}
},
watch: {
@@ -326,6 +367,8 @@ export const AbgabeMitarbeiterDetail = {
if(newVal?.paabgabetyp_kurzbz === 'qualgate1' || newVal?.paabgabetyp_kurzbz === 'qualgate2') {
this.newTermin.kurzbz = newVal.bezeichnung
}
+
+ this.newTermin.upload_allowed = newVal.upload_allowed_default
}
},
created() {
@@ -339,7 +382,7 @@ export const AbgabeMitarbeiterDetail = {
id="innerModalNewAbgabe"
ref="modalContainerCreateNewAbgabe"
class="bootstrap-prompt"
- dialogClass="bordered-modal modal-xl"
+ dialogClass="bordered-modal modal-lg"
:backdrop="true"
@hideBsModal="console.log('hideBsModal'); showAutomagicModalPhrase=false;"
>
@@ -383,13 +426,13 @@ export const AbgabeMitarbeiterDetail = {
-
+
{{$p.t('abgabetool/c4upload_allowed')}}
{{$p.t('abgabetool/c4abgabekurzbz')}}
-
+
@@ -439,8 +482,21 @@ export const AbgabeMitarbeiterDetail = {
-
-
+
+
+
+
+
+
+
+
+
+
+
+ {{getAccTabHeaderForTermin(termin)}}
+
+
+
{{$p.t('abgabetool/c4fixterminv2')}}
@@ -476,7 +532,7 @@ export const AbgabeMitarbeiterDetail = {
:disabled="!termin.allowedToSave"
v-model="termin.bezeichnung"
@change="handleChangeAbgabetyp(termin)"
- :options="abgabeTypeOptions"
+ :options="activeAbgabeTypeOptions"
:optionLabel="getOptionLabelAbgabetyp">
@@ -492,7 +548,7 @@ export const AbgabeMitarbeiterDetail = {
-
+
{{$p.t('abgabetool/c4note')}}
-
+
{{$p.t('abgabetool/c4notizQualGatev2')}}
@@ -519,10 +575,15 @@ export const AbgabeMitarbeiterDetail = {
{{$p.t('abgabetool/c4abgabedatum')}}
@@ -531,13 +592,13 @@ export const AbgabeMitarbeiterDetail = {
-
+
-
+
@@ -366,10 +407,15 @@ export const AbgabeStudentDetail = {
{{$p.t('abgabetool/c4abgabedatum')}}
diff --git a/public/js/components/Cis/Abgabetool/AbgabetoolMitarbeiter.js b/public/js/components/Cis/Abgabetool/AbgabetoolMitarbeiter.js
index 2c2b8fad8..d219c73e1 100644
--- a/public/js/components/Cis/Abgabetool/AbgabetoolMitarbeiter.js
+++ b/public/js/components/Cis/Abgabetool/AbgabetoolMitarbeiter.js
@@ -229,10 +229,8 @@ export const AbgabetoolMitarbeiter = {
termin.allowedToSave = termin.insertvon == this.viewData?.uid && pa.betreuerart_kurzbz != 'Zweitbegutachter'
termin.allowedToDelete = termin.allowedToSave && !termin.abgabedatum
- termin.bezeichnung = {
- bezeichnung: termin.bezeichnung,
- paabgabetyp_kurzbz: termin.paabgabetyp_kurzbz
- }
+ termin.bezeichnung = this.abgabeTypeOptions.find(opt => opt.paabgabetyp_kurzbz === termin.paabgabetyp_kurzbz)
+
})
pa.student_uid = details.student_uid
pa.student = `${pa.vorname} ${pa.nachname}`
@@ -355,7 +353,7 @@ export const AbgabetoolMitarbeiter = {
},
computed: {
-
+
},
created() {
// fetch config to avoid hard coded links
@@ -448,7 +446,7 @@ export const AbgabetoolMitarbeiter = {
+ dialogClass="modal-xl" :allowFullscreenExpand="true">
{{$p.t('abgabetool/c4abgabeMitarbeiterDetailTitle')}}
diff --git a/public/js/components/Cis/Abgabetool/AbgabetoolStudent.js b/public/js/components/Cis/Abgabetool/AbgabetoolStudent.js
index 81af1a422..fd245875e 100644
--- a/public/js/components/Cis/Abgabetool/AbgabetoolStudent.js
+++ b/public/js/components/Cis/Abgabetool/AbgabetoolStudent.js
@@ -233,7 +233,7 @@ export const AbgabetoolStudent = {
template: `
+ dialogClass="modal-xl" :allowFullscreenExpand="true">
{{$p.t('abgabetool/c4abgabeStudentDetailTitle')}}
diff --git a/system/dbupdate_3.4/61164_abgabetool_quality_gates.php b/system/dbupdate_3.4/61164_abgabetool_quality_gates.php
index 38506a742..83dd91c2d 100644
--- a/system/dbupdate_3.4/61164_abgabetool_quality_gates.php
+++ b/system/dbupdate_3.4/61164_abgabetool_quality_gates.php
@@ -1,12 +1,59 @@
db_query("SELECT 1 FROM information_schema.columns WHERE table_schema = 'campus' AND table_name = 'tbl_paabgabetyp' AND column_name = 'aktiv'"))
+{
+ if($db->db_num_rows($result) === 0)
+ {
+
+ $qry = "ALTER TABLE campus.tbl_paabgabetyp
+ ADD COLUMN IF NOT EXISTS aktiv BOOLEAN DEFAULT true;";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_paabgabetyp: '.$db->db_last_error().'
';
+ else
+ echo '
paabgabetyp column aktiv default true hinzugefuegt';
+ }
+}
+
+if($result = $db->db_query("SELECT 1 FROM information_schema.columns WHERE table_schema = 'campus' AND table_name = 'tbl_paabgabetyp' AND column_name = 'upload_allowed_default'"))
+{
+ if($db->db_num_rows($result) === 0)
+ {
+
+ $qry = "ALTER TABLE campus.tbl_paabgabetyp
+ ADD COLUMN IF NOT EXISTS upload_allowed_default BOOLEAN DEFAULT true;";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_paabgabetyp: '.$db->db_last_error().'
';
+ else
+ echo '
paabgabetyp column upload_allowed_default default true hinzugefuegt';
+ }
+}
+
+if($result = $db->db_query("SELECT 1 FROM information_schema.columns WHERE table_schema = 'campus' AND table_name = 'tbl_paabgabetyp' AND column_name = 'benotbar'"))
+{
+ if($db->db_num_rows($result) === 0)
+ {
+
+ $qry = "ALTER TABLE campus.tbl_paabgabetyp
+ ADD COLUMN IF NOT EXISTS benotbar BOOLEAN DEFAULT true;";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_paabgabetyp: '.$db->db_last_error().'
';
+ else
+ echo '
paabgabetyp column benotbar default true hinzugefuegt';
+ }
+}
+
+// TODO DEFINE ACTUAL VALUES BENOTBAR / UPLOAD_ALLOWED_DEFAULT / AKTIV FOR EACH PAABGABETYPE - DEVLOPER DEFAULTS BELOW
if($result = $db->db_query("SELECT 1 FROM campus.tbl_paabgabetyp WHERE paabgabetyp_kurzbz='qualgate1'"))
{
if($db->db_num_rows($result) === 0)
{
- $qry = "INSERT INTO campus.tbl_paabgabetyp (paabgabetyp_kurzbz, bezeichnung) VALUES('qualgate1', 'Quality Gate 1');";
+ $qry = "INSERT INTO campus.tbl_paabgabetyp (paabgabetyp_kurzbz, bezeichnung, benotbar, upload_allowed_default, aktiv)
+ VALUES('qualgate1', 'Quality Gate 1', true, true, true);";
if(!$db->db_query($qry))
echo 'campus.tbl_paabgabetyp: '.$db->db_last_error().'
';
@@ -15,11 +62,102 @@ if($result = $db->db_query("SELECT 1 FROM campus.tbl_paabgabetyp WHERE paabgabet
}
}
+// set new cols for zwischenabgabe
+if($result = $db->db_query("SELECT 1 FROM campus.tbl_paabgabetyp WHERE paabgabetyp_kurzbz='zwischen'"))
+{
+ if($db->db_num_rows($result) === 1)
+ {
+ $qry = "UPDATE campus.tbl_paabgabetyp
+ SET benotbar = false,
+ upload_allowed_default = true,
+ aktiv = true
+ WHERE paabgabetyp_kurzbz='zwischen';";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_paabgabetyp: '.$db->db_last_error().'
';
+ else
+ echo '
paabgabetyp zwischen updated benotbar = false, upload_allowed_default = true, aktiv = true';
+ }
+}
+
+// set new cols for note
+if($result = $db->db_query("SELECT 1 FROM campus.tbl_paabgabetyp WHERE paabgabetyp_kurzbz='note'"))
+{
+ if($db->db_num_rows($result) === 1)
+ {
+ $qry = "UPDATE campus.tbl_paabgabetyp
+ SET benotbar = false,
+ upload_allowed_default = false,
+ aktiv = false
+ WHERE paabgabetyp_kurzbz='note';";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_paabgabetyp: '.$db->db_last_error().'
';
+ else
+ echo '
paabgabetyp note updated benotbar = false, upload_allowed_default = false, aktiv = false';
+ }
+}
+
+// set new cols for abstract / entwurf
+if($result = $db->db_query("SELECT 1 FROM campus.tbl_paabgabetyp WHERE paabgabetyp_kurzbz='abstract'"))
+{
+ if($db->db_num_rows($result) === 1)
+ {
+ $qry = "UPDATE campus.tbl_paabgabetyp
+ SET benotbar = false,
+ upload_allowed_default = true,
+ aktiv = true
+ WHERE paabgabetyp_kurzbz='abstract';";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_paabgabetyp: '.$db->db_last_error().'
';
+ else
+ echo '
paabgabetyp abstract updated benotbar = false, upload_allowed_default = true, aktiv = true';
+ }
+}
+
+// set new cols for endabgabe / end
+if($result = $db->db_query("SELECT 1 FROM campus.tbl_paabgabetyp WHERE paabgabetyp_kurzbz='end'"))
+{
+ if($db->db_num_rows($result) === 1)
+ {
+ $qry = "UPDATE campus.tbl_paabgabetyp
+ SET benotbar = false,
+ upload_allowed_default = true,
+ aktiv = true
+ WHERE paabgabetyp_kurzbz='end';";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_paabgabetyp: '.$db->db_last_error().'
';
+ else
+ echo '
paabgabetyp end updated benotbar = false, upload_allowed_default = true, aktiv = true';
+ }
+}
+
+// set new cols for endabgabe im sekretariat / enda
+if($result = $db->db_query("SELECT 1 FROM campus.tbl_paabgabetyp WHERE paabgabetyp_kurzbz='enda'"))
+{
+ if($db->db_num_rows($result) === 1)
+ {
+ $qry = "UPDATE campus.tbl_paabgabetyp
+ SET benotbar = false,
+ upload_allowed_default = false,
+ aktiv = false
+ WHERE paabgabetyp_kurzbz='enda';";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_paabgabetyp: '.$db->db_last_error().'
';
+ else
+ echo '
paabgabetyp enda updated benotbar = false, upload_allowed_default = false, aktiv = false';
+ }
+}
+
if($result = $db->db_query("SELECT 1 FROM campus.tbl_paabgabetyp WHERE paabgabetyp_kurzbz='qualgate2'"))
{
if($db->db_num_rows($result) === 0)
{
- $qry = "INSERT INTO campus.tbl_paabgabetyp (paabgabetyp_kurzbz, bezeichnung) VALUES('qualgate2', 'Quality Gate 2');";
+ $qry = "INSERT INTO campus.tbl_paabgabetyp (paabgabetyp_kurzbz, bezeichnung, benotbar, upload_allowed_default, aktiv)
+ VALUES('qualgate2', 'Quality Gate 2', true, true, true);";
if(!$db->db_query($qry))
echo 'campus.tbl_paabgabetyp: '.$db->db_last_error().'
';
@@ -34,7 +172,7 @@ if($result = $db->db_query("SELECT 1 FROM information_schema.columns WHERE table
{
$qry = "ALTER TABLE campus.tbl_paabgabe
- ADD COLUMN note SMALLINT DEFAULT NULL,
+ ADD COLUMN IF NOT EXISTS note SMALLINT DEFAULT NULL,
ADD CONSTRAINT tbl_paabgabe_note_fkey
FOREIGN KEY (note)
REFERENCES lehre.tbl_note(note)
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index dd7788265..21ea22a20 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -42816,6 +42816,106 @@ array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'abgabetool',
+ 'phrase' => 'c4tooltipVerspaetet',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Verspätet abgegeben",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Submitted late',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abgabetool',
+ 'phrase' => 'c4tooltipVerpasst',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Termin überschritten",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deadline exceeded',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abgabetool',
+ 'phrase' => 'c4tooltipAbzugeben',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Termin innerhalb von 12 Tagen",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deadline within 12 days',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abgabetool',
+ 'phrase' => 'c4tooltipStandard',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Termin mehr als 12 Tag entfernt",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deadline more than 12 days away',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'abgabetool',
+ 'phrase' => 'c4tooltipAbgegeben',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Rechtzeitig abgegeben",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Delivered on time',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'abgabetool',
@@ -42856,6 +42956,26 @@ array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'abgabetool',
+ 'phrase' => 'c4nochNichtsAbgegeben',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Keine Abgabe vorhanden",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No submission yet',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'abgabetool',