mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-22 09:22:22 +00:00
Ferien: added to vilesci menu, made oe_kurzbz optional, added default ferientypen, made studiengang_kz column deprecated
This commit is contained in:
@@ -119,6 +119,15 @@ $config['navigation_header'] = array(
|
||||
'requiredPermissions' => array(
|
||||
'lehre/zgvpruefung:r'
|
||||
)
|
||||
),
|
||||
'ferien' => array(
|
||||
'link' => site_url('lehre/Ferienverwaltung'),
|
||||
'description' => 'Ferienverwaltung',
|
||||
'expand' => true,
|
||||
'sort' => 55,
|
||||
'requiredPermissions' => array(
|
||||
'basis/ferien:r'
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
@@ -67,8 +67,6 @@ class Ferien extends FHCAPI_Controller
|
||||
*/
|
||||
public function getFerien()
|
||||
{
|
||||
// TODO check input
|
||||
|
||||
$filterVonDatum = $this->input->get('filterVonDatum');
|
||||
$filterBisDatum = $this->input->get('filterBisDatum');
|
||||
|
||||
@@ -337,12 +335,10 @@ class Ferien extends FHCAPI_Controller
|
||||
$this->form_validation->set_rules('vondatum', 'Von Datum', 'required|is_valid_date');
|
||||
$this->form_validation->set_rules('bisdatum', 'Bis Datum', 'required|is_valid_date');
|
||||
$this->form_validation->set_rules('bezeichnung', 'Bezeichnung', 'required|max_length[128]');
|
||||
$this->form_validation->set_rules('oe_kurzbz', 'Organisationseinheit', 'required|max_length[32]');
|
||||
$this->form_validation->set_rules('oe_kurzbz', 'Organisationseinheit', 'max_length[32]');
|
||||
$this->form_validation->set_rules('studienplan_id', 'Studienplan', 'numeric');
|
||||
$this->form_validation->set_rules('ferientyp_kurzbz', 'Ferientyp', 'max_length[64]');
|
||||
|
||||
//Events::trigger('konto_insert_validation', $this->form_validation);
|
||||
|
||||
if (!$this->form_validation->run())
|
||||
$this->terminateWithValidationErrors($this->form_validation->error_array());
|
||||
}
|
||||
|
||||
@@ -43,24 +43,18 @@ class Ferien_model extends DB_Model
|
||||
|
||||
$parents = array_column(getData($result), 'oe_kurzbz');
|
||||
|
||||
// get ferien - use oe_kurzbz, if "old" ferien without oe, use studiengang
|
||||
// get ferien - use oe_kurzbz
|
||||
$qry = "
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
lehre.tbl_ferien
|
||||
WHERE
|
||||
(bisdatum >= ? AND vondatum < ?)
|
||||
AND (CASE
|
||||
WHEN oe_kurzbz IS NOT NULL
|
||||
THEN oe_kurzbz IN ?
|
||||
ELSE
|
||||
studiengang_kz=0
|
||||
OR studiengang_kz=?
|
||||
END)
|
||||
bisdatum >= ? AND vondatum < ?
|
||||
AND (oe_kurzbz IS NULL OR oe_kurzbz IN ?)
|
||||
ORDER BY
|
||||
vondatum";
|
||||
|
||||
return $this->execReadOnlyQuery($qry, [$vondatum, $bisdatum, $parents, $studiengang_kz]);
|
||||
return $this->execReadOnlyQuery($qry, [$vondatum, $bisdatum, $parents]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,14 +17,11 @@
|
||||
$this->load->view('templates/FHC-Header', $includesArray);
|
||||
?>
|
||||
|
||||
<div id="main">
|
||||
|
||||
<div id="content">
|
||||
<div>
|
||||
<ferienverwaltung></ferienverwaltung>
|
||||
</div>
|
||||
</div>
|
||||
<div id="main">
|
||||
<div>
|
||||
<ferienverwaltung></ferienverwaltung>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer', $includesArray); ?>
|
||||
|
||||
|
||||
@@ -103,13 +103,8 @@ class ferien extends basis_db
|
||||
FROM
|
||||
lehre.tbl_ferien
|
||||
WHERE
|
||||
(CASE
|
||||
WHEN oe_kurzbz IS NOT NULL
|
||||
THEN oe_kurzbz IN (".$this->implode4SQL($parents).")
|
||||
ELSE
|
||||
studiengang_kz=0
|
||||
OR studiengang_kz=".$this->db_add_param($stg_kz, FHC_INTEGER)."
|
||||
END)
|
||||
oe_kurzbz IS NULL
|
||||
OR oe_kurzbz IN (".$this->implode4SQL($parents).")
|
||||
ORDER BY
|
||||
vondatum";
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import {CoreFilterCmpt} from "../filter/Filter.js";
|
||||
import {CoreNavigationCmpt} from "../navigation/Navigation.js";
|
||||
import FormInput from "../Form/Input.js";
|
||||
import FerienModal from "./Modal.js";
|
||||
|
||||
@@ -8,6 +9,7 @@ export default {
|
||||
name: "Ferienverwaltung",
|
||||
components: {
|
||||
CoreFilterCmpt,
|
||||
CoreNavigationCmpt,
|
||||
FormInput,
|
||||
FerienModal
|
||||
},
|
||||
@@ -16,6 +18,8 @@ export default {
|
||||
filterVonDatum: null,
|
||||
filterBisDatum: null,
|
||||
loading: false,
|
||||
sideMenuEntries: {},
|
||||
headerMenuEntries: {},
|
||||
tabulatorOptions: {
|
||||
ajaxURL: 'dummy',
|
||||
ajaxRequestFunc: () => this.$api.call(
|
||||
@@ -223,6 +227,13 @@ export default {
|
||||
});
|
||||
},
|
||||
template: `
|
||||
|
||||
<core-navigation-cmpt
|
||||
v-bind:add-side-menu-entries="sideMenuEntries"
|
||||
v-bind:add-header-menu-entries="headerMenuEntries"
|
||||
>
|
||||
</core-navigation-cmpt>
|
||||
|
||||
<div class="h-100 d-flex flex-column">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-5">
|
||||
|
||||
@@ -147,6 +147,7 @@ export default {
|
||||
:label="$p.t('ferien/organisationseinheit')"
|
||||
@change="getStudienplaene"
|
||||
>
|
||||
<option :value="null">-- {{ $p.t('ui/alle') }} --</option>
|
||||
<option v-for="oe in oeList" :key="oe.oe_kurzbz" :value="oe.oe_kurzbz">
|
||||
{{ oe.organisationseinheittyp_kurzbz + ' ' + oe.bezeichnung }}
|
||||
</option>
|
||||
|
||||
@@ -120,6 +120,7 @@ if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname =
|
||||
}
|
||||
}
|
||||
|
||||
// add new fields to tbl_ferien, migrate data (add oe_kurzbz data), mark studiengang_kz as deprecated
|
||||
if(!$result = @$db->db_query("SELECT oe_kurzbz FROM lehre.tbl_ferien LIMIT 1"))
|
||||
{
|
||||
$qry = "ALTER TABLE lehre.tbl_ferien
|
||||
@@ -138,8 +139,21 @@ if(!$result = @$db->db_query("SELECT oe_kurzbz FROM lehre.tbl_ferien LIMIT 1"))
|
||||
ADD COLUMN IF NOT EXISTS updateamum timestamp,
|
||||
ADD COLUMN IF NOT EXISTS updatevon VARCHAR(32);
|
||||
UPDATE lehre.tbl_ferien
|
||||
SET oe_kurzbz = (SELECT oe_kurzbz FROM public.tbl_studiengang WHERE studiengang_kz = tbl_ferien.studiengang_kz)
|
||||
WHERE oe_kurzbz IS NULL AND studiengang_kz IS NOT NULL;";
|
||||
SET oe_kurzbz = (
|
||||
SELECT
|
||||
CASE
|
||||
WHEN studiengang_kz = 0
|
||||
THEN NULL
|
||||
ELSE oe_kurzbz
|
||||
END
|
||||
FROM
|
||||
public.tbl_studiengang
|
||||
WHERE
|
||||
studiengang_kz = tbl_ferien.studiengang_kz
|
||||
)
|
||||
WHERE oe_kurzbz IS NULL AND studiengang_kz IS NOT NULL;
|
||||
ALTER TABLE lehre.tbl_ferien ALTER COLUMN studiengang_kz DROP NOT NULL;
|
||||
COMMENT ON COLUMN lehre.tbl_ferien.studiengang_kz IS 'DEPRECATED';";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>lehre.tbl_ferien: '.$db->db_last_error().'</strong><br>';
|
||||
@@ -170,7 +184,14 @@ if (!$result = @$db->db_query('SELECT 0 FROM lehre.tbl_ferientyp WHERE 0 = 1'))
|
||||
|
||||
ALTER TABLE lehre.tbl_ferien ADD CONSTRAINT tbl_lehre_ferien_ferientyp_kurzbz_fk FOREIGN KEY (ferientyp_kurzbz)
|
||||
REFERENCES lehre.tbl_ferientyp (ferientyp_kurzbz) MATCH FULL
|
||||
ON DELETE SET NULL ON UPDATE CASCADE;';
|
||||
ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
INSERT INTO lehre.tbl_ferientyp (ferientyp_kurzbz, beschreibung, mitarbeiter, studierende, lehre)
|
||||
VALUES(\'Feiertag\', \'Gesetzliche und andere Feiertage\', true, true, false);
|
||||
INSERT INTO lehre.tbl_ferientyp (ferientyp_kurzbz, beschreibung, mitarbeiter, studierende, lehre)
|
||||
VALUES(\'Ferien\', \'Ferientage\', true, true, false);
|
||||
INSERT INTO lehre.tbl_ferientyp (ferientyp_kurzbz, beschreibung, mitarbeiter, studierende, lehre)
|
||||
VALUES(\'Info\', \'Weitere Zeiten für Ereignisse, z.B. Sportwoche, Ausgleichswoche... \', true, true, false);
|
||||
';
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>lehre.tbl_ferientyp: '.$db->db_last_error().'</strong><br>';
|
||||
|
||||
Reference in New Issue
Block a user