<!-- 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>{note(f.NoteAbschluss) || note(f.NotenKrz) || '–––––'}</span></td> </tr> {/if} {/each} {/each} <tr> </tr> {/each} </table> <script> import { gruppenIds } from './gruppenIDs' import { note, fremdsprache } from '../helfer' const _ = R.lodash export default { helpers: { _, note, fremdsprache, gruppenbezeichnung: gruppe => gruppenIds[gruppe], lernbereicheUndFaecher: gruppenFaecher => Object.entries(_.groupBy(gruppenFaecher, f => f.fach.Bezeichnung)), }, 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>