Notenliste.html 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. {#each _.chunk(schueler, anzahl) as slice, i}
  2. <div class="page grid" orientation="landscape" size="A4">
  3. <div class="header">
  4. <b>Notenliste der {schueler[0].Klasse} – Stand {heute()}</b>
  5. </div>
  6. <div class="main">
  7. <Voffset v=1/>
  8. <table class="table-bordered">
  9. <tr>
  10. <td><b>Nr</b></td><td><b>Name</b></td>
  11. {#each Array.from(faecher()) as f}
  12. <td class="text-center"><b>{f}</b></td>
  13. {/each}
  14. </tr>
  15. {#each slice as s, ii}
  16. <tr>
  17. <td><b>{i*10+ii+1}</b></td>
  18. <td><b>{s.Name}, {s.Vorname}</b></td>
  19. {#each Object.entries(noten()) as [fach, noten]}
  20. <td class="text-center" style={parseInt(noten[i*anzahl+ii]) > 4 ? 'background:tomato;':''}>{noten[i*anzahl+ii]}</td>
  21. {/each}
  22. </tr>
  23. {/each}
  24. </table>
  25. </div>
  26. <div class="footer">Seite {i+1}/{Math.ceil(schueler.length/anzahl)}</div>
  27. </div>
  28. {/each}
  29. <script>
  30. import { datum, versetzungsvermerk, volljaehrigBei, bemerkungen, bg } from './helfer'
  31. import Voffset from './partials/Voffset.html'
  32. export let schueler, schule, privat, jahr, abschnitt
  33. const aktHalbjahr = () => (a) => a.Jahr === jahr && a.Abschnitt === abschnitt
  34. const _ = R.lodash
  35. const heute = () => new Date().toLocaleDateString('de', {day: '2-digit', month: '2-digit', year: 'numeric'})
  36. const anzahl = 20
  37. const faecher = () => {
  38. let faecher = new Set
  39. schueler.forEach(s => s.abschnitte.find(aktHalbjahr).noten.forEach(n => {faecher.add(n.fach.FachKrz)}))
  40. return faecher
  41. }
  42. const noten = () => {
  43. let noten = {}
  44. faecher().forEach(f => {noten[f] = []})
  45. schueler.forEach(s => s.abschnitte.find(aktHalbjahr).noten.forEach(n => noten[n.fach.FachKrz].push(n.NotenKrz || "–")))
  46. return noten
  47. }
  48. </script>
  49. <style>
  50. @import 'css/main.css';
  51. @import 'css/a4-landscape.css';
  52. .table-bordered {
  53. border-collapse: collapse; }
  54. .table-bordered tr td {
  55. border: thin solid #ddd;
  56. line-height: 1.3rem }
  57. </style>