Compare commits

...

18 Commits

Author SHA1 Message Date
Cris 06ed2e23aa Merge branch 'master' into feature-40319/SWB_Software-und-Lizenzanforderung
# Conflicts:
#	system/phrasesupdate.php
2024-09-04 14:47:20 +02:00
Cris e4fc0660f8 Added getTemplateLvTree method to Lehrveranstaltung_model.php
This method gets all Templates and unions with all Lehrveranstaltungen of given Studiensemester and Oes, that are assigned to
a template. This data structure can be used for nested tabulator data tree.
2024-08-14 11:14:20 +02:00
Cris 7abe95ba5f Adapted LvsByStudienplan query to retrieve also Lehreinheitgruppen 2024-08-06 10:48:20 +02:00
Cris b0821be465 Added methods getLastOrAktStudienjahr / getAktOrNextStudienjahr to retrieve the last or next Studienjahr during the summer term 2024-08-05 10:52:15 +02:00
Cris 9bec0c61de Merge branch 'master' into feature-40319/SWB_Software-und-Lizenzanforderung
# Conflicts:
#	system/phrasesupdate.php
2024-08-01 13:55:51 +02:00
Cris 3213c051b3 Adapted getLvsByStudienplan query to get by given Lehrveranstaltungen 2024-08-01 13:48:06 +02:00
Cris 085ca2a16d Adapted getLvsByStudienplan query to get all LVs, not only VZ 2024-07-31 11:44:42 +02:00
Cris 6f216dbe52 Added phrases to Softwarebereitstellung 2024-07-30 15:38:36 +02:00
Cris 49bd14496a Adapted db query to get Lehrveranstaltungen via Studienplan instead of Lehreinheit 2024-07-30 15:38:02 +02:00
Cris 414a0d7d6e Changed filter SoftwareManagement to display column anzahl_lizenzen 2024-07-30 15:36:16 +02:00
Cris 0df9385f33 Adapted DB query to filter only Lehrveranstaltungen with lehrtyp_kurzbz 'lv' 2024-07-22 12:02:08 +02:00
Cris ce7b368a8e Adapted lv.orgform_kurzbz to selects in Lehrveranstaltung_model.php 2024-07-11 14:33:38 +02:00
Cris eead73f10c Added phrases for core and softwarebereitstellung to phrasesupdate.php 2024-07-10 14:44:01 +02:00
Cris 4d48dfe018 Added method getLvsByStudiensemesterAndOes to Lehrveranstaltung_model.php
getLvsByStudiensemesterAndOes: Gets Lehrveranstaltungen with its Stg, OE and OE-type and filters by Studiensemester and Organisationseinheiten if necessary.
2024-07-08 12:26:41 +02:00
Cris 4e053a4769 Updated phrases: Added phrases for Softwareanforderung in category Softwarebereitstellung 2024-07-08 12:24:44 +02:00
Cris 7f32cca476 Merge branch 'master' into feature-40319/SWB_Software-und-Lizenzanforderung 2024-06-26 11:54:51 +02:00
Cris 580f063efe Updated phrases: Added phrases for Softwareanforderung in category Softwarebereitstellung 2024-06-26 10:48:59 +02:00
Cris 3a16c4ebf3 Added method getAutocompleteSuggestions to Lehrveranstaltung_model.php
Get Lehrveranstaltungen by eventQuery string. Use with autocomplete event queries.
2024-06-26 10:45:56 +02:00
4 changed files with 722 additions and 0 deletions
@@ -15,6 +15,297 @@ class Lehrveranstaltung_model extends DB_Model
$this->load->model('organisation/studiensemester_model', 'StudiensemesterModel');
}
/**
* Get Lehrveranstaltungen by eventQuery string. Use with autocomplete event queries.
* @param $eventQuery String
* @param string $studiensemester_kurzbz Filter by Studiensemester
* @param array $oes Filter by Organisationseinheiten
* @return array
*/
public function getAutocompleteSuggestions($eventQuery, $studiensemester_kurzbz = null, $oes = null)
{
$subQry = $this->_getQryLvsByStudienplan($studiensemester_kurzbz, $oes);
$params = [];
/* filter by input string */
if (is_string($eventQuery)) {
$subQry.= ' AND lv.bezeichnung ILIKE ?';
$params[] = '%' . $eventQuery . '%';
}
$qry = 'SELECT DISTINCT ON (lehrveranstaltung_id) * FROM ('. $subQry. ') AS tmp';
return $this->execQuery($qry, $params);
}
/**
* Get Lehrveranstaltungen with its Stg, OE and OE-type.
* Filter by Studiensemester and Organisationseinheiten if necessary.
* @param $eventQuery String
* @param string $studiensemester_kurzbz Filter by Studiensemester
* @param array $oes Filter by Organisationseinheiten
* @param array $lv_ids Filter by Lehrveranstaltung-Ids
* @return array
*/
public function getLvsByStudienplan($studiensemester_kurzbz = null, $oes = null, $lv_ids = null)
{
$subQry = $this->_getQryLvsByStudienplan($studiensemester_kurzbz, $oes);
$qry = 'SELECT * FROM ('. $subQry. ') AS tmp';
if (isset($lv_ids) && is_array($lv_ids))
{
/* filter by lv_ids */
$implodedLvIds = "'". implode("', '", $lv_ids). "'";
$qry.= ' WHERE lehrveranstaltung_id IN ('. $implodedLvIds. ')';
}
$qry.= ' ORDER BY stg_typ_kurzbz, orgform_kurzbz DESC';
return $this->execQuery($qry);
}
/**
* Get basic query to retrieve Lehrveranstaltungen according to the Orgforms and Ausbildungssemesters actual Studienplan.
*
* @return string
*/
private function _getQryLvsByStudienplan($studiensemester_kurzbz = null, $oes = null, $lehrtyp_kurzbz = 'lv')
{
$qry = '
SELECT
lv.oe_kurzbz AS lv_oe_kurzbz,
CASE
WHEN oe.organisationseinheittyp_kurzbz = \'Kompetenzfeld\' THEN (\'KF \' || oe.bezeichnung)
WHEN oe.organisationseinheittyp_kurzbz = \'Department\' THEN (\'DEP \' || oe.bezeichnung)
ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung)
END AS lv_oe_bezeichnung,
stplsem.studiensemester_kurzbz,
studienordnung_id,
sto.studiengang_kz,
stpl.studienplan_id,
stplsem.semester,
stpl.orgform_kurzbz,
upper(stg.typ || stg.kurzbz) AS stg_typ_kurzbz,
stg.bezeichnung AS stg_bezeichnung,
stgtyp.bezeichnung AS stg_typ_bezeichnung,
lv.lehrveranstaltung_id,
lv.semester,
lv.bezeichnung AS lv_bezeichnung,
(
-- comma seperated string of all lehreinheitgruppen
SELECT string_agg(bezeichnung, \', \') AS lehreinheitgruppe_bezeichnung
FROM(
-- distinct bezeichnung, as may come multiple times from different lehreinheiten
SELECT DISTINCT ON (studiengang_kz, bezeichnung) studiengang_kz, bezeichnung FROM
(
-- distinct lehreinheitgruppe, as may come multiple times from different lehrform
SELECT DISTINCT ON (legr.lehreinheitgruppe_id) legr.studiengang_kz,
-- get Spezialgruppe or Lehrverbandgruppe
COALESCE(
legr.gruppe_kurzbz,
CONCAT( UPPER(stg1.typ), UPPER(stg1.kurzbz), \'-\', legr.semester, legr.verband, legr.gruppe )
) as bezeichnung
FROM lehre.tbl_lehreinheitgruppe legr
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung lv1 USING (lehrveranstaltung_id)
JOIN public.tbl_studiengang stg1 ON stg1.studiengang_kz = legr.studiengang_kz
WHERE lv1.lehrveranstaltung_id = lv.lehrveranstaltung_id
AND le.studiensemester_kurzbz = stplsem.studiensemester_kurzbz
) AS lehreinheitgruppen
GROUP BY studiengang_kz, bezeichnung
ORDER BY studiengang_kz DESC
) AS uniqueLehreinheitgruppen_bezeichnung
) AS lehreinheitgruppen_bezeichnung
FROM
lehre.tbl_studienplan stpl
JOIN lehre.tbl_studienordnung sto USING (studienordnung_id)
JOIN lehre.tbl_studienplan_semester stplsem USING (studienplan_id)
JOIN lehre.tbl_studienplan_lehrveranstaltung stpllv ON (stpllv.studienplan_id = stpl.studienplan_id AND stpllv.semester = stplsem.semester)
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
JOIN public.tbl_organisationseinheit oe USING (oe_kurzbz)
JOIN public.tbl_studiengang stg ON stg.studiengang_kz = sto.studiengang_kz
JOIN public.tbl_studiengangstyp stgtyp ON stgtyp.typ = stg.typ
/* filter by lehrtyp_kurzbz, default is lvs only */
WHERE
lehrtyp_kurzbz = '. $this->db->escape($lehrtyp_kurzbz);
if (isset($studiensemester_kurzbz) && is_string($studiensemester_kurzbz))
{
/* filter by studiensemester */
$qry.= ' AND stplsem.studiensemester_kurzbz = '. $this->db->escape($studiensemester_kurzbz);
}
if (isset($oes) && is_array($oes))
{
/* filter by organisationseinheit */
$implodedOes = "'". implode("', '", $oes). "'";
$qry.= ' AND lv.oe_kurzbz IN ('. $implodedOes. ')';
}
return $qry;
}
/**
* Get all Templates and union with all Lehrveranstaltungen of given Studiensemester and Oes, that are assigned to
* a template. This data structure can be used for nested tabulator data tree.
*
* @param null|string $studiensemester_kurzbz
* @param null|array $oes
* @return array|stdClass|null
*/
public function getTemplateLvTree($studiensemester_kurzbz = null, $oes = null){
$params = [];
$qry = '
WITH
-- All Lvs that are assigned to a template in given Studiensemester for given Oes
-- joining via actual Studienplan
standardisierteLvs AS (
SELECT
lv.*,
stpl.studienplan_id::text as studienplan_id,
stpl.bezeichnung AS studienplan_bezeichnung,
stplsem.studiensemester_kurzbz
FROM
lehre.tbl_studienplan stpl
JOIN lehre.tbl_studienordnung sto USING (studienordnung_id)
JOIN lehre.tbl_studienplan_semester stplsem USING (studienplan_id)
JOIN lehre.tbl_studienplan_lehrveranstaltung stpllv ON (stpllv.studienplan_id = stpl.studienplan_id AND stpllv.semester = stplsem.semester)
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
JOIN public.tbl_organisationseinheit oe USING (oe_kurzbz)
JOIN public.tbl_studiengang stg ON stg.studiengang_kz = sto.studiengang_kz
JOIN public.tbl_studiengangstyp stgtyp ON stgtyp.typ = stg.typ
WHERE
-- filter type lv
lehrtyp_kurzbz = \'lv\'
-- filter lvs assigned to template (= standardisierte lv)
AND lehrveranstaltung_template_id IS NOT NULL';
if (is_string($studiensemester_kurzbz))
{
/* filter by studiensemester */
$params[]= $studiensemester_kurzbz;
$qry.= ' AND stplsem.studiensemester_kurzbz = ? ';
}
if (is_array($oes))
{
/* filter by organisationseinheit */
$params[]= $oes;
$qry.= ' AND lv.oe_kurzbz IN ? ';
}
$qry.= '
),
-- All templates
templateLvs AS (
SELECT
lv.*,
NULL AS studienplan_id,
(
SELECT string_agg(stpl_bezeichnung, \', \')
FROM
(
SELECT stlv.studienplan_bezeichnung AS stpl_bezeichnung
FROM standardisierteLvs stlv
WHERE stlv.lehrveranstaltung_template_id = lv.lehrveranstaltung_id
) AS studienplaene
) AS studienplan_bezeichnung,
NULL AS studiensemester_kurzbz
FROM
lehre.tbl_lehrveranstaltung lv
WHERE
-- filter type template
lehrtyp_kurzbz = \'tpl\'
-- filter semester that were retrieved by standardisierte lvs semester for selected studiensemester
AND EXISTS (
SELECT 1
FROM standardisierteLvs std
WHERE std.lehrveranstaltung_template_id = lv.lehrveranstaltung_id
)';
if (is_array($oes))
{
/* filter by organisationseinheit */
$params[]= $oes;
$qry.= ' AND lv.oe_kurzbz IN ? ';
}
$qry.= '
)
';
$qry.= '
SELECT
lv.lehrveranstaltung_id,
lv.kurzbz,
lv.lehrtyp_kurzbz,
lv.bezeichnung AS lv_bezeichnung,
lv.bezeichnung_english,
lv.studiengang_kz,
lv.semester,
lv.oe_kurzbz,
lv.ects,
lv.lehrform_kurzbz,
lv.orgform_kurzbz,
lv.sprache,
lv.aktiv,
lv.lehrveranstaltung_template_id,
lv.studienplan_id,
lv.studienplan_bezeichnung,
lv.studiensemester_kurzbz,
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
stg.bezeichnung AS "stg_bezeichnung",
stgtyp.bezeichnung AS "stg_typ_bezeichnung",
CASE
WHEN oe.organisationseinheittyp_kurzbz = \'Kompetenzfeld\' THEN (\'KF \' || oe.bezeichnung)
WHEN oe.organisationseinheittyp_kurzbz = \'Department\' THEN (\'DEP \' || oe.bezeichnung)
ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung)
END AS "lv_oe_bezeichnung",
(
-- comma seperated string of all lehreinheitgruppen
SELECT string_agg(bezeichnung, \', \') AS lehreinheitgruppe_bezeichnung
FROM(
-- distinct bezeichnung, as may come multiple times from different lehreinheiten
SELECT DISTINCT ON (studiengang_kz, bezeichnung) studiengang_kz, bezeichnung FROM
(
-- distinct lehreinheitgruppe, as may come multiple times from different lehrform
SELECT DISTINCT ON (legr.lehreinheitgruppe_id) legr.studiengang_kz,
-- get Spezialgruppe or Lehrverbandgruppe
COALESCE(
legr.gruppe_kurzbz,
CONCAT( UPPER(stg1.typ), UPPER(stg1.kurzbz), \'-\', legr.semester, legr.verband, legr.gruppe )
) as bezeichnung
FROM lehre.tbl_lehreinheitgruppe legr
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung lv1 USING (lehrveranstaltung_id)
JOIN public.tbl_studiengang stg1 ON stg1.studiengang_kz = legr.studiengang_kz
WHERE lv1.lehrveranstaltung_id = lv.lehrveranstaltung_id
AND le.studiensemester_kurzbz = lv.studiensemester_kurzbz
) AS lehreinheitgruppen
GROUP BY studiengang_kz, bezeichnung
ORDER BY studiengang_kz DESC
) AS uniqueLehreinheitgruppen_bezeichnung
) AS lehreinheitgruppen_bezeichnung
FROM (
SELECT
*
FROM
standardisierteLvs
UNION
SELECT
*
FROM templateLvs
) AS lv
JOIN public.tbl_studiengang stg ON stg.studiengang_kz = lv.studiengang_kz
JOIN public.tbl_studiengangstyp stgtyp ON stgtyp.typ = stg.typ
JOIN public.tbl_organisationseinheit oe ON oe.oe_kurzbz = lv.oe_kurzbz
ORDER BY
oe.bezeichnung, lv.semester, lv.bezeichnung
';
return $this->execQuery($qry, $params);
}
/**
* Gets unique Groupstrings for Lehrveranstaltungen, e.g. WS2018_BIF_1_PRJM_VZ_LV12345
* @param string $studiensemester_kurzbz
@@ -29,4 +29,54 @@ class Studienjahr_model extends DB_Model
return $this->execQuery($query);
}
/**
* Get the current Studienjahr. During the summer term, continue using the previous Studienjahr.
*
* @param int $days
* @return array|stdClass|null
*/
public function getLastOrAktStudienjahr($days = 60)
{
if (!is_numeric($days))
{
$days = 60;
}
$query = '
SELECT *
FROM public.tbl_studienjahr
JOIN public.tbl_studiensemester USING (studienjahr_kurzbz)
WHERE start < NOW() - \'' . $days . ' DAYS\'::INTERVAL
ORDER by start DESC
LIMIT 1
';
return $this->execQuery($query);
}
/**
* Get the current Studienjahr. During the summer term, get the upcoming next Studienjahr.
*
* @param int $days
* @return array|stdClass|null
*/
public function getAktOrNextStudienjahr($days = 62)
{
if (!is_numeric($days))
{
$days = 62;
}
$query = '
SELECT *
FROM public.tbl_studienjahr
JOIN public.tbl_studiensemester using(studienjahr_kurzbz)
WHERE start < NOW() + \'' . $days . ' DAYS\'::INTERVAL
ORDER by start DESC
LIMIT 1
';
return $this->execQuery($query);
}
}
+1
View File
@@ -1298,6 +1298,7 @@ $filters = array(
{"name": "os"},
{"name": "lizenzserver_kurzbz"},
{"name": "lizenzserver_port"},
{"name": "anzahl_lizenzen"},
{"name": "softwarestatus_kurzbz"}
],
"filters": []
+380
View File
@@ -28798,6 +28798,386 @@ array(
)
),
// Betriebsmittel end
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'softwareanforderung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Softwareanforderung',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Software Request',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'softwareanforderungSubtitle',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Softwareanforderung und Lizenzmanagement für die Lehre',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Software Request and License management for Education',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'swAnforderungenUndLizenen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Softwareanforderungen & Lizenzen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Software Requirements & Licenses',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'anforderungNachSw',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Anforderung nach Software',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Request by Software',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'anforderungNachLv',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Anforderung nach LV',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Request by Course',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'swNichtGefundenHierBestellen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Software nicht gefunden?<br>Hier bei IT-Services bestellen",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "Software not found?<br>Order here from IT Services",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'bereitsAngefordert',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Bereits angefordert",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "Requested already",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'mindEineZuorndungExistiertBereits',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Mindestens eine Zuordnung existiert bereits.",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "At least one assignment already exists.",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'swFuerLvAnfordern',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Software für LV anfordern",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "Request software for courses",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'swWurdeBereitsAngefordert',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Software wurde bereits angefordert",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "Software has already been requested",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'swAnforderungUeberAuswahlVonSw',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Softwareanforderung über die Auswahl von Software",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "Software Requirements based on the Selection of Software",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'swAnforderungUeberAuswahlVonLvs',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Softwareanforderung über die Auswahl von Lehrveranstaltungen",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "Software Requirements based on the Selection of Courses",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'lizenzAnzahlNeu',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Lizenz-Anzahl NEU",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "License Number NEW",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'lizenzanzahlAendern',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Lizenzanzahl ändern",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "Change Number of Licenses",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'global',
'phrase' => 'eingabeFehlt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Eingabe fehlt",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "Input missing",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'global',
'phrase' => 'unveraendert',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Unverändert",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "Unchanged",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'anforderungenVorruecken',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Anforderungen vorrücken",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "Take over Requirements",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'vorrueckenInStudiensemester',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Vorrücken in Studiensemester",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "Take over to semester",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'softwarebereitstellung',
'category' => 'global',
'phrase' => 'anteiligInProzent',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Anteilig in %",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "Percentage share",
'description' => '',
'insertvon' => 'system'
)
)
),
//**************************** CORE/konto
array(
'app' => 'core',