added a special tablebreak tag for a very special curricula description
This commit is contained in:
parent
b3bc916746
commit
573018e9e2
5 changed files with 93 additions and 60 deletions
|
@ -66,6 +66,10 @@ class MarkdownGenerator:
|
||||||
|
|
||||||
# expand rows
|
# expand rows
|
||||||
for r in 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,' '),'|']))
|
print(''.join(['|',r[0].ljust(h_len,' '),'|',r[1].ljust(d_len,' '),'|']))
|
||||||
|
|
||||||
if headline:
|
if headline:
|
||||||
|
@ -100,6 +104,11 @@ class CourseBuilder:
|
||||||
else:
|
else:
|
||||||
return True
|
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'):
|
def process_label(self,field,lang='de'):
|
||||||
# processes the label of a field item
|
# processes the label of a field item
|
||||||
|
@ -107,13 +116,31 @@ class CourseBuilder:
|
||||||
|
|
||||||
def process_str(self,meta,field,lang='de'):
|
def process_str(self,meta,field,lang='de'):
|
||||||
if self.is_translatable(field):
|
if self.is_translatable(field):
|
||||||
|
|
||||||
return [self.process_label(field,lang),meta[field][lang]]
|
return [self.process_label(field,lang),meta[field][lang]]
|
||||||
else:
|
else:
|
||||||
|
if not 'value' in meta[field]:
|
||||||
|
raise AssertionError(field,'incomplete')
|
||||||
|
|
||||||
return [self.process_label(field,lang),meta[field]['value']]
|
return [self.process_label(field,lang),meta[field]['value']]
|
||||||
|
|
||||||
def process_enum(self,meta,field,lang='de'):
|
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'):
|
def process_int(self,meta,field,lang='de'):
|
||||||
v = meta[field]['value']
|
v = meta[field]['value']
|
||||||
|
@ -121,11 +148,13 @@ class CourseBuilder:
|
||||||
return [self.process_label(field,lang),t.substitute({'value' : v})]
|
return [self.process_label(field,lang),t.substitute({'value' : v})]
|
||||||
|
|
||||||
def process_multikey(self,meta,field,lang='de'):
|
def process_multikey(self,meta,field,lang='de'):
|
||||||
|
"""
|
||||||
|
multikey need to assign a numeric value to a key
|
||||||
|
"""
|
||||||
vs = meta[field]['value']
|
vs = meta[field]['value']
|
||||||
t = string.Template(self.get_template(field,lang))
|
t = string.Template(self.get_template(field,lang))
|
||||||
|
|
||||||
k = self.process_label(field,lang)
|
k = self.process_label(field,lang)
|
||||||
v = ""
|
|
||||||
|
|
||||||
parts = []
|
parts = []
|
||||||
|
|
||||||
|
|
10
test.md
10
test.md
|
@ -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
|
|
||||||
----------------------------------------------------------------------------------------------------------------------------------
|
|
|
@ -113,6 +113,10 @@ workload:
|
||||||
|
|
||||||
form-of-exam:
|
form-of-exam:
|
||||||
value: written
|
value: written
|
||||||
|
spec:
|
||||||
|
de: "120min Klausur"
|
||||||
|
en: "120min exam"
|
||||||
|
|
||||||
|
|
||||||
frequency:
|
frequency:
|
||||||
value: once_per_year
|
value: once_per_year
|
||||||
|
|
|
@ -12,41 +12,6 @@ name:
|
||||||
#
|
#
|
||||||
|
|
||||||
content:
|
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: |
|
en: |
|
||||||
1. Blah
|
1. Blah
|
||||||
|
|
||||||
|
@ -72,6 +37,8 @@ content-blah:
|
||||||
|
|
||||||
4. Blub
|
4. Blub
|
||||||
|
|
||||||
|
<!-- break -->
|
||||||
|
|
||||||
5. Blah
|
5. Blah
|
||||||
|
|
||||||
6. Blah and Blub
|
6. Blah and Blub
|
||||||
|
|
|
@ -11,6 +11,17 @@ name:
|
||||||
en: "name of course"
|
en: "name of course"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Modulverantwortliche:r
|
||||||
|
#
|
||||||
|
instructor:
|
||||||
|
type: str
|
||||||
|
translatable: false
|
||||||
|
label:
|
||||||
|
de: "Modulverantwortlicher/Modulverantwortliche"
|
||||||
|
en: "module instructor"
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Kürzel / ID
|
# Kürzel / ID
|
||||||
#
|
#
|
||||||
|
@ -22,20 +33,22 @@ id:
|
||||||
en: "code"
|
en: "code"
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
|
||||||
# Modulverantwortliche:r
|
|
||||||
#
|
|
||||||
instructor:
|
|
||||||
type: str
|
|
||||||
translatable: false
|
|
||||||
label: {
|
|
||||||
de: "Modulverantwortliche:r",
|
|
||||||
en: "module instructor"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Qualifikationsziele
|
# 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:
|
goal:
|
||||||
type: str
|
type: str
|
||||||
label: {
|
label: {
|
||||||
|
@ -46,6 +59,12 @@ goal:
|
||||||
#
|
#
|
||||||
# Modulinhalte
|
# Modulinhalte
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# Welche fachlichen, methodischen, fachpraktischen und fächerübergreifenden
|
||||||
|
# Inhalte sollen vermittelt werden?
|
||||||
|
#
|
||||||
|
# Es ist ein stichpunktartiges Inhaltsverzeichnis zu erstellen.
|
||||||
|
|
||||||
content:
|
content:
|
||||||
type: str
|
type: str
|
||||||
label: {
|
label: {
|
||||||
|
@ -56,6 +75,14 @@ content:
|
||||||
#
|
#
|
||||||
# Lehrform
|
# 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:
|
form-of-instruction:
|
||||||
label: {
|
label: {
|
||||||
de: "Lehrform(en)",
|
de: "Lehrform(en)",
|
||||||
|
@ -95,6 +122,14 @@ form-of-instruction:
|
||||||
#
|
#
|
||||||
# Voraussetzungen für die Teilnahme
|
# 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:
|
prerequisites:
|
||||||
type: str
|
type: str
|
||||||
label: {
|
label: {
|
||||||
|
@ -105,6 +140,9 @@ prerequisites:
|
||||||
#
|
#
|
||||||
# Literatur und multimediale Lehr- und Lernprogramme
|
# Literatur und multimediale Lehr- und Lernprogramme
|
||||||
#
|
#
|
||||||
|
#
|
||||||
|
# Wie können die Studierenden sich auf die Teilnahme an diesem Modul vorbereiten?
|
||||||
|
#
|
||||||
media-of-instruction:
|
media-of-instruction:
|
||||||
type: str
|
type: str
|
||||||
label: {
|
label: {
|
||||||
|
@ -178,6 +216,11 @@ form-of-exam:
|
||||||
en: "alternative examination"
|
en: "alternative examination"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
spec: true
|
||||||
|
template:
|
||||||
|
de: "${value} (${spec})"
|
||||||
|
en: "${value} (${spec})"
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Semester
|
# Semester
|
||||||
|
@ -241,6 +284,6 @@ kind:
|
||||||
remarks:
|
remarks:
|
||||||
type: str
|
type: str
|
||||||
label: {
|
label: {
|
||||||
de: "Bemerkungen",
|
de: "Besonderes",
|
||||||
en: "remarks"
|
en: "remarks"
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue