hmt 6 years ago
parent
commit
817a3ad5d5
6 changed files with 28 additions and 26 deletions
  1. 7 7
      ASZ Fachschule.html
  2. 4 4
      Abgangszeugnis BG.html
  3. 3 3
      Fotoliste.html
  4. 2 3
      Schullaufbahnbescheinigung AHR.html
  5. 7 0
      helfer.js
  6. 5 9
      partials/Noten.html

+ 7 - 7
ASZ Fachschule.html

@@ -1,5 +1,5 @@
-{#each schueler as s}
-  {#each aktHalbjahrFuer(s) as hj}
+{#each schueler as s (s.ID)}
+  {#each aktHalbjahrFuer(s) as hj (hj.ID)}
     <div class="page grid" orientation="landscape" size="A3">
       <Seitenlogo logo="{privat.traegerLogo}"/>
       <Pageheader art="daten/asz.svg" logo="{privat.logo}" untertitel="{privat.untertitel}"/>
@@ -39,7 +39,7 @@
                 <tr>
                   <td width="22%">{as.fach.Zeugnisbez}</td>
                   <td class="td-padding-extra">{findeFach(hj, as).Lernentw}</td>
-                  <td class="td-fach-note"><span>{as.NoteAbschluss}</span></td>
+                  <td class="td-fach-note"><span>{note(as.NoteAbschluss)}</span></td>
                 </tr>
               {/each}
             </table>
@@ -47,15 +47,15 @@
             <table class="table-noten" width="100%">
               <tr>
                 <td>{s.bk_abschluss_faecher.find(f => f.fach.FachKrz === 'BLgesamt').fach.Zeugnisbez}</td>
-                <td class="td-fach-note"><span>{s.bk_abschluss_faecher.find(f => f.FachKrz === 'BLgesamt').NoteAbschluss}</span></td>
+                <td class="td-fach-note"><span>{note(s.bk_abschluss_faecher.find(f => f.FachKrz === 'BLgesamt').NoteAbschluss)}</span></td>
               </tr>
               <tr>
                 <td>{s.bk_abschluss_faecher.find(f => f.fach.FachKrz === 'KO').fach.Zeugnisbez}</td>
-                <td class="td-fach-note"><span>{s.bk_abschluss_faecher.find(f => f.FachKrz === 'KO').NoteAbschluss}</span></td>
+                <td class="td-fach-note"><span>{note(s.bk_abschluss_faecher.find(f => f.FachKrz === 'KO').NoteAbschluss)}</span></td>
               </tr>
               <tr>
                 <td><b>{s.bk_abschluss_faecher.find(f => f.fach.FachKrz === 'BPgesamt').fach.Zeugnisbez}</b></td>
-                <td class="td-fach-note"><span>{s.bk_abschluss_faecher.find(f => f.FachKrz === 'BPgesamt').NoteAbschluss}</span></td>
+                <td class="td-fach-note"><span>{note(s.bk_abschluss_faecher.find(f => f.FachKrz === 'BPgesamt').NoteAbschluss)}</span></td>
               </tr>
             </table>
             <Voffset v="4"/>
@@ -133,7 +133,7 @@
 {/each}
 
 <script>
-  import { datum, volljaehrigBei, bemerkungen, bg }  from './helfer'
+  import { datum, volljaehrigBei, bemerkungen, bg, note }  from './helfer'
 
   import Seitenlogo from './partials/Seitenlogo.html'
   import Pageheader from './partials/Pageheader.html'

+ 4 - 4
Abgangszeugnis BG.html

@@ -1,5 +1,5 @@
 {#each schueler as s (s.ID)}
-  {#each s.abschnitte.filter(aktHalbjahr()) as hj (hj.ID)}
+  {#each aktHalbjahrFuer(s) as hj (hj.ID)}
     <div class="page grid" orientation="landscape" size="A3">
       <div class="header">
         <Seitenlogo logo="{privat.traegerLogo}"/>
@@ -36,7 +36,7 @@
               <td class="text-center">Note</td>
               <td class="text-center">Punkte</td>
             </tr>
-            {#each _.sortBy(s.abi_abschluss_faecher, f => f.FSortierung) as f}
+            {#each s.abi_abschluss_faecher.sort((a, b) => a.FSortierung < b.FSortierung ? -1 : 1) as f}
               <tr>
                 <td>{f.fach.Bezeichnung}
                   {#if f.fach.IstSprache === '+'}{fremdsprache(f, s.fachklasse.Kennung)}<sup>1</sup>{/if}
@@ -215,9 +215,9 @@
   import Voffset from './partials/Voffset.html'
 
   export let schueler, schule, privat, jahr, abschnitt
+  let aktHalbjahrFuer
+  $: aktHalbjahrFuer = (s) => [s.abschnitte.find(a => a.Jahr === jahr && a.Abschnitt === abschnitt)]
 
-  const aktHalbjahr = () => (a) => a.Jahr === jahr && a.Abschnitt === abschnitt
-  const _ = R.lodash
   const fhrFach = (s, fach, id) => {
     const pid = 'P1' + id
     if (!fach[pid]) return

+ 3 - 3
Fotoliste.html

@@ -23,11 +23,11 @@
   import { beforeUpdate } from 'svelte'
   import { datum } from './helfer'
   export let schueler, knexConfig
-  const SchuelerFoto = R.models.Schueler
-  const _ = R.lodash
+  const SchuelerFoto = R('models').Schueler
+  const _ = R('lodash')
   let promise
 
-  SchuelerFoto.knex(R.knex(knexConfig))
+  SchuelerFoto.knex(R('knex')(knexConfig))
   const buffer = (d) => Buffer.from(d, 'binary').toString('base64')
   // laut @rich_harris sollte *promise* auch ohne `beforeUpdate` aktualisiert werden.
   beforeUpdate(() => {

+ 2 - 3
Schullaufbahnbescheinigung AHR.html

@@ -28,12 +28,12 @@
             <td class="text-center">13.1</td>
             <td class="text-center">13.2</td>
           </tr>
-          {#each _.sortBy(s.abi_abschluss_faecher, f => f.fach.Sortierung) as f}
+          {#each s.abi_abschluss_faecher.sort((a, b) => a.FSortierung < b.FSortierung ? -1 : 1) as f}
             <tr>
               <td>{f.fach.Bezeichnung}</td>
               <td class="text-center">{'I'.repeat(f.fach.Aufgabenfeld)}</td>
               <td class="text-center">{f.AbiFach || ''}</td>
-              <td class="text-center">{_.inRange(parseInt(f.AbiFach), 1, 3) || f.FachKrz === 'DM' ? '+' : ''}
+              <td class="text-center">{(parseInt(f.AbiFach) > 0 && parseInt(f.AbiFach) < 4) || f.FachKrz === 'DM' ? '+' : ''}
               <td class="text-center">{f.P12_1 || '–'}</td>
               <td class="text-center">{f.P12_2 || '–'}</td>
               <td class="text-center">{f.P13_1 || '–'}</td>
@@ -209,7 +209,6 @@
   import Fussnote from './partials/Fussnoten.html'
 
   export let schueler, schule, privat, jahr, abschnitt
-  const _ = R.lodash
   const aktHalbjahr = () => (a) => a.Jahr === jahr && a.Abschnitt === abschnitt
 </script>
 

+ 7 - 0
helfer.js

@@ -11,6 +11,13 @@ const punkte = {
              0: '6' }
 const zahlwort = { 1: "eins",2: "zwei",3: "drei",4: "vier",5: "fünf",6: "sechs",7: "sieben",8: "acht",9: "neun",0: "null" }
 
+export const groupBy = (arr, id) => arr.reduce(
+  (entryMap, f) => {
+    const fx = id.split('.').reduce((p,c)=>p&&p[c]||null, f)
+    return entryMap.set(fx, [...entryMap.get(fx)||[], f])
+  },
+  new Map()
+)
 export const datum = (t) => {
   // gibt ein Datum im deutschen Format zurück
   try {

+ 5 - 9
partials/Noten.html

@@ -63,14 +63,13 @@ faechergruppenIds: legt fest, welche Fächergruppen gezogen werden sollen. Stand
 
 <script>
   import { gruppenIds } from './gruppenIDs'
-  import { note, fremdsprache } from '../helfer'
-  const _ = R.lodash
+  import { note, fremdsprache, groupBy } from '../helfer'
 
   export let lernfeld, ger = false
   export let faechergruppenIds = []
   export let noten, fachGliederungen, fachklasse
   const gruppenbezeichnung = gruppe => gruppenIds[gruppe]
-  const lernbereicheUndFaecher = gruppenFaecher => Object.entries(_.groupBy(gruppenFaecher, f => f.fach.Bezeichnung))
+  const lernbereicheUndFaecher = gruppenFaecher => [...groupBy(gruppenFaecher, 'fach.Bezeichnung').entries()]
   const faechergruppen = () => {
     // noten werden im jeweiligen Dokument über das *noten*-Attribut mitgegeben.
     // z.B. die Abschnittsnote oder die Noten aus *s.bk_abschluss_faecher* und co.
@@ -87,13 +86,10 @@ faechergruppenIds: legt fest, welche Fächergruppen gezogen werden sollen. Stand
       : faecher.filter(f => faechergruppenIds.find(id => f.fach.Fachgruppe_ID === id))
     // erstmal alle Fächer sortieren in der passenden Reihenfolge,
     // dann nach Fachgruppe gruppieren
-    return Object.entries(_.groupBy(_.sortBy(faecherBereinigt, f => f.fach.SortierungS2), f => f.fach.Fachgruppe_ID))
+    const sortiert = faecherBereinigt.sort((a, b) => a.fach.SortierungS2 < b.fach.SortierungS2 ? 1 : -1)
+    const gruppiert = groupBy(sortiert, 'fach.Fachgruppe_ID')
+    return [...gruppiert.entries()]
   }
-    // Berufsbezogen kommt neuerdings zuerst, dann berufsübergreifend
-    // wenn aber nur eine Note vermerkt ist, dann normal zurück
-    // const faechergruppenUmsortiert = () => faechergruppen.length > 1
-    //       ? [faechergruppen[0], faechergruppen[1]] = [faechergruppen[1], faechergruppen[0]]
-    //       : faechergruppen
 </script>
 
 <style>