diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php index 8044fa9de..44f9834d8 100644 --- a/application/models/education/Lehrveranstaltung_model.php +++ b/application/models/education/Lehrveranstaltung_model.php @@ -556,16 +556,6 @@ class Lehrveranstaltung_model extends DB_Model */ public function getLvsByStudentWithGrades($student_uid, $studiensemester_kurzbz, $sprache = null, $lvid=null) { - if ($sprache) { - $sprache_qry = $this->db->compile_binds('SELECT index FROM public.tbl_sprache WHERE sprache = ?', [$sprache]); - $bezeichnung = 'bezeichnung_mehrsprachig[(' . $sprache_qry . ')]'; - $sgbezeichnung = $sprache == 'English' ? 'COALESCE(sg.english, sg.bezeichnung)' : 'sg.bezeichnung'; - $lvbezeichnung = $sprache == 'English' ? 'COALESCE(v.bezeichnung_english, v.bezeichnung)' : 'v.bezeichnung'; - } else { - $bezeichnung = 'bezeichnung'; - $sgbezeichnung = 'sg.bezeichnung'; - $lvbezeichnung = 'v.bezeichnung'; - } $this->addDistinct(); // TODO(chris): selects @@ -605,16 +595,20 @@ class Lehrveranstaltung_model extends DB_Model $this->addSelect('znn.positiv'); #$this->addSelect('splv.module'); - $this->addSelect($lvbezeichnung . ' AS bezeichnung'); - $this->addSelect($sgbezeichnung . ' AS sg_bezeichnung'); + $this->addSelect('v.bezeichnung AS bezeichnung'); + $this->addSelect('v.bezeichnung_english AS bezeichnung_eng'); + $this->addSelect('sg.bezeichnung AS sg_bezeichnung'); + $this->addSelect('sg.english AS sg_bezeichnung_eng'); $this->addSelect('UPPER(sg.typ::VARCHAR(1) || sg.kurzbz) AS studiengang_kuerzel'); //also adds returns the index of the grade //TODO: ist zeugnissnote immer gleich wie die lvgesamtnote $this->addSelect('COALESCE(zn.note::numeric,gn.note::numeric) as note_index'); $this->addSelect('COALESCE(znn.positiv,gnn.positiv) as positiv'); - $this->addSelect('COALESCE(gnn.' . $bezeichnung . ', gnn.bezeichnung, gn.note::text) AS lvnote'); - $this->addSelect('COALESCE(znn.' . $bezeichnung . ', znn.bezeichnung, zn.note::text) AS znote'); + $this->addSelect('gnn.bezeichnung_mehrsprachig AS lvnotebez'); + $this->addSelect('gnn.note AS lvnote'); + $this->addSelect('znn.bezeichnung_mehrsprachig AS znotebez'); + $this->addSelect('znn.note AS znote'); // TODO(chris): Potentielle Anpassung "Eine UID" $this->addJoin('campus.vw_student_lehrveranstaltung v', 'lehrveranstaltung_id'); diff --git a/public/js/components/Calendar/Day.js b/public/js/components/Calendar/Day.js index c0f1040f5..9eafe0120 100644 --- a/public/js/components/Calendar/Day.js +++ b/public/js/components/Calendar/Day.js @@ -22,7 +22,7 @@ export default { this.focusDate.d += dir; this.emitRangeChanged(previousDate); }, - emitRangeChanged(previousDate) { + emitRangeChanged(previousDate, mounted) { this.$emit('change:range', { start: previousDate, end:this.focusDate }); }, prev() { @@ -37,8 +37,8 @@ export default { this.$emit('input', ['select:event', event]); } }, - created() { - this.emitRangeChanged(); + mounted() { + this.emitRangeChanged(new CalendarDate(this.focusDate.y, this.focusDate.m, this.focusDate.d -1), true); }, template: /*html*/`
diff --git a/public/js/components/Calendar/Month.js b/public/js/components/Calendar/Month.js index 513ed1c8c..d427304b8 100644 --- a/public/js/components/Calendar/Month.js +++ b/public/js/components/Calendar/Month.js @@ -28,9 +28,14 @@ export default { } else { this.focusDate.moveMonthInDirection(dir) } + this.emitRangeChanged() + }, + emitRangeChanged(mounted = false) { + this.$emit('change:range', { - start: new Date(this.focusDate.y, this.focusDate.m, 1), - end: new Date(this.focusDate.y, this.focusDate.m+1, 0) + start: new Date(this.focusDate.y, this.focusDate.m, 1), + end: new Date(this.focusDate.y, this.focusDate.m+1, 0), + mounted }); }, prev() { @@ -55,11 +60,8 @@ export default { this.$emit('input', ['select:day',day]) } }, - created() { - this.$emit('change:range', { - start: new Date(this.focusDate.y, this.focusDate.m, 1), - end: new Date(this.focusDate.y, this.focusDate.m+1, 0) - }); + mounted() { + this.emitRangeChanged(true) }, template: `
diff --git a/public/js/components/Calendar/Month/Page.js b/public/js/components/Calendar/Month/Page.js index 8ec700ce7..f5354fc7b 100644 --- a/public/js/components/Calendar/Month/Page.js +++ b/public/js/components/Calendar/Month/Page.js @@ -63,6 +63,10 @@ export default { }, methods: { + handleEventClick(e, day) { + this.selectDay(day) + e.stopPropagation() + }, getDayClass(week, day) { let classstring = 'fhc-calendar-month-page-day text-decoration-none overflow-hidden' const isHighlightedWeek = this.isHighlightedWeek(week) @@ -153,7 +157,8 @@ export default { {{day.getDate()}}
+ :style="{'background-color': event.color}" class="fhc-entry" :selected="event == selectedEvent" + v-contrast @click="handleEventClick($event, day)">

this is a placeholder which means that no template was passed to the Calendar Page slot

diff --git a/public/js/components/Calendar/Week.js b/public/js/components/Calendar/Week.js index 350f0130d..6e94c6b92 100644 --- a/public/js/components/Calendar/Week.js +++ b/public/js/components/Calendar/Week.js @@ -20,10 +20,10 @@ export default { this.focusDate.d += dir * 7; this.emitRangeChanged(); }, - emitRangeChanged() { + emitRangeChanged(mounted = false) { let start = this.focusDate.firstDayOfWeek; let end = this.focusDate.lastDayOfWeek; - this.$emit('change:range', { start, end }); + this.$emit('change:range', { start, end, mounted }); }, prev() { this.$refs.pane.prev(); @@ -37,8 +37,8 @@ export default { this.$emit('input', ['select:event',event]); } }, - created() { - this.emitRangeChanged(); + mounted() { + this.emitRangeChanged(true); }, template: /*html*/`
diff --git a/public/js/components/Cis/Mylv/Semester.js b/public/js/components/Cis/Mylv/Semester.js index b6ac3563a..994a7c9ff 100644 --- a/public/js/components/Cis/Mylv/Semester.js +++ b/public/js/components/Cis/Mylv/Semester.js @@ -22,7 +22,8 @@ export default { lv.studiengang_kz + '#' + lv.semester, { studiengang_kz: lv.studiengang_kz, - bezeichnung: lv.sg_bezeichnung, + bezeichnung: lv.sg_bezeichnung, + sg_bezeichnung_eng: lv.sg_bezeichnung_eng, kuerzel: lv.studiengang_kuerzel, semester: lv.semester } diff --git a/public/js/components/Cis/Mylv/Semester/Studiengang.js b/public/js/components/Cis/Mylv/Semester/Studiengang.js index 9629ba307..15d210796 100644 --- a/public/js/components/Cis/Mylv/Semester/Studiengang.js +++ b/public/js/components/Cis/Mylv/Semester/Studiengang.js @@ -12,7 +12,8 @@ export default { bezeichnung: String, kuerzel: String, semester: [String,Number], - lvs: Array + lvs: Array, + sg_bezeichnung_eng: String }, computed: { lehrveranstaltungen() { @@ -32,7 +33,7 @@ export default { }, template: `
-

{{bezeichnung}} - {{kuerzel}} +

{{$p.user_language.value === 'English' ? sg_bezeichnung_eng : bezeichnung}} - {{kuerzel}} {{semester}}.{{$p.t('lehre/semester')}}

diff --git a/public/js/components/Cis/Mylv/Semester/Studiengang/Lv.js b/public/js/components/Cis/Mylv/Semester/Studiengang/Lv.js index ea19652c6..d0dd99f68 100644 --- a/public/js/components/Cis/Mylv/Semester/Studiengang/Lv.js +++ b/public/js/components/Cis/Mylv/Semester/Studiengang/Lv.js @@ -29,7 +29,7 @@ export default { ects: String, incoming: Number, positiv: Boolean, - note_index: String, + note_index: String }, data: () => { return { @@ -66,8 +66,8 @@ export default { return bodyStyle; }, grade() { - // TODO: noten phrasen - return this.benotung ? this.znote || this.lvnote || null : null; + const languageIndex = this.$p.user_language.value === 'English' ? 1 : 0 + return this.benotung ? this.znotebez[languageIndex] || this.lvnotebez[languageIndex] || null : null; }, LvHasPruefungenInformation(){ return this.pruefungenData && this.pruefungenData.length > 0; @@ -123,6 +123,7 @@ export default { LvInfo.popup({ lehrveranstaltung_id: this.lehrveranstaltung_id, bezeichnung: this.bezeichnung, + bezeichnung_eng: this.bezeichnung_eng, studiengang_kuerzel: this.studiengang_kuerzel, semester: this.semester, studien_semester: this.studien_semester, @@ -161,7 +162,7 @@ export default {
{{ $p.t('lehre/organisationseinheit') }}:
-
{{bezeichnung}}
+
{{$p.user_language.value === 'English' ? bezeichnung_eng : bezeichnung}}