hmt 6 năm trước cách đây
mục cha
commit
d12ac4e333
5 tập tin đã thay đổi với 119 bổ sung5 xóa
  1. 3 2
      Fotoliste.html
  2. 108 0
      Notenliste.html
  3. 5 1
      Schullaufbahnbescheinigung AHR.html
  4. 1 1
      partials/Fussnoten.html
  5. 2 1
      partials/Noten.html

+ 3 - 2
Fotoliste.html

@@ -1,4 +1,5 @@
-{#await promise then fotos}
+{#await promise}Fotos kommen…
+{:then fotos}
   {#each _.chunk(fotos, 25) as slice}
     <div class="page grid" orientation="portrait" size="A4">
       <div class="main">
@@ -16,6 +17,7 @@
       </div>
     </div>
   {/each}
+{:catch error}Fehler
 {/await}
 
 <script>
@@ -24,7 +26,6 @@
   export let schueler, knexConfig
   const SchuelerFoto = R('models').Schueler
   const _ = R('lodash')
-  let promise
 
   SchuelerFoto.knex(R('knex')(knexConfig))
   const buffer = (d) => Buffer.from(d, 'binary').toString('base64')

+ 108 - 0
Notenliste.html

@@ -0,0 +1,108 @@
+{#each _.chunk(schueler, anzahl) as slice, i}
+  <div class="page grid" orientation="landscape" size="A3" style="font-size: 1.1rem">
+    <div class="header">
+      <pre>
+        Konferenzliste <b>{klasse.Klasse}</b> &Tab; {aktAbschnitt().klassenlehrer_in}: <b>{`${aktAbschnitt().lehrer.Vorname} ${aktAbschnitt().lehrer.Nachname} (${aktAbschnitt().lehrer.Kuerzel})`}</b> &Tab; Stand: {heute()} &Tab; Konferenzdatum: {datum(aktAbschnitt().Konferenzdatum)} &Tab; Zeugnisdatum: {datum(aktAbschnitt().ZeugnisDatum)}
+      </pre>
+    </div>
+    <div class="main">
+      <Voffset v=1/>
+      <table>
+        <tr>
+          <th><b>Nr</b></th>
+          <th><b>Name</b></th>
+          <th class="rotate"><div><span><b>FStd</b></span></div></th>
+          <th class="rotate"><div><span><b>uFStd</b></span></div></th>
+          {#each Array.from(faecher()) as f}
+            <th class="rotate"><div><span><b>{f}</b></span></div></th>
+          {/each}
+          <th><b>Bemerkungen</b></th>
+        </tr>
+        <tr><td colspan="2" style="height: 4rem">Bitte abzeichnen</td>{#each Object.keys(noten()) as n}<td></td>{/each}<td></td><td></td><td></td></tr>
+        {#each slice as s, ii}
+          <tr>
+            <td><b>{i*anzahl+ii+1}</b></td>
+            <td><b>{s.Name}, {s.Vorname}</b></td>
+            <td>{s.abschnitte.find(aktHalbjahr).SumFehlStd || 0}</td>
+            <td>{s.abschnitte.find(aktHalbjahr).SumFehlStdU || 0}</td>
+            {#each Object.entries(noten()) as [fach, n]}
+              <td class="text-center" style={parseInt(n[i*anzahl+ii]) > 4 ? 'background:tomato;':''}>{n[i*anzahl+ii] || '–'}</td>
+            {/each}
+            <td class="extraklein">{s.abschnitte.find(aktHalbjahr).ZeugnisBem || ''}</td>
+          </tr>
+        {/each}
+      </table>
+    </div>
+    <div class="footer">Seite {i+1}/{Math.ceil(schueler.length/anzahl)}</div>
+  </div>
+{/each}
+
+<script>
+  import { datum }  from './helfer'
+
+  import Voffset from './partials/Voffset.html'
+
+  export let schueler, schule, privat, jahr, abschnitt, klasse
+  const aktHalbjahr = (a) => a.Jahr === jahr && a.Abschnitt === abschnitt
+  const _  = R('lodash')
+  const heute = () => new Date().toLocaleDateString('de', {day: '2-digit', month: '2-digit', year: 'numeric'})
+  const anzahl = 25
+  let aktAbschnitt
+  $: aktAbschnitt = () => schueler[0].abschnitte.slice(-1)[0]
+  let faecher
+  $: faecher = () => {
+    let faecher = new Set
+    schueler.forEach(s => s.abschnitte.find(aktHalbjahr).noten.forEach(n => {faecher.add(n.fach.FachKrz)}))
+    return faecher
+  }
+  let noten
+  $: noten = () => {
+    let noten = {}
+    faecher().forEach(f => {noten[f] = []})
+    schueler.forEach(s => s.abschnitte.find(aktHalbjahr).noten.forEach(n => noten[n.fach.FachKrz].push(n.NotenKrz || "–")))
+    return noten
+  }
+</script>
+
+<style>
+  @import 'css/main.css';
+  @import 'css/a3-landscape.css';
+  table {
+    border-collapse: collapse;
+    width:auto;
+  }
+  table td {
+    border: thin solid #ddd;
+    line-height: 1.3rem;
+    padding: 9px;
+    white-space:nowrap;
+  }
+  table td.extraklein {
+    font-size: .6rem;
+    white-space:pre-wrap;
+    word-wrap:break-word;
+    vertical-align: top;
+    padding: 1px;
+  }
+  table td:last-child {
+    width: 100%;
+  }
+  th.rotate {
+    height: 30px;
+    white-space: nowrap;
+  }
+  th.rotate > div {
+    transform:
+      translate(20px, -3px)
+      rotate(315deg);
+    box-sizing: border-box;
+  }
+  th.rotate > div > span {
+    border-bottom: 1px solid #ccc;
+    width: 30px;
+    transform-origin: left bottom;
+    display: inline-block
+  }
+
+</style>
+

+ 5 - 1
Schullaufbahnbescheinigung AHR.html

@@ -71,7 +71,11 @@
         <Voffset v="0.5"/>
         {#if s.abi_abschluss_faecher.some(f => [f.P12_1, f.P12_2, f.P13_1, f.P13_2].some(ff => parseInt(ff) < 5 && parseInt(ff) > 0))}
           Ihre Schullaufbahn weist Defizite auf, durch die die Zulassung zur
-          Abiturprüfung und zur Berufsabschlussprüfung gefährdet wird.
+          Abiturprüfung
+          {#if s.ASDSchulform === 'D01'}
+            und zur Berufsabschlussprüfung
+          {/if}
+          gefährdet wird.
         {/if}
         <Voffset v="0.5"/>
         <b>Bemerkungen:</b> {@html bemerkungen(hj)}

+ 1 - 1
partials/Fussnoten.html

@@ -49,7 +49,7 @@ notenstufen={false} -->
       nach Bekanntgabe des Zeugnisses Widerspruch eingelegt werden. Der Widerspruch
       ist beim {schule.Bezeichnung2}, {schule.Strasse}, {schule.PLZ} {schule.Ort},
       schriftlich oder zur Niederschrift zu erheben. <br />Falls die Frist durch
-      das Verschulden einer/eines Bevollmächtigten versäumt wird, wird dies
+      das Verschulden einer/eines Bevollmächtigten versäumt wird, wird dieses
       Verschulden der Widerspruchsführerin/dem Widerspruchsführer zugerechnet.
     {/if}
   </div>

+ 2 - 1
partials/Noten.html

@@ -65,7 +65,8 @@ faechergruppenIds: legt fest, welche Fächergruppen gezogen werden sollen. Stand
   import { gruppenIds } from './gruppenIDs'
   import { note, fremdsprache, groupBy } from '../helfer'
 
-  export let lernfeld, ger = false
+  export let lernfeld
+  export let ger = false
   export let faechergruppenIds = []
   export let noten, fachGliederungen, fachklasse
   const faechergruppen = () => {