|
132 | 132 | temp |
133 | 133 | } |
134 | 134 |
|
135 | | -#let gg(x) = if x == () { |
| 135 | +#let get-grade-status(x) = if x == () { |
136 | 136 | (" ", todo) |
137 | 137 | } else if x.last() >= 5 { |
138 | 138 | ("f", fail) |
|
145 | 145 | } |
146 | 146 |
|
147 | 147 |
|
148 | | -#let ggg(k) = { |
| 148 | +#let format-lecture-grade-info(k) = { |
149 | 149 | let lecture = get-lecture-from-key(k) |
150 | 150 | .values() |
151 | 151 | .rev() |
|
165 | 165 |
|
166 | 166 | let grades = temp.map(e => e.note) |
167 | 167 |
|
168 | | - (gg(grades).last())(stroke: black, width: 99%)[ |
169 | | - - [#gg(grades).first()] *#k* | #lecture \ versuch: #versuch ~ ~ note: #grades |
| 168 | + (get-grade-status(grades).last())(stroke: black, width: 99%)[ |
| 169 | + - [#get-grade-status(grades).first()] *#k* | #lecture \ versuch: #versuch ~ ~ note: #grades |
170 | 170 | ] |
171 | 171 | } |
172 | 172 |
|
|
190 | 190 | } |
191 | 191 |
|
192 | 192 | #if vls == () { |
193 | | - ggg(k) |
| 193 | + format-lecture-grade-info(k) |
194 | 194 | } else { |
195 | 195 | stack( |
196 | 196 | dir: ttb, |
197 | 197 | for e in vls.map(x => ( (block, lv, x).join("."), x)) { |
198 | | - ggg(e.first()) |
| 198 | + format-lecture-grade-info(e.first()) |
199 | 199 | } |
200 | 200 | ) |
201 | 201 | } |
|
220 | 220 | "MA": ("-",), |
221 | 221 | "nc": 0, |
222 | 222 | "cp": 0, |
| 223 | + "cp-passed": 0, |
223 | 224 | ) |
224 | 225 | } |
225 | 226 |
|
|
257 | 258 | .map(e => e.code) |
258 | 259 | .map(e => get-lecture-from-key(e)) |
259 | 260 | .map(e => e.ects) |
| 261 | + .sum(default: 0), |
| 262 | + |
| 263 | + "cp-passed": |
| 264 | + current-sem.course |
| 265 | + .filter(e => e.note < 5 and e.note > 0) |
| 266 | + .map(e => e.code) |
| 267 | + .map(e => get-lecture-from-key(e)) |
| 268 | + .map(e => e.ects) |
260 | 269 | .sum(default: 0) |
261 | 270 | ) |
262 | 271 | } |
|
287 | 296 | } |
288 | 297 |
|
289 | 298 | // get the content of (x: current block, y: current semester) (for the table) |
290 | | -#let xy(c, sem-nr) = { |
| 299 | +#let get-table-cell-content(c, sem-nr) = { |
291 | 300 | get-sem-results(calc.clamp(sem-nr, 0, 3)) |
292 | 301 | .at(c) |
293 | 302 | .map(e => if e.first() == "-" { "-" } |
|
298 | 307 | } |
299 | 308 |
|
300 | 309 | // macros for the table (shorter is better in the table) |
301 | | -#let g(x) = align(horizon)[#x] |
| 310 | +#let align-horizon(x) = align(horizon)[#x] |
302 | 311 | #let ma = stack(dir: ltr, spacing: 3mm, [A. \ schriftlich \ 27cp], [B. \ Defensio \ 3cp]) |
303 | 312 | #let p6 = text(weight: "bold", fill: red)[\ +6 auflage] |
304 | 313 |
|
|
323 | 332 | digits: 3 |
324 | 333 | ) |
325 | 334 |
|
| 335 | +#let current-passed = range(4).map(i => get-sem-results(i).cp-passed).sum() |
| 336 | + |
| 337 | +#let current-passed-proc = calc.round( |
| 338 | + eval( |
| 339 | + str(current-passed) |
| 340 | + + " / " |
| 341 | + + str(total) |
| 342 | + + " * 100" |
| 343 | + ), |
| 344 | + digits: 3 |
| 345 | +) |
| 346 | + |
326 | 347 |
|
327 | 348 | #let ncs = { |
328 | 349 | range(4) |
|
364 | 385 | #shadowed(radius: .4cm)[ |
365 | 386 | #tablem(ignore-second-row: false)[ |
366 | 387 | | #align(center)[*Medizinische Informatik \ C U R R I C U L A ~ ~ ~ 30. Mitteilungsblatt ~ ~ ~ Nr. 33*] | < | < | < | < | < | < | < | < | |
367 | | -| sem. | *Pflicht- und Wahlmodulen* | < | < | < | #g[*Freifächer* \ (6 ECTS)] | #g[*Diplomanden- \ seminare* \ (6 ECTS)] | ~ *Masterarbeit* ~ | ECTS \ $ sum $ | |
| 388 | +| sem. | *Pflicht- und Wahlmodulen* | < | < | < | #align-horizon[*Freifächer* \ (6 ECTS)] | #align-horizon[*Diplomanden- \ seminare* \ (6 ECTS)] | ~ *Masterarbeit* ~ | ECTS \ $ sum $ | |
368 | 389 | | ^ | A.\ Grundlagen \ 18cp #p6 | B.\ KfK \ 24cp | C.\ Angewant \ 12cp | D.\ Interdiszi. Inf. \ 24cp | ^ | ^ | #ma | ^ | |
369 | | -| *`I`* | #xy("A", 0) | #xy("B", 0) | #xy("C", 0) | #xy("D", 0) | #xy("F", 0) | #xy("DS", 0) | #xy("MA", 0) | #get-sem-results(0).cp cp | |
370 | | -| *`II`* | #xy("A", 1) | #xy("B", 1) | #xy("C", 1) | #xy("D", 1) | #xy("F", 1) | #xy("DS", 1) | #xy("MA", 1) | #get-sem-results(1).cp cp | |
371 | | -| *`III`* | #xy("A", 2) | #xy("B", 2) | #xy("C", 2) | #xy("D", 2) | #xy("F", 2) | #xy("DS", 2) | #xy("MA", 2) | #get-sem-results(2).cp cp | |
372 | | -| *`IV`* | #xy("A", 3) | #xy("B", 3) | #xy("C", 3) | #xy("D", 3) | #xy("F", 3) | #xy("DS", 3) | #xy("MA", 3) | #get-sem-results(3).cp cp | |
| 390 | +| *`I`* | #get-table-cell-content("A", 0) | #get-table-cell-content("B", 0) | #get-table-cell-content("C", 0) | #get-table-cell-content("D", 0) | #get-table-cell-content("F", 0) | #get-table-cell-content("DS", 0) | #get-table-cell-content("MA", 0) | #get-sem-results(0).cp cp | |
| 391 | +| *`II`* | #get-table-cell-content("A", 1) | #get-table-cell-content("B", 1) | #get-table-cell-content("C", 1) | #get-table-cell-content("D", 1) | #get-table-cell-content("F", 1) | #get-table-cell-content("DS", 1) | #get-table-cell-content("MA", 1) | #get-sem-results(1).cp cp | |
| 392 | +| *`III`* | #get-table-cell-content("A", 2) | #get-table-cell-content("B", 2) | #get-table-cell-content("C", 2) | #get-table-cell-content("D", 2) | #get-table-cell-content("F", 2) | #get-table-cell-content("DS", 2) | #get-table-cell-content("MA", 2) | #get-sem-results(2).cp cp | |
| 393 | +| *`IV`* | #get-table-cell-content("A", 3) | #get-table-cell-content("B", 3) | #get-table-cell-content("C", 3) | #get-table-cell-content("D", 3) | #get-table-cell-content("F", 3) | #get-table-cell-content("DS", 3) | #get-table-cell-content("MA", 3) | #get-sem-results(3).cp cp | |
373 | 394 | | $sum$ | #block-cp("A") \ #text(fill: red)[*+6 ECTS*] | #block-cp("B") | #block-cp("C") | #block-cp("D") | #block-cp("F") | #block-cp("DS") | #block-cp("MA") | #current / 120 #p6 | |
374 | | -| #stack(dir: ltr, spacing: 1fr, [nc's: #h(1mm) #sem-ncs], text(weight: "bold")[#current-proc%], [nc: ~ #total-nc] ) | < | < | < | < | < | < | < | < | |
| 395 | +| #stack(dir: ltr, spacing: 1fr, [nc's: #h(1mm) #sem-ncs], text(weight: "bold")[#current-proc%], text(weight: "bold")[#current-passed-proc% (passed)], [nc: ~ #total-nc] ) | < | < | < | < | < | < | < | < | |
375 | 396 | ] |
376 | 397 | ] |
377 | 398 |
|
|
0 commit comments