diff --git a/coursebuilder/__main__.py b/coursebuilder/__main__.py index 51b4527..4b52800 100644 --- a/coursebuilder/__main__.py +++ b/coursebuilder/__main__.py @@ -104,10 +104,15 @@ class CourseBuilder: # print(self.__schema) def process(self,meta = None,lang='en'): - fields = ['name'] + + fields = ['name','goal'] for field in fields: - print(self.__schema[field]['label'][lang],':',meta[field][lang]) + match self.__schema[field]['type']: + case 'str': self.process_str(meta,field,lang) + + def process_str(self,meta,field,lang='de'): + print(self.__schema[field]['label'][lang],':',meta[field][lang]) def process_int(self,lang='de'): pass @@ -126,7 +131,7 @@ def main(): parser = ArgumentParser(description='versatile curricula generator') parser.add_argument('-m','--meta',action="extend", nargs="+", type=str,help="course description(s) as YAML file(s)") - # parser.add_argument('-l','--lang',help="Language to parse from meta file (use de or en)",default='de') + parser.add_argument('-l','--lang',help="Language to parse from meta file (use de or en)",default='de') # parser.add_argument('-c','--create',action='store_true',help="Create a meta file from description") # parser.add_argument('-n','--newpage',action='store_true',help="Create a pagebreak after each table") # parser.add_argument('-t','--title',action='store_true',help="Create a title ahead of each table") @@ -147,7 +152,7 @@ def main(): for m in args.meta: with open(m) as fm: - cb.process(yaml.load(fm,Loader=yaml.Loader)) + cb.process(yaml.load(fm,Loader=yaml.Loader),lang=args.lang) else: parser.print_help() diff --git a/test/simple/mod.cg.yaml b/test/simple/mod.cg.yaml index 9b4974e..48c5783 100644 --- a/test/simple/mod.cg.yaml +++ b/test/simple/mod.cg.yaml @@ -20,6 +20,55 @@ common: form: lecture # lecture, seminar, lecture_seminar, lecture_exersice, project +goal: { + de: "Computergrafik ist ein Schmelztiegel von Technologien in der Informatik mit dem Ziel visuelle + Inhalte effizient zu generieren und dem Nutzer zu präsentieren. Studierende können den + Zusammenhang von visuellen Technologien in der Informatik, den zugrunde liegenden mathematischen + Konzepte und der Physiognomie des Menschen, insbesondere des Sehapparates herstellen. + Sie können die Eigenschaften verschiedener Darstellungsformen und -techniken analysieren und + bewerten. Sie lernen grundsätzliche Technologien der 3D Echtzeitdarstellung + kennen und wenden diese an.", + en: "Computer graphics is describing all techniques in computer science + generating images perceivable by humans. Participants will have a broad + overview of techniques and concepts of computer graphics. They will be + able to apply theoretical concepts in practice. " +} + +content: { + de: " + * Grundkenntnisse der menschlichen Wahrnehmung + * Grundkonzepte der Bilderzeugung, Speicherung und Transformation + * Anwendungen von Computergrafik + * Technologien zur Bilddarstellung + * 3D Modelle, insbesondere Surface- und Volumemodelle + * Transformationspipeline + * Homogene Vektorräume und Transformationen + * Szenengraphen und Echtzeit Rendering APIs + * Bildsyntheseverfahren + * Geometrie und Bild Samplingverfahren und Anti-Aliasing Strategien + * Lichttransport, Physikalische Beleuchtungsmodelle + * Texturierungsverfahren + * Überblick Visualisierung + * Graphische Nutzeroberflächen und Systeme + ", + en: " + * Basics of human perception + * Concepts of image storage and manipulation + * Applications of computer graphics + * Display sytems + * 3D models,i.e. surface and volume models + * Transformationspipeline + * Homogenous vector spaces and transformations + * Scenegraphs and rendering APIs + * Methods for image-synthesis + * Sampling in computer graphics + * Light transport and shading models + * Texturing + * Overview visualizations + * Graphical User Interfaces + " +} + # German Variant de: name: Computergrafik diff --git a/test/simple/schema.yaml b/test/simple/schema.yaml index d70a747..12c6b15 100644 --- a/test/simple/schema.yaml +++ b/test/simple/schema.yaml @@ -1,28 +1,105 @@ # fields in curricular description # leaning on methods in OpenAPI 3.0 +# +# Modulname +# name: + type: str label: { de: "Modulname", en: "name of course" } + +# +# Kürzel / ID +# +id: type: str -id: str -instructor: str -goal: str -content: str -form: enum -prerequisites: str -media-of-instruction: str -author-of-indenture: str + label: { + de: "Kürzel", + en: "code" + } + +# +# Modulverantwortliche:r +# +instructor: + type: str + label: { + de: "Modulverantwortliche:r", + en: "module instructor" + } + +# +# Qualifikationsziele +# +goal: + type: str + label: { + de: "Qualifikationsziele", + en: "educational goal" + } + +# +# Modulinhalte +# +content: + type: str + label: { + de: "Modulinhalte", + en: "content" + } + +form: + type: enum +# +# Voraussetzungen für die Teilnahme +# +prerequisites: + type: str + label: { + de: "Voraussetzungen für die Teilnahme", + en: "prerequisites" + } + +# +# Literatur und multimediale Lehr- und Lernprogramme +# +media-of-instruction: + type: str + label: { + de: "Literatur und multimediale Lehr- und Lernprogramme", + en: "media of instruction" + } + +# +# Lehrbriefautor +# +author-of-indenture: + type: str + label: { + de: "Lehrbriefautor", + en: "author of indenture" + } + +# +# Verwendung in (Studienprogramm) +# used-in: + type: str + label: { + de: "Verwendung", + en: "used in study programs" + } + workload: #tricky! { 'presence': 10, 'exersise': 10, 'exam-prep' : 0 } # # credits/ECTS # credits: label: { - en: "Credits and Weight of Mark", + en: "credits and weight of mark", de: "Kreditpunkte und Gewichtung der Note in der Gesamtnote" } type: int