small update to get better query mode working

This commit is contained in:
Hartmut Seichter 2024-05-29 20:02:48 +02:00
parent ef011cda55
commit d41712e010
4 changed files with 164 additions and 234 deletions

View file

@ -1,23 +1,23 @@
# Concept
# concept
The concept behind coursebuilder is to store curricula descriptions in `YAML` files that can be versioned in a git repository. Unlike classic databases an observable and well defined versioning is paramount in these descriptions as they are the legal foundation for study and exam regulations.
The concept behind coursebuilder is to store curricula descriptions in `YAML` files that can be versioned in a git repository. Unlike classic databases, an observable and well defined versioning is paramount in these descriptions as they are the legal foundation for study and exam regulations.
The following pieces play together here:
- `schema` files, usually a `schema.yaml`
- `mod` files, usually something along the lines of `mod.coursecode.yaml`
- `mod` files, usually something along the lines of `mod.coursecode.yaml`
- `book` files describing a whole regulation set and course global details
- some sort of transformation with `coursebuilder` into Markdown that is piped through [pandoc](https://pandoc.org) in order to generate PDF, HTML and other representation from this code
- some sort of transformation with `coursebuilder` into Markdown that is piped through [pandoc](https://pandoc.org) in order to generate PDF, HTML and other representation from this code
# schema files
# schema files
Schema files are responsible to describe the used structures in a database. The following datatypes are supported:
- `str` a simple string, can be accompanied with a `template`
- `enum` a classic enum datatype with a fixed set of values
- `num` a numeric datatype
- `num` a numeric datatype
- `multinum` an array type with the possibility to `spec` each value
- `multikey` a key-value type with additional numeric data associated with each key instance
- `multikey` a key-value type with additional numeric data associated with each key instance
# mod files (modules)
@ -31,11 +31,11 @@ Modules describe a course in detail and implement an instance of the schema file
```yaml
# this would reside in a schema field on top level
# a field of name 'id'
id: # name of the field
id: # name of the field
type: str # sets the datatype to str
translatable: false # enforces the value is not translatable (default is true)
label: { # label describes the meaning of the datatype in regards of the schema
de: "Kürzel", # translation of the label in German (de)
en: "code" # translation of the label in English (en)
}
```
```