-
-
-
-
-
-
- {{ fieldToDisplay }}
-
-
-
-
+
+
+
+
+ Mit {{selectedData.length}} ausgewählten:
+
+
+
+
[ {{ filterName }} ]
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
- Neuer Filter
-
-
-
-
-
-
-
-
+
-
-
- Filter {{ index + 1 }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
`
};
diff --git a/public/js/components/filter/Filter/Columns.js b/public/js/components/filter/Filter/Columns.js
new file mode 100644
index 000000000..47d66d5f1
--- /dev/null
+++ b/public/js/components/filter/Filter/Columns.js
@@ -0,0 +1,78 @@
+/**
+ * Copyright (C) 2022 fhcomplete.org
+ *
+ * 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 3 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, see
.
+ */
+
+/**
+ *
+ */
+export default {
+ props: {
+ fields: Array,
+ selected: {
+ type: Array,
+ default: []
+ },
+ names: {
+ type: Array,
+ default: []
+ }
+ },
+ emits: {
+ hide: ['fieldName'],
+ show: ['fieldName']
+ },
+ data: function() {
+ return {
+ selectedFields: []
+ };
+ },
+ watch: {
+ selected(n) {
+ this.selectedFields = n;
+ }
+ },
+ methods: {
+ toggle(field) {
+ if (this.selectedFields.indexOf(field) != -1)
+ {
+ this.selectedFields.splice(this.selectedFields.indexOf(field), 1);
+ this.$emit('hide', field);
+ }
+ else
+ {
+ this.selectedFields.push(field);
+ this.$emit('show', field);
+ }
+ }
+ },
+ template: `
+
+
+
+
+ {{ names[fieldToDisplay] || fieldToDisplay }}
+
+
+
+
+ `
+};
+
diff --git a/public/js/components/filter/Filter/Config.js b/public/js/components/filter/Filter/Config.js
new file mode 100644
index 000000000..3c75c5a3c
--- /dev/null
+++ b/public/js/components/filter/Filter/Config.js
@@ -0,0 +1,215 @@
+/**
+ * Copyright (C) 2022 fhcomplete.org
+ *
+ * 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 3 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, see
.
+ */
+
+const FILTER_COMPONENT_NEW_FILTER = 'Filter Component New Filter';
+
+/**
+ *
+ */
+export default {
+ props: {
+ filters: {
+ type: Array,
+ default: []
+ },
+ columns: {
+ type: Array,
+ default: []
+ },
+ fields: {
+ type: Array,
+ default: []
+ }
+ },
+ emits: {
+ switchFilter: ['filterId'],
+ applyFilterConfig: ['filterFields'],
+ saveCustomFilter: ['customFilterName']
+ },
+ data: function() {
+ return {
+ currentFields: []
+ };
+ },
+ computed: {
+ types() {
+ return this.columns.reduce((a,c) => {
+ let type = c.type.toLowerCase();
+ if (type.indexOf('int') >= 0)
+ a[c.name] = 'Numeric';
+ else if (
+ type.indexOf('varchar') >= 0 ||
+ type.indexOf('text') >= 0 ||
+ type.indexOf('bpchar') >= 0
+ )
+ a[c.name] = 'Text';
+ else if (
+ type.indexOf('timestamp') >= 0 ||
+ type.indexOf('date') >= 0
+ )
+ a[c.name] = 'Date';
+ else
+ a[c.name] = '';
+ return a;
+ }, {});
+ }
+ },
+ watch: {
+ fields(n) {
+ this.currentFields = n;
+ }
+ },
+ methods: {
+ switchFilter(evt) {
+ this.$emit('switchFilter', evt.currentTarget.value);
+ },
+ applyFilterConfig() {
+ const filteredFields = this.currentFields.filter(el => el.name != FILTER_COMPONENT_NEW_FILTER);
+ if (filteredFields.filter(el => el.condition == "").length)
+ alert("Please fill all the filter options");
+ else
+ this.$emit('applyFilterConfig', filteredFields);
+ },
+ addField(evt) {
+ this.currentFields.push({
+ name: FILTER_COMPONENT_NEW_FILTER
+ });
+ },
+ removeField(index) {
+ this.currentFields.splice(index, 1);
+ }
+ },
+ template: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Filter {{ index + 1 }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `
+};
+
diff --git a/public/js/components/filter/Table/Download.js b/public/js/components/filter/Table/Download.js
new file mode 100644
index 000000000..057fdad5e
--- /dev/null
+++ b/public/js/components/filter/Table/Download.js
@@ -0,0 +1,247 @@
+/**
+ * Copyright (C) 2022 fhcomplete.org
+ *
+ * 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 3 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, see
.
+ */
+
+const DEFAULT_ICONS = {
+ jsonLines: 'fa-file-lines',
+ xlsx: 'fa-file-excel',
+ pdf: 'fa-file-pdf',
+ html: 'fa-file-code',
+ json: 'fa-file',
+ csv: 'fa-file-csv'
+};
+const DEFAULT_LABELS = {
+ jsonLines: 'Download as JSONLINES',
+ xlsx: 'Download as XLSX',
+ pdf: 'Download as PDF',
+ html: 'Download as HTML',
+ json: 'Download as JSON',
+ csv: 'Download as CSV '
+};
+
+
+/**
+ *
+ */
+export default {
+ props: {
+ tabulator: Object,
+ config: {
+ type: [Boolean, String, Function, Array, Object],
+ default: false
+ },
+ iconClass: [String, Array, Object]
+ },
+ computed: {
+ currentConfig() {
+ if (!this.config)
+ return false;
+
+ let config = this.config;
+
+ if (config instanceof Function)
+ return [config];
+
+ if (config === null)
+ return [];
+
+ if (this.config === true)
+ config = ['csv'];
+
+ if (Object.prototype.toString.call(config) === "[object String]")
+ config = config.split(',');
+
+ if (typeof config === 'object' && !Array.isArray(config)) {
+ let newConfig = [];
+ for (var k in config) {
+ var v = config[k], type;
+
+ if (!v)
+ continue;
+
+ if (Object.prototype.toString.call(v) === "[object String]") {
+ type = this.stringToFileFormatter(v);
+ if (type !== null) {
+ newConfig.push({
+ icon: 'fa-solid ' + DEFAULT_ICONS[type],
+ label: v === k ? DEFAULT_LABELS[type] : k,
+ formatter: type
+ });
+ } else {
+ type = this.stringToFileFormatter(k);
+ if(type !== null) {
+ newConfig.push({
+ icon: 'fa-solid ' + DEFAULT_ICONS[type],
+ label: v,
+ formatter: type
+ });
+ } else {
+ alert('neither ' + k + ' nor ' + v + ' are supported download file types');
+ }
+ }
+ } else if (typeof v === 'object' && !Array.isArray(v)) {
+ type = this.stringToFileFormatter(k);
+ if (type !== null) {
+ if (v.formatter === undefined)
+ v.formatter = type;
+ if (v.label === undefined)
+ v.label = DEFAULT_LABELS[type];
+ if (v.icon === undefined)
+ v.icon = DEFAULT_ICONS[type];
+ newConfig.push(v);
+ } else {
+ if (v.label === undefined)
+ v.label = k;
+ newConfig.push(v);
+ }
+ } else {
+ type = this.stringToFileFormatter(k);
+ if (type !== null) {
+ newConfig.push({
+ icon: 'fa-solid ' + DEFAULT_ICONS[type],
+ label: DEFAULT_LABELS[type],
+ formatter: type
+ });
+ } else {
+ alert(k + ' is not a supported download file type');
+ }
+ }
+ }
+ config = newConfig;
+ }
+
+ if (Array.isArray(config))
+ {
+ config = config.map(el => {
+ if (Object.prototype.toString.call(el) === "[object String]") {
+ let formatter = this.stringToFileFormatter(el);
+ if (formatter === null)
+ return null;
+ return {
+ icon: 'fa-solid ' + DEFAULT_ICONS[formatter],
+ label: DEFAULT_LABELS[formatter],
+ formatter
+ };
+ }
+
+ if (el instanceof Function)
+ return {
+ formatter: el
+ }
+
+ if (typeof el === 'object' && !Array.isArray(el) && el !== null) {
+ if (el.formatter instanceof Function)
+ return el;
+ if (this.validateFileFormatter(el.formatter))
+ return el;
+ }
+
+ return null;
+ }).filter(el => el !== null);
+
+ if (config.length < 2)
+ return config;
+
+ if (config.filter(el => el.label || el.icon).length == config.length)
+ return config;
+
+ alert('Config not valid');
+ }
+
+ return [];
+ }
+ },
+ methods: {
+ stringToFileFormatter(input) {
+ let lcInput = input.toLowerCase();
+
+ if (lcInput == 'jsonlines')
+ return 'jsonLines';
+
+ if (['xlsx', 'pdf', 'html', 'json', 'csv'].includes(lcInput))
+ return lcInput;
+
+ return null;
+ },
+ validateFileFormatter(input) {
+ let formatter = this.stringToFileFormatter(input);
+ if (!formatter) {
+ alert(input + ' is not a supported file formatter');
+ return false;
+ }
+ if (formatter == 'xlsx') {
+ if (!window.XLSX) {
+ alert('XLSX Library not loaded');
+ return false;
+ }
+ }
+ if (formatter == 'pdf') {
+ if (!window.jspdf) {
+ alert('jsPDF Library not loaded');
+ return false;
+ }
+ var doc = new jspdf.jsPDF({});
+ if (!doc.autoTable) {
+ alert('jsPDF-AutoTable Plugin not loaded');
+ return false;
+ }
+ }
+ return true;
+ },
+ download(config) {
+ this.tabulator.download(config.formatter, config.file, config.options)
+ }
+ },
+ template: `
+
+
+
+
+
+
+
+
+ `
+};
+
diff --git a/public/js/components/vueDatepicker.js.php b/public/js/components/vueDatepicker.js.php
new file mode 100644
index 000000000..ad9053248
--- /dev/null
+++ b/public/js/components/vueDatepicker.js.php
@@ -0,0 +1,12 @@
+ 20)
$("#scrollToTop").show();
@@ -374,155 +370,6 @@ var InfocenterDetails = {
}
);
},
- getStudienjahrEnd: function()
- {
- FHC_AjaxClient.ajaxCallGet(
- CALLED_PATH + "/getStudienjahrEnd",
- null,
- {
- successCallback: function(data, textStatus, jqXHR) {
- if (FHC_AjaxClient.hasData(data))
- {
- var engdate = $.datepicker.parseDate("yy-mm-dd", FHC_AjaxClient.getData(data)[0]);
-
- if (engdate.getDate() === 31)
- engdate.setDate(engdate.getDate() - 1);
- engdate.setMonth(engdate.getMonth() + 3);
-
- var gerdate = $.datepicker.formatDate("dd.mm.yy", engdate);
- $("#postponedate").val(gerdate);
- }
- },
- errorCallback: function()
- {
- FHC_DialogLib.alertError("error when getting Studienjahr end");
- },
- veilTimeout: 0
- }
- );
- },
- getPostponeDate: function(personid)
- {
- FHC_AjaxClient.ajaxCallGet(
- CALLED_PATH + "/getPostponeDate/"+encodeURIComponent(personid),
- null,
- {
- successCallback: function(data, textStatus, jqXHR) {
- if (FHC_AjaxClient.hasData(data))
- {
- var postponeobj = FHC_AjaxClient.getData(data);
- InfocenterDetails._refreshPostpone(postponeobj);
- InfocenterDetails._refreshLog();
- if (postponeobj === null || postponeobj.type === null)
- InfocenterDetails.getStudienjahrEnd();
- }
- },
- errorCallback: function()
- {
- FHC_DialogLib.alertError("error when getting parked status");
- },
- veilTimeout: 0
- }
- );
- },
- parkPerson: function(personid, date)
- {
- var parkError = function(){
- $("#postponemsg").text(" Fehler beim Parken!");
- };
-
- FHC_AjaxClient.ajaxCallPost(
- CALLED_PATH + '/park',
- {
- "person_id": personid,
- "parkdate": date
- },
- {
- successCallback: function(data, textStatus, jqXHR) {
- if (FHC_AjaxClient.hasData(data))
- InfocenterDetails.getPostponeDate(personid);
- else
- {
- parkError();
- }
- },
- errorCallback: parkError,
- veilTimeout: 0
- }
- );
- },
- unparkPerson: function(personid)
- {
- FHC_AjaxClient.ajaxCallPost(
- CALLED_PATH + '/unpark',
- {
- "person_id": personid
- },
- {
- successCallback: function(data, textStatus, jqXHR) {
- if (FHC_AjaxClient.hasData(data))
- {
- InfocenterDetails.getPostponeDate(personid);
- }
- else
- $("#unpostponemsg").removeClass().addClass("text-warning").text(FHC_PhrasesLib.t('infocenter', 'nichtsZumAusparken'));
- },
- errorCallback: function(){
- $("#unpostponemsg").removeClass().addClass("text-danger").text(FHC_PhrasesLib.t('infocenter', 'fehlerBeimAusparken'));
- },
- veilTimeout: 0
- }
- );
- },
- setPersonOnHold: function(personid, date)
- {
- var onHoldError = function(){
- $("#postponemsg").text(" Fehler beim Setzen auf On Hold!");
- };
-
- FHC_AjaxClient.ajaxCallPost(
- CALLED_PATH + '/setOnHold',
- {
- "person_id": personid,
- "onholddate": date
- },
- {
- successCallback: function(data, textStatus, jqXHR) {
- if (FHC_AjaxClient.hasData(data))
- InfocenterDetails.getPostponeDate(personid);
- else
- {
- onHoldError();
- }
- },
- errorCallback: onHoldError,
- veilTimeout: 0
- }
- );
- },
- removePersonOnHold: function(personid)
- {
- FHC_AjaxClient.ajaxCallPost(
- CALLED_PATH + '/removeOnHold',
- {
- "person_id": personid
- },
- {
- successCallback: function(data, textStatus, jqXHR) {
- if (FHC_AjaxClient.hasData(data))
- {
- InfocenterDetails.getPostponeDate(personid);
- }
- else
- $("#unpostponemsg").removeClass().addClass("text-warning").text(FHC_PhrasesLib.t('infocenter', 'nichtsZumEntfernen'));
- },
- errorCallback: function(){
- $("#unpostponemsg").removeClass().addClass("text-danger").text(FHC_PhrasesLib.t('infocenter', 'fehlerBeimEntfernen'));
- },
- veilTimeout: 0
- }
- );
- },
getPrestudentData: function(personid, callback)
{
FHC_AjaxClient.ajaxCallGet(
@@ -943,97 +790,6 @@ var InfocenterDetails = {
}
);
},
- _refreshPostpone: function(postponeobj)
- {
- var personid = $("#hiddenpersonid").val();
- if (postponeobj === null || postponeobj.date === null || postponeobj.type === null)
- {
- //show both park and on hold buttons if not parked and not on hold
- $("#postponing").html(
- '
'+
- ' '+
- ' '+
- ''+
- ''+
- '
');
-
- $("#postponedate").datepicker({
- "dateFormat": "dd.mm.yy",
- "minDate": 1
- });
-
- $("#parklink").click(
-
- function ()
- {
- var date = $("#postponedate").val();
- InfocenterDetails.parkPerson(personid, date);
- }
- );
-
- $("#onholdlink").click(
-
- function ()
- {
- var date = $("#postponedate").val();
- InfocenterDetails.setPersonOnHold(personid, date);
- }
- );
- }
- else
- {
- //info if parked/on hold and possibility to undo parking/on hold
- var postponedate = $.datepicker.parseDate("yy-mm-dd", postponeobj.date);
- var gerpostponedate = $.datepicker.formatDate("dd.mm.yy", postponedate);
-
- //var postponehtml = "";
- var callbackforundo = null;
- var removePhrase = "";
- var postponedPhrase = "";
- var postponedtext = "";
-
- if (postponeobj.type === PARKEDNAME)
- {
- removePhrase = 'bewerberAusparken';
- postponedtext = FHC_PhrasesLib.t('infocenter', 'bewerberGeparktBis')+' '+gerpostponedate;
-
- callbackforundo = function ()
- {
- InfocenterDetails.unparkPerson(personid);
- }
- }
- else if (postponeobj.type === ONHOLDNAME)
- {
- removePhrase = 'bewerberOnHoldEntfernen';
- postponedtext = FHC_PhrasesLib.t('infocenter', 'bewerberOnHoldBis')+' '+gerpostponedate;
-
- var currdate = new Date();
-
- if (currdate > postponedate)
- postponedtext = "
"+postponedtext+"";
-
- callbackforundo = function ()
- {
- InfocenterDetails.removePersonOnHold(personid);
- }
- }
-
- var postponehtml = postponedtext+' '+
- '
'+
- '
';
-
-
- $("#postponing").html(
- postponehtml
- );
-
- $("#unpostponelink").click(
- callbackforundo
- );
- }
- },
_formatMessageTable: function()
{
Tablesort.addTablesorter("msgtable", [[0, 1], [2, 0]], ["zebra", "filter"], 2);
diff --git a/public/js/infocenter/messageList.js b/public/js/infocenter/messageList.js
index 6146c7639..f6eb6218a 100644
--- a/public/js/infocenter/messageList.js
+++ b/public/js/infocenter/messageList.js
@@ -15,6 +15,7 @@ var MessageList = {
statusbar: false,
plugins: "autoresize",
autoresize_bottom_margin: 10,
+ max_height:495,
autoresize_min_height: 140,
autoresize_max_height: 495,
//callback to avoid conflict with ajax (for getting body of first message)
diff --git a/public/js/infocenter/rueckstellung.js b/public/js/infocenter/rueckstellung.js
new file mode 100644
index 000000000..adc99f439
--- /dev/null
+++ b/public/js/infocenter/rueckstellung.js
@@ -0,0 +1,185 @@
+const CONTROLLER_RUECKSTELLUNG_URL = "system/infocenter/Rueckstellung";
+
+var Rueckstellung = {
+ get: function(personid)
+ {
+ FHC_AjaxClient.ajaxCallGet(
+ CONTROLLER_RUECKSTELLUNG_URL + "/get/"+encodeURIComponent(personid),
+ null,
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ var rueckstellungobj = FHC_AjaxClient.getData(data);
+ Rueckstellung._refreshRueckstellung(rueckstellungobj);
+ }
+ else
+ {
+ Rueckstellung._addRueckstellungButtons();
+ }
+
+ },
+ errorCallback: function()
+ {
+ FHC_DialogLib.alertError("error when getting rueckstellung status");
+ },
+ veilTimeout: 0
+ }
+ );
+ },
+ getStatus: function()
+ {
+ FHC_AjaxClient.ajaxCallGet(
+ CONTROLLER_RUECKSTELLUNG_URL + "/getStatus",
+ null,
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ let status = FHC_AjaxClient.getData(data);
+ $.each(status, function(key, value)
+ {
+ $('#rueckstellungtype').append($("
")
+ .val(value.status_kurzbz)
+ .text(value.bezeichnung_mehrsprachig[0])
+ )
+ });
+ }
+ },
+ errorCallback: function()
+ {
+ FHC_DialogLib.alertError("error when getting rueckstellung status");
+ },
+ veilTimeout: 0
+ }
+ );
+ },
+ set: function(personid, date, type)
+ {
+ if (type === null)
+ return false;
+
+ var onRueckstellungError = function(){
+ $("#rueckstellungmsg").text(" Fehler beim Setzen auf " + type + "!");
+ };
+
+ FHC_AjaxClient.ajaxCallPost(
+ CONTROLLER_RUECKSTELLUNG_URL + '/set',
+ {
+ "person_id": personid,
+ "datum_bis": date,
+ "status_kurzbz": type,
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ Rueckstellung.get(personid);
+ InfocenterDetails._refreshLog()
+ }
+ else
+ {
+ onRueckstellungError();
+ }
+ },
+ errorCallback: onRueckstellungError,
+ veilTimeout: 0
+ }
+ );
+ },
+ delete: function(personid, status = null)
+ {
+ FHC_AjaxClient.ajaxCallPost(
+ CONTROLLER_RUECKSTELLUNG_URL + '/delete',
+ {
+ "person_id": personid,
+ "status": status
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ Rueckstellung.get(personid);
+ }
+ else
+ $("#unrueckstellungmsg").removeClass().addClass("text-warning").text(FHC_PhrasesLib.t('infocenter', 'nichtsZumEntfernen'));
+ },
+ errorCallback: function(){
+ $("#unrueckstellungmsg").removeClass().addClass("text-danger").text(FHC_PhrasesLib.t('infocenter', 'fehlerBeimEntfernen'));
+ },
+ veilTimeout: 0
+ }
+ );
+ },
+ _refreshRueckstellung: function(rueckstellungobj)
+ {
+ var personid = $("#hiddenpersonid").val();
+ var rueckstellungdate = $.datepicker.parseDate("yy-mm-dd", rueckstellungobj.bis);
+ var gerrueckstellungdate = $.datepicker.formatDate("dd.mm.yy", rueckstellungdate);
+
+ var removetext = FHC_PhrasesLib.t('infocenter', 'statusZuruecksetzen');
+ var rueckstellungdtext = FHC_PhrasesLib.t('global', 'status') + ": '" + rueckstellungobj.bezeichnung + "' " + FHC_PhrasesLib.t('global', 'bis') + ": " + gerrueckstellungdate +
+ " " + FHC_PhrasesLib.t('ui', 'von') + ": " + rueckstellungobj.von;
+ var currdate = new Date();
+
+
+ if (currdate > rueckstellungdate)
+ rueckstellungdtext = "
"+rueckstellungdtext+"";
+
+ var callbackforundo = function ()
+ {
+ Rueckstellung.delete(personid, rueckstellungobj.status_kurzbz);
+ }
+
+ var rueckstellunghtml = rueckstellungdtext+' '+
+ '
'+
+ '
';
+
+ $("#postponing").html(
+ rueckstellunghtml
+ );
+
+ $("#unrueckstellunglink").click(
+ callbackforundo
+ );
+ },
+
+ _addRueckstellungButtons: function()
+ {
+ var personid = $("#hiddenpersonid").val();
+ $("#postponing").html(
+ '
');
+
+ Rueckstellung.getStatus();
+
+ var rueckstelldate = new Date();
+ rueckstelldate.setDate(rueckstelldate.getDate() + 14);
+ $('#rueckstellungdate').attr("value", $.datepicker.formatDate("dd.mm.yy", rueckstelldate));
+
+ $("#rueckstellungdate").datepicker({
+ "dateFormat": "dd.mm.yy",
+ "minDate": 1
+ });
+
+ $("#addRueckstellung").click(
+ function ()
+ {
+ var date = $("#rueckstellungdate").val();
+ var type = $("#rueckstellungtype").val();
+ Rueckstellung.set(personid, date, type);
+ }
+ );
+ },
+
+}
\ No newline at end of file
diff --git a/public/js/infocenter/zgvUeberpruefung.js b/public/js/infocenter/zgvUeberpruefung.js
index 6181083f2..45ff5e529 100644
--- a/public/js/infocenter/zgvUeberpruefung.js
+++ b/public/js/infocenter/zgvUeberpruefung.js
@@ -140,7 +140,7 @@ var zgvUeberpruefung = {
var datum = new Date();
datum.setDate(datum.getDate() + 14);
var formatedDate = $.datepicker.formatDate("mm/dd/yy", datum);
- InfocenterDetails.setPersonOnHold(response.person_id, formatedDate);
+ Rueckstellung.set(response.person_id, formatedDate, 'onhold_zgv');
}
InfocenterDetails._refreshLog();
@@ -171,7 +171,7 @@ var zgvUeberpruefung = {
var response = FHC_AjaxClient.getData(data)
if (response.openZgv === false)
- InfocenterDetails.removePersonOnHold(response.person_id);
+ Rueckstellung.delete(response.person_id, 'onhold_zgv');
FHC_DialogLib.alertSuccess(response.msg);
} else if (FHC_AjaxClient.isError(data))
diff --git a/public/js/issues/issuesKonfiguration.js b/public/js/issues/issuesKonfiguration.js
new file mode 100644
index 000000000..f2e7aa5c3
--- /dev/null
+++ b/public/js/issues/issuesKonfiguration.js
@@ -0,0 +1,345 @@
+/**
+ * Javascript file for Issues Zuständigkeiten assignment page
+ */
+
+const FEHLERAPP_DROPDOWN_ID = "fehlerappSelect";
+const FEHLERCODE_DROPDOWN_ID = "fehlercodeSelect";
+const FEHLERKONFIGURATIONSTYP_DROPDOWN_ID = "konfigSelect";
+
+var IssuesKonfiguration = {
+
+ fehlerkonfigArr: [], // for saving received fehlerkonfigs
+ fehlercodesArr: [], // for saving received fehlercodes
+
+ getApps: function()
+ {
+ FHC_AjaxClient.ajaxCallGet(
+ 'system/issues/IssuesKonfiguration/getApps',
+ null,
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ // save loaded apps
+ let apps = FHC_AjaxClient.getData(data);
+
+ // fill dropdown with apps
+ IssuesKonfiguration._fillDropdown(
+ FEHLERAPP_DROPDOWN_ID,
+ "app",
+ apps,
+ null,
+ false,
+ "core"
+ );
+
+ // Initiate getting of fehlercodes with apps
+ IssuesKonfiguration.getFehlerKonfigurationByApp($("#"+FEHLERAPP_DROPDOWN_ID).val());
+ }
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_DialogLib.alertError(textStatus);
+ }
+ }
+ );
+ },
+ getFehlerKonfigurationByApp: function(app)
+ {
+ FHC_AjaxClient.ajaxCallGet(
+ 'system/issues/IssuesKonfiguration/getFehlerKonfigurationByApp',
+ {
+ app: app
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ let fehlerKonfigurationData = FHC_AjaxClient.getData(data);
+
+ // save konfig and fehler data for displaying info later
+ IssuesKonfiguration.fehlerkonfigArr = fehlerKonfigurationData.konfigurationstypen;
+ IssuesKonfiguration.fehlercodesArr = fehlerKonfigurationData.fehler;
+
+ // display fehlercodes in dropdown
+ let fehlerCodes = [];
+
+ for (let i = 0; i < fehlerKonfigurationData.fehler.length; i++)
+ {
+ let fe = fehlerKonfigurationData.fehler[i];
+
+ fehlerCodes.push(
+ {
+ fehlercode: fe.fehlercode,
+ fullFehlerBezeichnung: fe.fehlercode + (!fe.fehler_kurzbz ? '' : ' - ' + fe.fehler_kurzbz)
+ }
+ );
+ }
+
+ IssuesKonfiguration._fillDropdown(
+ FEHLERCODE_DROPDOWN_ID,
+ "fehlercode",
+ fehlerCodes,
+ "fullFehlerBezeichnung"
+ );
+
+ // display fehlerkonfiguration in dropdown
+ let konfigurationstypen = [];
+
+ for (let i = 0; i < fehlerKonfigurationData.konfigurationstypen.length; i++)
+ {
+ let konf = fehlerKonfigurationData.konfigurationstypen[i];
+
+ konfigurationstypen.push(
+ {
+ konfigurationstyp_kurzbz: konf.konfigurationstyp_kurzbz
+ }
+ );
+ }
+
+ IssuesKonfiguration._fillDropdown(
+ FEHLERKONFIGURATIONSTYP_DROPDOWN_ID,
+ "konfigurationstyp_kurzbz",
+ konfigurationstypen
+ );
+
+ // set delete event on buttons
+ IssuesKonfiguration._setDeleteEvents();
+ }
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_DialogLib.alertError(textStatus);
+ }
+ }
+ );
+ },
+ saveFehlerKonfiguration: function(konfigurationstyp_kurzbz, fehlercode, konfigurationsWert)
+ {
+ FHC_AjaxClient.ajaxCallPost(
+ 'system/issues/IssuesKonfiguration/saveFehlerKonfiguration',
+ {
+ konfigurationstyp_kurzbz: konfigurationstyp_kurzbz,
+ fehlercode: fehlercode,
+ konfigurationsWert: konfigurationsWert
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ // show message, reset input fields and reload data after Zuständigkeit added
+ FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t('fehlermonitoring', 'konfigurationGespeichert'))
+ IssuesKonfiguration._reloadKonfigurationOverview();
+ }
+ else
+ {
+ // show error if no data
+ let errorMsg = FHC_PhrasesLib.t('fehlermonitoring', 'konfigurationGespeichertFehler');
+ if (FHC_AjaxClient.isError(data))
+ errorMsg += ": "+FHC_AjaxClient.getError(data);
+ FHC_DialogLib.alertError(errorMsg);
+ }
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_DialogLib.alertError(textStatus);
+ }
+ }
+ );
+ },
+ deleteKonfigurationsWerte: function(konfigurationstyp_kurzbz, fehlercode, konfigurationsWert)
+ {
+ FHC_AjaxClient.ajaxCallPost(
+ 'system/issues/IssuesKonfiguration/deleteKonfigurationsWerte',
+ {
+ konfigurationstyp_kurzbz: konfigurationstyp_kurzbz,
+ fehlercode: fehlercode,
+ konfigurationsWert: konfigurationsWert
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t('fehlermonitoring', 'konfigurationGeloescht'))
+ // reload dataset to see change
+ IssuesKonfiguration._reloadKonfigurationOverview();
+ }
+ else
+ {
+ FHC_DialogLib.alertError(FHC_PhrasesLib.t('fehlermonitoring', 'konfigurationGeloeschtFehler'));
+ }
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_DialogLib.alertError(textStatus);
+ }
+ }
+ );
+ },
+ deleteKonfiguration: function(konfigurationstyp_kurzbz, fehlercode)
+ {
+ FHC_AjaxClient.ajaxCallPost(
+ 'system/issues/IssuesKonfiguration/deleteKonfiguration',
+ {
+ konfigurationstyp_kurzbz: konfigurationstyp_kurzbz,
+ fehlercode: fehlercode
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t('fehlermonitoring', 'konfigurationGeloescht'))
+ // reload dataset to see change
+ IssuesKonfiguration._reloadKonfigurationOverview();
+ }
+ else
+ {
+ FHC_DialogLib.alertError(FHC_PhrasesLib.t('fehlermonitoring', 'konfigurationGeloeschtFehler'));
+ }
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_DialogLib.alertError(textStatus);
+ }
+ }
+ );
+ },
+ _reloadKonfigurationOverview: function()
+ {
+ FHC_FilterWidget.reloadDataset();
+ IssuesKonfiguration._setDeleteEvents();
+ },
+ _setDeleteEvents: function()
+ {
+ // set events on delete buttons
+ $(".deleteBtn").click(
+ function()
+ {
+ IssuesKonfiguration.deleteKonfiguration($(this).attr("data-konfigurationstyp-kurzbz"), $(this).attr("data-fehlercode"));
+ }
+ )
+ },
+ _fillDropdown: function(dropdownId, valueName, data, textName, includeNoSelectionOption, defaultValue)
+ {
+ // by default, displayed text in dropdown is the value
+ if (!textName)
+ textName = valueName;
+
+ // clear dropdown
+ $("#"+dropdownId).empty();
+
+ // optionally include default "no selection" value
+ if (includeNoSelectionOption === true)
+ $("#"+dropdownId).append("
");
+
+ // fill dropdown with values
+ for (let i = 0; i < data.length; i++)
+ {
+ let val = data[i];
+
+ // the value selected by default
+ let selected = val[valueName] === defaultValue ? " selected" : "";
+
+ // append option
+ $("#"+dropdownId).append("
");
+ }
+ }
+};
+
+/**
+ * When JQuery is up
+ */
+$(document).ready(function() {
+
+ // initiate cascade of getting data, first apps
+ IssuesKonfiguration.getApps();
+
+ // get new fehlercodes each time app is changed
+ $("#"+FEHLERAPP_DROPDOWN_ID).change(
+ function()
+ {
+ IssuesKonfiguration.getFehlerKonfigurationByApp($(this).val());
+ }
+ );
+
+ // set assign configuration event
+ $("#assignKonfiguration").click(
+ function()
+ {
+ IssuesKonfiguration.saveFehlerKonfiguration(
+ $("#"+FEHLERKONFIGURATIONSTYP_DROPDOWN_ID).val(),
+ $("#"+FEHLERCODE_DROPDOWN_ID).val(),
+ $("#konfigurationsWert").val()
+ );
+ }
+ );
+
+ // set delete configuration event
+ $("#deleteKonfiguration").click(
+ function()
+ {
+ IssuesKonfiguration.deleteKonfigurationsWerte(
+ $("#"+FEHLERKONFIGURATIONSTYP_DROPDOWN_ID).val(),
+ $("#"+FEHLERCODE_DROPDOWN_ID).val(),
+ $("#konfigurationsWert").val()
+ );
+ }
+ );
+
+ // set events for showing info modals
+ $("#fehlercodeInfoIcon").click(
+ function()
+ {
+ let fehlercode = $("#"+FEHLERCODE_DROPDOWN_ID).val();
+ let fehlercodeData = {};
+
+ for (let i = 0; i < IssuesKonfiguration.fehlercodesArr.length; i++)
+ {
+ let fc = IssuesKonfiguration.fehlercodesArr[i];
+ console.log(fc);
+
+ if (fc.fehlercode === fehlercode)
+ {
+ fehlercodeData = fc;
+ break;
+ }
+ }
+
+ if (!fehlercodeData)
+ return;
+
+ $("#fehlerInfoLabel").text(fehlercodeData.fehlercode + " - " + fehlercodeData.fehler_kurzbz);
+ $("#fehlercodeInfo").text(fehlercodeData.fehlercode);
+ $("#fehlerkurzbzInfo").text(fehlercodeData.fehler_kurzbz);
+ $("#fehlertypInfo").text(fehlercodeData.fehlertyp_kurzbz);
+ $("#fehlertextInfo").text(fehlercodeData.fehlertext);
+
+ $("#fehlerInfo").modal("show");
+ }
+ );
+
+ $("#konfigurationstypInfoIcon").click(
+ function()
+ {
+ let konfigurationstyp_kurzbz = $("#"+FEHLERKONFIGURATIONSTYP_DROPDOWN_ID).val();
+ let konfigurationstypData = {};
+
+ for (let i = 0; i < IssuesKonfiguration.fehlerkonfigArr.length; i++)
+ {
+ let konf = IssuesKonfiguration.fehlerkonfigArr[i];
+ console.log(konf);
+
+ if (konf.konfigurationstyp_kurzbz === konfigurationstyp_kurzbz)
+ {
+ konfigurationstypData = konf;
+ break;
+ }
+ }
+
+ if (!konfigurationstypData)
+ return;
+
+ $("#konfigurationstypInfo").text(konfigurationstypData.konfigurationstyp_kurzbz);
+ $("#konfigurationsbeschreibungInfo").text(konfigurationstypData.beschreibung);
+ $("#konfigurationsdatentypInfo").text(konfigurationstypData.konfigurationsdatentyp);
+
+ $("#konfigurationsInfo").modal("show");
+ }
+ );
+
+});
diff --git a/public/js/issues/issuesZustaendigkeiten.js b/public/js/issues/issuesZustaendigkeiten.js
index 605868295..2c56fd2da 100644
--- a/public/js/issues/issuesZustaendigkeiten.js
+++ b/public/js/issues/issuesZustaendigkeiten.js
@@ -289,7 +289,7 @@ var IssuesZustaendigkeiten = {
let val = data[i];
// the value selected by default
- let selected = val === defaultValue ? " selected" : "";
+ let selected = val[valueName] === defaultValue ? " selected" : "";
// append option
$("#"+dropdownId).append("
");
diff --git a/public/js/issues/plausichecks.js b/public/js/issues/plausichecks.js
index f679c9434..cf55cf463 100644
--- a/public/js/issues/plausichecks.js
+++ b/public/js/issues/plausichecks.js
@@ -20,21 +20,22 @@ var Plausichecks = {
if (FHC_AjaxClient.hasData(data))
{
- let issueTexts = FHC_AjaxClient.getData(data);
+ let issueData = FHC_AjaxClient.getData(data);
- for (let fehler_kurzbz in issueTexts)
+ for (let fehler_kurzbz in issueData)
{
- messageStr += "
Prüfe " + fehler_kurzbz + "...";
- let texts = issueTexts[fehler_kurzbz];
+ let issues = issueData[fehler_kurzbz]['data'];
+ messageStr += "
Prüfe " + fehler_kurzbz + " ("+issueData[fehler_kurzbz]['fehlercode']+")...";
- if (texts.length == 0) {
+ if (issues.length == 0) {
messageStr += "
Keine Issues für " + fehler_kurzbz + "";
continue;
}
- for (i = 0; i < texts.length; i++)
+ for (i = 0; i < issues.length; i++)
{
- messageStr += "
" + texts[i] + "";
+ let className = issues[i].type == 'warning' ? 'text-warning' : 'text-danger';
+ messageStr += "
" + issues[i].fehlertext + "";
}
}
}
@@ -46,7 +47,7 @@ var Plausichecks = {
}
}
);
- },
+ }
};
diff --git a/public/js/lehre/anrechnung/adminAnrechnung.js b/public/js/lehre/anrechnung/adminAnrechnung.js
new file mode 100644
index 000000000..51412bff0
--- /dev/null
+++ b/public/js/lehre/anrechnung/adminAnrechnung.js
@@ -0,0 +1,242 @@
+// TABULATOR
+// ---------------------------------------------------------------------------------------------------------------------
+
+// Add Edit and Update Buttons to table rows
+function func_tableBuilt(table) {
+ table.addColumn(
+ {
+ title: "Aktion",
+ align: "center",
+ width: 150,
+ formatter: addActionButtons,
+ }, false // place column right
+ );
+
+}
+
+// Returns relative height (depending on screen size)
+function func_height(table){
+ return $(window).height() * 0.50;
+}
+
+// Converts string date postgre style to string DD.MM.YYYY.
+// This will allow correct filtering.
+var formatDate = function(cell, formatterParams){
+ let postgreDate = cell.getValue();
+ if (postgreDate != null)
+ {
+ var d = new Date(postgreDate);
+ return ("0" + (d.getDate())).slice(-2) + "." + ("0" + (d.getMonth() + 1)).slice(-2) + "." + d.getFullYear();
+ }
+}
+
+// Create Edit and Update Buttons for table rows
+var addActionButtons = function(cell) {
+
+ // Create edit button
+ var editBtn = document.createElement("button");
+ editBtn.type = "button";
+ editBtn.innerHTML = "
";
+ editBtn.classList.add("azrEditBtn");
+ editBtn.classList.add("btn");
+ editBtn.classList.add("btn-default");
+ editBtn.addEventListener("click", function(){
+ adminAnrechnung.editRow(cell);
+ });
+
+
+
+ // Create delete button
+ var delBtn= document.createElement("button");
+ delBtn.type = "button";
+ delBtn.innerHTML = "
";
+ delBtn.classList.add("azrDeleteBtn");
+ delBtn.classList.add("btn");
+ delBtn.classList.add("btn-default");
+ delBtn.style.marginLeft = '5px';
+ delBtn.addEventListener("click", function(){
+ adminAnrechnung.deleteRow(cell);
+ });
+
+ // Add buttons to cell
+ var buttonHolder = document.createElement("span");
+ buttonHolder.appendChild(editBtn);
+ buttonHolder.appendChild(delBtn);
+
+ return buttonHolder;
+}
+
+// ---------------------------------------------------------------------------------------------------------------------
+
+$(function () {
+
+ // Empty Modal fields on 'Anrechnungszeitraum hinzufuegen'
+ $(document).on('click', '.azrOpenModal', function(){
+
+ let defaultStudiensemester_kurzbz = $('.modal-body #defaultStudiensemester_kurzbz').val();
+
+ $('.modal-header #azrModalLabel').text(FHC_PhrasesLib.t("anrechnung", "anrechnungszeitraumHinzufuegen"));
+
+ $('.modal-body #anrechnungszeitraum_id').val('');
+ $('.modal-body #studiensemester').val(defaultStudiensemester_kurzbz).change();
+ $('.modal-body #azrStart').val('');
+ $('.modal-body #azrEnde').val('');
+
+ });
+
+ // Insert Anrechnungszeitraum
+ $(document).on('click', '#azrInsertBtn', function(){
+ var studiensemester_kurzbz = $('.modal-body #studiensemester').val();
+ var anrechnungstart = $('.modal-body #azrStart').val();
+ var anrechnungende = $('.modal-body #azrEnde').val();
+
+ // Insert Anrechnungszeitraum
+ adminAnrechnung.insertAzr(studiensemester_kurzbz, anrechnungstart, anrechnungende);
+ });
+
+})
+
+var adminAnrechnung = {
+ insertAzr: function(studiensemester_kurzbz, anrechnungstart, anrechnungende){
+ FHC_AjaxClient.ajaxCallPost(
+ FHC_JS_DATA_STORAGE_OBJECT.called_path + "/save",
+ {
+ studiensemester_kurzbz: studiensemester_kurzbz,
+ anrechnungstart: anrechnungstart,
+ anrechnungende: anrechnungende
+ },
+ {
+ successCallback: function (data, textStatus, jqXHR)
+ {
+ if (FHC_AjaxClient.isError(data))
+ {
+ FHC_DialogLib.alertWarning(FHC_AjaxClient.getError(data));
+ }
+
+ if (FHC_AjaxClient.hasData(data))
+ {
+ data = FHC_AjaxClient.getData(data);
+
+ // Update row
+ $('#tableWidgetTabulator').tabulator('addData', [{
+ anrechnungszeitraum_id: data.anrechnungszeitraum_id,
+ studiensemester_kurzbz: studiensemester_kurzbz,
+ anrechnungstart: anrechnungstart,
+ anrechnungende: anrechnungende
+ }], true); // true to add row on top
+
+ // Close Modal
+ $('#azrModal').modal('hide');
+
+ // Success message
+ FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "gespeichert"));
+ }
+ },
+ errorCallback: function (jqXHR, textStatus, errorThrown)
+ {
+ FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler"));
+ }
+ }
+ );
+ },
+ editRow: function (cell){
+ // Open Modal
+ $('#azrModal').modal('show');
+
+ let row = cell.getRow();
+ var anrechnungszeitraum_id = row.getData().anrechnungszeitraum_id;
+ var studiensemester_kurzbz = row.getData().studiensemester_kurzbz;
+ var anrechnungstart = row.getData().anrechnungstart;
+ var anrechnungende = row.getData().anrechnungende;
+
+ $('.modal-header #azrModalLabel').text('Anrechnungszeitraum bearbeiten');
+
+ $('.modal-body #anrechnungszeitraum_id').val(anrechnungszeitraum_id);
+ $('.modal-body #studiensemester').val(studiensemester_kurzbz).change();
+ $('.modal-body #azrStart').val(anrechnungstart);
+ $('.modal-body #azrEnde').val(anrechnungende);
+
+ },
+ updateAzr: function (anrechnungszeitraum_id, studiensemester_kurzbz, anrechnungstart, anrechnungende) {
+ FHC_AjaxClient.ajaxCallPost(
+ FHC_JS_DATA_STORAGE_OBJECT.called_path + "/edit",
+ {
+ anrechnungszeitraum_id: anrechnungszeitraum_id,
+ studiensemester_kurzbz: studiensemester_kurzbz,
+ anrechnungstart: anrechnungstart,
+ anrechnungende: anrechnungende
+ },
+ {
+ successCallback: function (data, textStatus, jqXHR)
+ {
+ if (FHC_AjaxClient.isError(data))
+ {
+ FHC_DialogLib.alertWarning(FHC_AjaxClient.getError(data));
+ }
+
+ if (FHC_AjaxClient.hasData(data))
+ {
+ // Update row
+ $('#tableWidgetTabulator').tabulator('updateData', [{
+ anrechnungszeitraum_id: anrechnungszeitraum_id,
+ studiensemester_kurzbz: studiensemester_kurzbz,
+ anrechnungstart: anrechnungstart,
+ anrechnungende: anrechnungende
+ }]);
+
+ // Close Modal
+ $('#azrModal').modal('hide');
+
+ // Success message
+ FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "gespeichert"));
+
+ }
+ },
+ errorCallback: function (jqXHR, textStatus, errorThrown)
+ {
+ FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler"));
+ }
+ }
+ );
+ },
+ deleteAzr: function(anrechnungszeitraum_id){
+ FHC_AjaxClient.ajaxCallPost(
+ FHC_JS_DATA_STORAGE_OBJECT.called_path + "/delete",
+ {
+ anrechnungszeitraum_id: anrechnungszeitraum_id
+ },
+ {
+ successCallback: function (data, textStatus, jqXHR)
+ {
+ if (FHC_AjaxClient.isError(data))
+ {
+ FHC_DialogLib.alertWarning(FHC_AjaxClient.getError(data));
+ }
+
+ if (FHC_AjaxClient.hasData(data))
+ {
+ let row = $('#tableWidgetTabulator').tabulator('getRow', anrechnungszeitraum_id);
+ row.delete(anrechnungszeitraum_id);
+
+ // Success message
+ FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "geloescht"));
+
+ }
+ },
+ errorCallback: function (jqXHR, textStatus, errorThrown)
+ {
+ FHC_DialogLib.alertError(FHC_PhrasesLib.t("ui", "systemfehler"));
+ }
+ }
+ );
+ },
+ deleteRow: function (cell){
+ if(!confirm(FHC_PhrasesLib.t("ui", "frageSicherLoeschen")))
+ {
+ return;
+ }
+
+ // Delete Anrechnungszeitraum
+ adminAnrechnung.deleteAzr(cell.getRow().getData().anrechnungszeitraum_id);
+ }
+}
\ No newline at end of file
diff --git a/public/js/lehre/anrechnung/approveAnrechnungDetail.js b/public/js/lehre/anrechnung/approveAnrechnungDetail.js
index 3a91f4e3a..3a40503b5 100644
--- a/public/js/lehre/anrechnung/approveAnrechnungDetail.js
+++ b/public/js/lehre/anrechnung/approveAnrechnungDetail.js
@@ -141,6 +141,13 @@ $(function(){
return;
}
+ // Check if forgot to fulfill begruendung
+ if (begruendung.trim().endsWith('weil') || begruendung.endsWith('because of'))
+ {
+ FHC_DialogLib.alertInfo(FHC_PhrasesLib.t("ui", "bitteBegruendungVervollstaendigen"));
+ return;
+ }
+
// Get form data
let form_data = $('form').serializeArray();
@@ -194,17 +201,9 @@ $(function(){
// Get form data
let form_data = $('#form-empfehlung').serializeArray();
-
- // Prepare data object for ajax call
- let data = {
- 'data': [{
- 'anrechnung_id' : form_data[0].value
- }]
- };
-
FHC_AjaxClient.ajaxCallPost(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/requestRecommendation",
- data,
+ {anrechnung_id: form_data[0].value},
{
successCallback: function (data, textStatus, jqXHR)
{
@@ -471,11 +470,27 @@ var approveAnrechnungDetail = {
textarea.val($.trim($('#approveAnrechnungDetail-empfehlungDetail-begruendung').text()));
return;
}
- else
+
+ // Find Begruendung span
+ let textspan = $(elem).parent().find('span:first');
+
+ // Get Begruendung
+ let begruendung = textspan.text();
+
+ // Check if Begruendung has helptext
+ let hasHelptext = textspan.children('span #helpTxtBegruendungErgaenzen').length > 0;
+
+ if (hasHelptext)
{
- // Copy begruendung into textarea
- textarea.val($.trim($(elem).parent().find('span:first').text()));
+ let helptext = textspan.children('span #helpTxtBegruendungErgaenzen').text();
+
+ // Remove helptext
+ begruendung = begruendung.replace(helptext, '');
+
}
+
+ // Copy begruendung into textarea and set focus
+ textarea.val($.trim(begruendung)).focus();
},
formatEmpfehlungIsRequested: function(statusBezeichnung, empfehlungsanfrageAm, empfehlungsanfrageAn) {
$('#approveAnrechnungDetail-empfehlungDetail-empfehlungsanfrageAm').html(empfehlungsanfrageAm);
diff --git a/public/js/lehre/anrechnung/approveAnrechnungUebersicht.js b/public/js/lehre/anrechnung/approveAnrechnungUebersicht.js
index cdd0cfd07..a2bc5daff 100644
--- a/public/js/lehre/anrechnung/approveAnrechnungUebersicht.js
+++ b/public/js/lehre/anrechnung/approveAnrechnungUebersicht.js
@@ -57,6 +57,12 @@ function hf_filterTrueFalse(headerValue, rowValue){
}
}
+// Filters schreibberechtigt boolean values
+function hf_schreibberechtigt(headerValue, rowValue){
+
+ return rowValue == headerValue.toString();
+}
+
// Adds column details
// Sets focus on filterbutton, if table starts with stored filter.
function func_tableBuilt(table) {
@@ -173,19 +179,22 @@ function func_selectableCheck(row){
// data = selected data, rows = selected rows
function func_rowSelectionChanged(data, rows){
- // Sum up over all anzurechnenden LV-ECTS by Prestudent
- selectedPrestudentWithAccumulatedLvEcts = approveAnrechnung.getSumLvEctsByPreStudent(data);
+ if (tabulator != null)
+ {
+ // Sum up over all anzurechnenden LV-ECTS by Prestudent
+ selectedPrestudentWithAccumulatedLvEcts = approveAnrechnung.getSumLvEctsByPreStudent(data);
- // Loop through all active rows
- var rowManager = tabulator.rowManager;
- for (var i = 0; i < rowManager.activeRows.length; i++) {
+ // Loop through all active rows
+ var rowManager = tabulator.rowManager;
+ for (var i = 0; i < rowManager.activeRows.length; i++) {
- // Reinitialize row -> triggers formatters.
- rowManager.activeRows[i].reinitialize();
+ // Reinitialize row -> triggers formatters.
+ rowManager.activeRows[i].reinitialize();
+ }
+
+ // Show number of selected rows.
+ approveAnrechnung.showNumberSelectedRows(rows);
}
-
- // Show number of selected rows.
- approveAnrechnung.showNumberSelectedRows(rows);
}
// Returns tooltip
@@ -570,12 +579,8 @@ $(function(){
}
}
- selected_data.map(function(data){
- // reduce to necessary fields
- return {
- 'anrechnung_id' : data.anrechnung_id,
- }
- });
+ // Reduce to necessary fields
+ selected_data = selected_data.map(data => ({'anrechnung_id' : data.anrechnung_id}));
// Alert and exit if no anrechnung is selected
if (selected_data.length == 0)
@@ -584,14 +589,9 @@ $(function(){
return;
}
- // Prepare data object for ajax call
- let data = {
- 'data': selected_data
- };
-
FHC_AjaxClient.ajaxCallPost(
FHC_JS_DATA_STORAGE_OBJECT.called_path + "/requestRecommendation",
- data,
+ {data: selected_data},
{
successCallback: function (data, textStatus, jqXHR)
{
@@ -617,14 +617,14 @@ $(function(){
// Print success message
FHC_DialogLib.alertSuccess(FHC_PhrasesLib.t("ui", "empfehlungWurdeAngefordert"));
}
+
+ //Update status 'genehmigt'
+ $('#tableWidgetTabulator').tabulator('updateData', data);
+
+ // Deselect rows
+ var indexesToDeselect = data.map(x => x.anrechnung_id);
+ $("#tableWidgetTabulator").tabulator('deselectRow', indexesToDeselect);
}
-
- //Update status 'genehmigt'
- $('#tableWidgetTabulator').tabulator('updateData', data);
-
- // Deselect rows
- var indexesToDeselect = data.map(x => x.anrechnung_id);
- $("#tableWidgetTabulator").tabulator('deselectRow', indexesToDeselect);
},
errorCallback: function (jqXHR, textStatus, errorThrown)
{
@@ -701,8 +701,8 @@ var approveAnrechnung = {
// Find closest textarea
let textarea = $(elem).closest('div').find('textarea');
- // Copy begruendung into textarea
- textarea.val($.trim($(elem).parent().text()));
+ // Copy begruendung into textarea and set focus
+ textarea.val($.trim($(elem).parent().text())).focus();
},
focusFilterbuttonIfTableStartsWithStoredFilter(filters){
switch (filters[0].value) {
diff --git a/public/js/lehre/anrechnung/requestAnrechnung.js b/public/js/lehre/anrechnung/requestAnrechnung.js
index 5edb4e162..2947aebe9 100644
--- a/public/js/lehre/anrechnung/requestAnrechnung.js
+++ b/public/js/lehre/anrechnung/requestAnrechnung.js
@@ -1,6 +1,9 @@
const ANRECHNUNGSTATUS_APPROVED = 'approved';
const ANRECHNUNGSTATUS_REJECTED = 'rejected';
-const HERKUNFT_DER_KENNTNISSE_MAX_LENGTH = 125;
+const CHAR_LENGTH125 = 125;
+const CHAR_LENGTH150 = 150;
+const CHAR_LENGTH500 = 500;
+const CHAR_LENGTH1000 = 1000;
const COLOR_DANGER = '#f2dede';
@@ -25,7 +28,7 @@ $(function(){
// Alert message inside Begruendungsbox, if maximum ECTS exceeded
requestAnrechnung.alertIfMaxEctsExceededInsideBegruendungsbox();
- // Set chars counter for textarea 'Herkunft der Kenntnisse'
+ // Set chars counter for textareas
requestAnrechnung.setCharsCounter();
// If Sperregrund exists: display Sperre panel, hide Status panel and disable all form elements
@@ -98,6 +101,8 @@ $(function(){
begruendung: this.begruendung.value,
lv_id: this.lv_id.value,
studiensemester: this.studiensemester.value,
+ begruendung_ects: this.begruendung_ects.value,
+ begruendung_lvinhalt: this.begruendung_lvinhalt.value,
bestaetigung: this.bestaetigung.value,
uploadfile: this.uploadfile.files
},
@@ -207,11 +212,22 @@ var requestAnrechnung = {
},
setCharsCounter: function(){
$('#requestAnrechnung-herkunftDerKenntnisse').keyup(function() {
-
- let length = HERKUNFT_DER_KENNTNISSE_MAX_LENGTH - $(this).val().length;
-
+ let length = CHAR_LENGTH125 - $(this).val().length;
$('#requestAnrechnung-herkunftDerKenntnisse-charCounter').text(length);
});
+
+ $('#requestAnrechnung-begruendungEcts').keyup(function() {
+ let length = CHAR_LENGTH150 - $(this).val().length;
+ $('#requestAnrechnung-begruendungEcts-charCounter').text(length);
+ });
+
+ $('#requestAnrechnung-begruendungLvinhalt').keyup(function() {
+ let maxlength = CHAR_LENGTH1000 - $(this).val().length;
+ $('#requestAnrechnung-begruendungLvinhalt-charCounterMax').text(maxlength);
+
+ let minlength = CHAR_LENGTH500 - $(this).val().length;
+ $('#requestAnrechnung-begruendungLvinhalt-charCounterMin').text(minlength);
+ });
},
formatAnrechnungIsApplied: function (antragdatum, dms_id, filename){
$('#requestAnrechnung-antragdatum').text(antragdatum);
diff --git a/public/js/lehre/anrechnung/reviewAnrechnungDetail.js b/public/js/lehre/anrechnung/reviewAnrechnungDetail.js
index fc26f4577..e8142ea05 100644
--- a/public/js/lehre/anrechnung/reviewAnrechnungDetail.js
+++ b/public/js/lehre/anrechnung/reviewAnrechnungDetail.js
@@ -133,6 +133,13 @@ $(function(){
return;
}
+ // Check if forgot to fulfill begruendung
+ if (begruendung.trim().endsWith('weil') || begruendung.endsWith('because of'))
+ {
+ FHC_DialogLib.alertInfo(FHC_PhrasesLib.t("ui", "bitteBegruendungVervollstaendigen"));
+ return;
+ }
+
// Get form data
let form_data = $('form').serializeArray();
@@ -241,8 +248,26 @@ var reviewAnrechnung = {
// Find closest textarea
let textarea = $(elem).closest('div').find('textarea');
- // Copy begruendung into textarea
- textarea.val($.trim($(elem).parent().find('span:first').text()));
+ // Find Begruendung span
+ let textspan = $(elem).parent().find('span:first');
+
+ // Get Begruendung
+ let begruendung = textspan.text();
+
+ // Check if Begruendung has helptext
+ let hasHelptext = textspan.children('span #helpTxtBegruendungErgaenzen').length > 0;
+
+ if (hasHelptext)
+ {
+ let helptext = textspan.children('span #helpTxtBegruendungErgaenzen').text();
+
+ // Remove helptext
+ begruendung = begruendung.replace(helptext, '');
+ }
+
+ // Copy begruendung into textarea and set focus
+ textarea.val($.trim(begruendung)).focus();
+
},
formatEmpfehlungIsTrue: function(empfehlungAm, emfehlungVon, statusBezeichnung){
$('#reviewAnrechnungDetail-status_kurzbz').text(statusBezeichnung);
diff --git a/public/js/lehre/anrechnung/reviewAnrechnungUebersicht.js b/public/js/lehre/anrechnung/reviewAnrechnungUebersicht.js
index b0134b5a3..c71b85274 100644
--- a/public/js/lehre/anrechnung/reviewAnrechnungUebersicht.js
+++ b/public/js/lehre/anrechnung/reviewAnrechnungUebersicht.js
@@ -51,6 +51,12 @@ function hf_filterTrueFalse(headerValue, rowValue){
}
}
+// Filters empfehlungsberechtigt boolean values
+function hf_empfehlungsberechtigt(headerValue, rowValue){
+
+ return rowValue == headerValue.toString();
+}
+
// Adds column details
function func_tableBuilt(table) {
table.addColumn(
@@ -74,9 +80,10 @@ function func_tableBuilt(table) {
// Formats the rows
function func_rowFormatter(row){
let status_kurzbz = row.getData().status_kurzbz;
+ let empfehlungsberechtigt = row.getData().empfehlungsberechtigt;
row.getCells().forEach(function(cell){
- if (status_kurzbz != ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR)
+ if (status_kurzbz != ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR || empfehlungsberechtigt == "false")
{
row.getElement().style["background-color"] = COLOR_LIGHTGREY; // default
}
@@ -86,9 +93,10 @@ function func_rowFormatter(row){
// Formats row selectable/unselectable
function func_selectableCheck(row){
let status_kurzbz = row.getData().status_kurzbz;
+ let empfehlungsberechtigt = row.getData().empfehlungsberechtigt;
return (
- status_kurzbz == ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR
+ status_kurzbz == ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR || empfehlungsberechtigt == "false"
);
}
@@ -441,7 +449,7 @@ var reviewAnrechnung = {
// Find closest textarea
let textarea = $(elem).closest('div').find('textarea');
- // Copy begruendung into textarea
- textarea.val($.trim($(elem).parent().text()));
+ // Copy begruendung into textarea and set focus
+ textarea.val($.trim($(elem).parent().text())).focus();
}
}
diff --git a/public/js/messaging/fasMessageWrite.js b/public/js/messaging/fasMessageWrite.js
new file mode 100644
index 000000000..ee480eb31
--- /dev/null
+++ b/public/js/messaging/fasMessageWrite.js
@@ -0,0 +1,154 @@
+// ********************************************************
+// JS used by view system/messages/htmlWriteTemplate
+// ********************************************************
+
+function tinymcePreviewSetContent()
+{
+ if ($("#tinymcePreview"))
+ {
+ if ($("#recipients").children(":selected").val() > -1)
+ {
+ parseMessageText($("#recipients").children(":selected").val(), tinyMCE.get("bodyTextArea").getContent());
+ }
+ else
+ {
+ tinyMCE.get("tinymcePreview").setContent("");
+ }
+ }
+}
+
+function parseMessageText(receiver_id, text)
+{
+ FHC_AjaxClient.ajaxCallPost(
+ "system/messages/Messages/parseMessageText",
+ {
+ receiver_id: receiver_id,
+ text: text,
+ type: $("#type").val()
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+
+ if (FHC_AjaxClient.hasData(data))
+ {
+ tinyMCE.get("tinymcePreview").setContent(FHC_AjaxClient.getData(data));
+ }
+ else if (FHC_AjaxClient.isError(data))
+ {
+ FHC_DialogLib.alertError(data.retval);
+ }
+ }
+ }
+ );
+}
+
+$(document).ready(function ()
+{
+
+ tinymce.init({
+ theme : "advanced",
+ mode : "specific_textareas",
+ editor_selector: "bodyTextArea",
+ theme_advanced_buttons2: "undo, redo, outdent, indent, bullist, numlist, link",
+ theme_advanced_buttons3: "",
+ theme_advanced_buttons4: "",
+ theme_advanced_toolbar_location: "top",
+ height: "400px",
+ });
+
+ tinymce.init({
+ theme : "advanced",
+ mode : "specific_textareas",
+ editor_selector: "tinymcePreview",
+ height: 400,
+ readonly: 1,
+ });
+
+ if ($("#variables"))
+ {
+ $("#variables").dblclick(function ()
+ {
+ if ($("#bodyTextArea"))
+ {
+ //if editor active add at cursor position, otherwise at end
+ if (tinymce.activeEditor.id === "bodyTextArea")
+ tinymce.activeEditor.execCommand('mceInsertContent', false, $(this).children(":selected").val());
+ else
+ tinyMCE.get("bodyTextArea").setContent(tinyMCE.get("bodyTextArea").getContent() + $(this).children(":selected").val());
+ }
+ });
+ }
+
+ if ($("#user_fields"))
+ {
+ $("#user_fields").dblclick(function ()
+ {
+ if ($("#bodyTextArea"))
+ {
+ //if editor active add at cursor position, otherwise at end
+ if (tinymce.activeEditor.id === "bodyTextArea")
+ tinymce.activeEditor.execCommand('mceInsertContent', false, $(this).children(":selected").val());
+ else
+ tinyMCE.get("bodyTextArea").setContent(tinyMCE.get("bodyTextArea").getContent() + $(this).children(":selected").val());
+ }
+ });
+ }
+
+ if ($("#recipients"))
+ {
+ $("#recipients").change(tinymcePreviewSetContent);
+ }
+
+ if ($("#refresh"))
+ {
+ $("#refresh").click(tinymcePreviewSetContent);
+ }
+
+ if ($("#sendButton") && $("#sendForm"))
+ {
+ $("#sendButton").click(function ()
+ {
+ if ($("#subject") && $("#subject").val() != '' && tinyMCE.get("bodyTextArea").getContent() != '')
+ {
+ $("#sendForm").submit();
+ }
+ else
+ {
+ FHC_DialogLib.alertInfo("Subject and text are required fields!");
+ }
+ });
+ }
+
+ if ($("#vorlageDnD"))
+ {
+ $("#vorlageDnD").change(function ()
+ {
+ var vorlage_kurzbz = this.value;
+
+ if (vorlage_kurzbz != '')
+ {
+ FHC_AjaxClient.ajaxCallGet(
+ "system/messages/Messages/getVorlage",
+ {
+ vorlage_kurzbz: vorlage_kurzbz
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+
+ if (FHC_AjaxClient.hasData(data))
+ {
+ var msg = FHC_AjaxClient.getData(data);
+
+ tinyMCE.get("bodyTextArea").setContent(msg[0].text);
+ $("#subject").val(msg[0].subject);
+ }
+ }
+ }
+ );
+ }
+ });
+ }
+
+ $("#subject").focus();
+
+});
diff --git a/public/js/messaging/messageWrite.js b/public/js/messaging/messageWrite.js
index 8b1d73bdf..5132c0b7f 100644
--- a/public/js/messaging/messageWrite.js
+++ b/public/js/messaging/messageWrite.js
@@ -42,11 +42,14 @@ function parseMessageText(receiver_id, text)
);
}
-$(document).ready(function ()
-{
+$(document).ready(function () {
+
tinymce.init({
selector: "#bodyTextArea",
- plugins: "autoresize",
+ plugins: "link",
+ toolbar: "undo redo | presentation | bold italic | link | alignleft aligncenter alignright alignjustify | outdent indent",
+ min_height: 400,
+ max_height: 700,
autoresize_on_init: false,
autoresize_min_height: 400,
autoresize_max_height: 400,
@@ -60,7 +63,14 @@ $(document).ready(function ()
menubar: false,
toolbar: false,
statusbar: false,
- readonly: 1
+ readonly: 1,
+ min_height: 400,
+ max_height: 700,
+ autoresize_on_init: false,
+ autoresize_min_height: 400,
+ autoresize_max_height: 700,
+ autoresize_bottom_margin: 10,
+ auto_focus: "bodyTextArea"
});
if ($("#variables"))
diff --git a/public/js/messaging/messageWriteReply.js b/public/js/messaging/messageWriteReply.js
index c6401ded2..318a83280 100644
--- a/public/js/messaging/messageWriteReply.js
+++ b/public/js/messaging/messageWriteReply.js
@@ -6,7 +6,9 @@ $(document).ready(function ()
{
tinymce.init({
selector: "#bodyTextArea",
- plugins: "autoresize",
+ plugins: "autoresize, link",
+ toolbar: "undo redo | presentation | bold italic | link | alignleft aligncenter alignright alignjustify | outdent indent",
+ max_height: 600,
autoresize_min_height: 150,
autoresize_max_height: 600,
autoresize_bottom_margin: 10,
diff --git a/public/js/messaging/read.js b/public/js/messaging/read.js
index b4b1573a2..d38365467 100644
--- a/public/js/messaging/read.js
+++ b/public/js/messaging/read.js
@@ -220,6 +220,7 @@ $(document).ready(function () {
statusbar: false,
readonly: 1,
autoresize_min_height: 300,
+ max_height: 600,
autoresize_bottom_margin: 0
});
diff --git a/public/js/messaging/write.js b/public/js/messaging/write.js
index 1370fb2e0..46336b8eb 100644
--- a/public/js/messaging/write.js
+++ b/public/js/messaging/write.js
@@ -62,8 +62,11 @@ $(document).ready(function () {
//
tinymce.init({
selector: "#body",
- plugins: "autoresize",
- autoresize_min_height: 150,
+ plugins: "autoresize, link",
+ toolbar: "undo redo | presentation | bold italic | link | alignleft aligncenter alignright alignjustify | outdent indent",
+ min_height: 300,
+ max_height: 600,
+ autoresize_min_height: 300,
autoresize_max_height: 600,
autoresize_bottom_margin: 10
});
diff --git a/public/js/messaging/writeReply.js b/public/js/messaging/writeReply.js
index c78748889..df195d20f 100644
--- a/public/js/messaging/writeReply.js
+++ b/public/js/messaging/writeReply.js
@@ -37,7 +37,9 @@ $(document).ready(function () {
//
tinymce.init({
selector: "#body",
- plugins: "autoresize",
+ plugins: "autoresize, link",
+ toolbar: "undo redo | presentation | bold italic | link | alignleft aligncenter alignright alignjustify | outdent indent",
+ max_height: 600,
autoresize_min_height: 150,
autoresize_max_height: 600,
autoresize_bottom_margin: 10
diff --git a/public/js/mixins/Phrasen.js b/public/js/mixins/Phrasen.js
new file mode 100644
index 000000000..6c27f87bb
--- /dev/null
+++ b/public/js/mixins/Phrasen.js
@@ -0,0 +1,105 @@
+const categories = {};
+const loadingModules = {};
+
+function extractCategory(obj, category) {
+ return obj.filter(e => e.category == category).reduce((res, elem) => {
+ if (!res[elem.phrase])
+ res[elem.phrase] = elem.text;
+ return res;
+ }, {});
+}
+function reloadRefs(category) {
+ while (loadingModules[category].length) {
+ var v = loadingModules[category].pop();
+ v[0].value = getValueForLoadedPhrase(category, v[1], v[2]);
+ Vue.triggerRef(v[0]);
+ /*Vue.unref(v);*/
+ }
+}
+function loadLazy(category, val, phrase, params) {
+ // NOTE(chris): load module if it's not loaded yet
+ if (loadingModules[category]) {
+ loadingModules[category].push([val, phrase, params]);
+ if (categories[category]) // NOTE(chris): this is for safety in case the loading finished the moment before the val was pushed into the array
+ reloadRefs(category);
+ return;
+ }
+ loadingModules[category] = [[val, phrase, params]];
+
+ axios.get(FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + '/components/Phrasen/loadModule/' + category).then(res => {
+ if (res.data.retval)
+ categories[category] = extractCategory(res.data.retval, category);
+ else
+ categories[category] = {};
+
+ reloadRefs(category);
+ }).catch(err => console.error(err));
+}
+function getValueForLoadedPhrase(category, phrase, params) {
+ let result = categories[category][phrase];
+ if (!result)
+ return '<< PHRASE ' + phrase + '>>';
+ if (params)
+ result = result.replace(/\{([^}]*)\}/g, (match, p1) => params[p1] === undefined ? match : params[p1]);
+ return result;
+}
+
+
+const phrasen = {
+ t_ref(category, phrase, params) {
+ if (params === undefined && (
+ (Array.isArray(category) && category.length == 2) ||
+ (category.split && category.split('/').length == 2))
+ ) {
+ params = phrase;
+ [category, phrase] = category.split ? category.split('/') : category;
+ }
+ if (phrase === undefined) {
+ console.error('invalid input');
+ return '';
+ }
+ if (!categories[category]) {
+
+ var initialval = '';
+ if (window.FHC_JS_PHRASES_STORAGE_OBJECT !== undefined) {
+ var tmp_category = extractCategory(FHC_JS_PHRASES_STORAGE_OBJECT, category);
+ if(tmp_category[phrase] !== undefined ) {
+ initialval = tmp_category[phrase];
+ }
+ }
+
+ if (!categories[category] || Object.keys(categories[category]).length === 0) {
+ categories[category] = undefined;
+ let val = Vue.ref(initialval);
+ loadLazy(category, val, phrase, params);
+ return val;
+ }
+ }
+ var result = getValueForLoadedPhrase(category, phrase, params);
+ return Vue.ref(result);
+ },
+ t(category, phrase, params) {
+ return Vue.unref(this.t_ref(category, phrase, params));
+ }
+};
+
+export default {
+ data: () => {
+ return {
+ p: phrasen
+ }
+ }
+}
+
+// Composable (wrapper for mixin)
+export function usePhrasen() {
+
+ function t(category, phrase, params) {
+ return phrasen.t(category, phrase, params);
+ }
+
+ return {
+ t,
+ }
+
+}
diff --git a/public/js/plugin/Phrasen.js b/public/js/plugin/Phrasen.js
new file mode 100644
index 000000000..162dc2179
--- /dev/null
+++ b/public/js/plugin/Phrasen.js
@@ -0,0 +1,67 @@
+const categories = Vue.reactive({});
+const loadingModules = {};
+
+function extractCategory(obj, category) {
+ return obj.filter(e => e.category == category).reduce((res, elem) => {
+ if (!res[elem.phrase])
+ res[elem.phrase] = elem.text;
+ return res;
+ }, {});
+}
+function getValueForLoadedPhrase(category, phrase, params) {
+ let result = categories[category][phrase];
+ if (!result)
+ return '<< PHRASE ' + phrase + '>>';
+ if (params)
+ result = result.replace(/\{([^}]*)\}/g, (match, p1) => params[p1] === undefined ? match : params[p1]);
+ return result;
+}
+
+
+const phrasen = {
+ loadCategory(category) {
+ if (Array.isArray(category))
+ return Promise.all(category.map(cat => this.loadCategory(cat)));
+ if (!loadingModules[category])
+ loadingModules[category] = axios
+ .get(FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + '/components/Phrasen/loadModule/' + category)
+ .then(res => {
+ if (res.data.retval)
+ categories[category] = extractCategory(res.data.retval, category);
+ else
+ categories[category] = {};
+ });
+ return loadingModules[category];
+ },
+ t_ref(category, phrase, params) {
+ console.warn('depricated');
+ return Vue.computed(() => this.t(category, phrase, params));
+ },
+ t(category, phrase, params) {
+ if (params === undefined && (
+ (Array.isArray(category) && category.length == 2) ||
+ (category.split && category.split('/').length == 2))
+ ) {
+ params = phrase;
+ [category, phrase] = category.split ? category.split('/') : category;
+ }
+ if (phrase === undefined) {
+ console.error('invalid input', category, phrase, params);
+ return '';
+ }
+ let val = Vue.computed(() => {
+ if (!categories[category])
+ return '';
+ return getValueForLoadedPhrase(category, phrase, params);
+ });
+ if (!categories[category])
+ this.loadCategory(category);
+ return val.value;
+ }
+};
+
+export default {
+ install(app, options) {
+ app.config.globalProperties.$p = phrasen;
+ }
+}
diff --git a/public/js/tabulator/filters/Dates.js b/public/js/tabulator/filters/Dates.js
new file mode 100644
index 000000000..7c9f268f0
--- /dev/null
+++ b/public/js/tabulator/filters/Dates.js
@@ -0,0 +1,43 @@
+if (!primevue) {
+ console.error('PrimeVue not loaded!');
+}
+
+// NOTE(chris): Click on clear button gives an error. This is a bug in primevue => fixed in current version
+Tabulator.extendModule('filter', 'filters', {
+ "dates": (headerValue, rowValue) => {
+ if (!headerValue)
+ return true;
+ let v = new Date(rowValue);
+ if (Array.isArray(headerValue)) {
+ if (headerValue[1]) {
+ return v >= headerValue[0] && v <= headerValue[1].setHours(23, 59, 59, 999);
+ }
+ return v.toDateString() == headerValue[0].toDateString();
+ }
+ return v.toDateString() == headerValue.toDateString();
+ }
+});
+function dateFilter(cell, onRendered, success) {
+ let div = document.createElement('div');
+
+ Vue.createApp({
+ components: {
+ PrimevueCalendar: primevue.calendar
+ },
+ data() {
+ return {
+ val: null
+ }
+ },
+ watch: {
+ val(n) {
+ success(n);
+ }
+ },
+ template: `
`
+ }).use(primevue.config.default).mount(div);
+
+ return div;
+}
+
+export { dateFilter as 'dateFilter' };
diff --git a/rdf/AntragAbmeldung.xml.php b/rdf/AntragAbmeldung.xml.php
new file mode 100644
index 000000000..515b1809a
--- /dev/null
+++ b/rdf/AntragAbmeldung.xml.php
@@ -0,0 +1,71 @@
+db_add_param($id) . "
+ AND a.typ = 'Abmeldung' AND campus.get_status_studierendenantrag(a.studierendenantrag_id) = 'Genehmigt';";
+ $not_found_error = 'Studierendenantrag not found'. $id;
+ } elseif(isset($_GET['uid']) && isset($_GET['prestudent_id'])) {
+ $uid = $_GET['uid'];
+ $uid = explode(';', $uid);
+ $uid = (array_filter($uid, 'strlen'));
+
+ $prestudent_id = $_GET['prestudent_id'];
+ $prestudent_id = explode(';', $prestudent_id);
+ $prestudent_id = (array_filter($prestudent_id, 'strlen'));
+
+ $where = " WHERE a.prestudent_id in (" . $db->db_implode4SQL($prestudent_id) . ")
+ AND a.typ = 'Abmeldung' AND campus.get_status_studierendenantrag(a.studierendenantrag_id) = 'Genehmigt';";
+ $not_found_error = 'Studierendenantrag not found for: ' . implode(',', $uid);
+ } else
+ die('
wrong parameters');
+}
+else
+ die('
Format not supported');
+
+
+$query = "
+ SELECT stg.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, a.studiensemester_kurzbz, vorname, nachname, studiengang_kz, public.get_absem_prestudent(a.prestudent_id, NULL) AS semester, a.grund
+ FROM
+ campus.tbl_studierendenantrag a
+ JOIN public.tbl_student USING (prestudent_id)
+ JOIN public.tbl_benutzer ON tbl_student.student_uid=uid
+ JOIN public.tbl_person USING (person_id)
+ JOIN public.tbl_studiengang stg USING (studiengang_kz)
+ JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
+ LEFT JOIN public.tbl_prestudentstatus pss ON (pss.prestudent_id = a.prestudent_id AND pss.studiensemester_kurzbz=a.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(a.prestudent_id, a.studiensemester_kurzbz))
+ LEFT JOIN lehre.tbl_studienplan plan USING (studienplan_id)
+ JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, stg.orgform_kurzbz))" . $where;
+
+
+if (!$db->db_query($query) || !$db->db_num_rows())
+ die('
' . $not_found_error . '');
+
+?>
+
+
+ db_fetch_object()) { ?>
+
+ vorname . ' ' . $row->nachname); ?>]]>
+ bezeichnung; ?>]]>
+ bezeichnung_mehrsprachig; ?>]]>
+ matrikelnr; ?>]]>
+ studienjahr_kurzbz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+ semester; ?>]]>
+ grund; ?>]]>
+
+
+
+
diff --git a/rdf/AntragAbmeldungStgl.xml.php b/rdf/AntragAbmeldungStgl.xml.php
new file mode 100644
index 000000000..4511be232
--- /dev/null
+++ b/rdf/AntragAbmeldungStgl.xml.php
@@ -0,0 +1,70 @@
+db_add_param($id) . "
+ AND a.typ = 'AbmeldungStgl' AND campus.get_status_studierendenantrag(a.studierendenantrag_id) IN ('Genehmigt', 'Beeinsprucht', 'EinspruchAbgelehnt');";
+ $not_found_error = 'Studierendenantrag not found'. $id;
+ } elseif(isset($_GET['uid']) && isset($_GET['prestudent_id'])) {
+ $uid = $_GET['uid'];
+ $uid = explode(';', $uid);
+ $uid = (array_filter($uid, 'strlen'));
+
+ $prestudent_id = $_GET['prestudent_id'];
+ $prestudent_id = explode(';', $prestudent_id);
+ $prestudent_id = (array_filter($prestudent_id, 'strlen'));
+
+ $where = " WHERE a.prestudent_id in (" . $db->db_implode4SQL($prestudent_id) . ")
+ AND a.typ = 'AbmeldungStgl' AND campus.get_status_studierendenantrag(a.studierendenantrag_id) IN ('Genehmigt', 'Beeinsprucht', 'EinspruchAbgelehnt');";
+ $not_found_error = 'Studierendenantrag not found for: ' . implode(',', $uid);
+ } else
+ die('
wrong parameters');
+}
+else
+ die('
Format not supported');
+
+
+$query = "
+ SELECT stg.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, a.studiensemester_kurzbz, vorname, nachname, studiengang_kz, public.get_absem_prestudent(a.prestudent_id, NULL) AS semester, a.grund
+ FROM
+ campus.tbl_studierendenantrag a
+ JOIN public.tbl_student USING (prestudent_id)
+ JOIN public.tbl_benutzer ON tbl_student.student_uid=uid
+ JOIN public.tbl_person USING (person_id)
+ JOIN public.tbl_studiengang stg USING (studiengang_kz)
+ JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
+ LEFT JOIN public.tbl_prestudentstatus pss ON (pss.prestudent_id = a.prestudent_id AND pss.studiensemester_kurzbz=a.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(a.prestudent_id, a.studiensemester_kurzbz))
+ LEFT JOIN lehre.tbl_studienplan plan USING (studienplan_id)
+ JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, stg.orgform_kurzbz))" . $where;
+
+
+if (!$db->db_query($query) || !$db->db_num_rows())
+ die('
' . $not_found_error . '');
+
+?>
+
+
+ db_fetch_object()) { ?>
+
+ vorname . ' ' . $row->nachname); ?>]]>
+ bezeichnung; ?>]]>
+ bezeichnung_mehrsprachig; ?>]]>
+ matrikelnr; ?>]]>
+ studienjahr_kurzbz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+ semester; ?>]]>
+ grund; ?>]]>
+
+
+
diff --git a/rdf/AntragUnterbrechung.xml.php b/rdf/AntragUnterbrechung.xml.php
new file mode 100644
index 000000000..ff3e68afa
--- /dev/null
+++ b/rdf/AntragUnterbrechung.xml.php
@@ -0,0 +1,75 @@
+db_add_param($id) . "
+ AND a.typ = 'Unterbrechung' AND campus.get_status_studierendenantrag(a.studierendenantrag_id) IN ('Genehmigt', 'EmailVersandt');";
+ $not_found_error = 'Studierendenantrag not found'. $id;
+ } elseif(isset($_GET['uid']) && isset($_GET['prestudent_id'])) {
+ $uid = $_GET['uid'];
+ $uid = explode(';', $uid);
+ $uid = (array_filter($uid, 'strlen'));
+
+ $prestudent_id = $_GET['prestudent_id'];
+ $prestudent_id = explode(';', $prestudent_id);
+ $prestudent_id = (array_filter($prestudent_id, 'strlen'));
+
+ $where = " WHERE a.prestudent_id in (" . $db->db_implode4SQL($prestudent_id) . ")
+ AND a.typ = 'Unterbrechung' AND campus.get_status_studierendenantrag(a.studierendenantrag_id) IN ('Genehmigt', 'EmailVersandt');";
+ $not_found_error = 'Studierendenantrag not found for: ' . implode(',', $uid);
+ } else
+ die('
wrong parameters');
+}
+else
+ die('
Format not supported');
+
+
+$query = "
+ SELECT stg.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, a.studiensemester_kurzbz, vorname, nachname, studiengang_kz, public.get_absem_prestudent(a.prestudent_id, NULL) AS semester, a.grund, datum_wiedereinstieg, a.datum
+ FROM
+ campus.tbl_studierendenantrag a
+ JOIN public.tbl_student USING (prestudent_id)
+ JOIN public.tbl_benutzer ON tbl_student.student_uid=uid
+ JOIN public.tbl_person USING (person_id)
+ JOIN public.tbl_studiengang stg USING (studiengang_kz)
+ JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
+ LEFT JOIN public.tbl_prestudentstatus pss ON (pss.prestudent_id = a.prestudent_id AND pss.studiensemester_kurzbz=a.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(a.prestudent_id, a.studiensemester_kurzbz))
+ LEFT JOIN lehre.tbl_studienplan plan USING (studienplan_id)
+ JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, stg.orgform_kurzbz))" . $where;
+
+
+if (!$db->db_query($query) || !$db->db_num_rows())
+ die('
' . $not_found_error . '');
+
+?>
+
+
+ db_fetch_object()) { ?>
+
+ vorname . ' ' . $row->nachname); ?>]]>
+ bezeichnung; ?>]]>
+ bezeichnung_mehrsprachig; ?>]]>
+ matrikelnr; ?>]]>
+ studienjahr_kurzbz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+ semester; ?>]]>
+ grund; ?>]]>
+ datum_wiedereinstieg))->format('d.m.Y');?>]]>
+ datum))->format('d.m.Y');?>]]>
+
+
+
+
+
diff --git a/rdf/adresse.rdf.php b/rdf/adresse.rdf.php
index ac557fb98..fd6a76d19 100644
--- a/rdf/adresse.rdf.php
+++ b/rdf/adresse.rdf.php
@@ -100,7 +100,7 @@ function draw_rdf($row)
gemeinde.']]>
nation.']]>
typ.']]>
-
bezeichnung_mehrsprachig[DEFAULT_LANGUAGE].']]>
+
bezeichnung_mehrsprachig[DEFAULT_LANGUAGE])?$row->bezeichnung_mehrsprachig[DEFAULT_LANGUAGE]:'').']]>
heimatadresse?'Ja':'Nein').']]>
zustelladresse?'Ja':'Nein').']]>
co_name.']]>
diff --git a/rdf/diplomasupplement.xml.php b/rdf/diplomasupplement.xml.php
index 47da798b7..4f19566d2 100644
--- a/rdf/diplomasupplement.xml.php
+++ b/rdf/diplomasupplement.xml.php
@@ -257,7 +257,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
if($row->typ=='d')
{
echo '
UNESCO ISCED 7';
- echo '
';
+ echo '
';
echo '
';
echo '
';
echo '
';
@@ -269,7 +269,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
elseif($row->typ=='m')
{
echo '
UNESCO ISCED 7';
- echo '
';
+ echo '
';
echo '
';
echo '
';
echo '
';
@@ -281,7 +281,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
elseif($row->typ=='b')
{
echo '
UNESCO ISCED 6';
- echo '
';
+ echo '
';
echo '
';
echo '
';
echo '
';
@@ -299,8 +299,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
elseif($row->typ=='l' || $row->typ=='k' || $row->typ=='e')
{
echo '
UNESCO ISCED 7';
- echo '
Lehrgang zur Weiterbildung nach §9 FHStG idgF.';
- echo '
Certificate Program for Further Education subjected to § 9 FHStG';
+ echo '
Lehrgang zur Weiterbildung nach §9 FHG idgF.';
+ echo '
Certificate Program for Further Education subjected to § 9 FHG';
echo '
';
echo '
';
echo '
';
diff --git a/rdf/lehrveranstaltungszeugnis_ktu.rdf.php b/rdf/lehrveranstaltungszeugnis_ktu.rdf.php
index e065925e7..9696978b3 100644
--- a/rdf/lehrveranstaltungszeugnis_ktu.rdf.php
+++ b/rdf/lehrveranstaltungszeugnis_ktu.rdf.php
@@ -52,7 +52,7 @@ function breaktext($text, $zeichen)
$arr = explode(' ',$text);
$ret = '';
$teilstring='';
-
+
foreach($arr as $elem)
{
if(strlen($teilstring.$elem)>$zeichen)
@@ -60,7 +60,7 @@ function breaktext($text, $zeichen)
$ret.=' '.$teilstring.'\n';
$teilstring=$elem;
}
- else
+ else
$teilstring .=' '.$elem;
}
$ret.=$teilstring;
@@ -72,9 +72,9 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
if(isset($_GET['uid']))
$uid = $_GET['uid'];
- else
+ else
$uid = null;
-
+
$uid_arr = explode(";",$uid);
if ($uid_arr[0] == "")
@@ -82,61 +82,61 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
unset($uid_arr[0]);
$uid_arr = array_values($uid_arr);
}
-
+
$note_arr = array();
$note = new note();
$note->getAll($offiziell = true);
foreach ($note->result as $n){
$note_arr[$n->note] = $n->anmerkung;
- $note_bezeichnung_arr[$n->note] = $n->bezeichnung;
-
+ $note_bezeichnung_arr[$n->note] = $n->bezeichnung;
+
}
if(isset($_GET['ss']))
$studiensemester_kurzbz = $_GET['ss'];
- else
+ else
die('Studiensemester muss uebergeben werden');
if(isset($_GET['lvid']))
$lehrveranstaltung_id = $_GET['lvid'];
- else
+ else
$lehrveranstaltung_id = 0;
-
+
//Daten holen
- $lqry = "SELECT
- tbl_person.titelpre, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpost
- FROM
- public.tbl_benutzer JOIN public.tbl_person using (person_id)
- WHERE
- tbl_benutzer.uid = (SELECT
- tbl_lehreinheitmitarbeiter.mitarbeiter_uid
- FROM
- lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehrfunktion USING(lehrfunktion_kurzbz),
- lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
- WHERE
+ $lqry = "SELECT
+ tbl_person.titelpre, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpost
+ FROM
+ public.tbl_benutzer JOIN public.tbl_person using (person_id)
+ WHERE
+ tbl_benutzer.uid = (SELECT
+ tbl_lehreinheitmitarbeiter.mitarbeiter_uid
+ FROM
+ lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehrfunktion USING(lehrfunktion_kurzbz),
+ lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
+ WHERE
tbl_lehreinheitmitarbeiter.lehreinheit_id = tbl_lehreinheit.lehreinheit_id AND
tbl_lehrveranstaltung.lehrveranstaltung_id = ".$db->db_add_param($lehrveranstaltung_id)." AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)."
ORDER BY tbl_lehrfunktion.standardfaktor desc limit 1)";
-
+
$leiter_titel = '';
$leiter_vorname = '';
$leiter_nachname = '';
$leiter_titelpost = '';
-
+
if($db->db_query($lqry))
{
if ($lrow = $db->db_fetch_object())
{
- $leiter_titel = $lrow->titelpre;
+ $leiter_titel = $lrow->titelpre;
$leiter_vorname = $lrow->vorname;
- $leiter_nachname = $lrow->nachname;
- $leiter_titelpost = $lrow->titelpost;
- }
+ $leiter_nachname = $lrow->nachname;
+ $leiter_titelpost = $lrow->titelpost;
+ }
}
-
- $qry = "SELECT wochen FROM public.tbl_semesterwochen
- WHERE (studiengang_kz, semester) in (SELECT studiengang_kz, semester
+
+ $qry = "SELECT wochen FROM public.tbl_semesterwochen
+ WHERE (studiengang_kz, semester) in (SELECT studiengang_kz, semester
FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER).")";
$wochen = 15;
if($result_wochen = $db->db_query($qry))
@@ -146,7 +146,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$wochen = $row_wochen->wochen;
}
}
-
+
$lehrveranstaltung=new lehrveranstaltung();
$lehrveranstaltung->load($lehrveranstaltung_id);
$sws=$lehrveranstaltung->semesterstunden/$wochen;
@@ -157,7 +157,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$lehrform = new lehrform($lehrform_kurzbz);
$lehrform_bezeichnung = $lehrform->bezeichnung;
$organisationseinheit = new organisationseinheit($lehrveranstaltung->oe_kurzbz);
-
+
$lehreinheit=new lehreinheit();
$lehreinheit->load_lehreinheiten($lehrveranstaltung_id, $studiensemester_kurzbz);
if(count($lehreinheit->lehreinheiten)>=1)
@@ -169,11 +169,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$lehrfach_id='';
die('keine Lehreinheiten gefunden!');
}
-
+
$lv_lehrfach=new lehrveranstaltung();
$lv_lehrfach->load($lehrfach_id);
$lehrfach_bezeichnung=$lv_lehrfach->bezeichnung;
-
+
/* $lvqry = "SELECT * from lehre.tbl_lehrveranstaltung where lehrveranstaltung_id = ".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
if($db->db_query($lvqry))
{
@@ -182,43 +182,43 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$sws = $lvrow->semesterstunden/$wochen;
$ects = $lvrow->ects;
$lvbezeichnung = $lvrow->bezeichnung;
- $lvstg = $lvrow->studiengang_kz;
- }
+ $lvstg = $lvrow->studiengang_kz;
+ }
} */
-
+
$lehrinhalte = '';
$infoqry = "SELECT * FROM campus.tbl_lvinfo WHERE sprache='German' AND lehrveranstaltung_id = ".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
if($db->db_query($infoqry))
{
if ($inforow = $db->db_fetch_object())
{
- $lehrinhalte_arr = explode("
",$inforow->lehrinhalte);
+ $lehrinhalte_arr = explode("
",$inforow->lehrinhalte);
for ($i = 0; $i < sizeof($lehrinhalte_arr); $i++)
{
- $lehrinhalte .= $lehrinhalte_arr[$i].'\n';
+ $lehrinhalte .= $lehrinhalte_arr[$i].'\n';
}
- }
- }
-
+ }
+ }
+
$xml = "";
$xml .= "
";
-
+
$studiensemester = new studiensemester();
$studiensemester->load($studiensemester_kurzbz);
-
+
for ($i = 0; $i < sizeof($uid_arr); $i++)
{
$anzahl_fussnoten=0;
$studiengang_typ='';
$xml_fussnote='';
-
+
$query = "SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheit as le
JOIN lehre.tbl_pruefung as p USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung as lv USING(lehrveranstaltung_id)
WHERE p.student_uid = ".$db->db_add_param($uid_arr[$i])."
AND le.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz)."
AND lv.lehrveranstaltung_id = ".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
-
+
$pruefer_uid='';
$pruefer_name='';
if($db->db_query($query))
@@ -231,7 +231,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
if($pruefer_uid!='')
{
$pruefer = new mitarbeiter($pruefer_uid);
- $pruefer_name = trim($pruefer->titelpre.' '.$pruefer->vorname.' '.$pruefer->nachname.' '.$pruefer->titelpost);
+ $pruefer_name = trim($pruefer->titelpre.' '.$pruefer->vorname.' '.$pruefer->nachname.' '.$pruefer->titelpost);
}
$query = "SELECT tbl_student.matrikelnr, tbl_student.studiengang_kz, tbl_studiengang.typ, tbl_studiengang.bezeichnung, tbl_person.vorname, tbl_person.nachname,tbl_person.gebdatum,tbl_person.titelpre, tbl_person.titelpost, tbl_person.geschlecht, tbl_person.matr_nr FROM tbl_person, tbl_student, tbl_studiengang, tbl_benutzer WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz and tbl_student.student_uid = tbl_benutzer.uid and tbl_benutzer.person_id = tbl_person.person_id and tbl_student.student_uid = '".$uid_arr[$i]."'";
@@ -251,7 +251,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$stgl_ma = new mitarbeiter($stgleiter_uid);
$stgl .= trim($stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost);
}
-
+
$student=new student();
$student->load($uid_arr[$i]);
$prestudent=new prestudent();
@@ -261,11 +261,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
{
if($status->studienplan_bezeichnung != '')
$studienplan_bezeichnung=$status->studienplan_bezeichnung;
-
+
if($status->studienplan_id != NULL)
$studienplan_id = $status->studienplan_id;
}
-
+
$xml .= "\n ";
$xml .= "\n ".$studiensemester_kurzbz."";
$xml .= "\n ".$row->vorname."";
@@ -279,8 +279,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= "\n ".$stgl."";
$datum_aktuell = date('d.m.Y');
$xml .= "\n Wien, am ".$datum_aktuell."";
-
-
+
+
$obj = new zeugnisnote();
$obj->load($lehrveranstaltung_id, $uid_arr[$i], $studiensemester_kurzbz);
@@ -298,10 +298,10 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$uebernahmedatum = "";
$benotungsdatum = "";
}
-
+
$stg = new studiengang();
$stg->load($lvstg);
-
+
$xml .= " ".$stg_oe_obj->bezeichnung."";
$xml .= " ".$stg->bezeichnung."";
$xml .= " ".$stg->typ."";
@@ -318,20 +318,20 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= " ".$lehrform_kurzbz."";
$xml .= " ".$lehrform_bezeichnung."";
$xml .= " ".($sws==0?'':number_format(sprintf('%.1F',$sws),1))."";
-
+
$xml .= " ".$leiter_titel." ".$leiter_vorname." ".$leiter_nachname.($leiter_titelpost!=''?', '.$leiter_titelpost:'')."";
$xml .= " ";
$xml .= " ";
-
+
$lehrveranstaltung->getLVkompatibel($lehrveranstaltung_id);
foreach($lehrveranstaltung->lehrveranstaltungen as $lv_kompatibel)
{
- $xml .= "".$lv_kompatibel->bezeichnung."";
+ $xml .= "bezeichnung."]]>";
}
$xml .= " ";
-
-
+
+
$anrechnung = new anrechnung();
$anrechnung->getAnrechnungPrestudent($student->prestudent_id, null, $lehrveranstaltung_id);
@@ -343,7 +343,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= $anrechnung->result[0]->lehrveranstaltung_bez;
}
$xml .= "";
-
+
if($lehrveranstaltung_id_kompatibel != "")
{
$lv = new lehrveranstaltung($lehrveranstaltung_id_kompatibel);
@@ -352,11 +352,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$ects = $lv->ects;
}
}
-
+
$xml .= " ".number_format($ects,1)."";
$lehrveranstaltung->loadLehrveranstaltungStudienplan($studienplan_id);
-
+
$studienplan_lehrveranstaltung_id = "";
foreach($lehrveranstaltung->lehrveranstaltungen as $lv)
{
@@ -366,7 +366,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
break;
}
}
-
+
$studienplan = new studienplan();
if($studienplan_lehrveranstaltung_id != "")
{
@@ -384,11 +384,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
{
$lehrveranstaltung->lehrveranstaltungen = array();
}
-
+
// $return = $lehrveranstaltung->getLVFromStudienplanByLehrtyp($studienplan_id, "modul");
$xml .= " ";
-
+
//Variable wird zur korrekten Darstellung im Dokument benötigt
$count=0;
foreach($lehrveranstaltung->lehrveranstaltungen as $modul)
@@ -411,4 +411,4 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= "";
echo $xml;
}
-?>
\ No newline at end of file
+?>
diff --git a/rdf/lehrverbandsgruppe.rdf.php b/rdf/lehrverbandsgruppe.rdf.php
index 79ac0c948..755444b6d 100644
--- a/rdf/lehrverbandsgruppe.rdf.php
+++ b/rdf/lehrverbandsgruppe.rdf.php
@@ -246,6 +246,24 @@ function draw_orgformsubmenu($stg_kz, $orgform)
+
+ Nicht zum Reihungstest angemeldet
+
+
+ studiensemester_kurzbz.']]>
+ statusbestaetigtrtnichtangemeldet
+
+
+
+
+ Reihungstest angemeldet
+
+
+ studiensemester_kurzbz.']]>
+ statusbestaetigtrtangemeldet
+
+
+
Nicht zum Reihungstest angemeldet
@@ -272,6 +290,42 @@ function draw_orgformsubmenu($stg_kz, $orgform)
bewerber
+
+
+ Nicht zum Reihungstest angemeldet
+
+
+ studiensemester_kurzbz.']]>
+ bewerberrtnichtangemeldet
+
+
+
+
+ Reihungstest angemeldet
+
+
+ studiensemester_kurzbz.']]>
+ bewerberrtangemeldet
+
+
+
+
+ Teilgenommen
+
+
+ studiensemester_kurzbz.']]>
+ bewerberrtangemeldetteilgenommen
+
+
+
+
+ Nicht teilgenommen
+
+
+ studiensemester_kurzbz.']]>
+ bewerberrtangemeldetnichtteilgenommen
+
+
Aufgenommen
@@ -316,13 +370,31 @@ function draw_orgformsubmenu($stg_kz, $orgform)
$orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/bewerbungnichtabgeschickt\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/bewerbungabgeschickt\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/zgv\" />\n";
- $orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt\" />\n";
+ $orgform_sequence[$stg_kz].= "\t\t\t";
+ $orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt\">\n";
+ $orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt/reihungstestnichtangemeldet\" />\n";
+ $orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt/reihungstestangemeldet\" />\n";
+ $orgform_sequence[$stg_kz].= "\t\t\t\t";
+ $orgform_sequence[$stg_kz].= "\n\t\t\t\n";
$orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/reihungstestnichtangemeldet\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/interessenten/reihungstestangemeldet\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\t\t";
$orgform_sequence[$stg_kz].= "\n\t\t\t\n";
-
- $orgform_sequence[$stg_kz].= "\t\t\tstudiensemester_kurzbz/bewerber\" />\n";
+
+ $orgform_sequence[$stg_kz].= "\t\t\t";
+ $orgform_sequence[$stg_kz].= "\n\t\t\t\tstudiensemester_kurzbz/bewerber\">\n";
+ $orgform_sequence[$stg_kz].= "\t\t\tstudiensemester_kurzbz/bewerber/reihungstestnichtangemeldet\" />\n";
+
+ $orgform_sequence[$stg_kz].= "\t\t\t";
+ $orgform_sequence[$stg_kz].= "\t\t\tstudiensemester_kurzbz/bewerber/reihungstestangemeldet\">\n";
+ $orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/bewerber/reihungstestangemeldet/reihungstestnichtangemeldet/teilgenommen\" />\n";
+ $orgform_sequence[$stg_kz].= "\t\t\t\tstudiensemester_kurzbz/bewerber/reihungstestangemeldet/reihungstestnichtangemeldet/nichtteilgenommen\" />\n";
+ $orgform_sequence[$stg_kz].= "\t\t\t\t";
+ $orgform_sequence[$stg_kz].= "\n\t\t\t\n";
+
+ $orgform_sequence[$stg_kz].= "\t\t\t\t";
+ $orgform_sequence[$stg_kz].= "\n\t\t\t\n";
+
$orgform_sequence[$stg_kz].= "\t\t\tstudiensemester_kurzbz/aufgenommen\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\tstudiensemester_kurzbz/warteliste\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\tstudiensemester_kurzbz/absage\" />\n";
@@ -561,6 +633,22 @@ while ($row=$dbo->db_fetch_object())
+
+
+ ]]>
+ studiengang_kz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+
+
+
+
+
+ ]]>
+ studiengang_kz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+
+
+
]]>
@@ -585,6 +673,38 @@ while ($row=$dbo->db_fetch_object())
+
+
+ ]]>
+ studiengang_kz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+
+
+
+
+
+ ]]>
+ studiengang_kz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+
+
+
+
+
+ ]]>
+ studiengang_kz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+
+
+
+
+
+ ]]>
+ studiengang_kz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+
+
+
]]>
@@ -783,13 +903,30 @@ draw_orgformpart($stg_kz);
echo "\t\t\t\tstudiensemester_kurzbz/interessenten/bewerbungnichtabgeschickt\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/interessenten/bewerbungabgeschickt\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/interessenten/zgv\" />\n";
- echo "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt\" />\n";
+ echo "\t\t\t";
+ echo "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt\">\n";
+ echo "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt/reihungstestnichtangemeldet\" />\n";
+ echo "\t\t\t\tstudiensemester_kurzbz/interessenten/statusbestaetigt/reihungstestangemeldet\" />\n";
+ echo "\t\t\t\t";
+ echo "\n\t\t\t\n";
echo "\t\t\t\tstudiensemester_kurzbz/interessenten/reihungstestnichtangemeldet\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/interessenten/reihungstestangemeldet\" />\n";
echo "\t\t\t\t";
echo "\n\t\t\t\n";
+
+ echo "\t\t\t";
+ echo "\t\t\t\tstudiensemester_kurzbz/bewerber\">\n";
+ echo "\t\t\t\tstudiensemester_kurzbz/bewerber/reihungstestnichtangemeldet\" />\n";
+ echo "\t\t\t";
+ echo "\t\t\t\tstudiensemester_kurzbz/bewerber/reihungstestangemeldet\">\n";
+ echo "\t\t\t\tstudiensemester_kurzbz/bewerber/reihungstestangemeldet/teilgenommen\" />\n";
+ echo "\t\t\t\tstudiensemester_kurzbz/bewerber/reihungstestangemeldet/nichtteilgenommen\" />\n";
+ echo "\t\t\t\t";
+ echo "\n\t\t\t\n";
+
+ echo "\t\t\t\t";
+ echo "\n\t\t\t\n";
- echo "\t\t\t\tstudiensemester_kurzbz/bewerber\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/aufgenommen\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/warteliste\" />\n";
echo "\t\t\t\tstudiensemester_kurzbz/absage\" />\n";
diff --git a/rdf/ort.rdf.php b/rdf/ort.rdf.php
index e9f575428..f4512851a 100644
--- a/rdf/ort.rdf.php
+++ b/rdf/ort.rdf.php
@@ -38,7 +38,7 @@ require_once('../include/basis_db.class.php');
// Orte holen
$sql_query="SELECT * FROM (public.tbl_ort JOIN public.tbl_ortraumtyp USING (ort_kurzbz)) JOIN public.tbl_raumtyp USING (raumtyp_kurzbz)
- WHERE aktiv AND raumtyp_kurzbz!='LM' ORDER BY raumtyp_kurzbz, hierarchie,ort_kurzbz";
+ WHERE tbl_ort.aktiv AND tbl_raumtyp.aktiv AND raumtyp_kurzbz!='LM' ORDER BY raumtyp_kurzbz, hierarchie,ort_kurzbz";
$db = new basis_db();
if(!$result = $db->db_query($sql_query))
$error_msg.=$db->db_last_error();
@@ -67,7 +67,9 @@ for ($i=0;$i<$num_rows;$i++)
$nextTYP=(($i<$num_rows-1)?$ortNEXT->raumtyp_kurzbz:null);
//echo "current:$currentTYP last:$lastTYP next:$nextTYP";
$raumtypen='';
- $qry = "SELECT raumtyp_kurzbz FROM public.tbl_ortraumtyp WHERE ort_kurzbz='$ort->ort_kurzbz'";
+ $qry = "SELECT tbl_ortraumtyp.raumtyp_kurzbz FROM public.tbl_ortraumtyp
+ JOIN tbl_raumtyp USING(raumtyp_kurzbz)
+ WHERE tbl_raumtyp.aktiv AND ort_kurzbz='$ort->ort_kurzbz'";
if($result_rt = $db->db_query($qry))
{
while($row_rt = $db->db_fetch_object($result_rt))
diff --git a/rdf/prestudentrolle.rdf.php b/rdf/prestudentrolle.rdf.php
index f60b93050..7a3dd636b 100644
--- a/rdf/prestudentrolle.rdf.php
+++ b/rdf/prestudentrolle.rdf.php
@@ -119,6 +119,10 @@ foreach($ps->result as $row)
statusgrund_id.']]>
statusgrund_id])?$statusgrund_arr[$row->statusgrund_id]:'').']]>
+ formatDatum($row->insertamum,'d.m.Y H:i:s').']]>
+ insertvon.']]>
+ formatDatum($row->updateamum,'d.m.Y H:i:s').']]>
+ updatevon.']]>
';
diff --git a/rdf/raumtyp.rdf.php b/rdf/raumtyp.rdf.php
index 06b429380..1f7289747 100644
--- a/rdf/raumtyp.rdf.php
+++ b/rdf/raumtyp.rdf.php
@@ -56,13 +56,14 @@ foreach ($raumtypDAO->result as $rt)
{
?>
-
- raumtyp_kurzbz ?>
- beschreibung ?>
-
+
+ raumtyp_kurzbz ?>
+ beschreibung ?>
+ aktiv ? "true" : "false") ?>
+
-
\ No newline at end of file
+
diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php
index af0bbe82d..40cf28e01 100644
--- a/rdf/student.rdf.php
+++ b/rdf/student.rdf.php
@@ -107,6 +107,21 @@ function checkfilter($row, $filter2, $buchungstyp = null)
if($row_filter->anzahl>0 || $prestudent->status_kurzbz=='Incoming')
return false;
}
+ elseif($filter2 == 'StudiengebuehrErhoeht')
+ {
+ // Alle Personen die eine erhöhte Studiengebuehrbelastung haben
+ $prestudent = new prestudent();
+ $prestudent->getLastStatus($row->prestudent_id);
+
+ $qry = "SELECT count(*) as anzahl FROM public.tbl_konto WHERE
+ studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND
+ person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." AND
+ buchungstyp_kurzbz='StudiengebuehrErhoeht'";
+ if($db->db_query($qry))
+ if($row_filter = $db->db_fetch_object())
+ if($row_filter->anzahl == 0)
+ return false;
+ }
elseif(strstr($filter2,'buchungstyp;'))
{
// Alle Personen die keine Belastung auf den uebergebenen Buchungstyp haben
@@ -736,8 +751,8 @@ if($xmlformat=='rdf')
}
}
elseif(in_array($typ, array('prestudent', 'interessenten', 'bewerber', 'aufgenommen',
- 'warteliste', 'absage', 'zgv', 'reihungstestangemeldet', 'reihungstestnichtangemeldet', 'absolvent',
- 'diplomand', 'bewerbungnichtabgeschickt', 'bewerbungabgeschickt', 'statusbestaetigt')))
+ 'warteliste', 'absage', 'zgv', 'reihungstestangemeldet', 'reihungstestnichtangemeldet', 'bewerberrtangemeldetteilgenommen', 'bewerberrtangemeldetnichtteilgenommen','absolvent',
+ 'diplomand', 'bewerbungnichtabgeschickt', 'bewerbungabgeschickt', 'statusbestaetigt', 'statusbestaetigtrtnichtangemeldet', 'statusbestaetigtrtangemeldet', 'bewerberrtangemeldet', 'bewerberrtnichtangemeldet')))
{
$prestd = new prestudent();
@@ -939,6 +954,8 @@ if($xmlformat=='rdf')
UPPER(nachname || ' ' || vorname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR
UPPER(nachname || ' ' || wahlname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR
UPPER(wahlname || ' ' || nachname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR
+ UPPER(vorname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR
+ UPPER(nachname) ~* UPPER(".$db->db_add_param($searchItems_string).") OR
student_uid ~* LOWER(".$db->db_add_param($searchItems_string).")";
}
else
@@ -1195,6 +1212,20 @@ else
else
$studienjahr = intval($semester/2)+1;
+ $abbrecher = ($prestudent->status_kurzbz === 'Abbrecher' ? 'true' : 'false');
+
+ $abbrecher_ende = '';
+ $studiensemester_abbrecher_kurzbz='';
+ $qry = "SELECT * FROM public.tbl_prestudentstatus
+ WHERE prestudent_id='$student->prestudent_id' AND status_kurzbz = 'Abbrecher' ORDER BY datum LIMIT 1";
+ if($db->db_query($qry))
+ {
+ if($row = $db->db_fetch_object())
+ {
+ $abbrecher_ende = $row->datum;
+ $studiensemester_abbrecher_kurzbz = $row->studiensemester_kurzbz;
+ }
+ }
echo '
uid.']]>
@@ -1218,6 +1249,7 @@ else
bezeichnung.']]>
bezeichnung.']]>
+ english.']]>
typ.']]>
orgform_kurzbz.']]>
@@ -1241,6 +1273,9 @@ else
studienjahr_kurzbz.']]>
bezeichnung.']]>
convertISODate($stsem->start).']]>
+
+ convertISODate($abbrecher_ende).']]>
+
max_semester.']]>
anmerkung.']]>
diff --git a/soap/datenverbund_client.php b/soap/datenverbund_client.php
index 0f2a2ba19..3f6052e75 100644
--- a/soap/datenverbund_client.php
+++ b/soap/datenverbund_client.php
@@ -230,7 +230,7 @@ if ($getPersonData)
printrow('matrikelnummer', 'Matrikelnummer', $matrikelnr);
printrow('nachname', 'Nachname', $nachname, '', 255);
printrow('vorname', 'Vorname', $vorname, '', 30);
- printrow('geburtsdatum', 'Geburtsdatum', $geburtsdatum, 'Format: YYYYMMDD', 10);
+ printrow('geburtsdatum', 'Geburtsdatum', $geburtsdatum, 'Format: YYYY-MM-DD', 10);
printrow('geschlecht', 'Geschlecht', $geschlecht, 'Format: M | W', 1);
printrow('postleitzahl', 'Postleitzahl', $postleitzahl, '', 10);
}
diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php
index f57b9d172..edbe7585e 100644
--- a/system/dbupdate_3.3.php
+++ b/system/dbupdate_3.3.php
@@ -7026,7 +7026,7 @@ $tabellen=array(
"public.tbl_preoutgoing_status" => array("preoutgoing_status_kurzbz","bezeichnung"),
"public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor","zgvnation","zgvmanation","zgvdoktornation","gsstudientyp_kurzbz","aufnahmegruppe_kurzbz","udf_values","priorisierung","foerderrelevant","standort_code","zgv_erfuellt","zgvmas_erfuellt","zgvdoktor_erfuellt"),
"public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id","studienplan_id","bestaetigtam","bestaetigtvon","fgm","faktiv", "anmerkung","bewerbung_abgeschicktamum","rt_stufe","statusgrund_id"),
- "public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung","kosten"),
+ "public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung","kosten", "aktiv"),
"public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet","max_teilnehmer","oeffentlich","studiensemester_kurzbz","aufnahmegruppe_kurzbz","stufe","anmeldefrist"),
"public.tbl_rt_ort" => array("rt_id","ort_kurzbz","uid"),
"public.tbl_rt_person" => array("rt_person_id","person_id","rt_id","studienplan_id","anmeldedatum","teilgenommen","ort_kurzbz","punkte","insertamum","insertvon","updateamum","updatevon"),
diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php
index dcf882c43..850d48d8a 100644
--- a/system/dbupdate_3.4.php
+++ b/system/dbupdate_3.4.php
@@ -27,11 +27,25 @@ require_once('dbupdate_3.4/example.php');
require_once('dbupdate_3.4/example2.php');
...
*/
+require_once('dbupdate_3.4/25003_notenimport_nachpruefung.php');
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');
+require_once('dbupdate_3.4/10001_tempus_mitarbeiter_kurzbz_bei_reservierungen_anzeigen.php');
+require_once('dbupdate_3.4/27949_infocenter_zurueckstellen_mit_grund.php');
+require_once('dbupdate_3.4/27107_vilesci_erfassung_abwesenheiten_reinigung.php');
+require_once('dbupdate_3.4/24913_tabelle_raumtyp_neues_attribut_aktiv.php');
+require_once('dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php');
+require_once('dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php');
+require_once('dbupdate_3.4/27351_digitalisierung_formulare.php');
+require_once('dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php');
+require_once('dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruendung.php');
+require_once('dbupdate_3.4/29529_infocenter_anpassungen.php');
+require_once('dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php');
+require_once('dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php');
require_once('dbupdate_3.4/21620_neues_feld_zum_erfassen_des_ESI.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
@@ -143,10 +157,11 @@ $tabellen=array(
"lehre.tbl_abschlusspruefung" => array("abschlusspruefung_id","student_uid","vorsitz","pruefer1","pruefer2","pruefer3","abschlussbeurteilung_kurzbz","akadgrad_id","pruefungstyp_kurzbz","datum","uhrzeit","sponsion","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","note","protokoll","endezeit","pruefungsantritt_kurzbz","freigabedatum"),
"lehre.tbl_abschlusspruefung_antritt" => array("pruefungsantritt_kurzbz","bezeichnung","bezeichnung_english","sort"),
"lehre.tbl_akadgrad" => array("akadgrad_id","akadgrad_kurzbz","studiengang_kz","titel","geschlecht"),
- "lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id", "dms_id", "studiensemester_kurzbz", "anmerkung_student", "empfehlung_anrechnung"),
+ "lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id", "dms_id", "studiensemester_kurzbz", "anmerkung_student", "empfehlung_anrechnung", "begruendung_ects", "begruendung_lvinhalt"),
"lehre.tbl_anrechnungstatus" => array("status_kurzbz", "bezeichnung_mehrsprachig"),
"lehre.tbl_anrechnung_anrechnungstatus" => array("anrechnungstatus_id", "anrechnung_id", "status_kurzbz", "datum", "insertamum", "insertvon"),
"lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"),
+ "lehre.tbl_anrechnungszeitraum" => array("anrechnungszeitraum_id","studiensemester_kurzbz","anrechnungstart","anrechnungende", "insertamum", "insertvon"),
"lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung","aktiv"),
"lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"),
"lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old","gewicht"),
@@ -303,6 +318,9 @@ $tabellen=array(
"system.tbl_extensions" => array("extension_id","name","version","description","license","url","core_version","dependencies","enabled"),
"system.tbl_fehler" => array("fehlercode","fehler_kurzbz","fehlercode_extern","fehlertext","fehlertyp_kurzbz","app"),
"system.tbl_fehlertyp" => array("fehlertyp_kurzbz","bezeichnung_mehrsprachig"),
+ "system.tbl_fehler_konfiguration" => array("konfigurationstyp_kurzbz","fehlercode","konfiguration","insertamum","insertvon","updateamum","updatevon"),
+ "system.tbl_fehler_konfigurationsdatentyp" => array("konfigurationsdatentyp"),
+ "system.tbl_fehler_konfigurationstyp" => array("konfigurationstyp_kurzbz","beschreibung","konfigurationsdatentyp","app"),
"system.tbl_fehler_zustaendigkeiten" => array("fehlerzustaendigkeiten_id","fehlercode","person_id","oe_kurzbz","funktion_kurzbz", "insertamum", "insertvon"),
"system.tbl_issue" => array("issue_id","fehlercode","fehlercode_extern","inhalt","inhalt_extern","person_id","oe_kurzbz","datum","verarbeitetvon","verarbeitetamum","status_kurzbz","behebung_parameter","insertvon","insertamum","updatevon","updateamum"),
"system.tbl_issue_status" => array("status_kurzbz","bezeichnung_mehrsprachig"),
@@ -316,7 +334,7 @@ $tabellen=array(
"system.tbl_phrase" => array("phrase_id","app","phrase","insertamum","insertvon","category"),
"system.tbl_phrasentext" => array("phrasentext_id","phrase_id","sprache","orgeinheit_kurzbz","orgform_kurzbz","text","description","insertamum","insertvon"),
"system.tbl_rolle" => array("rolle_kurzbz","beschreibung"),
- "system.tbl_rolleberechtigung" => array("berechtigung_kurzbz","rolle_kurzbz","art"),
+ "system.tbl_rolleberechtigung" => array("berechtigung_kurzbz","rolle_kurzbz","art","anmerkung","insertamum","insertvon"),
"system.tbl_verarbeitungstaetigkeit" => array("taetigkeit_kurzbz", "bezeichnung", "bezeichnung_mehrsprachig","aktiv"),
"system.tbl_webservicelog" => array("webservicelog_id","webservicetyp_kurzbz","request_id","beschreibung","request_data","execute_time","execute_user"),
"system.tbl_webservicerecht" => array("webservicerecht_id","berechtigung_kurzbz","methode","attribut","insertamum","insertvon","updateamum","updatevon","klasse"),
diff --git a/system/dbupdate_3.4/10001_tempus_mitarbeiter_kurzbz_bei_reservierungen_anzeigen.php b/system/dbupdate_3.4/10001_tempus_mitarbeiter_kurzbz_bei_reservierungen_anzeigen.php
new file mode 100644
index 000000000..fed80b786
--- /dev/null
+++ b/system/dbupdate_3.4/10001_tempus_mitarbeiter_kurzbz_bei_reservierungen_anzeigen.php
@@ -0,0 +1,130 @@
+db_query("SELECT mitarbeiter_kurzbz FROM lehre.vw_stundenplandev LIMIT 1"))
+{
+ $qry = "
+ CREATE OR REPLACE VIEW lehre.vw_stundenplandev
+ (stundenplandev_id, unr, uid, lehreinheit_id, lehrfach_id, datum, stunde, ort_kurzbz, studiengang_kz,
+ semester, verband, gruppe, gruppe_kurzbz, titel, anmerkung, fix, lehrveranstaltung_id, stg_kurzbz,
+ stg_kurzbzlang, stg_bezeichnung, stg_typ, fachbereich_kurzbz, lehrfach, lehrfach_bez, farbe, lehrform,
+ lektor, updateamum, updatevon, insertamum, insertvon, anmerkung_lehreinheit, mitarbeiter_kurzbz)
+ AS
+ SELECT tbl_stundenplandev.stundenplandev_id,
+ tbl_stundenplandev.unr,
+ tbl_stundenplandev.mitarbeiter_uid AS uid,
+ tbl_stundenplandev.lehreinheit_id,
+ tbl_lehreinheit.lehrfach_id,
+ tbl_stundenplandev.datum,
+ tbl_stundenplandev.stunde,
+ tbl_stundenplandev.ort_kurzbz,
+ tbl_stundenplandev.studiengang_kz,
+ tbl_stundenplandev.semester,
+ tbl_stundenplandev.verband,
+ tbl_stundenplandev.gruppe,
+ tbl_stundenplandev.gruppe_kurzbz,
+ tbl_stundenplandev.titel,
+ tbl_stundenplandev.anmerkung,
+ tbl_stundenplandev.fix,
+ tbl_lehreinheit.lehrveranstaltung_id,
+ tbl_studiengang.kurzbz AS stg_kurzbz,
+ tbl_studiengang.kurzbzlang AS stg_kurzbzlang,
+ tbl_studiengang.bezeichnung AS stg_bezeichnung,
+ tbl_studiengang.typ AS stg_typ,
+ (SELECT tbl_fachbereich.fachbereich_kurzbz
+ FROM tbl_fachbereich
+ WHERE tbl_fachbereich.oe_kurzbz::text = lehrfach.oe_kurzbz::text) AS fachbereich_kurzbz,
+ lehrfach.kurzbz AS lehrfach,
+ lehrfach.bezeichnung AS lehrfach_bez,
+ lehrfach.farbe,
+ tbl_lehreinheit.lehrform_kurzbz AS lehrform,
+ tbl_mitarbeiter.kurzbz AS lektor,
+ tbl_stundenplandev.updateamum,
+ tbl_stundenplandev.updatevon,
+ tbl_stundenplandev.insertamum,
+ tbl_stundenplandev.insertvon,
+ tbl_lehreinheit.anmerkung AS anmerkung_lehreinheit,
+ tbl_mitarbeiter.kurzbz AS mitarbeiter_kurzbz
+ FROM lehre.tbl_stundenplandev
+ JOIN tbl_studiengang USING (studiengang_kz)
+ JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
+ JOIN lehre.tbl_lehrveranstaltung lehrfach ON tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id
+ JOIN tbl_mitarbeiter USING (mitarbeiter_uid)
+ JOIN tbl_benutzer ON mitarbeiter_uid = uid
+ JOIN tbl_person USING(person_id);
+ ";
+
+ if (!$db->db_query($qry))
+ echo 'lehre.vw_stundenplandev: ' . $db->db_last_error() . '
';
+ else
+ echo 'lehre.vw_stundenplandev: Neue Spalte mitarbeiter_kurzbz hinzugefuegt
';
+}
+
+// lehre.vw_stundenplan erweitern
+if (!$result = @$db->db_query("SELECT mitarbeiter_kurzbz FROM lehre.vw_stundenplan LIMIT 1"))
+{
+ $qry = "CREATE OR REPLACE VIEW lehre.vw_stundenplan AS
+ SELECT
+ tbl_stundenplan.stundenplan_id, tbl_stundenplan.unr, tbl_stundenplan.mitarbeiter_uid AS uid,
+ tbl_stundenplan.lehreinheit_id, tbl_lehreinheit.lehrfach_id AS lehrfach_id, tbl_stundenplan.datum,
+ tbl_stundenplan.stunde, tbl_stundenplan.ort_kurzbz, tbl_stundenplan.studiengang_kz,
+ tbl_stundenplan.semester, tbl_stundenplan.verband, tbl_stundenplan.gruppe, tbl_stundenplan.gruppe_kurzbz,
+ tbl_stundenplan.titel, tbl_stundenplan.anmerkung, tbl_stundenplan.fix, tbl_lehreinheit.lehrveranstaltung_id,
+ tbl_studiengang.kurzbz AS stg_kurzbz, tbl_studiengang.kurzbzlang AS stg_kurzbzlang,
+ tbl_studiengang.bezeichnung AS stg_bezeichnung, tbl_studiengang.typ AS stg_typ,
+ (SELECT fachbereich_kurzbz FROM public.tbl_fachbereich WHERE oe_kurzbz=lehrfach.oe_kurzbz) as fachbereich_kurzbz,
+ lehrfach.kurzbz AS lehrfach, lehrfach.bezeichnung AS lehrfach_bez, lehrfach.farbe,
+ tbl_lehreinheit.lehrform_kurzbz AS lehrform, tbl_mitarbeiter.kurzbz AS lektor,
+ tbl_stundenplan.updateamum, tbl_stundenplan.updatevon, tbl_stundenplan.insertamum,
+ tbl_stundenplan.insertvon, tbl_lehreinheit.anmerkung AS anmerkung_lehreinheit,
+ tbl_mitarbeiter.kurzbz as mitarbeiter_kurzbz
+ FROM lehre.tbl_stundenplan
+ JOIN public.tbl_studiengang USING (studiengang_kz)
+ JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
+ JOIN lehre.tbl_lehrveranstaltung as lehrfach ON (tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
+ JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid)
+ JOIN tbl_benutzer ON mitarbeiter_uid = uid
+ JOIN tbl_person USING(person_id);";
+
+ if (!$db->db_query($qry))
+ echo 'lehre.vw_stundenplan: ' . $db->db_last_error() . '
';
+ else
+ echo 'lehre.vw_stundenplan: Neue Spalte mitarbeiter_kurzbz hinzugefuegt
';
+}
+
+// campus.vw_reservierung erweitern
+if (!$result = @$db->db_query("SELECT mitarbeiter_kurzbz FROM campus.vw_reservierung LIMIT 1"))
+{
+ $qry = "CREATE OR REPLACE view campus.vw_reservierung
+ (reservierung_id, ort_kurzbz, studiengang_kz, uid, stunde, datum, titel, beschreibung, semester, verband,
+ gruppe, gruppe_kurzbz, stg_kurzbz, insertamum, insertvon, mitarbeiter_kurzbz)
+ AS
+ SELECT tbl_reservierung.reservierung_id,
+ tbl_reservierung.ort_kurzbz,
+ tbl_reservierung.studiengang_kz,
+ tbl_reservierung.uid,
+ tbl_reservierung.stunde,
+ tbl_reservierung.datum,
+ tbl_reservierung.titel,
+ tbl_reservierung.beschreibung,
+ tbl_reservierung.semester,
+ tbl_reservierung.verband,
+ tbl_reservierung.gruppe,
+ tbl_reservierung.gruppe_kurzbz,
+ tbl_studiengang.kurzbz AS stg_kurzbz,
+ tbl_reservierung.insertamum,
+ tbl_reservierung.insertvon,
+ tbl_mitarbeiter.kurzbz as mitarbeiter_kurzbz
+ FROM campus.tbl_reservierung
+ JOIN tbl_studiengang USING (studiengang_kz)
+ LEFT JOIN tbl_benutzer ON tbl_reservierung.uid = tbl_benutzer.uid
+ LEFT JOIN tbl_mitarbeiter ON tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid
+ LEFT JOIN tbl_person USING (person_id);";
+
+ if (!$db->db_query($qry))
+ echo 'campus.vw_reservierung: ' . $db->db_last_error() . '
';
+ else
+ echo 'campus.vw_reservierung: Neue Spalte mitarbeiter_kurzbz hinzugefuegt
';
+}
+
diff --git a/system/dbupdate_3.4/24913_tabelle_raumtyp_neues_attribut_aktiv.php b/system/dbupdate_3.4/24913_tabelle_raumtyp_neues_attribut_aktiv.php
new file mode 100644
index 000000000..98381776c
--- /dev/null
+++ b/system/dbupdate_3.4/24913_tabelle_raumtyp_neues_attribut_aktiv.php
@@ -0,0 +1,15 @@
+db_query("SELECT aktiv FROM public.tbl_raumtyp LIMIT 1"))
+{
+ $qry = "ALTER TABLE public.tbl_raumtyp ADD COLUMN aktiv boolean NOT NULL DEFAULT true;
+ COMMENT ON COLUMN public.tbl_raumtyp.aktiv IS 'Zeigt an, ob Raumtyp aktuell ist.';
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_raumtyp '.$db->db_last_error().'
';
+ else
+ echo '
Spalte aktiv zu Tabelle public.tbl_raumtyp hinzugefügt';
+}
\ No newline at end of file
diff --git a/system/dbupdate_3.4/25003_notenimport_nachpruefung.php b/system/dbupdate_3.4/25003_notenimport_nachpruefung.php
new file mode 100644
index 000000000..7c2406d0e
--- /dev/null
+++ b/system/dbupdate_3.4/25003_notenimport_nachpruefung.php
@@ -0,0 +1,15 @@
+db_query("SELECT 1 FROM lehre.tbl_pruefungstyp WHERE pruefungstyp_kurzbz='Termin3'"))
+{
+ if($db->db_num_rows($result)==0)
+ {
+ $qry = "INSERT INTO lehre.tbl_pruefungstyp(pruefungstyp_kurzbz, beschreibung, abschluss) VALUES('Termin3', '3.Termin', false);";
+
+ if(!$db->db_query($qry))
+ echo 'Prüfungstyp: '.$db->db_last_error().'
';
+ else
+ echo '
Prüfungstyp 3.Termin in lehre.tbl_pruefungstyp hinzugefügt';
+ }
+}
diff --git a/system/dbupdate_3.4/27107_vilesci_erfassung_abwesenheiten_reinigung.php b/system/dbupdate_3.4/27107_vilesci_erfassung_abwesenheiten_reinigung.php
new file mode 100644
index 000000000..a0d71b753
--- /dev/null
+++ b/system/dbupdate_3.4/27107_vilesci_erfassung_abwesenheiten_reinigung.php
@@ -0,0 +1,16 @@
+db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz='mitarbeiter/zeitsperre:begrenzt'"))
+{
+ if($db->db_num_rows($result)==0)
+ {
+ $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('mitarbeiter/zeitsperre:begrenzt', 'Vilesci Verwaltung');";
+
+ if(!$db->db_query($qry))
+ echo 'Berechtigung: '.$db->db_last_error().'
';
+ else
+ echo '
Neue Berechtigung mitarbeiter/zeitsperre:begrenzt zu system.tbl_berechtigung hinzugefügt';
+ }
+}
diff --git a/system/dbupdate_3.4/27351_digitalisierung_formulare.php b/system/dbupdate_3.4/27351_digitalisierung_formulare.php
new file mode 100644
index 000000000..1f8dd4b4b
--- /dev/null
+++ b/system/dbupdate_3.4/27351_digitalisierung_formulare.php
@@ -0,0 +1,327 @@
+db_query("SELECT 1 FROM campus.tbl_studierendenantrag_statustyp LIMIT 1"))
+{
+ $qry = "CREATE TABLE campus.tbl_studierendenantrag_statustyp (
+ studierendenantrag_statustyp_kurzbz VARCHAR(32) NOT NULL,
+ bezeichnung VARCHAR(128)[] NOT NULL,
+ CONSTRAINT tbl_studierendenantrag_statustyp_pk PRIMARY KEY(studierendenantrag_statustyp_kurzbz)
+ );
+
+ GRANT SELECT, INSERT ON campus.tbl_studierendenantrag_statustyp TO vilesci;
+ GRANT SELECT ON campus.tbl_studierendenantrag_statustyp TO web;";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_studierendenantrag_statustyp: '.$db->db_last_error().'
';
+ else
+ echo '
campus.tbl_studierendenantrag_statustyp: table created';
+}
+
+if($result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_statustyp WHERE studierendenantrag_statustyp_kurzbz = 'Erstellt' "))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO campus.tbl_studierendenantrag_statustyp
+ (studierendenantrag_statustyp_kurzbz, bezeichnung)
+ VALUES
+ ('Erstellt', '{\"Erstellt\",\"Created\"}'),
+ ('Genehmigt', '{\"Bestätigt\",\"Approved\"}'),
+ ('Abgelehnt', '{\"Abgelehnt\",\"Rejected\"}'),
+ ('Verzichtet', '{\"Verzichtet\",\"Pass\"}'),
+ ('Offen', '{\"Offen\",\"Reopened\"}'),
+ ('Zurueckgezogen', '{\"Zurückgezogen\",\"Cancelled\"}'),
+ ('Lvszugewiesen', '{\"Lvszugewiesen\",\"Lvsassigned\"}'),
+ ('EmailVersandt', '{\"Email Versandt\",\"Reminder Sent\"}'),
+ ('ErsteAufforderungVersandt', '{\"1.Aufforderung Versandt\",\"1st Request Sent\"}'),
+ ('ZweiteAufforderungVersandt', '{\"2.Aufforderung Versandt\",\"2nd Request Sent\"}'),
+ ('Beeinsprucht', '{\"Beeinsprucht\",\"Objected\"}'),
+ ('EinspruchAbgelehnt', '{\"Einspruch abgelehnt\",\"Objection denied\"}');
+ ";
+ if (!$db->db_query($qry))
+ echo 'campus.tbl_studierendenantrag_statustyp (insert): '.$db->db_last_error().'
';
+ else
+ echo '
campus.tbl_studierendenantrag_statustyp: table prefilled';
+ }
+}
+
+if(!$result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag LIMIT 1"))
+{
+ $qry = "CREATE TABLE campus.tbl_studierendenantrag (
+ studierendenantrag_id INTEGER NOT NULL,
+ prestudent_id INTEGER NOT NULL,
+ studiensemester_kurzbz VARCHAR(32) NOT NULL,
+ datum TIMESTAMP NULL,
+ typ VARCHAR(32) NOT NULL,
+ insertamum TIMESTAMP DEFAULT NOW(),
+ insertvon VARCHAR(32) NOT NULL,
+ datum_wiedereinstieg TIMESTAMP NULL,
+ grund TEXT NULL,
+ dms_id INTEGER NULL,
+ CONSTRAINT tbl_studierendenantrag_pk PRIMARY KEY(studierendenantrag_id)
+ );
+ CREATE SEQUENCE campus.tbl_studierendenantrag_studierendenantrag_id_seq
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ CACHE 1;
+ ALTER TABLE campus.tbl_studierendenantrag ALTER COLUMN studierendenantrag_id SET DEFAULT nextval('campus.tbl_studierendenantrag_studierendenantrag_id_seq');
+
+ GRANT SELECT, INSERT ON campus.tbl_studierendenantrag TO vilesci;
+ GRANT SELECT, INSERT ON campus.tbl_studierendenantrag TO web;
+ GRANT SELECT, UPDATE ON campus.tbl_studierendenantrag_studierendenantrag_id_seq TO vilesci;
+ GRANT SELECT, UPDATE ON campus.tbl_studierendenantrag_studierendenantrag_id_seq TO web;";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_studierendenantrag: '.$db->db_last_error().'
';
+ else
+ echo '
campus.tbl_studierendenantrag: table created';
+}
+
+if(!$result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_status LIMIT 1"))
+{
+ $qry = "CREATE TABLE campus.tbl_studierendenantrag_status (
+ studierendenantrag_status_id INTEGER NOT NULL,
+ studierendenantrag_id INTEGER NOT NULL,
+ studierendenantrag_statustyp_kurzbz VARCHAR(32) NOT NULL,
+ insertamum TIMESTAMP DEFAULT NOW(),
+ insertvon VARCHAR(32) NOT NULL,
+ grund TEXT NULL,
+ CONSTRAINT tbl_studierendenantrag_status_pk PRIMARY KEY(studierendenantrag_status_id),
+ CONSTRAINT tbl_studierendenantrag_fk FOREIGN KEY (studierendenantrag_id) REFERENCES campus.tbl_studierendenantrag(studierendenantrag_id) ON UPDATE CASCADE ON DELETE RESTRICT,
+ CONSTRAINT tbl_studierendenantrag_statustyp_fk FOREIGN KEY (studierendenantrag_statustyp_kurzbz) REFERENCES campus.tbl_studierendenantrag_statustyp(studierendenantrag_statustyp_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT
+ );
+ CREATE SEQUENCE campus.tbl_studierendenantrag_status_studierendenantrag_status_id_seq
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ CACHE 1;
+ ALTER TABLE campus.tbl_studierendenantrag_status ALTER COLUMN studierendenantrag_status_id SET DEFAULT nextval('campus.tbl_studierendenantrag_status_studierendenantrag_status_id_seq');
+
+ GRANT SELECT, INSERT, DELETE ON campus.tbl_studierendenantrag_status TO vilesci;
+ GRANT SELECT, INSERT, DELETE ON campus.tbl_studierendenantrag_status TO web;
+ GRANT SELECT, UPDATE ON campus.tbl_studierendenantrag_status_studierendenantrag_status_id_seq TO vilesci;
+ GRANT SELECT, UPDATE ON campus.tbl_studierendenantrag_status_studierendenantrag_status_id_seq TO web;";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_studierendenantrag_status: '.$db->db_last_error().'
';
+ else
+ echo '
campus.tbl_studierendenantrag_status: table created';
+}
+
+if(!$result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_lehrveranstaltung LIMIT 1"))
+{
+ $qry = "CREATE TABLE campus.tbl_studierendenantrag_lehrveranstaltung (
+ studierendenantrag_lehrveranstaltung_id INTEGER NOT NULL,
+ studierendenantrag_id INTEGER NOT NULL,
+ lehrveranstaltung_id INTEGER NOT NULL,
+ studiensemester_kurzbz VARCHAR(16) NOT NULL,
+ note SMALLINT NOT NULL,
+ anmerkung TEXT NULL,
+ insertamum TIMESTAMP DEFAULT NOW(),
+ insertvon VARCHAR(32) NOT NULL,
+ CONSTRAINT tbl_studierendenantrag_lehrveranstaltung_pk PRIMARY KEY(studierendenantrag_lehrveranstaltung_id),
+ CONSTRAINT tbl_studiensemester_fk FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT,
+ CONSTRAINT tbl_note_fk FOREIGN KEY (note) REFERENCES lehre.tbl_note(note) ON UPDATE CASCADE ON DELETE RESTRICT,
+ CONSTRAINT tbl_studierendenantrag_fk FOREIGN KEY (studierendenantrag_id) REFERENCES campus.tbl_studierendenantrag(studierendenantrag_id) ON UPDATE CASCADE ON DELETE RESTRICT
+ );
+ CREATE SEQUENCE campus.tbl_studierendenantrag_lehrveranstaltung_studierendenantrag_lehrveranstaltung_id_seq
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ CACHE 1;
+ ALTER TABLE campus.tbl_studierendenantrag_lehrveranstaltung ALTER COLUMN studierendenantrag_lehrveranstaltung_id SET DEFAULT nextval('campus.tbl_studierendenantrag_lehrveranstaltung_studierendenantrag_lehrveranstaltung_id_seq');
+
+ GRANT SELECT, INSERT, DELETE ON campus.tbl_studierendenantrag_lehrveranstaltung TO vilesci;
+ GRANT SELECT, INSERT ON campus.tbl_studierendenantrag_lehrveranstaltung TO web;
+ GRANT SELECT, UPDATE ON campus.tbl_studierendenantrag_lehrveranstaltung_studierendenantrag_lehrveranstaltung_id_seq TO vilesci;
+ GRANT SELECT, UPDATE ON campus.tbl_studierendenantrag_lehrveranstaltung_studierendenantrag_lehrveranstaltung_id_seq TO web;";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_studierendenantrag_lehrveranstaltung: '.$db->db_last_error().'
';
+ else
+ echo '
campus.tbl_studierendenantrag_lehrveranstaltung: table created';
+}
+
+if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'student/studierendenantrag';"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('student/studierendenantrag', 'Berechtigung für Bearbeiten Studierendenanträge');";
+
+ if(!$db->db_query($qry))
+ echo 'system.tbl_berechtigung '.$db->db_last_error().'
';
+ else
+ echo ' system.tbl_berechtigung: Added permission for student/studierendenantrag
';
+ }
+}
+
+if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'student/antragfreigabe';"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('student/antragfreigabe', 'Berechtigung für Freigabe der Studierendenanträge');";
+
+ if(!$db->db_query($qry))
+ echo 'system.tbl_berechtigung '.$db->db_last_error().'
';
+ else
+ echo ' system.tbl_berechtigung: Added permission for student/antragfreigabe
';
+ }
+}
+
+if (!$result = @$db->db_query("SELECT campus.get_status_studierendenantrag(0)")) {
+ $qry = 'CREATE FUNCTION campus.get_status_studierendenantrag(integer) RETURNS character varying
+ LANGUAGE plpgsql
+ AS $_$
+ DECLARE i_studierendenantrag_id ALIAS FOR $1;
+ DECLARE rec RECORD;
+ BEGIN
+ SELECT INTO rec studierendenantrag_statustyp_kurzbz
+ FROM campus.tbl_studierendenantrag_status
+ WHERE studierendenantrag_id=i_studierendenantrag_id
+ ORDER BY insertamum desc
+ LIMIT 1;
+
+ RETURN rec.studierendenantrag_statustyp_kurzbz;
+ END;
+ $_$;
+
+ ALTER FUNCTION campus.get_status_studierendenantrag(integer) OWNER TO fhcomplete;';
+
+ if(!$db->db_query($qry))
+ echo 'campus.get_status_studierendenantrag(integer): '.$db->db_last_error().'
';
+ else
+ echo '
campus.get_status_studierendenantrag(integer): function created';
+}
+
+if (!$result = @$db->db_query("SELECT campus.get_status_id_studierendenantrag(0)")) {
+ $qry = 'CREATE FUNCTION campus.get_status_id_studierendenantrag(integer) RETURNS integer
+ LANGUAGE plpgsql
+ AS $_$
+ DECLARE i_studierendenantrag_id ALIAS FOR $1;
+ DECLARE rec RECORD;
+ BEGIN
+ SELECT INTO rec studierendenantrag_status_id
+ FROM campus.tbl_studierendenantrag_status
+ WHERE studierendenantrag_id=i_studierendenantrag_id
+ ORDER BY insertamum desc
+ LIMIT 1;
+
+ RETURN rec.studierendenantrag_status_id;
+ END;
+ $_$;
+
+ ALTER FUNCTION campus.get_status_id_studierendenantrag(integer) OWNER TO fhcomplete;';
+
+ if(!$db->db_query($qry))
+ echo 'campus.get_status_id_studierendenantrag(integer): '.$db->db_last_error().'
';
+ else
+ echo '
campus.get_status_id_studierendenantrag(integer): function created';
+}
+
+if (!$result = @$db->db_query("SELECT public.get_absem_prestudent(0, null)")) {
+ $qry = 'CREATE FUNCTION public.get_absem_prestudent(integer, character varying) RETURNS integer
+ LANGUAGE plpgsql
+ AS $_$
+ DECLARE i_prestudent_id ALIAS FOR $1;
+ DECLARE cv_studiensemester_kurzbz ALIAS FOR $2;
+ DECLARE rec RECORD;
+ BEGIN
+ IF (cv_studiensemester_kurzbz IS NULL) THEN
+ SELECT INTO rec ausbildungssemester
+ FROM public.tbl_prestudentstatus
+ WHERE prestudent_id=i_prestudent_id
+ ORDER BY datum desc,insertamum desc, ext_id desc
+ LIMIT 1;
+ ELSE
+ SELECT INTO rec ausbildungssemester
+ FROM tbl_prestudentstatus
+ WHERE prestudent_id=i_prestudent_id AND studiensemester_kurzbz=cv_studiensemester_kurzbz
+ ORDER BY datum desc,insertamum desc, ext_id desc
+ LIMIT 1;
+ END IF;
+
+ RETURN rec.ausbildungssemester;
+ END;
+ $_$;
+
+ ALTER FUNCTION public.get_absem_prestudent(integer, character varying) OWNER TO fhcomplete;';
+
+ if(!$db->db_query($qry))
+ echo 'public.get_absem_prestudent(integer, character varying): '.$db->db_last_error().'
';
+ else
+ echo '
public.get_absem_prestudent(integer, character varying): function created';
+}
+if (!$result = @$db->db_query("SELECT public.get_stdsem_prestudent(0, null)")) {
+ $qry = 'CREATE FUNCTION public.get_stdsem_prestudent(integer, character varying) RETURNS character varying
+ LANGUAGE plpgsql
+ AS $_$
+ DECLARE i_prestudent_id ALIAS FOR $1;
+ DECLARE cv_studiensemester_kurzbz ALIAS FOR $2;
+ DECLARE rec RECORD;
+ BEGIN
+ IF (cv_studiensemester_kurzbz IS NULL) THEN
+ SELECT INTO rec studiensemester_kurzbz
+ FROM public.tbl_prestudentstatus
+ WHERE prestudent_id=i_prestudent_id
+ ORDER BY datum desc,insertamum desc, ext_id desc
+ LIMIT 1;
+ ELSE
+ SELECT INTO rec studiensemester_kurzbz
+ FROM tbl_prestudentstatus
+ WHERE prestudent_id=i_prestudent_id AND studiensemester_kurzbz=cv_studiensemester_kurzbz
+ ORDER BY datum desc,insertamum desc, ext_id desc
+ LIMIT 1;
+ END IF;
+
+ RETURN rec.studiensemester_kurzbz;
+ END;
+ $_$;
+
+ ALTER FUNCTION public.get_stdsem_prestudent(integer, character varying) OWNER TO fhcomplete;';
+
+ if(!$db->db_query($qry))
+ echo 'public.get_stdsem_prestudent(integer, character varying): '.$db->db_last_error().'
';
+ else
+ echo '
public.get_stdsem_prestudent(integer, character varying): function created';
+}
+
+if($result = @$db->db_query("SELECT 1 FROM public.tbl_status_grund WHERE statusgrund_kurzbz = 'abbrecherStgl';"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO public.tbl_status_grund(statusgrund_kurzbz, status_kurzbz, aktiv, beschreibung, bezeichnung_mehrsprachig) VALUES('abbrecherStgl', 'Abbrecher', TRUE, '{\"durch Stgl\", \"by Course Director\"}', '{\"durch Stgl\", \"by Course Director\"}');";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_status_grund '.$db->db_last_error().'
';
+ else
+ echo ' public.tbl_status_grund: Added Statusgrund abbrecherStgl for Abbrecher
';
+ }
+}
+
+if($result = @$db->db_query("SELECT 1 FROM public.tbl_status_grund WHERE statusgrund_kurzbz = 'abbrecherStud';"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO public.tbl_status_grund(statusgrund_kurzbz, status_kurzbz, aktiv, beschreibung, bezeichnung_mehrsprachig) VALUES('abbrecherStud', 'Abbrecher', TRUE, '{\"durch Stud\", \"by Student\"}', '{\"durch Stud\", \"by Student\"}');";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_status_grund '.$db->db_last_error().'
';
+ else
+ echo ' public.tbl_status_grund: Added Statusgrund abbrecherStud for Abbrecher
';
+ }
+}
+
+if($result = @$db->db_query("SELECT 1 FROM public.tbl_status_grund WHERE statusgrund_kurzbz = 'preabbrecher';"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO public.tbl_status_grund(statusgrund_kurzbz, status_kurzbz, aktiv, beschreibung, bezeichnung_mehrsprachig) VALUES('preabbrecher', 'Student', TRUE, '{\"Pre-Abbrecher\", \"Pre-Aborted\"}', '{\"Pre-Abbrecher\", \"Pre-Aborted\"}');";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_status_grund '.$db->db_last_error().'
';
+ else
+ echo ' public.tbl_status_grund: Added Statusgrund pre-abbrecher for Student
';
+ }
+}
diff --git a/system/dbupdate_3.4/27388_anrechnungen_zeitfenster_pflegen.php b/system/dbupdate_3.4/27388_anrechnungen_zeitfenster_pflegen.php
new file mode 100644
index 000000000..3c84e2d17
--- /dev/null
+++ b/system/dbupdate_3.4/27388_anrechnungen_zeitfenster_pflegen.php
@@ -0,0 +1,57 @@
+db_query('SELECT 1 FROM lehre.tbl_anrechnungszeitraum LIMIT 1'))
+{
+ $qry = 'CREATE TABLE lehre.tbl_anrechnungszeitraum
+ (
+ anrechnungszeitraum_id integer,
+ studiensemester_kurzbz varchar(16) NOT NULL,
+ anrechnungstart date,
+ anrechnungende date,
+ insertamum timestamp default NOW(),
+ insertvon varchar(32)
+ );
+
+ COMMENT ON TABLE lehre.tbl_anrechnungszeitraum IS \'Zeitfenster fuer Anrechnungen pro Studiensemester\';
+ COMMENT ON COLUMN lehre.tbl_anrechnungszeitraum.anrechnungstart IS \'Zeitfenster Startdatum\';
+ COMMENT ON COLUMN lehre.tbl_anrechnungszeitraum.anrechnungende IS \'Zeitfenster Enddatum\';
+
+ ALTER TABLE lehre.tbl_anrechnungszeitraum ADD CONSTRAINT pk_anrechnungszeitraum PRIMARY KEY (anrechnungszeitraum_id);
+ ALTER TABLE lehre.tbl_anrechnungszeitraum ADD CONSTRAINT fk_anrechnungszeitraum_studiensemester_kurzbz FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
+
+ CREATE SEQUENCE lehre.seq_anrechnungszeitraum_anrechnungszeitraum_id
+ START WITH 1
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ CACHE 1;
+ ALTER TABLE lehre.tbl_anrechnungszeitraum ALTER COLUMN anrechnungszeitraum_id SET DEFAULT nextval(\'lehre.seq_anrechnungszeitraum_anrechnungszeitraum_id\');
+
+ GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_anrechnungszeitraum TO web;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_anrechnungszeitraum TO vilesci;
+ GRANT SELECT, UPDATE ON lehre.seq_anrechnungszeitraum_anrechnungszeitraum_id TO vilesci;
+ GRANT SELECT, UPDATE ON lehre.seq_anrechnungszeitraum_anrechnungszeitraum_id TO web;
+ ';
+
+ if(!$db->db_query($qry))
+ echo 'lehre.tbl_anrechnungszeitraum: '.$db->db_last_error().'
';
+ else
+ echo ' lehre.tbl_anrechnungszeitraum: Tabelle hinzugefuegt
';
+}
+
+// Add permission to admin Anrechnungen
+if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'lehre/anrechnungszeitfenster';"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/anrechnungszeitfenster', 'Anrechnungszeitfenster anlegen');";
+
+ if(!$db->db_query($qry))
+ echo 'system.tbl_berechtigung '.$db->db_last_error().'
';
+ else
+ echo ' system.tbl_berechtigung: Added permission for lehre/anrechnungszeitfenster
';
+ }
+}
\ No newline at end of file
diff --git a/system/dbupdate_3.4/27949_infocenter_zurueckstellen_mit_grund.php b/system/dbupdate_3.4/27949_infocenter_zurueckstellen_mit_grund.php
new file mode 100644
index 000000000..6bd0464db
--- /dev/null
+++ b/system/dbupdate_3.4/27949_infocenter_zurueckstellen_mit_grund.php
@@ -0,0 +1,85 @@
+db_query("SELECT 1 FROM public.tbl_rueckstellung_status LIMIT 1;"))
+{
+ $qry = "
+ CREATE TABLE public.tbl_rueckstellung_status
+ (
+ status_kurzbz character varying(32),
+ bezeichnung_mehrsprachig character varying(256)[],
+ sort integer,
+ aktiv boolean default true
+ );
+ ALTER TABLE public.tbl_rueckstellung_status ADD CONSTRAINT pk_tbl_postpone_status_status_kurzbz PRIMARY KEY (status_kurzbz);
+ INSERT INTO public.tbl_rueckstellung_status(status_kurzbz, bezeichnung_mehrsprachig, sort) VALUES('parked', '{Parken, Park}', 1);
+ INSERT INTO public.tbl_rueckstellung_status(status_kurzbz, bezeichnung_mehrsprachig, sort) VALUES('onhold_bmi', '{Bundesministerium, Federal Ministry}', 2);
+ INSERT INTO public.tbl_rueckstellung_status(status_kurzbz, bezeichnung_mehrsprachig, sort) VALUES('onhold_zgv', '{ZGV Prüfung, ZGV examination}', 3);
+ INSERT INTO public.tbl_rueckstellung_status(status_kurzbz, bezeichnung_mehrsprachig, sort) VALUES('onhold_drittstaat', '{Drittstaat, Third country}', 4);
+ INSERT INTO public.tbl_rueckstellung_status(status_kurzbz, bezeichnung_mehrsprachig, sort) VALUES('onhold_remone', '{Reminder 1, Reminder 1}', 5);
+ INSERT INTO public.tbl_rueckstellung_status(status_kurzbz, bezeichnung_mehrsprachig, sort) VALUES('onhold_remtwo', '{Reminder 2, Reminder 2}', 6);
+ GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_rueckstellung_status TO vilesci;
+ GRANT SELECT ON public.tbl_rueckstellung_status TO web;
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_rueckstellung_status: '.$db->db_last_error().'
';
+ else
+ echo ' public.tbl_rueckstellung_status: Tabelle hinzugefuegt
';
+}
+
+// Add table tbl_rueckstellung
+if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_rueckstellung LIMIT 1;"))
+{
+ $qry = "
+ CREATE TABLE public.tbl_rueckstellung
+ (
+ rueckstellung_id integer NOT NULL,
+ person_id integer NOT NULL,
+ status_kurzbz character varying(32) NOT NULL,
+ datum_bis timestamp NOT NULL,
+ insertamum timestamp without time zone default now(),
+ insertvon character varying(32)
+ );
+
+ CREATE SEQUENCE public.tbl_rueckstellung_id_seq
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ CACHE 1;
+
+ ALTER TABLE public.tbl_rueckstellung ADD CONSTRAINT pk_tbl_rueckstellung PRIMARY KEY (rueckstellung_id);
+ ALTER TABLE public.tbl_rueckstellung ALTER COLUMN rueckstellung_id SET DEFAULT nextval('tbl_rueckstellung_id_seq');
+ ALTER TABLE public.tbl_rueckstellung ADD CONSTRAINT fk_rueckstellung_person_id FOREIGN KEY (person_id) REFERENCES public.tbl_person(person_id) ON UPDATE CASCADE ON DELETE RESTRICT;
+ ALTER TABLE public.tbl_rueckstellung ADD CONSTRAINT fk_rueckstellung_status_kurzbz FOREIGN KEY (status_kurzbz) REFERENCES public.tbl_rueckstellung_status(status_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
+ GRANT SELECT, UPDATE ON public.tbl_rueckstellung_id_seq TO vilesci;
+ GRANT SELECT, UPDATE ON public.tbl_rueckstellung_id_seq TO web;
+ GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_rueckstellung TO vilesci;
+ GRANT SELECT, UPDATE, DELETE ON public.tbl_rueckstellung TO web;
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_rueckstellung: '.$db->db_last_error().'
';
+ else
+ echo ' public.tbl_rueckstellung: Tabelle hinzugefuegt
';
+
+ //Übernahme von "zurückgestellten" und "geparkten" Personen
+ $qry = "
+ INSERT INTO public.tbl_rueckstellung (person_id, status_kurzbz, datum_bis, insertvon)
+ SELECT person_id,
+ CASE WHEN
+ (lower(l.logdata->>'name') = 'onhold')
+ THEN 'onhold_remone'
+ ELSE lower(l.logdata->>'name')
+ END,
+ zeitpunkt, insertvon
+ FROM system.tbl_log l
+ WHERE (l.logdata->>'name' = 'Onhold' OR l.logdata->>'name' = 'Parked') AND zeitpunkt >= NOW();";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_rueckstellung: '.$db->db_last_error().'
';
+ else
+ echo ' public.tbl_rueckstellung: Bestehene Eintraege uebernommen
';
+}
diff --git a/system/dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php b/system/dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php
new file mode 100644
index 000000000..84a85629a
--- /dev/null
+++ b/system/dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php
@@ -0,0 +1,16 @@
+db_query("SELECT 1 FROM system.tbl_fehler WHERE fehlertyp_kurzbz='error' AND fehler_kurzbz IN ('AbschlussstatusFehlt', 'AusbildungssemPrestudentUngleichAusbildungssemStatus', 'BewerberNichtZumRtAngetreten', 'GbDatumWeitZurueck', 'InaktiverStudentAktiverStatus')"))
+{
+ if($db->db_num_rows($result)>0)
+ {
+ $qry = "UPDATE system.tbl_fehler SET fehlertyp_kurzbz='warning' WHERE fehler_kurzbz IN ('AbschlussstatusFehlt', 'AusbildungssemPrestudentUngleichAusbildungssemStatus', 'BewerberNichtZumRtAngetreten', 'GbDatumWeitZurueck', 'InaktiverStudentAktiverStatus') AND fehlertyp_kurzbz = 'error';";
+
+ if(!$db->db_query($qry))
+ echo 'System Tabelle Fehler: '.$db->db_last_error().'
';
+ else
+ echo '
Bestimmte Fehler mit Typ error zu warnings umgewandelt';
+ }
+}
diff --git a/system/dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php b/system/dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php
new file mode 100644
index 000000000..7102806e3
--- /dev/null
+++ b/system/dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php
@@ -0,0 +1,108 @@
+db_query("SELECT 1 FROM system.tbl_app WHERE app='personalverwaltung' LIMIT 1"))
+{
+ if ($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO system.tbl_app(app) VALUES('personalverwaltung');";
+
+ if(!$db->db_query($qry))
+ echo 'system.tbl_app: '.$db->db_last_error().'
';
+ else
+ echo ' system.tbl_app: Personalverwaltung hinzugefügt
';
+ }
+}
+
+if (!$result = @$db->db_query('SELECT 1 FROM system.tbl_fehler_konfigurationsdatentyp LIMIT 1'))
+{
+ $qry = 'CREATE TABLE system.tbl_fehler_konfigurationsdatentyp
+ (
+ konfigurationsdatentyp varchar(32)
+ );
+
+ COMMENT ON TABLE system.tbl_fehler_konfigurationsdatentyp IS \'Konfigurationsparameter Datentypen\';
+ COMMENT ON COLUMN system.tbl_fehler_konfigurationsdatentyp.konfigurationsdatentyp IS \'Datentyp der Konfigurationsparameter, z.B. integer oder string\';
+
+ ALTER TABLE system.tbl_fehler_konfigurationsdatentyp ADD CONSTRAINT pk_fehler_konfigurationsdatentyp PRIMARY KEY (konfigurationsdatentyp);
+
+ GRANT SELECT ON system.tbl_fehler_konfigurationsdatentyp TO web;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON system.tbl_fehler_konfigurationsdatentyp TO vilesci;
+
+ -- prefill values
+ INSERT INTO system.tbl_fehler_konfigurationsdatentyp(konfigurationsdatentyp) VALUES(\'integer\');
+ INSERT INTO system.tbl_fehler_konfigurationsdatentyp(konfigurationsdatentyp) VALUES(\'float\');
+ INSERT INTO system.tbl_fehler_konfigurationsdatentyp(konfigurationsdatentyp) VALUES(\'string\');
+ ';
+
+ if(!$db->db_query($qry))
+ echo 'system.tbl_fehler_konfigurationsdatentyp: '.$db->db_last_error().'
';
+ else
+ echo ' system.tbl_fehler_konfigurationsdatentyp: Tabelle hinzugefuegt
';
+}
+
+if (!$result = @$db->db_query('SELECT 1 FROM system.tbl_fehler_konfigurationstyp LIMIT 1'))
+{
+ $qry = 'CREATE TABLE system.tbl_fehler_konfigurationstyp
+ (
+ konfigurationstyp_kurzbz varchar(64),
+ beschreibung text,
+ konfigurationsdatentyp varchar(32),
+ app varchar(32) NOT NULL
+ );
+
+ COMMENT ON TABLE system.tbl_fehler_konfigurationstyp IS \'Konfigurationsparameter Typen\';
+ COMMENT ON COLUMN system.tbl_fehler_konfigurationstyp.konfigurationstyp_kurzbz IS \'Art der Konfiguration\';
+ COMMENT ON COLUMN system.tbl_fehler_konfigurationstyp.beschreibung IS \'Kurze Erklärung, was die Konfiguration bewirkt\';
+ COMMENT ON COLUMN system.tbl_fehler_konfigurationstyp.app IS \'App, für welche die Konfiguration gilt\';
+
+ ALTER TABLE system.tbl_fehler_konfigurationstyp ADD CONSTRAINT pk_fehler_konfigurationstyp PRIMARY KEY (konfigurationstyp_kurzbz);
+ ALTER TABLE system.tbl_fehler_konfigurationstyp ADD CONSTRAINT fk_fehler_konfigurationstyp_app FOREIGN KEY (app) REFERENCES system.tbl_app(app) ON UPDATE CASCADE ON DELETE RESTRICT;
+ ALTER TABLE system.tbl_fehler_konfigurationstyp ADD CONSTRAINT fk_fehler_konfigurationstyp_konfigurationsdatentyp FOREIGN KEY (konfigurationsdatentyp) REFERENCES system.tbl_fehler_konfigurationsdatentyp(konfigurationsdatentyp) ON UPDATE CASCADE ON DELETE RESTRICT;
+
+ GRANT SELECT, UPDATE, INSERT, DELETE ON system.tbl_fehler_konfigurationstyp TO web;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON system.tbl_fehler_konfigurationstyp TO vilesci;
+
+ -- prefill values
+ INSERT INTO system.tbl_fehler_konfigurationstyp(konfigurationstyp_kurzbz, beschreibung, konfigurationsdatentyp, app)
+ VALUES(\'exkludierteStudiengaenge\', \'Studiengangskennzahlen von Studiengängen, die nicht bei den Studierendenplausichecks berücksichtigt werden\', \'integer\', \'core\');
+ ';
+
+ if(!$db->db_query($qry))
+ echo 'system.tbl_fehler_konfigurationstyp: '.$db->db_last_error().'
';
+ else
+ echo ' system.tbl_fehler_konfigurationstyp: Tabelle hinzugefuegt
';
+}
+
+if (!$result = @$db->db_query('SELECT 1 FROM system.tbl_fehler_konfiguration LIMIT 1'))
+{
+ $qry = 'CREATE TABLE system.tbl_fehler_konfiguration
+ (
+ konfigurationstyp_kurzbz varchar(64),
+ fehlercode varchar(64),
+ konfiguration jsonb NOT NULL,
+ insertamum timestamp default NOW(),
+ insertvon varchar(32),
+ updateamum timestamp,
+ updatevon varchar(32)
+ );
+
+ COMMENT ON TABLE system.tbl_fehler_konfiguration IS \'Konfigurationsparameter pro Fehler\';
+ COMMENT ON COLUMN system.tbl_fehler_konfiguration.konfigurationstyp_kurzbz IS \'Art der Konfiguration\';
+ COMMENT ON COLUMN system.tbl_fehler_konfiguration.konfiguration IS \'Konfigruationsparameter \';
+
+ ALTER TABLE system.tbl_fehler_konfiguration ADD CONSTRAINT pk_fehler_konfiguration PRIMARY KEY (konfigurationstyp_kurzbz, fehlercode);
+ ALTER TABLE system.tbl_fehler_konfiguration ADD CONSTRAINT fk_fehler_konfiguration_konfigurationstyp_kurzbz FOREIGN KEY (konfigurationstyp_kurzbz) REFERENCES system.tbl_fehler_konfigurationstyp(konfigurationstyp_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
+ ALTER TABLE system.tbl_fehler_konfiguration ADD CONSTRAINT fk_fehler_konfiguration_fehlercode FOREIGN KEY (fehlercode) REFERENCES system.tbl_fehler(fehlercode) ON UPDATE CASCADE ON DELETE RESTRICT;
+
+ GRANT SELECT, UPDATE, INSERT, DELETE ON system.tbl_fehler_konfiguration TO web;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON system.tbl_fehler_konfiguration TO vilesci;
+ ';
+
+ if(!$db->db_query($qry))
+ echo 'system.tbl_fehler_konfiguration: '.$db->db_last_error().'
';
+ else
+ echo ' system.tbl_fehler_konfiguration: Tabelle hinzugefuegt
';
+}
diff --git a/system/dbupdate_3.4/29529_infocenter_anpassungen.php b/system/dbupdate_3.4/29529_infocenter_anpassungen.php
new file mode 100644
index 000000000..e11f3ed39
--- /dev/null
+++ b/system/dbupdate_3.4/29529_infocenter_anpassungen.php
@@ -0,0 +1,34 @@
+db_query("SELECT has_sequence_privilege('web', 'testtool.tbl_pruefling_pruefling_id_seq', 'UPDATE')"))
+{
+
+ if($db->db_fetch_object($result)->has_sequence_privilege === "f")
+ {
+ $qry = "GRANT SELECT, UPDATE ON SEQUENCE testtool.tbl_pruefling_pruefling_id_seq to web;";
+
+ if(!$db->db_query($qry))
+ echo 'testtool.tbl_pruefling Berechtigungen: '.$db->db_last_error().'
';
+ else
+ echo '
Web User fuer testtool.tbl_pruefling berechtigt';
+ }
+}
+
+// Update Berechtigungen fuer vilesci User erteilen fuer tbl_pruefling_pruefling_id_seq
+if($result = @$db->db_query("SELECT has_sequence_privilege('vilesci', 'testtool.tbl_pruefling_pruefling_id_seq', 'UPDATE')"))
+{
+ if($db->db_fetch_object($result)->has_sequence_privilege === "f")
+ {
+ $qry = "GRANT SELECT, UPDATE ON SEQUENCE testtool.tbl_pruefling_pruefling_id_seq to vilesci;";
+
+ if(!$db->db_query($qry))
+ echo 'testtool.tbl_pruefling Berechtigungen: '.$db->db_last_error().'
';
+ else
+ echo '
vilesci User fuer testtool.tbl_pruefling berechtigt';
+ }
+}
+
+
diff --git a/system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php b/system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php
new file mode 100644
index 000000000..aaa412d88
--- /dev/null
+++ b/system/dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php
@@ -0,0 +1,141 @@
+db_query('SELECT 1 FROM bis.tbl_abschluss LIMIT 1'))
+{
+ $qry = "CREATE TABLE bis.tbl_abschluss
+ (
+ ausbildung_code integer NOT NULL,
+ abschluss_bez varchar(128),
+ bezeichnung character varying(128)[],
+ aktiv boolean NOT NULL DEFAULT true,
+ in_oesterreich boolean,
+ CONSTRAINT pk_tbl_abschluss PRIMARY KEY (ausbildung_code)
+ );
+
+ COMMENT ON TABLE bis.tbl_abschluss IS 'Key-Table of graduation';
+ COMMENT ON COLUMN bis.tbl_abschluss.aktiv IS 'Shows wether graduation is still valid.';
+ COMMENT ON COLUMN bis.tbl_abschluss.in_oesterreich IS 'Shows if graduation was obtained in Austria.';
+
+ GRANT SELECT ON bis.tbl_abschluss TO web;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON bis.tbl_abschluss TO vilesci;
+
+ -- prefill values
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(110, 'Pflichtschule', '{\"Pflichtschule (mit/ohne Abschluss)\", \"Compulsory school (Completed/not completed)\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(121, 'Lehre', '{\"Lehre\", \"Apprenticeship\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(122, 'Mittlere Schule ohne Matura', '{\"Mittlere Schule ohne Matura (z.B. Handelsschule, Fachschule)\", \"School for intermediate vocational education (without university entrance qualification)\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(123, 'Meisterprüfung', '{\"Meisterprüfung\", \"Master craftsman''s diploma\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(131, 'AHS', '{\"AHS (allgemein bildende höhere Schule)\", \"Academic secondary school\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(132, 'BHS', '{\"BHS (berufsbildende höhere Schule, z.B. HAK, HTL)\", \"College for higher vocational education\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(133, 'Sonstige Hochschulzugangsberechtigung', '{\"Sonstige Hochschulzugangsberechtigung (z.B. Berufsreifeprüfung)\", \"Other university entrance qualification (e.g. ''Berufsreifeprüfung'')\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(141, 'Akademie', '{\"Akademie (z.B. PÄDAK, SOZAK)\", \"Academy (for example PÄDAK, SOZAK)\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(142, 'Universität/Hochschule', '{\"Universität/Hochschule\", \"University/university of applied sciences/university college of teacher education\"}', true);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(210, 'Pflichtschule', '{\"Pflichtschule (mit/ohne Abschluss)\", \"Compulsory school (Completed/not completed)\"}', false);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(220, 'Ausbildung ohne Hochschulzugangsberechtigung', '{\"Lehre oder mittlere Schule ohne Matura/Ausbildung ohne Hochschulzugangsberechtigung\", \"Apprenticeship or school for intermediate vocational education (education without university entrance qualification)\"}', false);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(230, 'Ausbildung mit Hochschulzugangsberechtigung', '{\"Höhere Schule mit Matura / Ausbildung mit Hochschulzugangsberechtigung (z.B. Abitur)\", \"Higher secondary school with university entrance qualification\"}', false);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung, in_oesterreich) VALUES(240, 'Universität/Hochschule', '{\"Universität/Hochschule\", \"University/university of applied sciences/university college of teacher education\"}', false);
+ INSERT INTO bis.tbl_abschluss(ausbildung_code, abschluss_bez, bezeichnung) VALUES(999, 'unbekannt', '{\"Ich weiß nicht, welchen Abschluss meine erziehungsberechtigte Person erlangt hat.\", \"I do not know what degree my legal guardian got.\"}');
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'bis.tbl_abschluss: '.$db->db_last_error().'
';
+ else
+ echo ' bis.tbl_abschluss: Tabelle hinzugefuegt
';
+}
+
+if (!$result = @$db->db_query('SELECT 1 FROM bis.tbl_uhstat1daten LIMIT 1'))
+{
+ $qry = "CREATE SEQUENCE bis.tbl_uhstat1daten_uhstat1daten_id_seq
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ START WITH 1
+ CACHE 1
+ NO CYCLE;
+
+ CREATE TABLE bis.tbl_uhstat1daten
+ (
+ uhstat1daten_id integer DEFAULT nextval('bis.tbl_uhstat1daten_uhstat1daten_id_seq'::regclass),
+ mutter_geburtsstaat varchar(3),
+ mutter_bildungsstaat varchar(3),
+ mutter_geburtsjahr smallint,
+ mutter_bildungmax integer,
+ vater_geburtsstaat varchar(3),
+ vater_bildungsstaat varchar(3),
+ vater_geburtsjahr smallint,
+ vater_bildungmax integer,
+ person_id integer NOT NULL,
+ insertamum timestamp without time zone DEFAULT now(),
+ insertvon character varying(32),
+ updateamum timestamp without time zone,
+ updatevon character varying(32),
+ CONSTRAINT pk_tbl_uhstat1daten PRIMARY KEY (uhstat1daten_id)
+ );
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_mutter_geburtsstaat FOREIGN KEY (mutter_geburtsstaat)
+ REFERENCES bis.tbl_nation (nation_code) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_mutter_bildungsstaat FOREIGN KEY (mutter_bildungsstaat)
+ REFERENCES bis.tbl_nation (nation_code) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_mutter_bildungmax FOREIGN KEY (mutter_bildungmax)
+ REFERENCES bis.tbl_abschluss (ausbildung_code) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_vater_geburtsstaat FOREIGN KEY (vater_geburtsstaat)
+ REFERENCES bis.tbl_nation (nation_code) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_vater_bildungsstaat FOREIGN KEY (vater_bildungsstaat)
+ REFERENCES bis.tbl_nation (nation_code) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_vater_bildungmax FOREIGN KEY (vater_bildungmax)
+ REFERENCES bis.tbl_abschluss (ausbildung_code) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT fk_tbl_uhstat1daten_person_id FOREIGN KEY (person_id)
+ REFERENCES public.tbl_person (person_id) MATCH SIMPLE
+ ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ ALTER TABLE bis.tbl_uhstat1daten ADD CONSTRAINT uk_uhstat1daten_person_id UNIQUE(person_id);
+
+ COMMENT ON TABLE bis.tbl_uhstat1daten IS 'UHSTAT1 data for a person (statistical data)';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.mutter_geburtsstaat IS 'Birth country of mother of person';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.mutter_bildungsstaat IS 'Education country of mother of person';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.mutter_geburtsjahr IS 'Birth year of mother of person';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.mutter_bildungmax IS 'Highest completed level of education of mother (code)';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.vater_geburtsstaat IS 'Birth country of father of person';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.vater_bildungsstaat IS 'Education country of father of person';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.vater_geburtsjahr IS 'Birth year of father of person';
+ COMMENT ON COLUMN bis.tbl_uhstat1daten.vater_bildungmax IS 'Highest completed level of education of father (code)';
+
+ GRANT SELECT, UPDATE, INSERT, DELETE ON bis.tbl_uhstat1daten TO web;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON bis.tbl_uhstat1daten TO vilesci;
+ GRANT SELECT, UPDATE ON bis.tbl_uhstat1daten_uhstat1daten_id_seq TO vilesci;
+ GRANT SELECT, UPDATE ON bis.tbl_uhstat1daten_uhstat1daten_id_seq TO web;
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'bis.tbl_uhstat1daten: '.$db->db_last_error().'
';
+ else
+ echo ' bis.tbl_uhstat1daten: Tabelle hinzugefuegt
';
+}
+
+// Add permission for managing UHSTAT1 data
+if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'student/uhstat1daten_verwalten';"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('student/uhstat1daten_verwalten', 'UHSTAT1 Daten verwalten');";
+
+ if(!$db->db_query($qry))
+ echo 'system.tbl_berechtigung '.$db->db_last_error().'
';
+ else
+ echo ' system.tbl_berechtigung: Added permission for student/uhstat1daten_verwalten
';
+ }
+}
diff --git a/system/dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruendung.php b/system/dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruendung.php
new file mode 100644
index 000000000..922920071
--- /dev/null
+++ b/system/dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruendung.php
@@ -0,0 +1,28 @@
+db_query("SELECT begruendung_ects FROM lehre.tbl_anrechnung LIMIT 1"))
+{
+ $qry = "ALTER TABLE lehre.tbl_anrechnung ADD COLUMN begruendung_ects text;
+ COMMENT ON COLUMN lehre.tbl_anrechnung.begruendung_ects IS 'Begruendung gleichwertiger ECTS';
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'lehre.tbl_anrechnung '.$db->db_last_error().'
';
+ else
+ echo '
Spalte begruendung_ects zu Tabelle lehre.tbl_anrechnung hinzugefügt';
+}
+
+//Add column begruendung_lvinhalt to lehre.tbl_anrechnung
+if(!@$db->db_query("SELECT begruendung_lvinhalt FROM lehre.tbl_anrechnung LIMIT 1"))
+{
+ $qry = "ALTER TABLE lehre.tbl_anrechnung ADD COLUMN begruendung_lvinhalt text;
+ COMMENT ON COLUMN lehre.tbl_anrechnung.begruendung_lvinhalt IS 'Begruendung gleichwertiger LV-Inhalte';
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'lehre.tbl_anrechnung '.$db->db_last_error().'
';
+ else
+ echo '
Spalte begruendung_lvinhalt zu Tabelle lehre.tbl_anrechnung hinzugefügt';
+}
\ No newline at end of file
diff --git a/system/dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php b/system/dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php
new file mode 100644
index 000000000..0d7b43b8f
--- /dev/null
+++ b/system/dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php
@@ -0,0 +1,15 @@
+db_query("SELECT anmerkung FROM system.tbl_rolleberechtigung LIMIT 1"))
+{
+ $qry = "ALTER TABLE system.tbl_rolleberechtigung ADD COLUMN anmerkung varchar(256);
+ ALTER TABLE system.tbl_rolleberechtigung ADD COLUMN insertamum timestamp DEFAULT now();
+ ALTER TABLE system.tbl_rolleberechtigung ADD COLUMN insertvon varchar(32);";
+
+ if(!$db->db_query($qry))
+ echo 'system.tbl_rolleberechtigung '.$db->db_last_error().'
';
+ else
+ echo '
Spalten anmerkung, insertamum, insertvon in system.tbl_rolleberechtigung hinzugefügt';
+}
diff --git a/system/dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php b/system/dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php
new file mode 100644
index 000000000..d2c0c07b8
--- /dev/null
+++ b/system/dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php
@@ -0,0 +1,13 @@
+db_query("SELECT 1 FROM public.tbl_buchungstyp WHERE buchungstyp_kurzbz = 'StudiengebuehrErhoeht';"))
+{
+ if ($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO public.tbl_buchungstyp (buchungstyp_kurzbz, beschreibung, standardtext, standardbetrag) VALUES ('StudiengebuehrErhoeht', 'Erhöhter Studienbeitrag', 'Erhöhter Studienbeitrag', '-3000');";
+ if (!$db->db_query($qry))
+ echo 'public.tbl_buchungstyp '.$db->db_last_error().'
';
+ else
+ echo ' public.tbl_buchungstyp: Added buchungstyp "StudiengebuehrErhoeht"
';
+ }
+}
\ No newline at end of file
diff --git a/system/fehlerupdate.php b/system/fehlerupdate.php
index 98204315a..f29323c7c 100644
--- a/system/fehlerupdate.php
+++ b/system/fehlerupdate.php
@@ -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',
diff --git a/system/filtersupdate.php b/system/filtersupdate.php
index a3bb99a43..cc9abfb98 100644
--- a/system/filtersupdate.php
+++ b/system/filtersupdate.php
@@ -40,7 +40,9 @@ $filters = array(
{"name": "User/Operator"},
{"name": "InfoCenterMitarbeiter"},
{"name": "LockUser"},
- {"name": "OnholdDate"}
+ {"name": "HoldDate"},
+ {"name": "Rueckstellgrund"},
+ {"name": "Kaution"}
],
"filters": [
{
@@ -511,13 +513,36 @@ $filters = array(
{
"name": "Abgewiesen - Alle",
"columns": [
- {"name": "PersonID"},
+ {"name": "PersonId"},
{"name": "PreStudentID"},
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "Studiengang"},
{"name": "AbgewiesenAm"},
- {"name": "Nachricht"}
+ {"name": "Nachricht"},
+ {"name": "Kaution"},
+ {"name": "LockUser"}
+ ],
+ "filters": []
+ }
+ ',
+ 'oe_kurzbz' => null,
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'dataset_name' => 'aufgenommen',
+ 'filter_kurzbz' => 'InfoCenterAufgenommenAlle',
+ 'description' => '{Alle}',
+ 'sort' => 1,
+ 'default_filter' => true,
+ 'filter' => '
+ {
+ "name": "Aufgenommen - Lehrgänge",
+ "columns": [
+ {"name": "PersonId"},
+ {"name": "Vorname"},
+ {"name": "Nachname"},
+ {"name": "Studiengang"}
],
"filters": []
}
@@ -1035,6 +1060,7 @@ $filters = array(
{"name": "Note"},
{"name": "ErstNachname"},
{"name": "ErstAbgeschickt"},
+ {"name": "ZweitNachname"},
{"name": "ZweitAbgeschickt"}
],
"filters": []
@@ -1121,6 +1147,72 @@ $filters = array(
',
'oe_kurzbz' => null,
),
+ array(
+ 'app' => 'personalverwaltung',
+ 'dataset_name' => 'personalIssueViewer',
+ 'filter_kurzbz' => 'offeneFehlerPersonal',
+ 'description' => '{Alle offenen Fehler}',
+ 'sort' => 1,
+ 'default_filter' => true,
+ 'filter' => '
+ {
+ "name": "Alle offenen Fehler",
+ "columns": [
+ {"name": "Datum"},
+ {"name": "Inhalt"},
+ {"name": "Vorname"},
+ {"name": "Nachname"},
+ {"name": "PersonId"},
+ {"name": "Statuscode"}
+ ],
+ "filters": [
+ {
+ "name": "Statuscode",
+ "operation": "ncontains",
+ "condition": "resolved"
+ }
+ ]
+ }
+ ',
+ 'oe_kurzbz' => null,
+ ),
+ array(
+ 'app' => 'personalverwaltung',
+ 'dataset_name' => 'personalIssueViewer',
+ 'filter_kurzbz' => 'FehlerLetzte7TageBearbeitetPersonal',
+ 'description' => '{Letzten 7 Tage bearbeitet}',
+ 'sort' => 2,
+ 'default_filter' => false,
+ 'filter' => '
+ {
+ "name": "Alle in den letzten 7 Tagen bearbeiteten Fehler",
+ "columns": [
+ {"name": "Datum"},
+ {"name": "Inhalt"},
+ {"name": "Vorname"},
+ {"name": "Nachname"},
+ {"name": "PersonId"},
+ {"name": "Statuscode"},
+ {"name": "Verarbeitet von"},
+ {"name": "Verarbeitet am"}
+ ],
+ "filters": [
+ {
+ "name": "Verarbeitet am",
+ "operation": "lt",
+ "condition": "7",
+ "option": "days"
+ },
+ {
+ "name": "Statuscode",
+ "operation": "contains",
+ "condition": "resolved"
+ }
+ ]
+ }
+ ',
+ 'oe_kurzbz' => null,
+ ),
array(
'app' => 'core',
'dataset_name' => 'fehlerZustaendigkeiten',
@@ -1144,6 +1236,28 @@ $filters = array(
',
'oe_kurzbz' => null
),
+ array(
+ 'app' => 'core',
+ 'dataset_name' => 'fehlerKonfiguration',
+ 'filter_kurzbz' => 'fehlerKonfiguration',
+ 'description' => '{Fehler Konfiguration}',
+ 'sort' => 1,
+ 'default_filter' => true,
+ 'filter' => '
+ {
+ "name": "Fehler Konfiguration",
+ "columns": [
+ {"name": "konfigurationstyp_kurzbz"},
+ {"name": "fehlercode"},
+ {"name": "fehler_kurzbz"},
+ {"name": "konfiguration"},
+ {"name": "app"}
+ ],
+ "filters": []
+ }
+ ',
+ 'oe_kurzbz' => null
+ ),
array(
'app' => 'core',
'dataset_name' => 'gruppenmanagement',
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index 561559363..b5fa7cc7b 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -3747,8 +3747,8 @@ $phrases = array(
)
),
array(
- 'app' => 'core',
- 'category' => 'global',
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
'phrase' => 'rueckstelldatum',
'insertvon' => 'system',
'phrases' => array(
@@ -3766,6 +3766,26 @@ $phrases = array(
)
)
),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'rueckstellgrund',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Rückstellgrund',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'onHold reason',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'infocenter',
'category' => 'infocenter',
@@ -4114,6 +4134,691 @@ When on hold, the date is only a reminder.',
)
)
),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'kaution',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kaution',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deposit',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'rechnungsnummer',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Rechnungsnummer',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Invoice Number',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'date',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Rechnungsnummer',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Invoice Number',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faelligam',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fällig am',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Due on',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'gesamtbetrag',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Gesamtbetrag',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Total amount',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'rechnungsempfaenger',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Rechnungsempfänger',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Invoice recipient',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'rechnung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Rechnungsempfänger',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Invoice',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'studiensemester',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Semester',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Semester',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'bezeichnung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bezeichnung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Title',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'datum',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Datum',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Date',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'zahlungsbestaetigung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Zahlungsbestätigung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Payment confirmation',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'bewerbung',
+ 'phrase' => 'erklaerungInvoices',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ablauf und Zahlungsbedingungen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'rechnungserklaerung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Wir möchten Sie darauf aufmerksam machen, dass bei der Überweisung *immer* die Rechnungsnummer als Zahlungsreferenz anzuführen ist.
+ Andernfalls erfolgt keine automatische Zahlungszuordnung und es kann zu einer Verzögerung der Darstellung des aktuellen Zahlungsstatus
+ der Rechnung im CIS kommen.
+
+
+ Im Falle dass der Betrag an ein falsches Konto überwiesen wurde, bitten wir Sie höflichst sich an Ihre Bank zu wenden.
+
+
+ Jede Rechnung gilt als "Bezahlt", wenn der Gesamtbetrag vollständig auf unser Konto eingelangt ist.
+
+
',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'kontoinfotitle',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kontoinformationen der FHTW',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'kontoinfobody',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Sämtliche Zahlungen sind an die nachstehende Kontonummer zu leisten und die Rechnungsnummer muss als Zahlungsreferenz eingegeben werden.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'kontoinfoausland',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Auslandsüberweisungen:
+
+ Bei Auslandsüberweisungen sind die Spesenkosten von den
+
+ Zahlenden zusätzlich zu den Rechnungsbeträgen zu zahlen.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'rechnungtitle',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Rechnungen & Zahlungsbestätigungen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq0frage',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Warum ist die Einzahlung trotz Einzahlung noch offen?',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq0antwort',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Der häufigste Grund für diesen Fall ist, dass bei der Überweisung nicht die Rechnungsnummer als Zahlungsreferenz eingegeben wird.
+Wir bitten Sie höflichst in diesem Fall eine Mail an billing@technikum-wien.at mit Zahlungsbestätigung zu senden.
+Die Transaktion und die Bearbeitung der Zahlung, kann bis zu sechs Werktage dauern.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq1frage',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ich habe keine Rechnung erhalten, was tun?',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq1antwort',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'In diesem Fall ist der Spam-Ordner zu kontrollieren. Falls die Rechnung nicht übermittelt wurde ersuchen wir um Information an billing@technikum-wien.at.
+Die Rechnung wird Ihnen erneut zugesendet. Erst nach Erhalt der Rechnung ist der Betrag zu überweisen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq2frage',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Refundierung des Studienbeitrags',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq2antwort',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Der Studienbeitrag wird nicht rückerstattet, wenn…
+-Anfänger*innen, die ihren Studienplatz nach Semesterbeginn (1. September / 16. Februar) nicht in Anspruch nehmen
+-Studierende, die ihr Studium nach Semesterbeginn (1. September / 16. Februar) abbrechen.
+
+-Unterbrechung vor dem 15.10. bzw. 15.3.: Studienbeitrag wird rückerstattet
+-Unterbrechung nach dem 15.10. bzw. 15.3.: Studienbeitrag wird nicht rückerstattet
+-in den Folgesemestern der Unterbrechung sind keine Studienbeiträge zu zahlen; der ÖHBeitrag ist jedoch in jedem Semester der Unterbrechung zu zahlen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq3frage',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Sie sind vom Studienbeitrag befreit und haben eine Rechnung für den Studienbeitrag bekommen?',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq3antwort',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Treten Sie bitte in Kontakt mit Ihrer Studiengangsassistenz. Die offene Rechnung wird storniert.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq4frage',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Mir ist ein Fehler bei der Überweisung unterlaufen, was tun?',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq4antwort',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bitte den Fehler an billing@technikum-wien.at melden.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq5frage',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Eine Rechnung wurde zwei Mal überwiesen, was tun?',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq5antwort',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Falls eine Rechnung doppelt überwiesen wurde, bitten wir Sie dies an billing@technikum-wien.at zu melden. Wir werden Ihnen eine Zahlung refundieren.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq6frage',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Es stehen mehrere Positionen auf der Rechnung – soll für jede Position eine Überweisung durchgeführt werden?',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq6antwort',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Nein, es ist immer der auf der Rechnung ausgewiesene Gesamtbetrag zu überweisen.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq7frage',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Wann kann der Betrag überwiesen werden?',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'faq7antwort',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Wir möchten Sie darauf hinweisen, dass Überweisungen erst bei Erhalt der Rechnung durchzuführen sind. Bitte um Angabe der Rechnungsnummer als Zahlungsreferenz.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+
array(
'app' => 'core',
'category' => 'password',
@@ -5734,6 +6439,26 @@ When on hold, the date is only a reminder.',
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'error_invalid_date',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Das Datumsformat ist ungültig oder liegt außerhalb des gültigen Bereichs.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The date format is invalid or out of range.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'ui',
@@ -10869,6 +11594,178 @@ Any unusual occurrences
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'begruendungEcts',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Begründen Sie die Gleichwertigkeit der ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Give reasons for the equivalence of ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'begruendungLvinhalt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Begründen Sie die Gleichwertigkeit der Lehrveranstaltungsinhalte',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Give reasons for the equivalence of the course contents',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungBegruendungEctsTooltipText',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Hinsichtlich des Umfangs der LV, die Sie anrechnen lassen wollen: Bitte erläutern Sie, warum Ihr Zeugnis bzw. Ihre berufliche Praxis mit dem Umfang der LV gleichwertig ist.
Referenzbeispiele für die ECTS-Berechnung finden Sie rechts in der Infobox.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Regarding the scope of the course you want to have credited: Please explain why your certificate or your professional practice is equivalent to the scope of the course.
Reference examples for the ECTS calculation can be found in the info box on the right.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungBegruendungLvinhaltTooltipText',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Hinsichtlich der Lernergebnisse der LV (vgl. CIS), die Sie anrechnen lassen wollen: Bitte erläutern Sie, warum die von Ihnen erworbenen Kompetenzen mit diesen Lernergebnissen gleichwertig sind.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'With regard to the learning outcomes of the course (cf. CIS) for which you want to receive credit: Please explain why the competences you have acquired are equivalent to these learning outcomes.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'requestAnrechnungInfoEctsBerechnungTitle',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Referenzbeispiele ECTS-Berechnung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reference examples of ECTS calculation',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'requestAnrechnungInfoEctsBerechnungBody',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "1 ECTS an der FH Technikum Wien entspricht einem Arbeitsaufwand von 25 Stunden.
+
Schulisches Zeugnis:
+
Bitte die Unterrichtsstunden nachvollziehbar in ECTS umrechnen (ein Schuljahr besteht aus ca. 40 Wochen; d.h., eine Unterrichtsstunde pro Woche sind insgesamt ca. 40 Stunden Jahresaufwand.)
+
Hochschulzeugnis:
+
Bitte die ECTS angeben.
+
Berufliche Praxis:
+
Bitte die Dauer der einschlägigen beruflichen Praxis nachvollziehbar in ECTS umrechnen (1,5 ECTS sind ungefähr eine Arbeitswoche im Umfang von 37,5 Stunden).",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "
1 ECTS at the FH Technikum Wien corresponds to a workload of 25 hours.
+
School certificate:
+
Please convert the teaching hours into ECTS in a comprehensible way (a school year consists of approx. 40 weeks; i.e. one teaching hour per week is a total of approx. 40 hours of annual work).
+
University certificate:
+
Please indicate the ECTS.
+
Professional practice:
+
Please convert the duration of the relevant professional practice into ECTS in a comprehensible way (1.5 ECTS are approximately one working week of 37.5 hours).",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'begruendungEctsLabel',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Begründung Gleichwertigkeit ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason Equivalency of ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'begruendungLvinhaltLabel',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Begründung Gleichwertigkeit LV-Inhalt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason Equivalency of Course content',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'anrechnung',
@@ -11529,6 +12426,86 @@ Any unusual occurrences
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'empfehlungNegativKenntnisseNichtGleichwertigWeil',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Die anzurechnenden Kenntnisse sind umfangmäßig und/oder inhaltlich nicht gleichwertig, weil...[Erläuterung: Bitte Begründung ergänzen.]',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The equivalence in terms of learning objectives and the length of the course can not be determined because of...[Explanation: Please add reason.]',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'empfehlungNegativKenntnisseNichtGleichwertigWeilHinweis',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Die anzurechnenden Kenntnisse sind umfangmäßig und/oder inhaltlich nicht gleichwertig, weil... Bei einer Ablehnung ist eine individuelle Begründung erforderlich. Dies kann nur über die Detailseite erfolgen.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The equivalence in terms of learning objectives and the length of the course can not be determined because of... If the application is rejected, an individual reason is required. This can only be done from the detail page.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'genehmigungNegativKenntnisseNichtGleichwertigWeil',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Die anzurechnenden Kenntnisse sind umfangmäßig und/oder inhaltlich nicht gleichwertig, weil...[Erläuterung: Bitte ergänzen oder Empfehlungstext des Lektors übernehmen und ggf. redigieren.]',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The equivalence in terms of learning objectives and the length of the course can not be determined because of...[Explanation: Please complete or adopt the text of the lectors recommendation and edit it if necessary]',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'genehmigungNegativKenntnisseNichtGleichwertigWeilHinweis',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Die anzurechnenden Kenntnisse sind umfangmäßig und/oder inhaltlich nicht gleichwertig, weil... Bei einer Ablehnung ist eine individuelle Begründung erforderlich. Dies kann nur über die Detailseite erfolgen.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The equivalence in terms of learning objectives and the length of the course can not be determined because of... If the application is rejected, an individual reason is required. This can only be done from the detail page.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'anrechnung',
@@ -11589,6 +12566,26 @@ Any unusual occurrences
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'bitteBegruendungVervollstaendigen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bitte vervollständigen Sie die Begründung.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Please complete the reason.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'anrechnung',
@@ -11617,13 +12614,13 @@ Any unusual occurrences
'phrases' => array(
array(
'sprache' => 'German',
- 'text' => 'Andere Begründung. Bitte im Notizfeld kurz angeben.',
+ 'text' => 'Andere Begründung. Bitte im Notizfeld angeben.',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
- 'text' => 'Other reasons. Please briefly state the reasons in the field for comments.',
+ 'text' => 'Other reasons. Please state the reasons in the field for comments.',
'description' => '',
'insertvon' => 'system'
)
@@ -12129,6 +13126,206 @@ Any unusual occurrences
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungenVerwalten',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Anrechnungen verwalten',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Administration of applications.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungszeitraumFestlegen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Anrechnungszeitraum festlegen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Set appplication period',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungszeitraumHinzufuegen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Anrechnungszeitraum hinzufügen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Add appplication period',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungszeitraumSpeichern',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Anrechnungszeitraum speichern',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Save application period',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungszeitraumStart',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Anrechnungszeitraum Start',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Startdate application',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungszeitraumEnde',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Anrechnungszeitraum Ende',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Enddate application',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'errorStartdatumNichtInStudiensemester',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Das Startdatum liegt außerhalb des gewählten Studiensemesters.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The startdate is not within the selected study semester.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'errorEndedatumNichtInStudiensemester',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Das Endedatum liegt außerhalb des gewählten Studiensemesters.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The enddate is not within the selected study semester.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'errorStartdatumNachEndedatum',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Das Startdatum muss VOR dem Endedatum liegen.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The startdate must be BEFORE the enddate.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'frageSicherLoeschen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Sicher löschen?",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Definitely delete?",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'ui',
@@ -13105,6 +14302,26 @@ array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'antragNichtFuerVerganganeSS',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Der Antrag kann nicht für vergangene Semester gestellt werden",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "You can not apply for the past study semester",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'ui',
@@ -13145,6 +14362,46 @@ array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'bearbeitetVon',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "bearbeitet von",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "edited by",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'bearbeitetAm',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "bearbeitet am",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "edited on",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'global',
@@ -13193,13 +14450,13 @@ array(
'phrases' => array(
array(
'sprache' => 'German',
- 'text' => "Empfehlungstext des Lektors als Begründung übernehmen.",
+ 'text' => "Empfehlungstext des Lektors als Begründung übernehmen und ggf. redigieren.",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
- 'text' => "Copy the lectors recommendation text as reason for the rejection.",
+ 'text' => "Copy the lectors recommendation text as reason for the rejection and edit if necessary",
'description' => '',
'insertvon' => 'system'
)
@@ -13365,6 +14622,26 @@ array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'fehlendeMinZeichen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Fehlende min. Zeichen",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Missing min. Characters",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'anrechnung',
@@ -14066,6 +15343,26 @@ array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'schliessen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Schließen",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Close",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'global',
@@ -17363,6 +18660,3813 @@ array(
)
)
),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'statusSetzen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Status setzen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Set state',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'abgewiesenam',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Abgewiesen am',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Rejected on',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'statusAuswahl',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Status auswählen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Select status',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'statusZuruecksetzen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Status zurücksetzen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reset status',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'fehlerFehlerKonfigurationLaden',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler beim Laden der Fehlerkonfiguration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error when loading error configuration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'fehlerFehlerLaden',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler beim Laden der Fehler',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error when loading errors',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'ungueltigerKonfigurationstyp',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ungültiger Konfigurationstyp',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Invalid configuration type',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'ungueltigerKonfigurationswert',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ungültiger Konfigurationswert für Datentyp {0}, Sonderzeichen nicht erlaubt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Invalid configuration value for data type {0}, special characters not allowed',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'fehlerKonfiguration',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler Konfiguration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error configuration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationstyp',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfigurationstyp',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'configuration type',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationswert',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfigurationswert',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'configuration value',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationswertPlatzhalter',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'wert1;wert2;wert3',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'value1;value2;value3',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationswertZuweisen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfigurationswert(e) zuweisen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Assign configuration value(s)',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationsbeschreibung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfigurationsbeschreibung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Configuration description',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationsdatentyp',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfigurationsdatentyp',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Configuration data type',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationGespeichert',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfiguration gespeichert',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Configuration saved',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationGespeichertFehler',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler beim Speichern der Konfiguration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error when saving configuration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationGeloescht',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfiguration gelöscht',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deleted configuration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationGeloeschtFehler',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler beim Löschen der Konfiguration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error when deleting configuration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'fehlermonitoring',
+ 'phrase' => 'konfigurationswertLoeschen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Konfigurationswert(e) löschen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Delete configuration value(s)',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'angabeFehlt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Angabe fehlt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Value is missing',
+
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'ausbildungBildungsstaatUebereinstimmung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Höchster Abschluss (unterteilt in Österreich oder im Ausland/unbekannt) passt nicht zum Staat des höchsten Abschlusses.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Highest completed level of education (divided into those acquired in Austria and those abroad/unknown) does not match country of the highest completed level of education',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'erfolgreichGespeichert',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erfolgreich gespeichert',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Saved successfully',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'fehlerBeimSpeichern',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler beim Speichern',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error when saving',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'uhstat1AnmeldungUeberschrift',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erhebung bei der Anmeldung zu einem Studium oder bei Studienbeginn',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Survey when applying for a study or at the start of studies',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'rechtsbelehrung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'gemäß § 18 Absätzen 6 und 7 Bildungsdokumentationsgesetz 2020, BGBl. I Nr. 20/2021, in der gültigen Fassung, sowie § 141 Absatz 3 Universitätsgesetz 2002, BGBl. I Nr. 120/2002, in der gültigen Fassung.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'according to section 18 subsections 6 and 7 of the Bildungsdokumentationsgesetz 2020, Federal Law Gazette I No. 20/2021, in the current version, and section 141 subsection 3 of the Universitätsgesetz 2002, Federal Law Gazette I No. 120/2002, in the current version.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'uhstat1AnmeldungEinleitungstext',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Das Senden der Daten ist nur möglich, wenn die Sozialversicherungsnummer (bzw. das Ersatzkennzeichen) gültig ist und alle Fragen beantwortet worden sind. Wenn Sie etwas nicht wissen, wählen Sie die Antwortmöglichkeit „unbekannt“, aber beantworten Sie bitte alle Fragen.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Sending the data is only possible if the social security number (or the substitute code) is valid and all questions have been answered. If you don\'t know something, choose the answer option “unknown”, but please answer all questions.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'angabenErziehungsberechtigte',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Angaben zu Ihren Erziehungsberechtigten',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Information about your legal guardians',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'angabenErziehungsberechtigteEinleitungstext',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Die folgenden Fragen beziehen sich auf Personen, welche für Sie erziehungsberechtigt waren oder sind (Eltern oder jene Personen, die für Sie eine entsprechende Rolle übernommen haben, wie z.B. Stief- oder Pflegeeltern).',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The following issues refer to your legal guardians (parents or persons who were in the role of the parents, e.g. stepparents or foster parents).',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'bitteAuswaehlen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bitte auswählen...',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'please select...',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'erziehungsberechtigtePersonEins',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erziehungsberechtigte Person 1/Mutter',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Legal guardian 1/mother',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'geburtsjahr',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Geburtsjahr',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'year of birth',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'geburtsstaat',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Geburtsstaat',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'country of birth',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'inDenHeutigenGrenzen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'in den heutigen Grenzen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'in today\'s borders',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'hoechsterAbschlussStaat',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Staat des höchsten Abschlusses',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Country of the highest completed level of education',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'hoechsterAbschluss',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Höchster Abschluss',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Highest completed level of education',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'wennAbschlussInOesterreich',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Falls der höchste Bildungsabschluss in Österreich erworben wurde',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'If the highest level of education was completed in Austria:',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'wennAbschlussNichtInOesterreich',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Falls das Land des höchsten erworbenen Bildungsabschlusses unbekannt oder nicht Österreich ist',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'If the country of the highest completed level of education is unknown or not Austria:',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'erziehungsberechtigtePersonZwei',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erziehungsberechtigte Person 2/Vater',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Legal guardian 2/father',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'pruefenUndSpeichern',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prüfen und Speichern',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Check and submit',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'datenLoeschen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Daten löschen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Delete data',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'erfolgreichGeloescht',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erfolgreich gelöscht',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deleted successfully',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'uhstat',
+ 'phrase' => 'datenLoeschen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Daten löschen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Delete data',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'infotext_Wiederholung_0',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Gemäß § 16 Abs. 1 FHG steht Studierenden einmalig das Recht auf Wiederholung eines Studienjahres in Folge einer negativ beurteilten kommissionellen Prüfung zu.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'According to § 16 paragraph 1 FHG, students have the right to repeat an academic year as a result of a negative examination before a committee.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'infotext_Wiederholung_1',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Die Wiederholung ist bei der Studiengangsleitung binnen eines Monats ab Mitteilung des negativen Prüfungsergebnisses bekannt zu geben.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The head of the degree program must be notified of the repetition within one month of notification of the negative examination result.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'infotext_Wiederholung_2',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Infolge der Weiterentwicklung der Qualität des Studienganges kann es zu Änderungen der Studienbedingungen im Zuge der Wiederholung eines Studienjahres kommen (z.B. Studienplan, Prüfungsordnung etc.).',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'As a result of the further development of the quality of the course, there may be changes to the study conditions in the course of repeating an academic year (e.g. study plan, examination regulations, etc.).',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'infotext_Wiederholung_3',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Die Studiengangsleitung legt Prüfungen und Lehrveranstaltungen für die Wiederholung des Studienjahres fest.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The head of the degree program determines examinations and courses for the repetition of the academic year.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'infotext_Wiederholung_4',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Nicht bestandene Prüfungen und Lehrveranstaltungen sind jedenfalls, bestandene Prüfungen und Lehrveranstaltungen nur, sofern es der Zweck des Studiums erforderlich macht, zu wiederholen oder erneut zu besuchen. Wird eine Lehrveranstaltung nach der letzten Wiederholungsmöglichkeit negativ beurteilt, darf dieder Studierende an keiner kommissionellen Wiederholungsprüfung im Semester der negativ beurteilen Lehrveranstaltung und im Folgesemester mehr teilnehmen (nicht-kommissionelle Wiederholungsprüfungen können wahrgenommen werden)',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'In any case, failed examinations and courses are to be repeated or attended again only if the purpose of the course makes it necessary. If a course is assessed negatively after the last opportunity to repeat it, the student may no longer take part in a board re-examination in the semester in which the course was assessed as negative and in the following semester (non-board re-examinations can be taken).',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+/*
+ // es kann fuer jede Kombination Typ und Status eine Phrase der Form info__ 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'info_Wiederholung_Erstellt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Info für Wiederholung Erstellt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Info for Wiederholung Erstellt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+*/
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_Wiederholung_pruefung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Negativ beurteilte kommissionelle Prüfung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Negative assessment by a committee',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_Wiederholung_pruefung_date',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Datum der Beurteilung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'date of assessment',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_Wiederholung_button_yes',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ich gebe hiermit die Wiederholung des Studienjahres bekannt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'I hereby announce the repetition of the academic year',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_Wiederholung_button_no',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ich werde das Studienjahr nicht wiederholen und Abbrechen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'I will not repeat the academic year and will drop out',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_header',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Verwaltung des Studierendenstatus',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Management of student status',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_new',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Neu Anlegen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Create new',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'cancel',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Abbrechen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Cancel',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'ok',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ok',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Ok',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_create',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Anlegen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Create',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_create_Abmeldung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Vom Studium abmelden',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deregister from your studies',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_create_Unterbrechung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Das Studium unterbrechen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Interrupt your studies',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_cancel',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bekanntgabe zurückziehen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Cancel announcement',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'warning_Abmeldung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ihr CIS-Account ist noch 21 Tage aktiv. Wir bitten Sie, alle benötigten Dateien (Zeugnisse, Studienerfolgsbestätigungen, Studienbestätigungen, etc.) innerhalb dieses Zeitraums herunterzuladen. Für die Ausstellung von Duplikaten fallen nach Inaktivsetzung des CIS-Accounts Kosten an.' . "
\n" .
+ 'Bitte retournieren Sie baldmöglichst entlehnte Bücher an die Bibliothek.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Your CIS account is still active for 21 days. We ask you to download all required files (certificates, confirmations of academic success, confirmation of studies, etc.) within this period. There is a charge for issuing duplicates after the CIS account has been deactivated.' . "
\n" .
+ 'Please return borrowed books to the library as soon as possible.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'warning_AbmeldungStgl',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bitte beachten Sie die Einspruchsfrist von 2 Wochen nach Bestätigung durch die Studiengangsleitung!',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Please note the objection period of 2 weeks after confirmation by the head of the degree program!',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'title_Abmeldung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Abmeldung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'De-registration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'title_AbmeldungStgl',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Abmeldung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'De-registration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'title_Unterbrechung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Unterbrechung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Interruption',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'title_Wiederholung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Wiederholung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Repetition',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'title_new_Abmeldung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Neue Abmeldung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'New de-registration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_typ',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Typ',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Type',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_status',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Status',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Status',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_studiensemester',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Studiensemester',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Semester',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_erstelldatum',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erstelldatum',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Createdate',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'studierendenantraege',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Studierendenanträge',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Applications',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_datum_wiedereinstieg',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Wiedereinstieg',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Re-Entry',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_grund',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Grund',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_dateianhaenge',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Dateianhänge',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Attachments',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_anhang',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Anhang',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Attachment',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_typ_Abmeldung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Abmeldung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deregistration',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_typ_AbmeldungStgl',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Abmeldung (durch Studiengangsleitung)',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Cancellation (by course director)',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_typ_Unterbrechung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Unterbrechung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Break',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'antrag_typ_Wiederholung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Wiederholung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Repetition',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_show_lvs',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'LVs anzeigen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Show LVs',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_edit',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bearbeiten',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Edit',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_reopen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erneut Freischalten',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reopen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_object',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Beeinspruchen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Object',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_objection_deny',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Einspruch abgelehnt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Objection rejected',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_objection_approve',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Einspruch stattgegeben',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Objection granted',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_lvzuweisen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'LVs zuweisen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Assign Lvs',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_approve',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bestätigen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Confirm',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_reject',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ablehnen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reject',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'skip',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Überspringen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Skip',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'select_studiensemester',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Studiensemester auswählen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Select a semester',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_save_lvs',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Zuweisungen speichern',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Save assignments',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'btn_download_antrag',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'PDF herunterladen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Download PDF',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'table',
+ 'phrase' => 'download',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Download',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Download',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'table',
+ 'phrase' => 'reload',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Tabelle neu laden',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reload table',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_student',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Sie sind derzeit in keinem Studium',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'You are currently not enrolled',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_student_for_prestudent',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kein Student gefunden für Prestudent #{prestudent_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No student found for prestudent #{prestudent_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_student_no_failed_exam',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Sie sind derzeit in keinem Studium oder haben keine negativ beurteilte kommissionelle Prüfung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'You are not currently studying or have not passed a board examination with negative reasons',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'no_attachments',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Keine Dateianhänge',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No Attachments',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'prestudent',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Prestudent',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Prestudent',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'lehre',
+ 'phrase' => 'studienjahr',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Studienjahr',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Academic year',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'title_lvzuweisen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Lehrveranstaltungen zuweisen für {name}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Assign Courses for {name}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'title_lv_nicht_zugelassen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Angabe aller Lehrveranstaltungen, zu denen die Person nicht zugelassen ist',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Details of all courses to which the person is not admitted',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'title_lv_wiederholen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Angabe aller zu wiederholenden bzw. erneut zu besuchenden Lehrveranstaltungen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Specification of all courses to be repeated or attended again',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'title_show_lvs',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Lehrveranstaltungen für {name}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Courses for {name}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'my_lvs',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Meine Lehrveranstaltungen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'My Courses',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'table',
+ 'phrase' => 'with_selected',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Mit {count} ausgewählten: ',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'With {count} selected: ',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'lv_nicht_zulassen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Nicht zulassen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Don\'t allow ',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'lv_wiederholen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Wiederholen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Repeat',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'title_history',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Statusverlauf für #{id} ',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'History for #{id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'anmerkung_tooltip',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Die Spalte Anmerkung kann verwendet werden, um Besonderheiten z.B. bei einem Studienplanwechsel zu dokumentieren (Änderung von LV-Titel, ECTS…) ',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The Comment column can be used to document special features, e.g. when changing the curriculum (change of course title, ECTS...)',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'fuer_alle_uebernehmen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'für alle übernehmen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'apply for all',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'fuer_x_uebernehmen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Auswahl für {count} weitere(n) Wiederholungsanträge übernehmen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Adopt selection for {count} further repeat applications',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'title_grund',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Grund für Ablehnung von #{id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason for rejection of #{id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_lvs',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Keine Lehrveranstaltungen zugewiesen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No courses assigned',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'status_x',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Status: {status}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Status: {status}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'status_saving',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Daten werden gespeichert...',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Saving...',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'status_error',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fehler',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Error',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'status_open',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Offen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Open',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'status_created',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Erstellt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Created',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'status_cancelling',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Zurückziehen...',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Cancelling...',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'status_cancelled',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Zurückgezogen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Cancelled',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_stg_blacklist',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Für diesen Studiengang sind keine Bekanntgaben möglich',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No announcements are accepted for this course',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_antrag_exists',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Es gibt bereits eine bestehende Bekanntgabe',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'There is already an existing announcement',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_antrag_pending',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Es gibt bereits eine bestehende Bekanntgabe vom Typ {typ}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'There is already an existing announcement of type {typ}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_antrag_found',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Keine Bekanntgabe mit Id {id} gefunden',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No announcement found with Id {id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_antrag_found_prestudent',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Keine {typ} Bekanntgabe gefunden für Prestudent {prestudent_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No {typ} announcement found for prestudent {prestudent_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_stg_and_sem',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kein Studiengang und Ausbildungssemester gefunden für Bekanntgabe mit Id {id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No studiengang and ausbildungssemester found for announcement with id: {id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_stg',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kein Studiengang gefunden: {studiengang_kz}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No studiengang found: {studiengang_kz}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_stg_antrag',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kein Studiengang gefunden für Bekanntgabe #{id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No studiengang found for announcement #{id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_stg_email',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Keine Studiengang-Email gefunden für Bekanntgabe #{id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No studiengang-email found for announcement #{id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_studienplan',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kein Studienplan gefunden für Studiengang: {studiengang_kz}, Studiensemester: {studiensemester_kurzbz}, Ausbildungssemester: {semester}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No studienplan found for stg: {studiengang_kz}, studiensemester: {studiensemester_kurzbz}, ausbildungssemester: {semester}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_multiple_studienplan',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Mehrere Studienpläne gefunden für Studiengang: {studiengang_kz}, Studiensemester: {studiensemester_kurzbz}, Ausbildungssemester: {semester}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Multiple studienplans found for stg: {studiengang_kz}, studiensemester: {studiensemester_kurzbz}, ausbildungssemester: {semester}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_sem_after',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kein Studiensemester nach {semester} gefunden',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No studiensemester found after: {semester}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_antrag_locked',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Diese Bekanntgabe ist gesperrt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'This request is locked',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_lv',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Keine Lehrveranstaltung ausgewählt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No course selected',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_lv_in_application',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Keine Lehrveranstaltung in Bekanntgabe gefunden',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No course found in announcement',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_right',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Keine Berechtigung, die Bekanntgabe zu bearbeiten',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No authorization to edit the announcement',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_objection',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Keine Berechtigung, die Bekanntgabe zu beeinspruchen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No authorization to object the announcement',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_not_objected',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bekanntgabe ist nicht beeinsprucht',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Announcement is not objected',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_not_approved',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bakanntgabe ist nicht bestätigt worden',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Announcement is not approved',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_stg_last_semester',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Der Studiengang hat nicht genügend Semester',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The course does not have enough semesters',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_person',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Keine Person gefunden mit id {person_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No Person found with id {person_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_person_prestudent',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Keine Person gefunden für Prestudent #{prestudent_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No Person found for prestudent #{prestudent_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_email',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kein Email kontakt gefunden für Person mit id {person_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No email contact found for Person with id {person_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_prestudent',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kein Prestudent gefunden: {prestudent_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No Prestudent found: {prestudent_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_prestudent_in_sem',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kein Status für Prestudent #{prestudent_id} in Semester {studiensemester_kurzbz} gefunden',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No status found for prestudent #{prestudent_id} in semester {studiensemester_kurzbz}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_stg_for_prestudent',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kein Studiengang für Prestudent #{prestudent_id} gefunden',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No course found for prestudent #{prestudent_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_no_prestudentstatus',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Kein Status gefunden für Prestudent: {prestudent_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No status found for Prestudent: {prestudent_id}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_mail_to',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Email an {email} konnte nicht versandt werden',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Failed to send email to {email}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_mail',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Die Email wurde nicht an den Studenten versendet
Details:
{message}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Mail to student not sent
Details:
{message}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_name',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Name des Studenten nicht gefunden
Details:
{message}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Name of student not found
Details:
{message}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_mail_and_name',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Die Email wurde nicht an den Studenten versendet da kein Name gefunden wurde
Details:
{message}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Mail to student not sent and student name not found
Details:
{message}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'studentIn',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'StudentIn ({prestudent_id})',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Student ({prestudent_id})',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_U_Approve',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Unterbrechung mit id {studierendenantrag_id} konnte nicht genehmigt werden.
Details:
{message}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Could not approve Unterbrechung for studierendenantrag_id: {studierendenantrag_id}
Details:
{message}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'error_U_Reject',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Unterbrechung mit id {studierendenantrag_id} konnte nicht abgelehnt werden.
Details:
{message}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Could not reject Unterbrechung for studierendenantrag_id: {studierendenantrag_id}
Details:
{message}',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_subject_A_Approve',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Abmeldung freigegeben',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Unsubscribe released',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_subject_A_Student',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Abmeldung freigegeben',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Unsubscribe released',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_subject_A_Stgl',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Abmeldung durch Studiengangsleitung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'De-registration by the course director',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_subject_A_ObjectionDenied',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ihr Einspruch wurde Abgelehnt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Your objection was denied',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_subject_U_Approve',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Unterbrechung freigegeben',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Interruption enabled',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_subject_U_Reject',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Unterbrechung abgelehnt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Interruption rejected',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_subject_W_New',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Neue*r Wiederholer*in',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'New Repeater',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_subject_W_Approve',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Wiederholung von Studiengangsleitung freigegeben',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Repetition approved by course director',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_subject_W_Student',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Wiederholung von Studiengangsleitung freigegeben',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Repetition approved by course director',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_part_table',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => '| {stg_bezeichnung} ({stg_orgform_kurzbz}) |
{rows}
',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '| {stg_bezeichnung} ({stg_orgform_kurzbz}) |
{rows}
',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_part_x_new_Abmeldung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => '| {count} neue Abmeldung(en) |
',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '| {count} new De-registration(s) |
',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_part_x_new_Unterbrechung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => '| {count} neue(r) Antrag/Anträge auf Unterbrechung |
',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '| {count} new application(s) for Interruption |
',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_part_x_new_Wiederholung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => '| {count} neue LV Zuweisung(en) für Wiederholer |
',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => '| {count} new LV assignment(s) for repeaters |
',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_part_grund',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Grund:
{grund}
',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason:
{grund}
',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'mail_part_error_no_lvs',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Keine Lehrveranstaltungen gefunden',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'No courses found',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'calltoaction_Abmeldung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Die Abmeldung vom Studium kann hier durchgeführt werden.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'You can deregister from your studies here.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'calltoaction_Unterbrechung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Eine Unterbrechung des Studiums ist hier zu beantragen. Die Gründe der Unterbrechung und die beabsichtigte Fortsetzung des Studiums sind nachzuweisen oder glaubhaft zu machen. In der Entscheidung über den Antrag sind zwingende persönliche, gesundheitliche oder berufliche Gründe zu berücksichtigen. Während der Unterbrechung können keine Prüfungen abgelegt werden.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'You can apply for an interruption of your studies here. The reasons for the interruption and the intended continuation of the course must be proven or made credible. Compelling personal, health or professional reasons must be taken into account when deciding on the application. No exams can be taken during the interruption.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'calltoaction_Wiederholung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Studierenden steht einmalig das Recht auf Wiederholung eines Studienjahres in Folge einer negativ beurteilten kommissionellen Prüfung zu. Die Wiederholung ist bei der Studiengangsleitung binnen eines Monats ab Mitteilung des Prüfungsergebnisses bekannt zu geben. Die Studiengangsleitung hat Prüfungen und Lehrveranstaltungen für die Wiederholung des Studienjahres festzulegen, wobei nicht bestandene Prüfungen und Lehrveranstaltungen jedenfalls, bestandene Prüfungen und Lehrveranstaltungen nur, sofern es der Zweck des Studiums erforderlich macht, zu wiederholen oder erneut zu besuchen sind.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Students have the one-time right to repeat an academic year as a result of a negative examination by a committee. The head of the degree program must be notified of the repetition within one month of notification of the examination result. The head of the degree program must determine examinations and courses for the repetition of the academic year, whereby failed examinations and courses are to be repeated or attended again, in any case, passed examinations and courses only if the purpose of the course makes it necessary.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'textLong_studentNichtGezahlt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): Nichterfüllung finanzieller Verpflichtungen trotz Mahnung (Studienbeitrag)',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason for exclusion according to the training contract (point 7.4): Failure to meet financial obligations despite a reminder (tuition fees)',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'textLong_studentNichtAnwesend',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): mehrmalig unentschuldigtes Verletzen der Anwesenheitspflicht',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason for exclusion according to the training contract (point 7.4): multiple unexcused breaches of attendance requirements',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'textLong_PruefunstermineNichtEingehalten',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): wiederholtes Nichteinhalten von Prüfungsterminen bzw Abgabeterminen für Seminararbeiten bzw. Projektarbeiten',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason for exclusion according to the training contract (point 7.4): repeated non-compliance with examination dates or deadlines for seminar papers or project work',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'textLong_plageat',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): Plagiieren im Rahmen wissenschaftlicher Arbeiten bzw. unerlaubte Verwendung KI generierter Hilfsmittel bzw. Quellen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason for exclusion according to the training contract (point 7.4): Plagiarism in the context of scientific work or unauthorized use of AI-generated tools or sources',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'textLong_ungenuegendeLeistung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): nicht genügende Leistung im Sinne der Prüfungsordnung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason for exclusion according to the training contract (point 7.4): insufficient performance in terms of the examination regulations',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'textLong_NichtantrittStudium',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ausschlußgrund gemäß Ausbildungsvertrag (Punkt 7.4): Nichtantritt des Studiums zu Beginn des Studienjahres (=Unbegründetes Nichterscheinen zur ersten Studienveranstaltung)',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason for exclusion according to the training contract (point 7.4): Failure to start the course at the beginning of the academic year (= unjustified non-attendance to the first course event)',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'textLong_MissingZgv',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Zugangsvoraussetzung BA (bzw. MA) nicht erfüllt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Entry requirements BA (resp. MA) not fulfilled)',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'dropdown_nichtGezahlt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Student*in hat nicht bezahlt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Student has not paid',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'dropdown_nichtAnwesend',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Student*in war mehrmals unentschuldigt abwesend',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Student was absent without excuse several times',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'dropdown_PruefunstermineNichtEingehalten',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Student*in hat Prüfunstermine nicht eingehalten',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Student failed to meet exam dates',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'dropdown_plageat',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Student*in hat plagiiert',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Student failed to meet exam dates',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'dropdown_ungenuegendeLeistung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Leistung ungenügend',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'performance insufficient',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'dropdown_NichtantrittStudium',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Nichtantritt des Studiums',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'non-commencement of the course',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'dropdown_MissingZgv',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Zugangsvoraussetzung BA (bzw. MA) nicht erfüllt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Entry requirements BA (resp. MA) not fulfilled',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'studierendenantrag',
+ 'phrase' => 'dropdown_bitteWaehlen',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'bitte auswählen, sofern zutreffend',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'please select if applicable',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
);
diff --git a/system/templates/contentmittitel_filterwidget_xslt_xhtml.xslt b/system/templates/contentmittitel_filterwidget_xslt_xhtml.xslt
new file mode 100644
index 000000000..e84939286
--- /dev/null
+++ b/system/templates/contentmittitel_filterwidget_xslt_xhtml.xslt
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/system/vorlage_zip/AntragAbmeldung.odt b/system/vorlage_zip/AntragAbmeldung.odt
new file mode 100644
index 000000000..2e11ca60a
Binary files /dev/null and b/system/vorlage_zip/AntragAbmeldung.odt differ
diff --git a/system/vorlage_zip/AntragAbmeldungStgl.odt b/system/vorlage_zip/AntragAbmeldungStgl.odt
new file mode 100644
index 000000000..2e11ca60a
Binary files /dev/null and b/system/vorlage_zip/AntragAbmeldungStgl.odt differ
diff --git a/system/vorlage_zip/AntragUnterbrechung.odt b/system/vorlage_zip/AntragUnterbrechung.odt
new file mode 100644
index 000000000..aeaa82105
Binary files /dev/null and b/system/vorlage_zip/AntragUnterbrechung.odt differ
diff --git a/system/vorlage_zip/Inskription.odt b/system/vorlage_zip/Inskription.odt
index d1933cdcb..6471c5cc2 100644
Binary files a/system/vorlage_zip/Inskription.odt and b/system/vorlage_zip/Inskription.odt differ
diff --git a/system/vorlage_zip/InskriptionEng.odt b/system/vorlage_zip/InskriptionEng.odt
new file mode 100644
index 000000000..e26be218e
Binary files /dev/null and b/system/vorlage_zip/InskriptionEng.odt differ
diff --git a/system/xsl/AntragAbmeldung.xsl b/system/xsl/AntragAbmeldung.xsl
new file mode 100644
index 000000000..ef67d6f15
--- /dev/null
+++ b/system/xsl/AntragAbmeldung.xsl
@@ -0,0 +1,378 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Studiengang:
+
+
+
+
+
+ Organisationsform:
+
+
+
+
+
+
+
+ Abmeldung vom Studium durch Studierende
+
+
+
+
+
+
+ Name der*des Studierenden
+
+
+
+
+
+
+
+
+
+
+ Personenkennzeichen
+
+
+
+
+
+
+
+
+
+ Studienjahr
+
+
+
+
+
+
+
+
+
+ Studiensemester
+
+
+
+
+
+
+
+
+
+ Semester
+
+
+
+
+
+
+
+
+
+ Grund der Abmeldung:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Wir weisen Sie darauf hin, dass Ihr FHTW Account noch 21 Tage aktiv ist. Wir bitten Sie, alle benötigte Dateien (Zeugnisse, Studienerfolgsbestätigungen, Studienbestätigungen, etc.) innerhalb dieses Zeitraums herunterzuladen. Für die Ausstellung von Duplikaten fallen nach Inaktivsetzung des CIS-Accounts Kosten an.
+
+
+ Sie sind gem. Ausbildungsvertrag verpflichtet, unverzüglich alle zur Verfügung gestellten Gerätschaften, Bücher, Schlüssel und sonstige Materialien zurückzugeben.
+
+ Bei Abmeldung vor dem 01.09. bzw. 15.02. und bereits eingezahltem Studienbeitrag für das kommende Semester: Wir informieren Sie darüber, dass der Studienbeitrag für das kommende Semester von Ihnen zurückgefordert werden kann. Bitte geben Sie uns dafür innerhalb von 14 Tagen Ihre Bankdaten an folgende E-Mail-Adresse bekannt: billing@technikum-wien.at.
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/system/xsl/AntragAbmeldungStgl.xsl b/system/xsl/AntragAbmeldungStgl.xsl
new file mode 100644
index 000000000..aa6a28073
--- /dev/null
+++ b/system/xsl/AntragAbmeldungStgl.xsl
@@ -0,0 +1,378 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Studiengang:
+
+
+
+
+
+ Organisationsform:
+
+
+
+
+
+
+
+ Abmeldung vom Studium durch Studiengang
+
+
+
+
+
+
+ Name der*des Studierenden
+
+
+
+
+
+
+
+
+
+
+ Personenkennzeichen
+
+
+
+
+
+
+
+
+
+ Studienjahr
+
+
+
+
+
+
+
+
+
+ Studiensemester
+
+
+
+
+
+
+
+
+
+ Semester
+
+
+
+
+
+
+
+
+
+ Grund der Abmeldung:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Wir weisen Sie darauf hin, dass Ihr FHTW Account noch 21 Tage aktiv ist. Wir bitten Sie, alle benötigte Dateien (Zeugnisse, Studienerfolgsbestätigungen, Studienbestätigungen, etc.) innerhalb dieses Zeitraums herunterzuladen. Für die Ausstellung von Duplikaten fallen nach Inaktivsetzung des CIS-Accounts Kosten an.
+
+
+ Sie sind gem. Ausbildungsvertrag verpflichtet, unverzüglich alle zur Verfügung gestellten Gerätschaften, Bücher, Schlüssel und sonstige Materialien zurückzugeben.
+
+ Bei Abmeldung vor dem 01.09. bzw. 15.02. und bereits eingezahltem Studienbeitrag für das kommende Semester: Wir informieren Sie darüber, dass der Studienbeitrag für das kommende Semester von Ihnen zurückgefordert werden kann. Bitte geben Sie uns dafür innerhalb von 14 Tagen Ihre Bankdaten an folgende E-Mail-Adresse bekannt: billing@technikum-wien.at.
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/system/xsl/AntragUnterbrechung.xsl b/system/xsl/AntragUnterbrechung.xsl
new file mode 100644
index 000000000..f1ab10d91
--- /dev/null
+++ b/system/xsl/AntragUnterbrechung.xsl
@@ -0,0 +1,459 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Studiengang:
+
+
+
+
+
+
+
+ Organisationsform:
+
+
+
+
+
+
+
+
+ Antrag auf Unterbrechung des Studiums
+
+
+
+
+
+
+
+ Name der*des Studierenden
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personenkennzeichen
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Studienjahr
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Aktuelles Semester
+
+
+
+
+
+
+
+
+
+
+
+ Grund der Unterbrechung:
+
+
+
+
+
+
+
+
+
+
+
+
+ Wiedereinstieg am
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Datum:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Infolge der Weiterentwicklung der Qualität des Studienganges kann es zu Änderungen der Studienbedingungen beim Wiedereinstieg kommen (z. B. Studienplan, Prüfungsordnung etc.)
+
+
+ Falls Sie das Studium im Wintersemester vor dem 15.10. bzw. im Sommersemester vor dem 15.3. beenden, wird Ihnen der Studienbeitrag für das aktuelle Semester rückerstattet. Bitte geben Sie uns innerhalb von 14 Tagen Ihre Bankdaten an folgende E-Mail-Adresse bekannt:
+
+
+ billing@technikum-wien.at
+
+
+ .
+
+
+
+
+
+
\ No newline at end of file
diff --git a/system/xsl/inskription_eng_0.xsl b/system/xsl/inskription_eng_0.xsl
new file mode 100644
index 000000000..c2080a5ec
--- /dev/null
+++ b/system/xsl/inskription_eng_0.xsl
@@ -0,0 +1,347 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+
+
+ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+
+
+ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+
+
+ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+
+
+
+
+
+ Certificate of Enrolment University of Applied Sciences Demo
+
+
+
+
+
+ To be submitted to (place where the certificate is to be submitted and its reference number, e.g. social security number).
+
+
+ Student number
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ born on , is enrolled as a regular student in
+ (beginning )
+ in the
+
+
+ Bachelor Degree program
+
+
+ Master Degree program
+
+
+ Degree Program
+
+
+
+
+
+
+
+
+
+
+
+ (),
+
+ st
+ nd
+ rd
+ th
+
+ semester (beginning , ).
+
+
+
+
+
+
+
+ Date:
+
+
+ Rector:
+
+
+
+
+
\ No newline at end of file
diff --git a/vilesci/bis/personalmeldung.php b/vilesci/bis/personalmeldung.php
index 1591b6464..d5a998635 100644
--- a/vilesci/bis/personalmeldung.php
+++ b/vilesci/bis/personalmeldung.php
@@ -160,8 +160,10 @@ $tage_imJahr = $ende_imJahr->diff($beginn_imJahr)->days + 1;
$wochen_imJahr = $tage_imJahr / 7;
// Sommer- und Wintersemester im BIS Meldungsjahr
-$ss_kurzbz = $studiensemester->getBeforePrevious();
+//$ss_kurzbz = $studiensemester->getBeforePrevious();
$ws_kurzbz = $studiensemester->getStudienjahrStudiensemester($stsem);
+$ss_kurzbz = $studiensemester->getPreviousFrom($ws_kurzbz);
+
$ss = new studiensemester($ss_kurzbz);
$ws = new studiensemester($ws_kurzbz);
diff --git a/vilesci/lehre/abgabe_assistenz_zusatz.php b/vilesci/lehre/abgabe_assistenz_zusatz.php
index 20dbe9d97..724658d24 100644
--- a/vilesci/lehre/abgabe_assistenz_zusatz.php
+++ b/vilesci/lehre/abgabe_assistenz_zusatz.php
@@ -120,15 +120,15 @@ echo 'Student:
'.$uid.'Titel:
'.
|
- | Kontrollierte Schlagwörter:* |
+ Kontrollierte Schlagwörter: |
|
- | Dt. Schlagwörter: |
+ Dt. Schlagwörter:* |
|
- | Engl. Schlagwörter: |
+ Engl. Schlagwörter:* |
|
diff --git a/vilesci/lehre/check/ueberbuchung.php b/vilesci/lehre/check/ueberbuchung.php
index 3cb6b62e5..1e133384a 100644
--- a/vilesci/lehre/check/ueberbuchung.php
+++ b/vilesci/lehre/check/ueberbuchung.php
@@ -50,31 +50,47 @@ echo '
-
-
-
+ ';
+
+ include('../../../include/meta/jquery.php');
+ include('../../../include/meta/jquery-tablesorter.php');
+
+echo '
-
-
+
+
LV-Plan Überbuchungen - '.$db_stpl_table.'
';
@@ -93,8 +109,8 @@ if($beginn=='' || $ende=='')
$dontloadcontent=true;
}
-echo " Beginn ";
-echo " Ende ";
+echo " Beginn ";
+echo " Ende ";
$stg = new studiengang();
$stg->getAll('typ, kurzbzlang', true);
@@ -128,7 +144,7 @@ foreach ($ort_obj->result as $row)
$ort[$row->ort_kurzbz] = new stdClass(); // Prevents the warning "Creating default object from empty value"
$ort[$row->ort_kurzbz]->max_person = $row->max_person;
}
-$qry = "SELECT DISTINCT vw_".$db_stpl_table.".unr,datum, stunde, ort_kurzbz, studiensemester_kurzbz, vw_".$db_stpl_table.".studiengang_kz, vw_".$db_stpl_table.".semester, verband, gruppe, gruppe_kurzbz, UPPER(stg_typ || stg_kurzbz) as stg_kurzbz, lehrfach, lehrfach_bez
+$qry = "SELECT DISTINCT vw_".$db_stpl_table.".unr,datum, stunde, ort_kurzbz, studiensemester_kurzbz, vw_".$db_stpl_table.".studiengang_kz, vw_".$db_stpl_table.".semester, verband, gruppe, gruppe_kurzbz, UPPER(stg_typ || stg_kurzbz) as stg_kurzbz, lehrfach, lehrfach_bez, lehrform
FROM lehre.vw_".$db_stpl_table." JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung ON(tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id)
WHERE datum>='".addslashes($beginn)."' AND datum<='".addslashes($ende)."'";
if($stg_kz!='')
@@ -144,7 +160,8 @@ echo '
| Ort |
Studierende aktuell (Plätze maximal) |
Gruppen (Studierende aktuell) |
- Lehrfach |
+ Lehrveranstaltung |
+ Lehrform |
';
@@ -156,6 +173,7 @@ $lastort=0;
$anzahl_studenten=0;
$lehrfach='';
$lehrfach_bez='';
+$lehrform='';
$arr=array();
function getAnzahl($studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz, $studiensemester_kurzbz)
@@ -192,7 +210,7 @@ if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
- if($lastdatum==$row->datum && $laststunde==$row->stunde && $lastort==$row->ort_kurzbz && $lehrfach==$row->lehrfach && $lehrfach_bez==$row->lehrfach_bez)
+ if($lastdatum==$row->datum && $laststunde==$row->stunde && $lastort==$row->ort_kurzbz && $lehrfach==$row->lehrfach && $lehrfach_bez==$row->lehrfach_bez && $lehrform==$row->lehrform)
{
//Solange alles gleich ist zusammenzaehlen
$anzahl = getAnzahl($row->studiengang_kz, $row->semester, $row->verband, $row->gruppe, $row->gruppe_kurzbz, $row->studiensemester_kurzbz);
@@ -222,7 +240,13 @@ if($result = $db->db_query($qry))
$style='style="background-color: a00404; color: d3d3d3"';
//echo "| $lastdatum | $laststunde | $lastort | $anzahl_studenten (".$ort[$lastort]->max_person.") | $gruppen | $lehrfach - $lehrfach_bez |
";
- $arr[]="| $lastdatum | $lastort | $anzahl_studenten (".$ort[$lastort]->max_person.") | $gruppen | $lehrfach - $lehrfach_bez |
";
+ $arr[]="
+ | $lastdatum |
+ $lastort |
+ $anzahl_studenten (".$ort[$lastort]->max_person.") |
+ $gruppen |
+ $lehrfach - $lehrfach_bez |
+ $lehrform |
";
}
$anzahl_studenten=0;
@@ -238,6 +262,7 @@ if($result = $db->db_query($qry))
$lastort = $row->ort_kurzbz;
$lehrfach = $row->lehrfach;
$lehrfach_bez = $row->lehrfach_bez;
+ $lehrform = $row->lehrform;
}
}
else
diff --git a/vilesci/lehre/check/verplanungsuebersicht.php b/vilesci/lehre/check/verplanungsuebersicht.php
index 67b0d847e..90cdd3a37 100644
--- a/vilesci/lehre/check/verplanungsuebersicht.php
+++ b/vilesci/lehre/check/verplanungsuebersicht.php
@@ -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 'Studiensemester
';
+echo 'Studiengang ';
+echo '';
+echo '';
$gesamt=0;
$gesamt_verplant=0;
@@ -98,24 +139,29 @@ function drawprogress($prozent, $ueberplanung=0)
$content = ' '.$prozent.'%
';
if($ueberplanung>0)
- $content.= '
+'.$ueberplanung.'% Überbuchung
';
+ $content.= '
+'.$ueberplanung.'% zusätzliche Planstunden
';
$content.= '
';
return $content;
}
//Alle Studiengaenge durchlaufen
$content.= "\n";
-$content.= "\n| Studiengang/Semester | | Lehreinheiten | | Stunden |
";
+$content.= "\n| Studiengang/Semester | | Lehreinheiten | | Planstunden |
";
foreach($stg->result as $row_stg)
{
+ if (isset($stg_get) && $stg_get != '' && $stg_get != $row_stg->studiengang_kz)
+ continue;
+
$content.= "\n".$row_stg->kuerzel.' |
';
//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.= '';
$content.=drawprogress($prozent, $prozentueber);
- $content.= 'offene Stunden: '.$offen;
+ $content.= 'offene Planstunden: '.$offen;
$content.=' | ';
}
$content.='| | |
';
@@ -259,7 +319,7 @@ if($gesamt_ps==0)
$prozent=0;
else
$prozent = round($gesamt_ps_verplant*100/$gesamt_ps,2);
-echo "Stunden: (".$gesamt_ps_verplant.'/'.$gesamt_ps.') | ';
+echo "Planstunden: (".$gesamt_ps_verplant.'/'.$gesamt_ps.') | | ';
echo drawprogress($prozent);
echo " |
\n
";
diff --git a/vilesci/lehre/lehrveranstaltung_details.php b/vilesci/lehre/lehrveranstaltung_details.php
index b7a9d7b8a..bad2a7d93 100644
--- a/vilesci/lehre/lehrveranstaltung_details.php
+++ b/vilesci/lehre/lehrveranstaltung_details.php
@@ -402,7 +402,12 @@
$selected='selected';
else
$selected='';
- $htmlstr .= '';
+
+ $inaktiv = '';
+ if (!$db->db_parse_bool($row->aktiv))
+ $inaktiv = 'disabled';
+
+ $htmlstr .= '';
}
}//#'.$lv->farbe.'
$htmlstr .= '
diff --git a/vilesci/personen/import/interessentenimport.php b/vilesci/personen/import/interessentenimport.php
index 3cdfefb06..d1830eaeb 100644
--- a/vilesci/personen/import/interessentenimport.php
+++ b/vilesci/personen/import/interessentenimport.php
@@ -806,7 +806,12 @@ if (isset($_POST['save']))
$stg_obj = new studiengang();
$stg_obj->load(ltrim($stg,'0'));
- $uid = generateUID($stg_obj->kurzbz,$jahr, $stg_obj->typ, $matrikelnr);
+ $nachname_clean = mb_strtolower(convertProblemChars($person->nachname));
+ $vorname_clean = mb_strtolower(convertProblemChars($person->vorname));
+ $nachname_clean = str_replace(' ','_', $nachname_clean);
+ $vorname_clean = str_replace(' ','_', $vorname_clean);
+
+ $uid = generateUID($stg_obj->kurzbz,$jahr, $stg_obj->typ, $matrikelnr, $vorname_clean, $nachname_clean);
//Benutzerdatensatz anlegen
$benutzer = new benutzer();
@@ -815,10 +820,6 @@ if (isset($_POST['save']))
$benutzer->aktiv = true;
$benutzer->aktivierungscode = generateActivationKey();
- $nachname_clean = mb_strtolower(convertProblemChars($person->nachname));
- $vorname_clean = mb_strtolower(convertProblemChars($person->vorname));
- $nachname_clean = str_replace(' ','_', $nachname_clean);
- $vorname_clean = str_replace(' ','_', $vorname_clean);
if (!defined('GENERATE_ALIAS_STUDENT') || GENERATE_ALIAS_STUDENT === true)
{
diff --git a/vilesci/personen/urlaubsverwaltung.php b/vilesci/personen/urlaubsverwaltung.php
index f631aa081..20b2d293c 100644
--- a/vilesci/personen/urlaubsverwaltung.php
+++ b/vilesci/personen/urlaubsverwaltung.php
@@ -33,6 +33,8 @@ require_once('../../include/mitarbeiter.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/addon.class.php');
+require_once('../../include/benutzerfunktion.class.php');
+require_once('../../include/phrasen.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -62,6 +64,16 @@ $message='';
$error=false;
$mlAbgeschickt = '';
+//Phrasen
+$sprache = getSprache();
+$p = new phrasen($sprache);
+
+//Default-Wert für Max-Intervall in Tagen für Zeitsperre, über Config veränderbar
+$maxDauerZS = 730;
+
+if (defined('CIS_ZEITSPERREN_MAX_DAUER') && CIS_ZEITSPERREN_MAX_DAUER != '') {
+ $maxDauerZS = CIS_ZEITSPERREN_MAX_DAUER;
+}
//prüfen, ob addon casetime aktiviert ist
$addon_obj = new addon();
$addoncasetime = $addon_obj->checkActiveAddon("casetime");
@@ -130,24 +142,37 @@ echo '
+
+
+
+
+
+ Detaillierte Berechtigungsliste von vorname.' '.$benutzer->nachname ?>
+
+ 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 '
+
+ | Funktion |
+ Rolle |
+ Recht |
+ Art |
+ Organisationseinheit |
+ Kostenstelle |
+ Gültig ab |
+ Gültig bis |
+ Status |
+
';
+ 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 '';
+ echo '| '.($key->funktion_kurzbz != '' ? $funktionsArray[$key->funktion_kurzbz] : '').' | ';
+ echo ''.($key->rolle_kurzbz != '' ? $key->rolle_kurzbz : '').' | ';
+ echo ''.($key->berechtigung_kurzbz != '' ? $key->berechtigung_kurzbz : '').' | ';
+ echo ''.($key->art != '' ? $key->art : '').' | ';
+ echo ''.($key->oe_kurzbz != '' ? $oeArray[$key->oe_kurzbz] : '').' | ';
+ echo ''.($key->kostenstelle_id != '' ? $kostenstelleArray[$key->kostenstelle_id] : '').' | ';
+ echo ''.($key->start != '' ? $key->start : '').' | ';
+ echo ''.($key->ende != '' ? $key->ende : '').' | ';
+ echo ''.$titel.' | ';
+ echo '
';
+ }
+ echo '
';
+
+ ?>
+
+
+