AHR Vornoten Abitur.svelte 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. {#each chunk(schueler, anzahl) as slice, i}
  2. <div class="page grid" orientation="landscape" size="A3">
  3. <div class="header">
  4. <pre>
  5. Konferenzliste APA BK Abitur <b>{klasse.Klasse || schueler[0].Klasse}</b> &Tab; {aktAbschnitt().klassenlehrer_in}: <b>{`${aktAbschnitt().lehrer?.Vorname} ${aktAbschnitt().lehrer?.Nachname} (${aktAbschnitt().lehrer?.Kuerzel})`}</b> &Tab; Stand: {heute()}
  6. </pre>
  7. </div>
  8. <div class="main">
  9. {#each slice as s, ii}
  10. <b>{(i*anzahl)+ii+1}. {s.Name}, {s.Vorname}</b>
  11. <div class="flex-grid">
  12. <div class="tabelle">
  13. <table>
  14. {#each zeilen(faecher(s)) as row}
  15. <tr>
  16. {#each row as cell}
  17. <td class:red={parseInt(cell) < 5 && parseInt(cell) >= 0}>{cell}</td>
  18. {/each}
  19. </tr>
  20. {/each}
  21. <tr><td>✎ → </td>
  22. {#each s.abi_abschluss_faecher as i}
  23. <td></td>
  24. {/each}
  25. </tr>
  26. </table>
  27. </div>
  28. <div class="bemerkungen">
  29. Bermerkungen:
  30. {#each '12345' as i}
  31. <hr>
  32. <Voffset v='1.5' />
  33. {/each}
  34. Zugelassen: {s.abi_abschluss.Zugelassen === '+' ? "Ja":"Nein"}
  35. </div>
  36. </div>
  37. <Voffset v=1 />
  38. {/each}
  39. </div>
  40. <div class="footer">Seite {i+1}/{Math.ceil(schueler.length/anzahl)}</div>
  41. </div>
  42. {/each}
  43. <script>
  44. import { chunk } from './helfer'
  45. import Voffset from './partials/Voffset.svelte'
  46. export let schueler, klasse
  47. const anzahl = 5
  48. const heute = () => new Date().toLocaleDateString('de', {day: '2-digit', month: '2-digit', year: 'numeric'})
  49. const aktAbschnitt = () => schueler[0].abschnitte.slice(-1)[0]
  50. function faecher (s) {
  51. return s.abi_abschluss_faecher.sort((a,b) => a.FSortierung - b.FSortierung)
  52. }
  53. function zeilen (faecher) {
  54. const arr = [[''], ['12.1'], ['12.2'], ['13.1'], ['13.2']]
  55. faecher.forEach(f => {
  56. arr[0].push(f.FachKrz)
  57. arr[1].push(f.P12_1 || '')
  58. arr[2].push(f.P12_2 || '')
  59. arr[3].push(f.P13_1 || '')
  60. arr[4].push(f.P13_2 || '')
  61. })
  62. return arr
  63. }
  64. </script>
  65. <style>
  66. @import 'css/main.css';
  67. table {
  68. width: 98%;
  69. border-collapse: collapse;
  70. }
  71. table td {
  72. border: thin solid #ddd;
  73. white-space:nowrap;
  74. text-align: center;
  75. }
  76. .flex-grid {
  77. display: flex;
  78. }
  79. .tabelle {
  80. flex: 65%;
  81. }
  82. .bemerkungen {
  83. flex: 35%;
  84. }
  85. .red { background-color: tomato; }
  86. </style>