|
@@ -0,0 +1,138 @@
|
|
|
+<!--
|
|
|
+Allgemeine Notentabelle für Berufskollegs, die z.B. die etwas langtextigen
|
|
|
+Lernfeldfächer unterstützt oder verschiedene Abschlussnoten.
|
|
|
+
|
|
|
+Folgende Attribute werden unterstützt:
|
|
|
+lernfeld: Sorgt dafür, dass die Klasse `fach-bezeichnung` nicht gesetzt wird und
|
|
|
+ Fächer dementsprechend nicht eingerückt werden (nur Lernfeldfächer)
|
|
|
+ true|false Standardwert false
|
|
|
+noten: Hier können Abschnittsnoten oder Abschlussnoten gesetzt werden, z.B.
|
|
|
+ hj.noten oder s.bk_abschluss_faecher oder s.fhr_abschluss_faecher
|
|
|
+ Muss gesetzt werden
|
|
|
+fachGliederungen: sollten mitgegeben werden, wenn die für verschiedene Bildungsgänge
|
|
|
+ geänderten Werte berücksichtigt werden sollen, z.B. andere Bezeichnungen
|
|
|
+ in den verschiedenen Bildungsgängen
|
|
|
+ger: Wenn ein Referenzniveau für die Fremdsprachen angegeben werden soll
|
|
|
+ true|false, Standardwert false,
|
|
|
+fachklasse: muss mitgegeben werden, wenn aus der Fachklassen.json Datei der Standard-
|
|
|
+ Wert gelesen werden soll. Ansonsten über Lernentw festlegen, was eigetragen wird
|
|
|
+-->
|
|
|
+
|
|
|
+<table class="table-noten">
|
|
|
+ {#each faechergruppen as [gruppen_id, gruppenFaecher]}
|
|
|
+ <tr>
|
|
|
+ <td class="fachgruppe-margin">
|
|
|
+ <b>{gruppenbezeichnung(gruppen_id)}</b>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ {#each lernbereicheUndFaecher(gruppenFaecher) as [lernbereich, faecher]}
|
|
|
+ {#if lernbereich != faecher[0].fach.Zeugnisbez}
|
|
|
+ <tr><td colspan="2" class="{lernfeld ? '' : 'fach-bezeichnung'}">{lernbereich}</td></tr>
|
|
|
+ {/if}
|
|
|
+ {#each faecher as f (f.ID)}
|
|
|
+ {#if f.AufZeugnis === '+'}
|
|
|
+ <tr>
|
|
|
+ <td class="{lernfeld ? '' : 'fach-bezeichnung'} {lernbereich != faecher[0].fach.Zeugnisbez ? 'lernfeld-lernbereich' : ''}">
|
|
|
+ {#if f.fach.Zeugnisbez.includes("Projekt")}
|
|
|
+ {f.Lernentw}
|
|
|
+ {:else}
|
|
|
+ <!-- Die Zeugnisbezeichnung hat bei gesetzten fachGliederungen einen anderen Namen... -->
|
|
|
+ {f.fach.ZeugnisBez || f.fach.Zeugnisbez}
|
|
|
+ <!-- Ist ger gesetzt, unter Lernentw nach Eintrag schauen. Wenn dort nichts steht,
|
|
|
+ in der Fachklassen.json nach Einträgen für Fremdsprache und Fach_ID suchen
|
|
|
+ Mit der Fussnote 1 muss natürlich auch tatsächlich eine Fussnote zum GER existieren … -->
|
|
|
+ {#if ger && f.fach.IstSprache === '+'}
|
|
|
+ {fremdsprache(f, fachklasse)}<sup>1</sup>
|
|
|
+ {/if}
|
|
|
+ {/if}
|
|
|
+ </td>
|
|
|
+ <!-- Entweder Abschlussnote, wenn gesetzt oder Abschnittsnote oder nix -->
|
|
|
+ <td class="td-fach-note"><span>{f.NoteAbschluss || f.NotenKrz || '–––––'}</span></td>
|
|
|
+ </tr>
|
|
|
+ {/if}
|
|
|
+ {/each}
|
|
|
+ {/each}
|
|
|
+ <tr>
|
|
|
+ </tr>
|
|
|
+ {/each}
|
|
|
+</table>
|
|
|
+
|
|
|
+<script>
|
|
|
+ import { gruppenIds } from './gruppenIDs'
|
|
|
+ const _ = R.lodash
|
|
|
+
|
|
|
+ export default {
|
|
|
+ helpers: {
|
|
|
+ _,
|
|
|
+ gruppenbezeichnung: gruppe => gruppenIds[gruppe],
|
|
|
+ lernbereicheUndFaecher: gruppenFaecher => Object.entries(_.groupBy(gruppenFaecher, f => f.fach.Bezeichnung)),
|
|
|
+ fremdsprache: (fach, fachklasse) => {
|
|
|
+ try {
|
|
|
+ return fach.Lernentw
|
|
|
+ } catch (e) { return 'undefined - Sprachniveau fehlt'}
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ faechergruppen: ({ noten, fachGliederungen }) => {
|
|
|
+ // noten werden im jeweiligen Dokument über das *noten*-Attribut mitgegeben.
|
|
|
+ // z.B. die Abschnittsnote oder die Noten aus *s.bk_abschluss_faecher* und co.
|
|
|
+ // Nutzer über Konsole auf Änderungen in den Fächern hinweisen
|
|
|
+ if (fachGliederungen && fachGliederungen.length > 0) console.log('Es wurden Fachgliederungswerte gesetzt: ', fachGliederungen)
|
|
|
+ // suche in den fachGliederungen, ob für die jeweilige Fachklasse was besonderes festgelegt wurde
|
|
|
+ // vorausgesetzt, fachGliederungen wurde mitgegeben
|
|
|
+ const faecher = fachGliederungen
|
|
|
+ ? noten.map(f => {return {...f, fach: Object.assign(f.fach, fachGliederungen.find(fg => fg.Fach_ID === f.Fach_ID))}})
|
|
|
+ : noten
|
|
|
+ // erstmal alle Fächer sortieren in der passenden Reihenfolge,
|
|
|
+ // dann nach Fachgruppe gruppieren
|
|
|
+ return Object.entries(_.groupBy(_.sortBy(faecher, f => f.fach.SortierungS2), f => f.fach.Fachgruppe_ID))
|
|
|
+ },
|
|
|
+ // Berufsbezogen kommt neuerdings zuerst, dann berufsübergreifend
|
|
|
+ // wenn aber nur eine Note vermerkt ist, dann normal zurück
|
|
|
+ faechergruppenUmsortiert: ({ faechergruppen }) => faechergruppen.length > 1
|
|
|
+ ? [faechergruppen[0], faechergruppen[1]] = [faechergruppen[1], faechergruppen[0]]
|
|
|
+ : faechergruppen
|
|
|
+ }
|
|
|
+ }
|
|
|
+</script>
|
|
|
+<style>
|
|
|
+.table-noten {
|
|
|
+ width: 100%;
|
|
|
+ border: none;
|
|
|
+ border-collapse: collapse;
|
|
|
+ margin-bottom: 1rem;
|
|
|
+}
|
|
|
+.fach-bezeichnung {
|
|
|
+ padding-left: 10mm;
|
|
|
+}
|
|
|
+.td-fach-note {
|
|
|
+ padding-bottom: .2rem;
|
|
|
+ padding-top: .2rem;
|
|
|
+ width: 12rem;
|
|
|
+}
|
|
|
+.td-fach-note span {
|
|
|
+ background-color: #dcdcdc !important;
|
|
|
+ text-align: center;
|
|
|
+ width: 10rem;
|
|
|
+ display: block;
|
|
|
+ margin: 0 auto;
|
|
|
+}
|
|
|
+/*.td-fach-note span.e-note {
|
|
|
+ background-color: white !important;
|
|
|
+ width: 17rem;
|
|
|
+ margin: 0;
|
|
|
+}*/
|
|
|
+
|
|
|
+.fachgruppe-margin {
|
|
|
+ padding-top: 0.3rem;
|
|
|
+}
|
|
|
+
|
|
|
+.lernfeld-lernbereich {
|
|
|
+ padding-left: 2rem;
|
|
|
+ padding-bottom: 0;
|
|
|
+}
|
|
|
+
|
|
|
+.lernbereich {
|
|
|
+ padding-left: 20mm;
|
|
|
+}
|
|
|
+</style>
|