123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- <!--
- 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>
|