mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-14 21:42:16 +00:00
add event teilnehmer extension for getting targeted lecturers events. add demo icons display in calDAV calendar exports
This commit is contained in:
@@ -405,7 +405,6 @@ class KalenderLib
|
||||
SELECT 1
|
||||
FROM lehre.tbl_kalender_event_teilnehmer event_teilnehmer
|
||||
WHERE event_teilnehmer.kalender_id = tbl_kalender.kalender_id
|
||||
AND event_teilnehmer.rolle_kurzbz = 'teilnehmer'
|
||||
AND event_teilnehmer.uid = $escapedUserUID
|
||||
)";
|
||||
|
||||
@@ -419,7 +418,6 @@ class KalenderLib
|
||||
OR event_benutzergruppe.studiensemester_kurzbz = event_gruppe.studiensemester_kurzbz
|
||||
)
|
||||
WHERE event_gruppe.kalender_id = tbl_kalender.kalender_id
|
||||
AND event_gruppe.rolle_kurzbz = 'teilnehmer'
|
||||
AND event_gruppe.gruppe_kurzbz IS NOT NULL
|
||||
AND event_benutzergruppe.uid = $escapedUserUID
|
||||
)";
|
||||
@@ -451,7 +449,6 @@ class KalenderLib
|
||||
OR event_studentlehrverband.gruppe IS NULL
|
||||
)
|
||||
WHERE event_lehrverband.kalender_id = tbl_kalender.kalender_id
|
||||
AND event_lehrverband.rolle_kurzbz = 'teilnehmer'
|
||||
AND event_lehrverband.gruppe_kurzbz IS NULL
|
||||
AND event_lehrverband.studiengang_kz IS NOT NULL
|
||||
)";
|
||||
@@ -561,10 +558,25 @@ class KalenderLib
|
||||
AND lecturer_event_teilnehmer.uid = $escapedUserUID
|
||||
)";
|
||||
|
||||
$eventBenutzergruppeExists = "EXISTS (
|
||||
SELECT 1
|
||||
FROM lehre.tbl_kalender_event_teilnehmer lecturer_event_gruppe
|
||||
JOIN public.tbl_benutzergruppe lecturer_benutzergruppe
|
||||
ON lecturer_benutzergruppe.gruppe_kurzbz = lecturer_event_gruppe.gruppe_kurzbz
|
||||
AND (
|
||||
lecturer_event_gruppe.studiensemester_kurzbz IS NULL
|
||||
OR lecturer_benutzergruppe.studiensemester_kurzbz = lecturer_event_gruppe.studiensemester_kurzbz
|
||||
)
|
||||
WHERE lecturer_event_gruppe.kalender_id = tbl_kalender.kalender_id
|
||||
AND lecturer_event_gruppe.gruppe_kurzbz IS NOT NULL
|
||||
AND lecturer_benutzergruppe.uid = $escapedUserUID
|
||||
)";
|
||||
|
||||
$this->_ci->KalenderModel->db->where('tbl_kalender.status_kurzbz', 'live');
|
||||
$this->_ci->KalenderModel->db->group_start();
|
||||
$this->_ci->KalenderModel->db->where($lehreinheitMitarbeiterExists, null, false);
|
||||
$this->_ci->KalenderModel->db->or_where($eventTeilnehmerExists, null, false);
|
||||
$this->_ci->KalenderModel->db->or_where($eventBenutzergruppeExists, null, false);
|
||||
$this->_ci->KalenderModel->db->group_end();
|
||||
|
||||
$data = $this->_ci->KalenderModel->load();
|
||||
|
||||
@@ -12,7 +12,12 @@ class SabreDAVCalDAVBackend extends \Sabre\CalDAV\Backend\AbstractBackend
|
||||
CONST CALENDAR_NAME = 'LVPlan';
|
||||
CONST CAL_CATEGORY_STUNDENPLAN = 'Stundenplan';
|
||||
CONST CAL_CATEGORY_STUNDENPLAN_EXAM = 'StundenplanExam';
|
||||
CONST CAL_CATEGORY_STUNDENPLAN_ONLINE = 'StundenplanOnline';
|
||||
CONST CAL_CATEGORY_STUNDENPLAN_REMOTE = 'StundenplanRemote';
|
||||
|
||||
CONST CAL_CATEGORY_STUNDENPLAN_EXAM_ICON = '📝';
|
||||
CONST CAL_CATEGORY_STUNDENPLAN_ON_SITE_ICON = '🏫';
|
||||
CONST CAL_CATEGORY_STUNDENPLAN_REMOTE_ICON = '📍';
|
||||
CONST CAL_CATEGORY_RESERVATION_ICON = '📌';
|
||||
/**
|
||||
* Creates the backend
|
||||
*
|
||||
@@ -221,6 +226,7 @@ class SabreDAVCalDAVBackend extends \Sabre\CalDAV\Backend\AbstractBackend
|
||||
|
||||
protected function buildCalendarDataFragment($item)
|
||||
{
|
||||
$summaryIcon = '';
|
||||
$summary = $item->type == 'reservierung' ? $item->titel : $item->topic;
|
||||
|
||||
$description = "";
|
||||
@@ -238,14 +244,20 @@ class SabreDAVCalDAVBackend extends \Sabre\CalDAV\Backend\AbstractBackend
|
||||
$category = self::CAL_CATEGORY_STUNDENPLAN;
|
||||
if ($item->type === 'lehreinheit') {
|
||||
if ($item->lehrform === 'EXAM') {
|
||||
$summaryIcon = self::CAL_CATEGORY_STUNDENPLAN_EXAM_ICON;
|
||||
$category = self::CAL_CATEGORY_STUNDENPLAN_EXAM;
|
||||
} else if (!isset($item->ko_ort_kurzbz) || $item->ko_ort_kurzbz === '') {
|
||||
$category = self::CAL_CATEGORY_STUNDENPLAN_ONLINE;
|
||||
$summaryIcon = self::CAL_CATEGORY_STUNDENPLAN_REMOTE_ICON;
|
||||
$category = self::CAL_CATEGORY_STUNDENPLAN_REMOTE;
|
||||
}
|
||||
} else if ($item->type === 'reservierung' && (!isset($item->ko_ort_kurzbz) || $item->ko_ort_kurzbz === '')) {
|
||||
$category = self::CAL_CATEGORY_STUNDENPLAN_ONLINE;
|
||||
$summaryIcon = self::CAL_CATEGORY_RESERVATION_ICON;
|
||||
$category = self::CAL_CATEGORY_STUNDENPLAN_REMOTE;
|
||||
}
|
||||
|
||||
if ($summaryIcon !== '') {
|
||||
$summary = $summaryIcon . ' ' . $summary;
|
||||
}
|
||||
|
||||
$parsedStartDate = $this->formatICalLocalDateTime($item->isostart);
|
||||
$parsedEndDate = $this->formatICalLocalDateTime($item->isoend);
|
||||
|
||||
Reference in New Issue
Block a user