added a special tablebreak tag for a very special curricula description

This commit is contained in:
Hartmut Seichter 2023-11-11 21:07:21 +01:00
parent b3bc916746
commit 573018e9e2
5 changed files with 93 additions and 60 deletions

View file

@ -66,6 +66,10 @@ class MarkdownGenerator:
# expand rows
for r in rows:
# insider recognize this as the computational dump(b)ness feature
if '<!-- tablebreak -->' in r[0] or '<!-- tablebreak -->' in r[1]:
print(''.join(['+',"".ljust(h_len,'-'),'+',"".ljust(d_len,'-'),'+']))
else:
print(''.join(['|',r[0].ljust(h_len,' '),'|',r[1].ljust(d_len,' '),'|']))
if headline:
@ -100,6 +104,11 @@ class CourseBuilder:
else:
return True
def needs_spec(self,field):
if 'spec' in self.__schema[field]:
return self.__schema[field]
else:
return False
def process_label(self,field,lang='de'):
# processes the label of a field item
@ -107,13 +116,31 @@ class CourseBuilder:
def process_str(self,meta,field,lang='de'):
if self.is_translatable(field):
return [self.process_label(field,lang),meta[field][lang]]
else:
if not 'value' in meta[field]:
raise AssertionError(field,'incomplete')
return [self.process_label(field,lang),meta[field]['value']]
def process_enum(self,meta,field,lang='de'):
v = meta[field]['value']
return [self.process_label(field,lang),self.__schema[field]['values'][v][lang]]
"""
enum have a specification 'specs' option
that can be forced by the scheme
"""
vv = meta[field]['value']
enum_val = self.__schema[field]['values'][vv][lang]
if self.needs_spec(field):
t = string.Template(self.get_template(field=field,lang=lang))
spec = meta[field]['spec'][lang]
return [self.process_label(field,lang),t.substitute({'value': enum_val,'spec': spec})]
else:
return [self.process_label(field,lang),enum_val]
def process_int(self,meta,field,lang='de'):
v = meta[field]['value']
@ -121,11 +148,13 @@ class CourseBuilder:
return [self.process_label(field,lang),t.substitute({'value' : v})]
def process_multikey(self,meta,field,lang='de'):
"""
multikey need to assign a numeric value to a key
"""
vs = meta[field]['value']
t = string.Template(self.get_template(field,lang))
k = self.process_label(field,lang)
v = ""
parts = []

10
test.md
View file

@ -1,10 +0,0 @@
----------------------------------------------------------------------------------------------------------------------------------
Inhalt Test
------------------------------------ ---------------------------------------------------------------------------------------------
Modulinhalte 1. Section One
2. Section Two
1. Section Two Sub One
2. Section Two Sub Two
3. Section Two Sub Three
4. Section Two Sub Four
----------------------------------------------------------------------------------------------------------------------------------

View file

@ -113,6 +113,10 @@ workload:
form-of-exam:
value: written
spec:
de: "120min Klausur"
en: "120min exam"
frequency:
value: once_per_year

View file

@ -12,41 +12,6 @@ name:
#
content:
en: |
1. Dog
1. German Shepherd
2. Belgian Shepherd
1. Malinois
2. Groenendael
4. Tervuren
2. Cat
1. Siberian
2. Siamese
content-alt:
en: |
1. Dog
1. German Shepherd
2. Belgian Shepherd
1. Malinois
2. Groenendael
4. Tervuren
2. Cat
1. Siberian
2. Siamese
content-blah:
en: |
1. Blah
@ -72,6 +37,8 @@ content-blah:
4. Blub
<!-- break -->
5. Blah
6. Blah and Blub

View file

@ -11,6 +11,17 @@ name:
en: "name of course"
}
#
# Modulverantwortliche:r
#
instructor:
type: str
translatable: false
label:
de: "Modulverantwortlicher/Modulverantwortliche"
en: "module instructor"
#
# Kürzel / ID
#
@ -22,20 +33,22 @@ id:
en: "code"
}
#
# Modulverantwortliche:r
#
instructor:
type: str
translatable: false
label: {
de: "Modulverantwortliche:r",
en: "module instructor"
}
#
# Qualifikationsziele
#
# Welche fachbezogenen, methodischen, fachübergreifende Kompetenzen,
# Schlüsselqualifikationen - werden erzielt (erworben)? Diese sind
# an der zu definierenden Gesamtqualifikation (angestrebter Abschluss) auszurichten.
#
# Lernergebnisse sind Aussagen darüber, was ein Studierender nach Abschluss des Moduls weiß,
# versteht und in der Lage ist zu tun. Die Formulierung sollte sich am Qualifikationsrahmen
# für Deutsche Hochschulabschlüsse orientieren und Inhaltswiederholungen vermeiden.
#
# Des Weiteren finden Sie im QM-Portal die „Handreichung zur Beschreibung von Lernzielen“
# als Formulierungshilfe.
goal:
type: str
label: {
@ -46,6 +59,12 @@ goal:
#
# Modulinhalte
#
# Welche fachlichen, methodischen, fachpraktischen und fächerübergreifenden
# Inhalte sollen vermittelt werden?
#
# Es ist ein stichpunktartiges Inhaltsverzeichnis zu erstellen.
content:
type: str
label: {
@ -56,6 +75,14 @@ content:
#
# Lehrform
#
#
# Welche Lehr- und Lernformen werden angewendet?
# (Vorlesungen, Übungen, Seminare, Praktika,
# Projektarbeit, Selbststudium)
#
# Es sind nur Werte aus der Prüfungsordung zugelassen
#
form-of-instruction:
label: {
de: "Lehrform(en)",
@ -95,6 +122,14 @@ form-of-instruction:
#
# Voraussetzungen für die Teilnahme
#
# Für jedes Modul sind die Voraussetzungen für die Teilnahme zu beschreiben.
# Welche Kenntnisse, Fähigkeiten und Fertigkeiten sind für eine
# erfolgreiche Teilnahme vorauszusetzen?
#
# Alternativ können die Module benannt werden welche für die erfolgreiche
# Teilnahme im Vorfeld zu belegen sind.
prerequisites:
type: str
label: {
@ -105,6 +140,9 @@ prerequisites:
#
# Literatur und multimediale Lehr- und Lernprogramme
#
#
# Wie können die Studierenden sich auf die Teilnahme an diesem Modul vorbereiten?
#
media-of-instruction:
type: str
label: {
@ -178,6 +216,11 @@ form-of-exam:
en: "alternative examination"
}
}
spec: true
template:
de: "${value} (${spec})"
en: "${value} (${spec})"
#
# Semester
@ -241,6 +284,6 @@ kind:
remarks:
type: str
label: {
de: "Bemerkungen",
de: "Besonderes",
en: "remarks"
}