';
//echo "Vorschlag $i: ";
$first=false;
+
echo $row->vorschlag_text;
if($row->vorschlag_audio!='')
{
diff --git a/cis/testtool/frage.php b/cis/testtool/frage.php
index 6f47992a1..9f6cd4fb7 100644
--- a/cis/testtool/frage.php
+++ b/cis/testtool/frage.php
@@ -161,7 +161,7 @@ if(!isset($_SESSION['pruefling_id']))
$pruefling = new pruefling();
$pruefling->load($_SESSION['pruefling_id']);
-if ($pruefling->gesperrt === 't')
+if ($pruefling->isGesperrt($_SESSION['pruefling_id']))
die("");
if (!in_array($gebiet_id, $_SESSION['alleGebiete']))
diff --git a/cis/testtool/login.php b/cis/testtool/login.php
index 0b114b8c5..0ff84f4a0 100644
--- a/cis/testtool/login.php
+++ b/cis/testtool/login.php
@@ -362,6 +362,8 @@ if ((isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']) &&
$pruefling->idnachweis = '';
$pruefling->registriert = date('Y-m-d H:i:s');
$pruefling->prestudent_id = $_SESSION['prestudent_id'];
+ $pruefling->gesperrt = $pruefling->isGesperrt(null, $_SESSION['prestudent_id']);
+
if ($pruefling->save())
{
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
@@ -385,6 +387,7 @@ if (isset($_POST['save']) && isset($_SESSION['prestudent_id']))
$pruefling->registriert = date('Y-m-d H:i:s');
$pruefling->prestudent_id = $_SESSION['prestudent_id'];
$pruefling->semester = $_POST['semester'];
+ $pruefling->gesperrt = $pruefling->isGesperrt(null, $_SESSION['prestudent_id']);
if ($pruefling->save())
{
$_SESSION['pruefling_id']=$pruefling->pruefling_id;
diff --git a/composer.json b/composer.json
index 825ed5625..9ee2904ba 100644
--- a/composer.json
+++ b/composer.json
@@ -26,6 +26,28 @@
"wiki": "https://wiki.fhcomplete.info/doku.php"
},
"repositories": [
+ {
+ "type": "package",
+ "package": {
+ "name": "vuepic/vue-datepicker-js",
+ "version": "4.0.0",
+ "dist": {
+ "url": "https://unpkg.com/@vuepic/vue-datepicker@4.0.0/dist/vue-datepicker.iife.js",
+ "type": "file"
+ }
+ }
+ },
+ {
+ "type": "package",
+ "package": {
+ "name": "vuepic/vue-datepicker-css",
+ "version": "4.0.0",
+ "dist": {
+ "url": "https://unpkg.com/@vuepic/vue-datepicker@4.0.0/dist/main.css",
+ "type": "file"
+ }
+ }
+ },
{
"type": "package",
"package": {
@@ -400,7 +422,7 @@
"nategood/httpful": "0.2.*",
"netcarver/textile": "3.7.*",
"nicolaskruchten/pivottable": "2.23.0",
- "npm-asset/primevue": "3.15.*",
+ "npm-asset/primevue": "3.29.*",
"npm-asset/primeicons": "5.0.0",
"olifolkerd/tabulator4": "4.9.*",
@@ -420,7 +442,9 @@
"twbs/bootstrap5": "5.1.*",
"vuejs/vuejs3": "3.2.33",
- "vuejs/vuerouter4": "4.1.3"
+ "vuejs/vuerouter4": "4.1.3",
+ "vuepic/vue-datepicker-js": "4.*",
+ "vuepic/vue-datepicker-css": "4.*"
},
"config": {
"bin-dir": "vendor/bin"
@@ -432,4 +456,3 @@
"sebastian/phpcpd": "3.*"
}
}
-
diff --git a/composer.lock b/composer.lock
index 72f13c76f..c88612d1b 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "d530cc4d7bd81812535eb64e87ba04f4",
+ "content-hash": "1105a07a83f98040eedbe34b23e11ee3",
"packages": [
{
"name": "afarkas/html5shiv",
@@ -35,6 +35,10 @@
],
"description": "Defacto way to enable use of HTML5 sectioning elements in legacy Internet Explorer.",
"homepage": "http://paulirish.com/2011/the-history-of-the-html5-shiv/",
+ "support": {
+ "issues": "https://github.com/aFarkas/html5shiv/issues",
+ "source": "https://github.com/aFarkas/html5shiv/tree/3.7.3"
+ },
"time": "2015-07-20T20:04:00+00:00"
},
{
@@ -130,6 +134,16 @@
"keywords": [
"qr code"
],
+ "support": {
+ "issues": "https://github.com/chillerlan/php-qrcode/issues",
+ "source": "https://github.com/chillerlan/php-qrcode/tree/v2.0.x"
+ },
+ "funding": [
+ {
+ "url": "https://ko-fi.com/codemasher",
+ "type": "ko_fi"
+ }
+ ],
"time": "2020-04-12T07:38:35+00:00"
},
{
@@ -178,6 +192,10 @@
"helper",
"trait"
],
+ "support": {
+ "issues": "https://github.com/chillerlan/php-traits/issues",
+ "source": "https://github.com/chillerlan/php-traits"
+ },
"abandoned": true,
"time": "2018-06-22T00:30:47+00:00"
},
@@ -218,6 +236,10 @@
],
"description": "REST Server for the CodeIgniter framework",
"homepage": "https://github.com/chriskacerguis/codeigniter-restserver",
+ "support": {
+ "issues": "https://github.com/chriskacerguis/codeigniter-restserver/issues",
+ "source": "https://github.com/chriskacerguis/codeigniter-restserver"
+ },
"time": "2017-09-23T16:44:55+00:00"
},
{
@@ -236,6 +258,10 @@
},
"type": "library",
"notification-url": "https://packagist.org/downloads/",
+ "support": {
+ "issues": "https://github.com/akiyatkin/tablesorter/issues",
+ "source": "https://github.com/akiyatkin/tablesorter/tree/master"
+ },
"time": "2016-09-02T11:31:54+00:00"
},
{
@@ -269,6 +295,13 @@
],
"description": "The CodeIgniter framework",
"homepage": "https://codeigniter.com",
+ "support": {
+ "forum": "http://forum.codeigniter.com/",
+ "issues": "https://github.com/bcit-ci/CodeIgniter/issues",
+ "slack": "https://codeigniterchat.slack.com",
+ "source": "https://github.com/bcit-ci/CodeIgniter",
+ "wiki": "https://github.com/bcit-ci/CodeIgniter/wiki"
+ },
"time": "2022-03-03T13:21:49+00:00"
},
{
@@ -573,6 +606,10 @@
],
"description": "Shim repository for Angular.js",
"homepage": "http://angularjs.org",
+ "support": {
+ "issues": "https://github.com/components/angular.js/issues",
+ "source": "https://github.com/components/angular.js/tree/master"
+ },
"time": "2015-06-07T20:10:38+00:00"
},
{
@@ -615,6 +652,13 @@
],
"description": "jQuery JavaScript Library",
"homepage": "http://jquery.com",
+ "support": {
+ "forum": "http://forum.jquery.com",
+ "irc": "irc://irc.freenode.org/jquery",
+ "issues": "https://github.com/jquery/jquery/issues",
+ "source": "https://github.com/jquery/jquery",
+ "wiki": "http://docs.jquery.com/"
+ },
"time": "2021-03-20T19:13:42+00:00"
},
{
@@ -700,6 +744,10 @@
}
],
"description": "jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library. Whether you're building highly interactive web applications or you just need to add a date picker to a form control, jQuery UI is the perfect choice.",
+ "support": {
+ "issues": "https://github.com/components/jqueryui/issues",
+ "source": "https://github.com/components/jqueryui/tree/master"
+ },
"time": "2016-09-16T05:47:55+00:00"
},
{
@@ -749,6 +797,10 @@
"captcha",
"security"
],
+ "support": {
+ "issues": "https://github.com/dapphp/securimage/issues",
+ "source": "https://github.com/dapphp/securimage/tree/master"
+ },
"abandoned": true,
"time": "2018-03-09T06:07:41+00:00"
},
@@ -812,6 +864,12 @@
"rdfa",
"sparql"
],
+ "support": {
+ "forum": "http://groups.google.com/group/easyrdf/",
+ "irc": "irc://chat.freenode.net/easyrdf",
+ "issues": "http://github.com/njh/easyrdf/issues",
+ "source": "https://github.com/easyrdf/easyrdf/tree/0.9.1"
+ },
"time": "2015-02-27T09:45:49+00:00"
},
{
@@ -890,6 +948,10 @@
"faker",
"fixtures"
],
+ "support": {
+ "issues": "https://github.com/fzaninotto/Faker/issues",
+ "source": "https://github.com/fzaninotto/Faker/tree/v1.9.2"
+ },
"abandoned": true,
"time": "2020-12-11T09:56:16+00:00"
},
@@ -1012,6 +1074,10 @@
"json",
"schema"
],
+ "support": {
+ "issues": "https://github.com/justinrainbow/json-schema/issues",
+ "source": "https://github.com/justinrainbow/json-schema/tree/master"
+ },
"time": "2014-08-25T02:48:14+00:00"
},
{
@@ -1046,6 +1112,10 @@
}
],
"description": "A framework-agnostic PHP Implementation for generating simple forms based on json-schema",
+ "support": {
+ "issues": "https://github.com/kingsquare/json-schema-form/issues",
+ "source": "https://github.com/kingsquare/json-schema-form/tree/master"
+ },
"time": "2014-07-10T12:27:19+00:00"
},
{
@@ -1106,6 +1176,10 @@
"keywords": [
"markdown"
],
+ "support": {
+ "issues": "https://github.com/michelf/php-markdown/issues",
+ "source": "https://github.com/michelf/php-markdown/tree/lib"
+ },
"time": "2015-03-01T12:03:08+00:00"
},
{
@@ -1153,20 +1227,24 @@
"uri",
"url"
],
+ "support": {
+ "issues": "https://github.com/lanthaler/IRI/issues",
+ "source": "https://github.com/lanthaler/IRI/tree/master"
+ },
"time": "2014-01-21T13:43:39+00:00"
},
{
"name": "ml/json-ld",
- "version": "1.2.0",
+ "version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/lanthaler/JsonLD.git",
- "reference": "c74a1aed5979ed1cfb1be35a55a305fd30e30b93"
+ "reference": "537e68e87a6bce23e57c575cd5dcac1f67ce25d8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/lanthaler/JsonLD/zipball/c74a1aed5979ed1cfb1be35a55a305fd30e30b93",
- "reference": "c74a1aed5979ed1cfb1be35a55a305fd30e30b93",
+ "url": "https://api.github.com/repos/lanthaler/JsonLD/zipball/537e68e87a6bce23e57c575cd5dcac1f67ce25d8",
+ "reference": "537e68e87a6bce23e57c575cd5dcac1f67ce25d8",
"shasum": ""
},
"require": {
@@ -1202,7 +1280,11 @@
"JSON-LD",
"jsonld"
],
- "time": "2020-06-16T17:45:06+00:00"
+ "support": {
+ "issues": "https://github.com/lanthaler/JsonLD/issues",
+ "source": "https://github.com/lanthaler/JsonLD/tree/1.2.1"
+ },
+ "time": "2022-09-29T08:45:17+00:00"
},
{
"name": "moment/momentjs",
@@ -1262,6 +1344,14 @@
"sorting",
"table"
],
+ "support": {
+ "docs": "https://mottie.github.io/tablesorter/docs/index.html",
+ "email": "wowmotty@gmail.com",
+ "irc": "irc://irc.freenode.org/tablesorter",
+ "issues": "https://github.com/Mottie/tablesorter/issues",
+ "source": "https://github.com/Mottie/tablesorter",
+ "wiki": "https://github.com/Mottie/tablesorter/wiki"
+ },
"time": "2020-03-03T13:46:03+00:00"
},
{
@@ -1312,6 +1402,10 @@
"rest",
"restful"
],
+ "support": {
+ "issues": "https://github.com/nategood/httpful/issues",
+ "source": "https://github.com/nategood/httpful/tree/v0.2.20"
+ },
"time": "2015-10-26T16:11:30+00:00"
},
{
@@ -1365,6 +1459,12 @@
"plaintext",
"textile"
],
+ "support": {
+ "irc": "irc://irc.freenode.net/textile",
+ "issues": "https://github.com/textile/php-textile/issues",
+ "source": "https://github.com/textile/php-textile",
+ "wiki": "https://github.com/textile/php-textile/wiki"
+ },
"time": "2022-05-01T17:05:16+00:00"
},
{
@@ -1390,10 +1490,10 @@
},
{
"name": "npm-asset/primevue",
- "version": "3.15.0",
+ "version": "3.29.2",
"dist": {
"type": "tar",
- "url": "https://registry.npmjs.org/primevue/-/primevue-3.15.0.tgz"
+ "url": "https://registry.npmjs.org/primevue/-/primevue-3.29.2.tgz"
},
"type": "npm-asset",
"license": [
@@ -1420,16 +1520,16 @@
},
{
"name": "phpseclib/phpseclib",
- "version": "2.0.37",
+ "version": "2.0.44",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
- "reference": "c812fbb4d6b4d7f30235ab7298a12f09ba13b37c"
+ "reference": "149f608243f8133c61926aae26ce67d2b22b37e5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/c812fbb4d6b4d7f30235ab7298a12f09ba13b37c",
- "reference": "c812fbb4d6b4d7f30235ab7298a12f09ba13b37c",
+ "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/149f608243f8133c61926aae26ce67d2b22b37e5",
+ "reference": "149f608243f8133c61926aae26ce67d2b22b37e5",
"shasum": ""
},
"require": {
@@ -1444,7 +1544,8 @@
"ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
"ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
"ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
- "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
+ "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations.",
+ "ext-xml": "Install the XML extension to load XML formatted public keys."
},
"type": "library",
"autoload": {
@@ -1507,7 +1608,25 @@
"x.509",
"x509"
],
- "time": "2022-04-04T04:57:45+00:00"
+ "support": {
+ "issues": "https://github.com/phpseclib/phpseclib/issues",
+ "source": "https://github.com/phpseclib/phpseclib/tree/2.0.44"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/terrafrost",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/phpseclib",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-06-13T08:41:47+00:00"
},
{
"name": "rmariuzzo/jquery-checkboxes",
@@ -1587,6 +1706,23 @@
"polyfill",
"portable"
],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.19.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
"time": "2020-10-23T09:01:57+00:00"
},
{
@@ -1706,6 +1842,10 @@
"keywords": [
"templating"
],
+ "support": {
+ "issues": "https://github.com/twigphp/Twig/issues",
+ "source": "https://github.com/twigphp/Twig/tree/1.x"
+ },
"time": "2020-02-11T05:59:23+00:00"
},
{
@@ -1725,6 +1865,24 @@
"url": "https://unpkg.com/vue-router@4.1.3/dist/vue-router.global.js"
},
"type": "library"
+ },
+ {
+ "name": "vuepic/vue-datepicker-css",
+ "version": "4.0.0",
+ "dist": {
+ "type": "file",
+ "url": "https://unpkg.com/@vuepic/vue-datepicker@4.0.0/dist/main.css"
+ },
+ "type": "library"
+ },
+ {
+ "name": "vuepic/vue-datepicker-js",
+ "version": "4.0.0",
+ "dist": {
+ "type": "file",
+ "url": "https://unpkg.com/@vuepic/vue-datepicker@4.0.0/dist/vue-datepicker.iife.js"
+ },
+ "type": "library"
}
],
"packages-dev": [
@@ -1779,6 +1937,24 @@
"regex",
"regular expression"
],
+ "support": {
+ "issues": "https://github.com/composer/pcre/issues",
+ "source": "https://github.com/composer/pcre/tree/1.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
"time": "2022-01-21T20:24:37+00:00"
},
{
@@ -1826,20 +2002,39 @@
"Xdebug",
"performance"
],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/xdebug-handler/issues",
+ "source": "https://github.com/composer/xdebug-handler/tree/2.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
"time": "2022-02-24T20:20:32+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v4.14.0",
+ "version": "v4.16.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1"
+ "reference": "19526a33fb561ef417e822e85f08a00db4059c17"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/34bea19b6e03d8153165d8f30bba4c3be86184c1",
- "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/19526a33fb561ef417e822e85f08a00db4059c17",
+ "reference": "19526a33fb561ef417e822e85f08a00db4059c17",
"shasum": ""
},
"require": {
@@ -1878,20 +2073,24 @@
"parser",
"php"
],
- "time": "2022-05-31T20:59:12+00:00"
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.16.0"
+ },
+ "time": "2023-06-25T14:52:30+00:00"
},
{
"name": "pdepend/pdepend",
- "version": "2.10.3",
+ "version": "2.14.0",
"source": {
"type": "git",
"url": "https://github.com/pdepend/pdepend.git",
- "reference": "da3166a06b4a89915920a42444f707122a1584c9"
+ "reference": "1121d4b04af06e33e9659bac3a6741b91cab1de1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pdepend/pdepend/zipball/da3166a06b4a89915920a42444f707122a1584c9",
- "reference": "da3166a06b4a89915920a42444f707122a1584c9",
+ "url": "https://api.github.com/repos/pdepend/pdepend/zipball/1121d4b04af06e33e9659bac3a6741b91cab1de1",
+ "reference": "1121d4b04af06e33e9659bac3a6741b91cab1de1",
"shasum": ""
},
"require": {
@@ -1925,26 +2124,42 @@
"BSD-3-Clause"
],
"description": "Official version of pdepend to be handled with Composer",
- "time": "2022-02-23T07:53:09+00:00"
+ "keywords": [
+ "PHP Depend",
+ "PHP_Depend",
+ "dev",
+ "pdepend"
+ ],
+ "support": {
+ "issues": "https://github.com/pdepend/pdepend/issues",
+ "source": "https://github.com/pdepend/pdepend/tree/2.14.0"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-05-26T13:15:18+00:00"
},
{
"name": "phpmd/phpmd",
- "version": "2.12.0",
+ "version": "2.13.0",
"source": {
"type": "git",
"url": "https://github.com/phpmd/phpmd.git",
- "reference": "c0b678ba71902f539c27c14332aa0ddcf14388ec"
+ "reference": "dad0228156856b3ad959992f9748514fa943f3e3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpmd/phpmd/zipball/c0b678ba71902f539c27c14332aa0ddcf14388ec",
- "reference": "c0b678ba71902f539c27c14332aa0ddcf14388ec",
+ "url": "https://api.github.com/repos/phpmd/phpmd/zipball/dad0228156856b3ad959992f9748514fa943f3e3",
+ "reference": "dad0228156856b3ad959992f9748514fa943f3e3",
"shasum": ""
},
"require": {
"composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0",
"ext-xml": "*",
- "pdepend/pdepend": "^2.10.3",
+ "pdepend/pdepend": "^2.12.1",
"php": ">=5.3.9"
},
"require-dev": {
@@ -1997,20 +2212,31 @@
"phpmd",
"pmd"
],
- "time": "2022-03-24T13:33:01+00:00"
+ "support": {
+ "irc": "irc://irc.freenode.org/phpmd",
+ "issues": "https://github.com/phpmd/phpmd/issues",
+ "source": "https://github.com/phpmd/phpmd/tree/2.13.0"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-09-10T08:44:15+00:00"
},
{
"name": "phpmetrics/phpmetrics",
- "version": "v2.8.1",
+ "version": "v2.8.2",
"source": {
"type": "git",
"url": "https://github.com/phpmetrics/PhpMetrics.git",
- "reference": "e279f7317390f642339941b693359e9a181817a7"
+ "reference": "4b77140a11452e63c7a9b98e0648320bf6710090"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpmetrics/PhpMetrics/zipball/e279f7317390f642339941b693359e9a181817a7",
- "reference": "e279f7317390f642339941b693359e9a181817a7",
+ "url": "https://api.github.com/repos/phpmetrics/PhpMetrics/zipball/4b77140a11452e63c7a9b98e0648320bf6710090",
+ "reference": "4b77140a11452e63c7a9b98e0648320bf6710090",
"shasum": ""
},
"require": {
@@ -2061,7 +2287,11 @@
"quality",
"testing"
],
- "time": "2022-03-24T10:19:51+00:00"
+ "support": {
+ "issues": "https://github.com/PhpMetrics/PhpMetrics/issues",
+ "source": "https://github.com/phpmetrics/PhpMetrics/tree/v2.8.2"
+ },
+ "time": "2023-03-08T15:03:36+00:00"
},
{
"name": "phpunit/php-timer",
@@ -2110,6 +2340,10 @@
"keywords": [
"timer"
],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/master"
+ },
"time": "2017-02-26T11:10:40+00:00"
},
{
@@ -2159,6 +2393,10 @@
"container-interop",
"psr"
],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/master"
+ },
"time": "2017-02-14T16:28:37+00:00"
},
{
@@ -2206,6 +2444,9 @@
"psr",
"psr-3"
],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/1.1.4"
+ },
"time": "2021-05-03T11:20:27+00:00"
},
{
@@ -2245,6 +2486,10 @@
],
"description": "FinderFacade is a convenience wrapper for Symfony's Finder component.",
"homepage": "https://github.com/sebastianbergmann/finder-facade",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/finder-facade/issues",
+ "source": "https://github.com/sebastianbergmann/finder-facade/tree/master"
+ },
"abandoned": true,
"time": "2017-11-18T17:31:49+00:00"
},
@@ -2296,6 +2541,11 @@
],
"description": "Copy/Paste Detector (CPD) for PHP code.",
"homepage": "https://github.com/sebastianbergmann/phpcpd",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpcpd/issues",
+ "source": "https://github.com/sebastianbergmann/phpcpd/tree/master"
+ },
+ "abandoned": true,
"time": "2017-11-16T08:49:28+00:00"
},
{
@@ -2339,6 +2589,10 @@
],
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
"homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/master"
+ },
"time": "2016-10-03T07:35:21+00:00"
},
{
@@ -2390,6 +2644,11 @@
"phpcs",
"standards"
],
+ "support": {
+ "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
+ "source": "https://github.com/squizlabs/PHP_CodeSniffer",
+ "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
+ },
"time": "2021-12-12T21:44:58+00:00"
},
{
@@ -2449,6 +2708,23 @@
],
"description": "Symfony Config Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/config/tree/v3.4.47"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
"time": "2020-10-24T10:57:07+00:00"
},
{
@@ -2516,6 +2792,23 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v3.4.47"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
"time": "2020-10-24T10:57:07+00:00"
},
{
@@ -2567,6 +2860,23 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/debug/tree/v3.4.47"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
"abandoned": "symfony/error-handler",
"time": "2020-10-24T10:57:07+00:00"
},
@@ -2634,6 +2944,23 @@
],
"description": "Symfony DependencyInjection Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/dependency-injection/tree/v3.4.47"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
"time": "2020-10-24T10:57:07+00:00"
},
{
@@ -2679,6 +3006,23 @@
],
"description": "Symfony Filesystem Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/filesystem/tree/v3.4.47"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
"time": "2020-10-24T10:57:07+00:00"
},
{
@@ -2723,6 +3067,23 @@
],
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v3.4.47"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
"time": "2020-11-16T17:02:08+00:00"
},
{
@@ -2786,6 +3147,23 @@
"portable",
"shim"
],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.19.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
"time": "2020-10-23T09:01:57+00:00"
},
{
@@ -2829,6 +3207,10 @@
],
"description": "The classes contained within this repository extend the standard DOM to use exceptions at all occasions of errors instead of PHP warnings or notices. They also add various custom methods and shortcuts for convenience and to simplify the usage of DOM.",
"homepage": "https://github.com/theseer/fDOMDocument",
+ "support": {
+ "issues": "https://github.com/theseer/fDOMDocument/issues",
+ "source": "https://github.com/theseer/fDOMDocument/tree/1.6.7"
+ },
"abandoned": true,
"time": "2022-01-25T23:10:35+00:00"
}
@@ -2842,5 +3224,5 @@
"php": ">=5.6.40"
},
"platform-dev": [],
- "plugin-api-version": "2.3.0"
+ "plugin-api-version": "2.2.0"
}
diff --git a/content/fas.xul.php b/content/fas.xul.php
index 80efdb2f9..abe7f613e 100644
--- a/content/fas.xul.php
+++ b/content/fas.xul.php
@@ -140,6 +140,8 @@ foreach($addon_obj->result as $addon)
+
+
@@ -507,19 +509,38 @@ foreach($addon_obj->result as $addon)
label = "&menu-dokumente-zutrittskarte.label;"
command = "menu-dokumente-zutrittskarte:command"
accesskey = "&menu-dokumente-zutrittskarte.accesskey;"/>
+
-
+
+ accesskey = "&menu-dokumente-inskriptionsbestaetigungeng.accesskey;"
+ />
+ `
+}
diff --git a/public/js/components/Studierendenantrag/Leitung/Actions.js b/public/js/components/Studierendenantrag/Leitung/Actions.js
new file mode 100644
index 000000000..71ada5c20
--- /dev/null
+++ b/public/js/components/Studierendenantrag/Leitung/Actions.js
@@ -0,0 +1,87 @@
+import ActionsNew from './Actions/New.js';
+import ActionsColumns from './Actions/Columns.js';
+import Phrasen from '../../../mixins/Phrasen.js';
+
+export default {
+ components: {
+ ActionsNew,
+ ActionsColumns
+ },
+ mixins: [Phrasen],
+ props: {
+ selectedData: Array,
+ columns: Array,
+ stgL: Array,
+ stgA: Array
+ },
+ emits: [
+ 'reload',
+ 'download',
+ 'action:approve',
+ 'action:reject',
+ 'action:reopen'
+ ],
+ data() {
+ return {
+ currentStudent: ''
+ }
+ },
+ computed: {
+ selectedCanBeApproved() {
+ if (!this.selectedData.length)
+ return false;
+ if (!this.selectedData.every(val => this.stgL.includes(val.studiengang_kz)))
+ return false;
+ return this.selectedData.filter(row => {
+ return (row.typ == 'Wiederholung' && row.status == 'Lvszugewiesen') || (row.typ != 'Wiederholung' && (row.status == 'Erstellt' || row.status == 'ErstelltStgl'));
+ }).length == this.selectedData.length;
+ },
+ selectedCanBeRejected() {
+ if (!this.selectedData.length)
+ return false;
+ if (!this.selectedData.every(val => this.stgL.includes(val.studiengang_kz)))
+ return false;
+ return this.selectedData.filter(row => {
+ return (row.typ == 'Unterbrechung' && row.status == 'Erstellt');
+ }).length == this.selectedData.length;
+ },
+ selectedCanBeReopened() {
+ if (!this.selectedData.length)
+ return false;
+ if (!this.selectedData.every(val => this.stgA.includes(val.studiengang_kz)))
+ return false;
+ return this.selectedData.filter(row => {
+ return (row.typ == 'Wiederholung' && row.status == 'Verzichtet');
+ }).length == this.selectedData.length;
+ },
+ newUrl() {
+ return FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + this.currentStudent;
+ }
+ },
+ methods: {
+ hideModal() {
+ bootstrap.Modal.getInstance(this.$refs.modal).hide();
+ }
+ },
+ template: `
+
+
+
+
+
+
+
{{p.t('table', 'with_selected', {count: selectedData.length})}}
+
{{p.t('studierendenantrag', 'btn_approve')}}
+
{{p.t('studierendenantrag', 'btn_reject')}}
+
{{p.t('studierendenantrag', 'btn_reopen')}}
+
+
+
+
+
+
+
+ `
+}
diff --git a/public/js/components/Studierendenantrag/Leitung/Actions/Columns.js b/public/js/components/Studierendenantrag/Leitung/Actions/Columns.js
new file mode 100644
index 000000000..7128761d7
--- /dev/null
+++ b/public/js/components/Studierendenantrag/Leitung/Actions/Columns.js
@@ -0,0 +1,25 @@
+export default {
+ props: {
+ columns: Array
+ },
+ methods: {
+ toggleColumn(col) {
+ col.visible = !col.visible;
+ col.original.toggle()
+ },
+ show() {
+
+ }
+ },
+ template: `
+
+ `
+}
diff --git a/public/js/components/Studierendenantrag/Leitung/Actions/New.js b/public/js/components/Studierendenantrag/Leitung/Actions/New.js
new file mode 100644
index 000000000..ad3009bdb
--- /dev/null
+++ b/public/js/components/Studierendenantrag/Leitung/Actions/New.js
@@ -0,0 +1,113 @@
+import BsAlert from '../../../Bootstrap/Alert.js';
+import BsModal from '../../../Bootstrap/Modal.js';
+import Phrasen from '../../../../mixins/Phrasen.js';
+
+export default {
+ components: {
+ BsModal,
+ AutoComplete: primevue.autocomplete
+ },
+ mixins: [
+ Phrasen
+ ],
+ emits: [
+ 'reload'
+ ],
+ data() {
+ return {
+ data: [],
+ student: '',
+ abortController: null
+ }
+ },
+ computed: {
+ newUrl() {
+ return FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + '/lehre/Studierendenantrag/abmeldungStgl/' + this.student.prestudent_id;
+ }
+ },
+ methods: {
+ openForm() {
+ bootstrap.Modal.getInstance(this.$refs.modal).hide();
+ BsModal.popup(Vue.h('iframe', {
+ src: this.newUrl,
+ class: 'position-absolute top-0 start-0 w-100 h-100'
+ }), {
+ dialogClass: 'modal-fullscreen'
+ }, this.p.t('studierendenantrag', 'antrag_header')).then(() => {
+ this.$emit('reload');
+ this.student = '';
+ });
+ },
+ loadData(evt) {
+ if (this.abortController)
+ this.abortController.abort();
+ this.abortController = new AbortController();
+
+ axios.post(
+ FHC_JS_DATA_STORAGE_OBJECT.app_root +
+ FHC_JS_DATA_STORAGE_OBJECT.ci_router +
+ '/components/Antrag/Abmeldung/getStudiengaengeAssistenz/',
+ evt,
+ {
+ signal: this.abortController.signal
+ }
+ ).then(
+ result => {
+ if (result.data.error) {
+ BsAlert.popup(result.data.retval, {dialogClass: 'alert alert-danger'});
+ } else {
+ this.data = result.data.retval;
+ }
+ return result;
+ }
+ ).catch(() => {});
+ }
+ },
+ template: `
+
+
+
+ {{p.t('studierendenantrag','btn_new')}}
+
+
+
+
+
+
+
{{p.t('person','studentIn')}}
+
+
+
+
+ {{slotProps.option.name}}
+
+
+
+
+
+
+
+
+
+
+ `
+}
diff --git a/public/js/components/Studierendenantrag/Leitung/GrundPopup.js b/public/js/components/Studierendenantrag/Leitung/GrundPopup.js
new file mode 100644
index 000000000..3a7b40f2d
--- /dev/null
+++ b/public/js/components/Studierendenantrag/Leitung/GrundPopup.js
@@ -0,0 +1,62 @@
+
+import BsAlert from '../../Bootstrap/Alert.js';
+import Phrasen from '../../../mixins/Phrasen.js';
+
+export default {
+ mixins: [
+ BsAlert,
+ Phrasen
+ ],
+ props: {
+ placeholder: String,
+ default: String,
+ countRemaining: Number,
+ optional: Boolean
+ },
+ data: () => ({
+ value: '',
+ result: false,
+ check: false,
+ isInvalid: false
+ }),
+ methods: {
+ submit() {
+ if (!this.value && !this.optional) {
+ this.isInvalid = true;
+ } else {
+ this.result = [this.value, this.check];
+ this.hide();
+ }
+ }
+ },
+ created() {
+ if (this.default)
+ this.value = this.default;
+ },
+ popup(msg, options) {
+ if (typeof options === 'string')
+ options = { default: options };
+ return BsAlert.popup.bind(this)(msg, options);
+ },
+ template: `
+
+
+
+
+
+
+
+ {{p.t('kvp','new.error.required')}}
+
+
+
+
+
+
+ {{p.t('studierendenantrag','fuer_alle_uebernehmen')}}
+
+ {{p.t('ui','ok')}}
+ {{p.t('ui','cancel')}}
+
+ `
+}
diff --git a/public/js/components/Studierendenantrag/Leitung/Header.js b/public/js/components/Studierendenantrag/Leitung/Header.js
new file mode 100644
index 000000000..388a93b7d
--- /dev/null
+++ b/public/js/components/Studierendenantrag/Leitung/Header.js
@@ -0,0 +1,24 @@
+import Phrasen from '../../../mixins/Phrasen.js';
+
+export default {
+ mixins: [Phrasen],
+ props: {
+ stgs: Array
+ },
+ emits: [
+ 'input'
+ ],
+ template: `
+
+ `
+}
diff --git a/public/js/components/Studierendenantrag/Leitung/LvPopup.js b/public/js/components/Studierendenantrag/Leitung/LvPopup.js
new file mode 100644
index 000000000..db13a1bb7
--- /dev/null
+++ b/public/js/components/Studierendenantrag/Leitung/LvPopup.js
@@ -0,0 +1,149 @@
+import BsAlert from '../../Bootstrap/Alert.js';
+import {CoreFetchCmpt} from "../../Fetch.js";
+import Phrasen from '../../../mixins/Phrasen.js';
+
+export default {
+ components: {
+ CoreFetchCmpt
+ },
+ mixins: [
+ BsAlert,
+ Phrasen
+ ],
+ props: {
+ footer: Boolean,
+ antragId: Number,
+ countRemaining: Number
+ },
+ data(){
+ return {
+ lvs: null,
+ refresh: true,
+ result: false,
+ check: false
+ };
+ },
+ computed: {
+ lvzugelassen() {
+ let zwischen = {};
+ for (let k in this.lvs){
+ zwischen[k] = this.lvs[k] ? this.lvs[k].filter(lv=>lv.antrag_zugelassen) : null;
+ }
+ return zwischen;
+ },
+ lvzugelassenLength() {
+ return Object.values(this.lvzugelassen).reduce((result, current) => result + (current ? current.length : 0), 0);
+ }
+ },
+ methods: {
+ setlvs(param) {
+ if(param.error)
+ {
+ this.$refs.fetchCompt.error = true;
+ this.$refs.fetchCompt.errorMessage = param.retval;
+ }
+ else
+ this.lvs = param.retval;
+ },
+ loadlvs() {
+ if (!this.antragId)
+ return new Promise(() => {});
+ return axios.get(FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + '/components/Antrag/Wiederholung/getLvs/' + this.antragId);
+ },
+ submit(result) {
+ this.result = [result, this.check];
+ this.hide();
+ }
+ },
+ watch: {
+ antragId() {
+ Vue.nextTick(() => {
+ this.refresh = !this.refresh;
+ });
+ }
+ },
+ popup(msg, options) {
+ if (typeof options === 'string')
+ options = { default: options };
+ return BsAlert.popup.bind(this)(msg, options);
+ },
+ template: `
+
+
+
+
+
+
+
+ {{p.t('studierendenantrag','error_no_lvs')}}
+
+
+
+
+ {{ p.t('studierendenantrag',['title_lv_nicht_zugelassen', 'title_lv_wiederholen'][sem.substr(0,1)-1]) }}
+ {{sem.substr(1)}}
+
+
+
+
+ {{p.t('ui','bezeichnung')}}
+ {{p.t('lehre','lehrform')}}
+ ECTS
+ {{p.t('lehre','note')}}
+
+ {{p.t('global','anmerkung')}}
+
+
+
+
+
+ {{p.t('studierendenantrag/error_stg_last_semester')}}
+
+
+
+
+
+ {{lv.bezeichnung}}
+
+
+
+
+ {{lv.lehrform_kurzbz}}
+
+
+
+
+ {{lv.ects}}
+
+
+
+
+ {{lv.note || '---'}}
+
+
+
+
+ {{lv.antrag_anmerkung}}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{p.t('studierendenantrag','fuer_x_uebernehmen', {count: countRemaining})}}
+
+ {{p.t('studierendenantrag','btn_approve')}}
+ {{p.t('ui','skip')}}
+
+ `
+}
diff --git a/public/js/components/Studierendenantrag/Leitung/Table.js b/public/js/components/Studierendenantrag/Leitung/Table.js
new file mode 100644
index 000000000..ea8dae107
--- /dev/null
+++ b/public/js/components/Studierendenantrag/Leitung/Table.js
@@ -0,0 +1,383 @@
+import BsModal from '../../Bootstrap/Modal.js';
+import {CoreFetchCmpt} from '../../Fetch.js';
+import LvPopup from './LvPopup.js';
+import Phrasen from '../../../mixins/Phrasen.js';
+import { dateFilter } from '../../../tabulator/filters/Dates.js';
+
+export default {
+ components: {
+ BsModal,
+ CoreFetchCmpt,
+ LvPopup
+ },
+ mixins: [Phrasen],
+ props: {
+ selectedData: Array,
+ columnData: Array,
+ stgL: Array,
+ stgA: Array
+ },
+ emits: [
+ 'update:columnData',
+ 'update:selectedData',
+ 'action:approve',
+ 'action:reject',
+ 'action:reopen',
+ 'action:object',
+ 'action:objectionDeny',
+ 'action:objectionApprove',
+ 'action:cancel'
+ ],
+ data() {
+ return {
+ ajaxUrl: FHC_JS_DATA_STORAGE_OBJECT.app_root +
+ FHC_JS_DATA_STORAGE_OBJECT.ci_router +
+ '/components/Antrag/Leitung/getAntraege/',
+ table: null,
+ lastHistoryClickedId: null,
+ historyData: [],
+ lvsData: null
+ }
+ },
+ methods: {
+ reload(stg) {
+ this.table.replaceData(this.ajaxUrl + (stg || ''));
+ },
+ download() {
+ this.table.download("csv", "data.csv");
+ },
+ getHistory() {
+ if (this.lastHistoryClickedId === null)
+ return null;
+ return axios.get(
+ FHC_JS_DATA_STORAGE_OBJECT.app_root +
+ FHC_JS_DATA_STORAGE_OBJECT.ci_router +
+ '/components/Antrag/Leitung/getHistory/' +
+ this.lastHistoryClickedId
+ ).then(res => {
+ this.historyData = res.data.retval.sort((a, b) => a.insertamum > b.insertamum);
+ });
+ },
+ showHistoryGrund(grund) {
+ this.$refs.modalGrund.$el.addEventListener(
+ 'hidden.bs.modal',
+ this.$refs.history.show,
+ {
+ once: true
+ }
+ );
+ this.$refs.modalGrundPre.innerHTML = grund;
+ },
+ showLVs(data) {
+ this.lvsData = data;
+ this.$refs.lvList.show();
+ }
+ },
+ mounted() {
+ function dateFormatter(cell)
+ {
+ let val = cell.getValue();
+ if (!val)
+ return '';
+ let date = new Date(val);
+ return date.toLocaleDateString();
+ }
+
+ this.table = new Tabulator(this.$refs.table, {
+ placeholder:"Keine zu bearbeitenden Datensätze",
+ movableColumns: true,
+ maxHeight: '50vh',
+ layout: "fitDataFill",
+ ajaxURL: this.ajaxUrl,
+ persistence: { // NOTE(chris): do not store column titles
+ sort: true, //persist column sorting
+ filter: true, //persist filters
+ headerFilter: true, //persist header filters
+ group: true, //persist row grouping
+ page: true, //persist page
+ columns: ["width", "visible"], //persist columns
+ },
+ persistenceID: 'studierendenantrag_leitung',
+ columns: [{
+ formatter: 'rowSelection',
+ titleFormatter: 'rowSelection',
+ titleFormatterParams: {
+ rowRange: 'active'
+ },
+ hozAlign: 'center',
+ headerSort: false
+ }, {
+ field: 'studierendenantrag_id',
+ title: '#'
+ }, {
+ field: 'bezeichnung',
+ title: this.p.t('lehre', 'studiengang'),
+ headerFilter: 'list',
+ headerFilterParams: {
+ valuesLookup: true,
+ clearable: true,
+ autocomplete: true,
+ }
+ }, {
+ field: 'orgform',
+ title: this.p.t('lehre', 'organisationsform'),
+ headerFilter: 'list',
+ headerFilterParams: {
+ valuesLookup: true,
+ clearable: true,
+ autocomplete: true,
+ }
+ }, {
+ field: 'typ',
+ title: this.p.t('studierendenantrag', 'antrag_typ'),
+ headerFilter: 'list',
+ headerFilterParams: {
+ valuesLookup: true,
+ clearable: true,
+ autocomplete: true,
+ },
+ formatter: (cell, formatterParams, onRendered) => {
+ return this.p.t('studierendenantrag','antrag_typ_' + cell.getValue());
+ }
+ }, {
+ field: 'statustyp',
+ title: this.p.t('studierendenantrag', 'antrag_status'),
+ headerFilter: 'list',
+ headerFilterParams: {
+ valuesLookup: true,
+ clearable: true,
+ autocomplete: true,
+ },
+ formatter: (cell, formatterParams, onRendered) => {
+ let link = document.createElement('a');
+ link.href = "#";
+ link.innerHTML = cell.getValue();
+ link.addEventListener('click', e => {
+ e.preventDefault();
+ this.lastHistoryClickedId = cell.getData().studierendenantrag_id;
+ this.$refs.historyLoader.fetchData();
+ this.$refs.history.show();
+ });
+
+ return link;
+ }
+ }, {
+ field: 'matrikelnr',
+ title: this.p.t('person', 'personenkennzeichen'),
+ headerFilter: 'input'
+ }, {
+ field: 'prestudent_id',
+ title: this.p.t('lehre', 'prestudent'),
+ headerFilter: 'input'
+ }, {
+ field: 'name',
+ title: this.p.t('global', 'name'),
+ mutator: (value, data) => (data.vorname + ' ' + data.nachname).replace(/^\s*(.*)\s*$/, '$1'),
+ headerFilter: 'input'
+ }, {
+ field: 'datum',
+ title: this.p.t('global', 'datum'),
+ formatter: dateFormatter,
+ headerFilterFunc: 'dates',
+ headerFilter: dateFilter
+ }, {
+ field: 'datum_wiedereinstieg',
+ title: this.p.t('studierendenantrag', 'antrag_datum_wiedereinstieg'),
+ formatter: dateFormatter,
+ headerFilterFunc: 'dates',
+ headerFilter: dateFilter
+ }, {
+ field: 'grund',
+ title: this.p.t('studierendenantrag', 'antrag_grund'),
+ formatter: (cell, formatterParams, onRendered) => {
+ let link = document.createElement('a'),
+ val = cell.getValue();
+ link.href = "#modal-grund";
+ link.setAttribute('data-bs-toggle', 'modal');
+ link.innerHTML = this.p.t('studierendenantrag', 'antrag_grund');
+ link.addEventListener('click', () => {
+ this.$refs.modalGrundPre.innerHTML = val;
+ });
+
+ return val ? link : '';
+ }
+ }, {
+ field: 'dms_id',
+ title: this.p.t('studierendenantrag', 'antrag_dateianhaenge'),
+ formatter: (cell, formatterParams, onRendered) => {
+ let val = cell.getValue();
+ if (!val)
+ return '';
+ return ' ' + this.p.t('studierendenantrag', 'antrag_anhang') + ' ';
+ }
+ }, {
+ field: 'actions',
+ frozen: true,
+ title: this.p.t('ui', 'aktion'),
+ headerFilter: false,
+ headerSort: false,
+ formatter: (cell, formatterParams, onRendered) => {
+ let container = document.createElement('div'),
+ data = cell.getData();
+
+ container.className = "d-flex gap-2";
+
+ if ((data.typ == 'Abmeldung' || data.typ == 'AbmeldungStgl' || data.typ == 'Unterbrechung') && (data.status == 'Genehmigt' || data.status == 'Beeinsprucht' || data.status == 'EinspruchAbgelehnt' || data.status == 'EmailVersandt')) {
+ // NOTE(chris): Download PDF
+ let button = document.createElement('a');
+ button.innerHTML = ' ';
+ button.className = "btn btn-outline-secondary";
+ button.target = "_blank";
+ button.href = FHC_JS_DATA_STORAGE_OBJECT.app_root +
+ 'content/pdfExport.php?xml=Antrag' + data.typ + '.xml.php&xsl=Antrag' + data.typ + '&id=' + data.studierendenantrag_id + '&output=pdf';
+ container.append(button);
+ }
+ if (data.typ == 'AbmeldungStgl' && data.status == 'Genehmigt') {
+ // NOTE(chris): Object
+ let button = document.createElement('button');
+ button.innerHTML = this.p.t('studierendenantrag', 'btn_object');
+ button.className = "btn btn-outline-secondary";
+ button.addEventListener('click', () => this.$emit('action:object', [cell.getData()]));
+ container.append(button);
+ }
+
+ if (data.typ == 'AbmeldungStgl' && data.status == 'Beeinsprucht') {
+ // NOTE(chris): Deny Objection
+ let button = document.createElement('button');
+ button.innerHTML = this.p.t('studierendenantrag', 'btn_objection_deny');
+ button.className = "btn btn-outline-secondary";
+ button.addEventListener('click', () => this.$emit('action:objectionDeny', [cell.getData()]));
+ container.append(button);
+
+ // NOTE(chris): Approve Objection
+ button = document.createElement('button');
+ button.innerHTML = this.p.t('studierendenantrag', 'btn_objection_approve');
+ button.className = "btn btn-outline-secondary";
+ button.addEventListener('click', () => this.$emit('action:objectionApprove', [cell.getData()]));
+ container.append(button);
+ }
+
+ if (this.stgA.includes(data.studiengang_kz)) {
+ // NOTE(chris): Reopen
+ if (data.typ == 'Wiederholung' && data.status == 'Verzichtet') {
+ let button = document.createElement('button');
+ button.innerHTML = this.p.t('studierendenantrag', 'btn_reopen');
+ button.className = "btn btn-outline-secondary";
+ button.addEventListener('click', () => this.$emit('action:reopen', [cell.getData()]));
+ container.append(button);
+ }
+ // NOTE(chris): Lv Zuweisen
+ if (data.typ == 'Wiederholung' && (data.status == 'Erstellt' || data.status == 'Lvszugewiesen')) {
+ let button = document.createElement('a');
+ button.innerHTML = this.p.t('studierendenantrag', 'btn_lvzuweisen');
+ button.className = "btn btn-outline-secondary";
+ button.href = FHC_JS_DATA_STORAGE_OBJECT.app_root +
+ FHC_JS_DATA_STORAGE_OBJECT.ci_router +
+ '/lehre/Antrag/Wiederholung/assistenz/' +
+ cell.getData().studierendenantrag_id + '/frame';
+ button.onclick = e => {
+ e.preventDefault();
+ BsModal.popup(Vue.h('iframe', {
+ src: button.href,
+ class: 'position-absolute top-0 start-0 w-100 h-100'
+ }), {
+ dialogClass: 'modal-fullscreen'
+ }, this.p.t('studierendenantrag', 'title_lvzuweisen', cell.getData())).then(() => {
+ this.$emit('reload');
+ });
+ };
+ container.append(button);
+ }
+ // NOTE(chris): Cancel
+ if (data.typ == 'AbmeldungStgl' && (data.status == 'Erstellt' || data.status == 'Genehmigt' )) {
+ let button = document.createElement('button');
+ button.innerHTML = this.p.t('studierendenantrag', 'btn_cancel');
+ button.className = "btn btn-outline-secondary";
+ button.addEventListener('click',() => this.$emit('action:cancel', [cell.getData()]));
+ container.append(button);
+ }
+ }
+
+ if (this.stgL.includes(data.studiengang_kz)) {
+ // NOTE(chris): Approve
+ if ((data.typ == 'Wiederholung' && data.status == 'Lvszugewiesen') || (data.typ != 'Wiederholung' && data.status == 'Erstellt')) {
+ let button = document.createElement('button');
+ button.innerHTML = this.p.t('studierendenantrag', 'btn_approve');
+ button.className = "btn btn-outline-secondary";
+ button.addEventListener('click', () => this.$emit('action:approve', [cell.getData()]));
+ container.append(button);
+ }
+ // NOTE(chris): Reject (Unterbrechung braucht grund)
+ if (data.status == 'Erstellt' && data.typ == 'Unterbrechung') {
+ let button = document.createElement('button');
+ button.innerHTML = this.p.t('studierendenantrag', 'btn_reject');
+ button.className = "btn btn-outline-secondary";
+ button.addEventListener('click', () => this.$emit('action:reject', [cell.getData()]));
+ container.append(button);
+ }
+ }
+
+ // NOTE(chris): Show LVs
+ if (data.typ == 'Wiederholung' && (data.status == 'Lvszugewiesen' || data.status == 'Genehmigt')) {
+ let button = document.createElement('button');
+ button.innerHTML = this.p.t('studierendenantrag', 'btn_show_lvs');
+ button.className = "btn btn-outline-secondary";
+ button.addEventListener('click', () => this.showLVs(cell.getData()));
+ container.append(button);
+ }
+
+ return container;
+ }
+ }]
+ });
+ this.table.on("tableBuilt", () => {
+ let columns = this.table.getColumns();
+ let columnData = [];
+ for (let col of columns) {
+ let def = col.getDefinition();
+ if (def.title && !def.frozen) {
+ columnData.push({
+ title: def.title,
+ visible: col.isVisible(),
+ original: col
+ });
+ }
+ }
+ this.$emit('update:columnData', columnData);
+ });
+ this.table.on("rowSelectionChanged", data => {
+ this.$emit('update:selectedData', data);
+ });
+ },
+ template: `
+
+
+
+ {{p.t('studierendenantrag', 'antrag_grund')}}
+
+
+
+ {{p.t('studierendenantrag', 'title_history', {id: lastHistoryClickedId})}}
+
+
+
+
+
+ {{p.t('studierendenantrag', 'title_show_lvs', lvsData ? lvsData : {name: ''}) }}
+
+
+ `
+}
diff --git a/public/js/components/Studierendenantrag/Lvzuweisung.js b/public/js/components/Studierendenantrag/Lvzuweisung.js
new file mode 100644
index 000000000..376e266d3
--- /dev/null
+++ b/public/js/components/Studierendenantrag/Lvzuweisung.js
@@ -0,0 +1,251 @@
+import StudierendenantragStatus from './Status.js';
+import Phrasen from '../../mixins/Phrasen.js';
+
+export default {
+ components: {
+ StudierendenantragStatus
+ },
+ mixins: [Phrasen],
+ props: {
+ antragId: Number,
+ initialStatusCode: String,
+ initialStatusMsg: String,
+ disabled: Boolean
+ },
+ data() {
+ return {
+ lvs: [],
+ isloading: false,
+ statusCode: '',
+ statusMsg: ''
+ };
+ },
+ computed: {
+ lvs1() {
+ return this.lvs[Object.keys(this.lvs).filter(key => key.substr(0, 1) == 1)] || [];
+ },
+ lvs2() {
+ return this.lvs[Object.keys(this.lvs).filter(key => key.substr(0, 1) == 2)] || [];
+ },
+ lvs1sem(){
+ return (Object.keys(this.lvs).filter(key => key.substr(0, 1) == 1).pop() || "1").substr(1);
+ },
+ lvs2sem(){
+ return (Object.keys(this.lvs).filter(key => key.substr(0, 1) == 2).pop() || "2").substr(1);
+ },
+ statusSeverity() {
+ switch (this.statusCode) {
+ case 0: return 'danger';
+ default: return 'info';
+ }
+ }
+ },
+ methods: {
+ save() {
+ this.isloading = true;
+ const forbiddenLvs = this.lvs1.filter(lv => lv.antrag_zugelassen && !lv._children).map(lv => ({
+ studierendenantrag_id: this.antragId,
+ lehrveranstaltung_id: lv.lehrveranstaltung_id,
+ zugelassen: 0,
+ anmerkung: lv.antrag_anmerkung || "",
+ studiensemester_kurzbz: this.lvs1sem
+ }));
+ const mandatoryLvs = this.lvs2.filter(lv => !lv._children).map(lv => ({
+ studierendenantrag_id: this.antragId,
+ lehrveranstaltung_id: lv.lehrveranstaltung_id,
+ zugelassen:lv.antrag_zugelassen ? 1 : 2,
+ anmerkung: lv.antrag_anmerkung || "",
+ studiensemester_kurzbz: this.lvs2sem
+ }));
+ axios.post(FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + '/components/Antrag/Wiederholung/saveLvs/', {forbiddenLvs, mandatoryLvs})
+ .then(response => {
+ if(!response.data.error) {
+ this.addAlert('Speichern erfolgreich', 'alert-success');
+ this.statusCode = response.data.retval[0].studierendenantrag_statustyp_kurzbz;
+ this.statusMsg = response.data.retval[0].typ;
+ } else {
+ this.addAlert(response.data.retval, 'alert-danger');
+ this.statusCode = 0;
+ this.statusMsg = 'Error';
+ }
+ this.isloading = false;
+ }).catch(error => {
+ this.addAlert(error.message, 'alert-danger');
+ this.statusCode = 0;
+ this.statusMsg = 'Error';
+ this.isloading = false;
+ }).finally(() => {
+ window.scrollTo(0, 0);
+ });
+ },
+ addAlert(text, type) {
+ const para = document.createElement("p");
+ para.innerText = text;
+ para.className = "alert " + type + " alert-dismissible fade show";
+ const btn = document.createElement("button");
+ btn.className = "btn-close";
+ btn.type = "button";
+ btn.setAttribute("aria-label", "Close");
+ btn.setAttribute("data-bs-dismiss", "alert");
+ para.appendChild(btn);
+
+ this.$refs.alertbox.appendChild(para);
+ }
+ },
+ created() {
+ this.statusCode = this.initialStatusCode;
+ this.statusMsg = this.initialStatusMsg;
+ },
+ mounted() {
+ axios.get(FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + '/components/Antrag/Wiederholung/getLvs/' + this.antragId).then(
+ result => {
+ if(result.data.error)
+ {
+ this.addAlert(result.data.retval, 'alert-danger');
+ this.isloading = true;
+ }
+ else
+ {
+ let res = {};
+ for (var k in result.data.retval) {
+ if (result.data.retval[k] === null) {
+ const alert = document.createElement('div');
+ alert.innerHTML = this.p.t('studierendenantrag', 'error_stg_last_semester');
+ alert.className = 'alert alert-warning';
+ alert.role = 'alert';
+ this.$refs["lvtable" + k.substr(0,1)].append(alert);
+ continue;
+ }
+ let lvs = result.data.retval[k].reduce((obj,lv) => {
+ obj[lv.studienplan_lehrveranstaltung_id] = lv;
+ return obj;
+ }, {});
+ for (var lv of Object.values(lvs)) {
+ if (!lv.studienplan_lehrveranstaltung_id_parent)
+ continue;
+ if (!lvs[lv.studienplan_lehrveranstaltung_id_parent])
+ console.error('parent not available');
+ else {
+ if (!lvs[lv.studienplan_lehrveranstaltung_id_parent]._children)
+ lvs[lv.studienplan_lehrveranstaltung_id_parent]._children = [];
+ lvs[lv.studienplan_lehrveranstaltung_id_parent]._children.push(lv);
+ }
+ }
+ res[k] = Object.values(lvs).filter(lv => !lv.studienplan_lehrveranstaltung_id_parent);
+ let current = res[k];
+ let index = k.substr(0,1);
+ var table = new Tabulator(this.$refs["lvtable" + k.substr(0,1)], {
+ data: current,
+ dataTree: true,
+ dataTreeStartExpanded: true, //start with an expanded tree
+ dataTreeChildIndent: 15,
+ layout: "fitDataStretch",
+ columns: [
+ {title: this.p.t('ui','bezeichnung'), field: "bezeichnung"},
+ {title: this.p.t('lehre','lehrform'), field: "lehrform_kurzbz"},
+ {title: "ECTS", field: "ects"},
+ {title: this.p.t('lehre','note'), field: "note", formatter:(cell, formatterParams, onRendered)=>cell.getValue() || "---"},
+ {title: (index==1) ? this.p.t('studierendenantrag','lv_nicht_zulassen') : this.p.t('studierendenantrag','lv_wiederholen'), field: "antrag_zugelassen", formatter: (cell, formatterParams, onRendered) => {
+ let data = cell.getData();
+ if(data._children || !data.zeugnis)
+ return "";
+ let input = document.createElement('input');
+ input.className = "form-check-input";
+ input.type = "checkbox";
+ input.role = "switch";
+ input.checked = cell.getValue();
+ input.addEventListener('input', () => {
+ lvs[data.studienplan_lehrveranstaltung_id].antrag_zugelassen = input.checked;
+ cell.getRow().reformat();
+ });
+ if (this.disabled) {
+ input.disabled = true;
+ }
+
+ let div = document.createElement('div');
+ div.className = 'form-check form-switch';
+ div.append(input);
+
+ return div;
+ }},
+ {
+ title: this.p.t('global','anmerkung'),
+ field: "antrag_anmerkung",
+ headerSort:false,
+ titleFormatter:(cell, formatterParams, onRendered)=>{
+ let link = document.createElement('a');
+ link.addEventListener('click', (e) => {
+ e.preventDefault();
+ });
+
+ link.href ="#";
+ link.title = this.p.t('studierendenantrag','anmerkung_tooltip');
+ new bootstrap.Tooltip(link);
+ let tooltip = document.createElement('span');
+ tooltip.innerHTML = this.p.t('global','anmerkung') + " ";
+ tooltip.append(link);
+
+ let icon = document.createElement('i');
+ link.append(icon);
+ icon.className = "fa fa-info-circle";
+ icon.setAttribute("aria-hidden", "true");
+ icon.style.minWidth = '1em';
+
+ return tooltip;
+
+ },
+ formatter: (cell, formatterParams, onRendered) => {
+ if (this.disabled) {
+ return cell.getValue() || "";
+ }
+ var data = cell.getData();
+ if (lvs[data.studienplan_lehrveranstaltung_id].antrag_zugelassen)
+ {
+ let input = document.createElement('input');
+ input.className = "form-control";
+ input.type = "text";
+ input.value = cell.getValue() || "";
+ input.addEventListener('input', () => {
+ lvs[data.studienplan_lehrveranstaltung_id].antrag_anmerkung = input.value;
+ });
+ return input;
+ }
+ else
+ {
+ return "";
+ }
+ }
+ }
+ ]
+ });
+ }
+ this.lvs = result.data.retval;
+ }
+ }
+ );
+ },
+ template: `
+
+
+
+
+ {{p.t('studierendenantrag', 'title_lv_nicht_zugelassen')}}
+ {{lvs1sem}}
+
+
+
+
+
+ {{p.t('studierendenantrag', 'title_lv_wiederholen')}}
+ {{lvs2sem}}
+
+
+
+
+
{{p.t('studierendenantrag', 'btn_save_lvs')}}
+
+
+
+
+ `
+}
diff --git a/public/js/components/Studierendenantrag/Status.js b/public/js/components/Studierendenantrag/Status.js
new file mode 100644
index 000000000..7449fd376
--- /dev/null
+++ b/public/js/components/Studierendenantrag/Status.js
@@ -0,0 +1,15 @@
+export default {
+ props: {
+ msg: String,
+ severity: String
+ },
+ computed: {
+ severityClass() {
+ return 'alert-' + this.severity;
+ }
+ },
+ template: `
+
+
+ `
+}
diff --git a/public/js/components/vueDatepicker.js.php b/public/js/components/vueDatepicker.js.php
new file mode 100644
index 000000000..e0814ac53
--- /dev/null
+++ b/public/js/components/vueDatepicker.js.php
@@ -0,0 +1,12 @@
+ 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/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..dc59b57a0
--- /dev/null
+++ b/rdf/AntragAbmeldung.xml.php
@@ -0,0 +1,69 @@
+db_add_param($id) . "
+ AND campus.tbl_studierendenantrag.typ = 'Abmeldung' AND campus.get_status_studierendenantrag(campus.tbl_studierendenantrag.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 campus.tbl_studierendenantrag.prestudent_id in (" . $db->db_implode4SQL($prestudent_id) . ")
+ AND campus.tbl_studierendenantrag.typ = 'Abmeldung' AND campus.get_status_studierendenantrag(campus.tbl_studierendenantrag.studierendenantrag_id) = 'Genehmigt';";
+ $not_found_error = 'Studierendenantrag not found for: ' . implode(',', $uid);
+ } else
+ die('wrong parameters ');
+}
+else
+ die('Format not supported ');
+
+
+$query = "
+ SELECT tbl_studiengang.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, studiensemester_kurzbz, vorname, nachname, studiengang_kz, public.get_absem_prestudent(prestudent_id, NULL) AS semester, tbl_studierendenantrag.grund
+ FROM
+ campus.tbl_studierendenantrag
+ 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 USING (studiengang_kz)
+ JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
+ JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = tbl_studiengang.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..55d940457
--- /dev/null
+++ b/rdf/AntragAbmeldungStgl.xml.php
@@ -0,0 +1,68 @@
+db_add_param($id) . "
+ AND campus.tbl_studierendenantrag.typ = 'AbmeldungStgl' AND campus.get_status_studierendenantrag(campus.tbl_studierendenantrag.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 campus.tbl_studierendenantrag.prestudent_id in (" . $db->db_implode4SQL($prestudent_id) . ")
+ AND campus.tbl_studierendenantrag.typ = 'AbmeldungStgl' AND campus.get_status_studierendenantrag(campus.tbl_studierendenantrag.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 tbl_studiengang.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, studiensemester_kurzbz, vorname, nachname, studiengang_kz, public.get_absem_prestudent(prestudent_id, NULL) AS semester, tbl_studierendenantrag.grund
+ FROM
+ campus.tbl_studierendenantrag
+ 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 USING (studiengang_kz)
+ JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
+ JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = tbl_studiengang.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..6945f66ef
--- /dev/null
+++ b/rdf/AntragUnterbrechung.xml.php
@@ -0,0 +1,73 @@
+db_add_param($id) . "
+ AND campus.tbl_studierendenantrag.typ = 'Unterbrechung' AND campus.get_status_studierendenantrag(campus.tbl_studierendenantrag.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 campus.tbl_studierendenantrag.prestudent_id in (" . $db->db_implode4SQL($prestudent_id) . ")
+ AND campus.tbl_studierendenantrag.typ = 'Unterbrechung' AND campus.get_status_studierendenantrag(campus.tbl_studierendenantrag.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 tbl_studiengang.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, vorname, nachname, studiengang_kz, public.get_absem_prestudent(prestudent_id, NULL) AS semester, tbl_studierendenantrag.grund, datum_wiedereinstieg, datum
+ FROM
+ campus.tbl_studierendenantrag
+ 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 USING (studiengang_kz)
+ JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
+ JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = tbl_studiengang.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/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 20956d279..19affa245 100644
--- a/rdf/lehrverbandsgruppe.rdf.php
+++ b/rdf/lehrverbandsgruppe.rdf.php
@@ -290,6 +290,24 @@ function draw_orgformsubmenu($stg_kz, $orgform)
bewerber
+
+
+ Nicht zum Reihungstest angemeldet
+
+
+ studiensemester_kurzbz.']]>
+ bewerberrtnichtangemeldet
+
+
+
+
+ Reihungstest angemeldet
+
+
+ studiensemester_kurzbz.']]>
+ bewerberrtangemeldet
+
+
Aufgenommen
@@ -344,8 +362,14 @@ function draw_orgformsubmenu($stg_kz, $orgform)
$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\tstudiensemester_kurzbz/bewerber/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/aufgenommen\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\tstudiensemester_kurzbz/warteliste\" />\n";
$orgform_sequence[$stg_kz].= "\t\t\tstudiensemester_kurzbz/absage\" />\n";
@@ -624,6 +648,22 @@ while ($row=$dbo->db_fetch_object())
+
+
+ ]]>
+ studiengang_kz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+
+
+
+
+
+ ]]>
+ studiengang_kz; ?>]]>
+ studiensemester_kurzbz; ?>]]>
+
+
+
]]>
@@ -832,8 +872,14 @@ draw_orgformpart($stg_kz);
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\tstudiensemester_kurzbz/bewerber/reihungstestangemeldet\" />\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/student.rdf.php b/rdf/student.rdf.php
index 11e841c2b..1625f161c 100644
--- a/rdf/student.rdf.php
+++ b/rdf/student.rdf.php
@@ -737,7 +737,7 @@ if($xmlformat=='rdf')
}
elseif(in_array($typ, array('prestudent', 'interessenten', 'bewerber', 'aufgenommen',
'warteliste', 'absage', 'zgv', 'reihungstestangemeldet', 'reihungstestnichtangemeldet', 'absolvent',
- 'diplomand', 'bewerbungnichtabgeschickt', 'bewerbungabgeschickt', 'statusbestaetigt', 'statusbestaetigtrtnichtangemeldet', 'statusbestaetigtrtangemeldet')))
+ 'diplomand', 'bewerbungnichtabgeschickt', 'bewerbungabgeschickt', 'statusbestaetigt', 'statusbestaetigtrtnichtangemeldet', 'statusbestaetigtrtangemeldet', 'bewerberrtangemeldet', 'bewerberrtnichtangemeldet')))
{
$prestd = new prestudent();
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.4.php b/system/dbupdate_3.4.php
index ed60aeddf..458f178d4 100644
--- a/system/dbupdate_3.4.php
+++ b/system/dbupdate_3.4.php
@@ -27,6 +27,7 @@ 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');
@@ -39,7 +40,12 @@ 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');
+
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo 'Pruefe Tabellen und Attribute! ';
@@ -150,7 +156,7 @@ $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"),
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/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/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/filtersupdate.php b/system/filtersupdate.php
index 241e44f2f..cc9abfb98 100644
--- a/system/filtersupdate.php
+++ b/system/filtersupdate.php
@@ -520,7 +520,29 @@ $filters = array(
{"name": "Studiengang"},
{"name": "AbgewiesenAm"},
{"name": "Nachricht"},
- {"name": "Kaution"}
+ {"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": []
}
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index 28735e07f..0a8407ad7 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -5774,6 +5774,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',
@@ -10909,6 +10929,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',
@@ -13745,6 +13937,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',
@@ -14446,6 +14658,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',
@@ -18143,6 +18375,3373 @@ array(
)
)
),
+ 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): \nNichterfüllung finanzieller Verpflichtungen trotz Mahnung (Studienbeitrag)',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason for exclusion according to the training contract (point 7.4): \nFailure 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): \nmehrmalig unentschuldigtes Verletzen der Anwesenheitspflicht',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason for exclusion according to the training contract (point 7.4): \nmultiple 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): \nwiederholtes 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): \nrepeated 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): \nPlagiieren 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): \nPlagiarism 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): \nnicht 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): \ninsufficient 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): \nNichtantritt 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): \nFailure 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' => '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_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/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/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/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/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/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php
index e5975b651..e52235fda 100644
--- a/vilesci/stammdaten/auswertung_fhtw.php
+++ b/vilesci/stammdaten/auswertung_fhtw.php
@@ -490,22 +490,67 @@ if ($rtprueflingEntSperren)
exit();
}
- if (isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id'])
+ if (isset($_POST['person_id']) && is_numeric($_POST['person_id'])
&& isset($_POST['art']))
{
- $qry = "UPDATE testtool.tbl_pruefling SET gesperrt =" . $db->db_add_param($_POST['art'], 'BOOLEAN') . "
- WHERE prestudent_id IN
- (SELECT prestudent_id FROM public.tbl_prestudent ps
- JOIN public.tbl_person tp ON tp.person_id = ps.person_id
- WHERE tp.person_id = (SELECT person_id FROM public.tbl_prestudent sps WHERE sps.prestudent_id = " . $db->db_add_param($_POST['prestudent_id']) . "));";
+ $qry = "SELECT pruefling_id
+ FROM testtool.tbl_pruefling
+ WHERE prestudent_id IN (
+ SELECT prestudent_id
+ FROM public.tbl_prestudent
+ WHERE person_id = ". $db->db_add_param($_POST['person_id']) . "
+ )";
if ($result = $db->db_query($qry))
{
- $msg = $_POST['art'] === 'false' ? 'Pruefling wurde gesperrt' : 'Pruefling wurde freigeschaltet';
- echo json_encode(array(
- 'status' => 'ok',
- 'msg' => $msg));
- exit();
+ if ($db->db_num_rows($result) === 0)
+ {
+ $ps = new prestudent();
+ $ps->getPrestudenten($_POST['person_id']);
+
+ $prestudent = new prestudent($ps->result[0]->prestudent_id);
+ $prestudent->getLastStatus($prestudent->prestudent_id);
+
+ $pruefling = new pruefling();
+ $pruefling->new = true;
+ $pruefling->studiengang_kz = $prestudent->studiengang_kz;
+ $pruefling->registriert = date('Y-m-d H:i:s');
+ $pruefling->semester = $prestudent->ausbildungssemester;
+ $pruefling->prestudent_id = $prestudent->prestudent_id;
+ $pruefling->gesperrt = true;
+
+ $resultSperre = $pruefling->save();
+ }
+ else
+ {
+ $pruefling_ids = array();
+
+ while ($row = $db->db_fetch_object($result))
+ $pruefling_ids[] = $row->pruefling_id;
+
+ $qry = "UPDATE testtool.tbl_pruefling
+ SET gesperrt =" . $db->db_add_param($_POST['art'], 'BOOLEAN') . "
+ WHERE pruefling_id IN (" . $db->db_implode4SQL($pruefling_ids) . ")";
+
+ $resultSperre = $db->db_query($qry);
+ }
+
+ if ($resultSperre)
+ {
+ $msg = $_POST['art'] === 'false' ? 'Pruefling wurde gesperrt' : 'Pruefling wurde freigeschaltet';
+ echo json_encode(array(
+ 'status' => 'ok',
+ 'msg' => $msg));
+ exit();
+ }
+ else
+ {
+ echo json_encode(array(
+ 'status' => 'fehler',
+ 'msg' => 'Fehler beim speichern der Daten'
+ ));
+ exit();
+ }
}
else
{
@@ -1248,6 +1293,7 @@ $semester = isset($_REQUEST['semester']) ? $_REQUEST['semester'] : '';
$prestudent_id = isset($_REQUEST['prestudent_id']) ? $_REQUEST['prestudent_id'] : '';
$orgform_kurzbz = isset($_REQUEST['orgform_kurzbz']) ? $_REQUEST['orgform_kurzbz'] : '';
$format = (isset($_REQUEST['format']) ? $_REQUEST['format'] : '');
+$stgtyp = (isset($_REQUEST['stgtyp']) ? $_REQUEST['stgtyp'] : '');
$rtStudiensemester = '';
if ($reihungstest != '' && (is_array($reihungstest) || is_numeric($reihungstest)))
@@ -1418,7 +1464,12 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
ORDER BY studienplan_id DESC LIMIT 1)
OR tbl_ablauf.studienplan_id IS NULL)";
}
- //$query .= " AND nachname='Al-Mafrachi'";
+
+ if ($stgtyp !== '')
+ {
+ $query .= " AND tbl_studiengang.typ = " .$db->db_add_param($stgtyp);
+ }
+
$query .= " ORDER BY tbl_ablauf.studiengang_kz, tbl_ablauf.semester, reihung";
if (!($result = $db->db_query($query)))
@@ -1638,18 +1689,23 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
//$query .= " AND tbl_ablauf.studienplan_id = 5";
$query .= " AND tbl_studienplan.orgform_kurzbz=" . $db->db_add_param($orgform_kurzbz);
}
+
+ if ($stgtyp !== '')
+ {
+ $query .= " AND tbl_studiengang.typ = " . $db->db_add_param($stgtyp);
+ }
+
//$query .= " AND nachname='Al-Mafrachi'";
$query .= " ORDER BY nachname,
vorname,
- person_id
- ";/*print_r($query);*/
- //echo '', var_dump($query), ' ';
+ person_id";
if (!($result = $db->db_query($query)))
{
die($db->db_last_error());
}
$gebiete_arr = array();
+ $gesperrt_arr = array();
while ($row = $db->db_fetch_object($result))
{
// Hack für BEW-BB, wenn auch BEW-DL-Ergebnisse vorliegen
@@ -1666,7 +1722,10 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
$ergebnis[$row->prestudent_id] = new stdClass();
$gebiete_arr[$row->prestudent_id] = array();
}
-
+
+ if (!isset($gesperrt_arr[$row->person_id]))
+ $gesperrt_arr[$row->person_id] = new stdClass();
+
$ergebnis[$row->prestudent_id]->prestudent_id = $row->prestudent_id;
$ergebnis[$row->prestudent_id]->person_id = $row->person_id;
$ergebnis[$row->prestudent_id]->reihungstest_id = $row->reihungstest_id;
@@ -1678,7 +1737,6 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
$ergebnis[$row->prestudent_id]->geschlecht = $row->geschlecht;
$ergebnis[$row->prestudent_id]->idnachweis = $row->idnachweis;
$ergebnis[$row->prestudent_id]->registriert = $row->registriert;
- $ergebnis[$row->prestudent_id]->gesperrt = $row->gesperrt;
$ergebnis[$row->prestudent_id]->stg_kurzbz = $row->stg_kurzbz;
$ergebnis[$row->prestudent_id]->stg_bez = $row->stg_bez;
$ergebnis[$row->prestudent_id]->ausbildungssemester = $row->ausbildungssemester;
@@ -1690,6 +1748,13 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
$ergebnis[$row->prestudent_id]->teilgenommen = $db->db_parse_bool($row->teilgenommen);
$ergebnis[$row->prestudent_id]->qualifikationskurs = $db->db_parse_bool($row->qualifikationskurs);
$ergebnis[$row->prestudent_id]->letzter_status = $row->letzter_status;
+ $ergebnis[$row->prestudent_id]->gesperrt = $row->gesperrt;
+
+ $gesperrt = $db->db_parse_bool($row->gesperrt);
+ if (!isset($gesperrt_arr[$row->person_id]->gesperrt) || ($gesperrt_arr[$row->person_id]->gesperrt !== true && $gesperrt === true))
+ {
+ $gesperrt_arr[$row->person_id]->gesperrt = $gesperrt;
+ }
if (!isset($ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]))
{
@@ -2440,7 +2505,7 @@ else
});
}
}
- function prueflingEntSperren(prestudent_id, name, art)
+ function prueflingEntSperren(person_id, name, art)
{
if (art === true)
var text = "sperren";
@@ -2450,7 +2515,7 @@ else
if (confirm("Wollen Sie den Studenten "+ name + " wirklich " + text + "?"))
{
data = {
- prestudent_id: prestudent_id,
+ person_id: person_id,
art: art,
rtprueflingEntSperren: true
};
@@ -2464,21 +2529,31 @@ else
{
if(data.status !== "ok")
{
- $("#msgbox").attr("class","alert alert-danger");
- $("#msgbox").show();
- $("#msgbox").html(data["msg"]);
+ if (data.status === "warning")
+ {
+ $("#msgbox").attr("class","alert alert-warning");
+ $("#msgbox").show();
+ $("#msgbox").html(data["msg"]);
+ $("#msgbox").html(data["msg"]).delay(2000).fadeOut();
+ }
+ else
+ {
+ $("#msgbox").attr("class","alert alert-danger");
+ $("#msgbox").show();
+ $("#msgbox").html(data["msg"]);
+ }
}
else
{
if (art === true)
{
- $("#prueflingentsperren_" + prestudent_id).removeClass("hidden");
- $("#prueflingsperren_" + prestudent_id).addClass("hidden");
+ $(".prueflingentsperren_" + person_id).removeClass("hidden");
+ $(".prueflingsperren_" + person_id).addClass("hidden");
}
else if (art === false)
{
- $("#prueflingsperren_" + prestudent_id).removeClass("hidden");
- $("#prueflingentsperren_" + prestudent_id).addClass("hidden");
+ $(".prueflingsperren_" + person_id).removeClass("hidden");
+ $(".prueflingentsperren_" + person_id).addClass("hidden");
}
}
},
@@ -3019,6 +3094,20 @@ else
echo ' von Datum: ';
echo 'bis Datum: ';
+
+ $studiengangtyp = ['b' => 'Bachelor', 'm' => 'Master'];
+ echo ' Studiengang Typ:
+
+ Alle ';
+ foreach ($studiengangtyp as $key => $typ)
+ {
+ $selected = "";
+ if (isset($_REQUEST['stgtyp']) && $_REQUEST['stgtyp'] !== '' && $_REQUEST['stgtyp'] === $key)
+ $selected = 'selected';
+
+ echo ''. $typ . ' ';
+ }
+ echo ' ';
echo '';
echo '';
echo 'PrestudentIn: ';
@@ -3032,6 +3121,7 @@ else
&prestudent_id=' . $prestudent_id . '
&' . http_build_query(array('reihungstest' => $reihungstest)) . '
&orgform_kurzbz=' . $orgform_kurzbz . '
+ &stgtyp=' . $stgtyp . '
&format=xls"
class="btn btn-primary"
role="button">
@@ -3293,10 +3383,10 @@ else
echo "
-
+
-
+
";
diff --git a/vilesci/stammdaten/reihungstest_administration.php b/vilesci/stammdaten/reihungstest_administration.php
index 3f3ec6e83..3b59e1961 100644
--- a/vilesci/stammdaten/reihungstest_administration.php
+++ b/vilesci/stammdaten/reihungstest_administration.php
@@ -783,7 +783,9 @@ $qry="SELECT
studiengang_kz,
reihung,
gebiet_id,
- tbl_gebiet.bezeichnung,
+ gb.bezeichnung,
+ gb.bezeichnung_mehrsprachig[1] as bezeichnung_de,
+ gb.bezeichnung_mehrsprachig[2] as bezeichnung_en,
zeit,
multipleresponse,
maxfragen,
@@ -794,17 +796,19 @@ $qry="SELECT
level_sprung_ab,
levelgleichverteilung,
maxpunkte,
+ offsetpunkte,
antwortenprozeile,
(SELECT SUM (zeit) AS sum FROM testtool.tbl_gebiet JOIN testtool.tbl_ablauf USING (gebiet_id) WHERE studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($semester!='')
$qry.=" AND semester=".$db->db_add_param($semester, FHC_INTEGER);
$qry.=" ) AS gesamtzeit,
+ (SELECT count(*) FROM testtool.tbl_frage WHERE gebiet_id=gb.gebiet_id AND demo=false) AS anz_fragen,
(SELECT SUM (zeit) AS sum FROM testtool.tbl_gebiet JOIN testtool.tbl_ablauf USING (gebiet_id) WHERE studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($semester!='')
$qry.=" AND semester=".$db->db_add_param($semester, FHC_INTEGER);
$qry.=" )-'00:40:00'::time without time zone AS gesamtzeit_persoenlichkeit
FROM testtool.tbl_ablauf
- JOIN testtool.tbl_gebiet USING (gebiet_id)
+ JOIN testtool.tbl_gebiet gb USING (gebiet_id)
JOIN public.tbl_studiengang USING (studiengang_kz)
WHERE studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($semester!='')
@@ -827,9 +831,11 @@ if ($studiengang_kz!=1 && $num_rows!=0)
KZ
NR
Gebiet_id
- Bezeichnung
+ Bezeichnung DE
+ Bezeichnung EN
Zeit
MR
+ Summe Fragen
Maxfragen
ZFF
ZFV
@@ -838,6 +844,7 @@ if ($studiengang_kz!=1 && $num_rows!=0)
Level ab
LGV
Maxpunkte
+ Offset
AWPZ
\n";
echo " ";
echo " ";
@@ -850,7 +857,8 @@ if ($studiengang_kz!=1 && $num_rows!=0)
$row->studiengang_kz
$row->reihung
$row->gebiet_id
- $row->bezeichnung ";
+ $row->bezeichnung_de
+ $row->bezeichnung_en ";
if ($row->gebiet_id==7)
{
echo "00:20:00* ";
@@ -861,15 +869,17 @@ if ($studiengang_kz!=1 && $num_rows!=0)
{
echo "$row->zeit ";
}
- echo "
+ echo "".($row->multipleresponse=='t'?'Ja':'Nein')."
+ $row->anz_fragen
$row->maxfragen
-
-
+ ".($row->zufallfrage=='t'?'Ja':'Nein')."
+ ".($row->zufallvorschlag=='t'?'Ja':'Nein')."
$row->level_start
$row->level_sprung_auf
$row->level_sprung_ab
-
+ ".($row->levelgleichverteilung=='t'?'Ja':'Nein')."
$row->maxpunkte
+ ".number_format((intval(($row->offsetpunkte*100))/100),2,',','.')."
$row->antwortenprozeile ";
echo "\n";
}
@@ -881,6 +891,7 @@ if ($studiengang_kz!=1 && $num_rows!=0)
echo " ";
echo " ";
echo " ";
+ echo " ";
echo "Gesamt ";
echo "".$gesamtzeit." ";
echo " ";
@@ -893,6 +904,8 @@ if ($studiengang_kz!=1 && $num_rows!=0)
echo " ";
echo " ";
echo " ";
+ echo " ";
+ echo " ";
echo "\n";
echo "
";
}