diff --git a/BUGS.md b/BUGS.md index a8e0d26..7b93d45 100644 --- a/BUGS.md +++ b/BUGS.md @@ -1,7 +1,6 @@ BUGS: -- se refs de um topic estao invalidos, nao carrega esse topico. devia haver um error nos logs a indicar qual o ref invalido. - forçar reload das perguntas sem ter de deitar abaixo o servidor. - topicos virtuais nao deveriam aparecer. na construção da árvore os sucessores seriam ligados directamente aos predecessores. - Criar outra estrutura organizada em capítulos (conjuntos de tópicos). Permitir capítulos de capítulos, etc. talvez usar grafos de grafos... @@ -34,6 +33,7 @@ TODO: FIXED: +- se refs de um topic estao invalidos, nao carrega esse topico. devia haver um error nos logs a indicar qual o ref invalido. - link directo para topico nao valida se topico esta unlocked. - templates not working: quesntion-information, question-warning (remove all informative panels??) - enderecos errados dao internal error. diff --git a/demo/demo.yaml b/demo/demo.yaml index 9e8158e..6e9f858 100644 --- a/demo/demo.yaml +++ b/demo/demo.yaml @@ -14,7 +14,7 @@ path: ./demo topics: # topic without dependencies - math: + matha: name: Matemática # topic with one dependency diff --git a/learnapp.py b/learnapp.py index f8e9b45..01c622e 100644 --- a/learnapp.py +++ b/learnapp.py @@ -297,7 +297,7 @@ def build_dependency_graph(config={}): # if questions not in configuration then load all, preserving order if not tnode['questions']: tnode['questions'] = [q['ref'] for q in loaded_questions] - + # make questions factory (without repeating same question) tnode['factory'] = {} for q in loaded_questions: diff --git a/tools.py b/tools.py index e3f06db..4ab1931 100644 --- a/tools.py +++ b/tools.py @@ -133,25 +133,24 @@ def md_to_html(text, q=None): # load data from yaml file # --------------------------------------------------------------------------- def load_yaml(filename, default=None): + filename = path.expanduser(filename) try: - f = open(path.expanduser(filename), 'r', encoding='utf-8') + f = open(filename, 'r', encoding='utf-8') except FileNotFoundError: - logger.error(f'Can\'t open "{script}": not found.') - return default + logger.error(f'Can\'t open "{filename}": not found.') except PermissionError: - logger.error(f'Can\'t open "{script}": no permission.') - return default + logger.error(f'Can\'t open "{filename}": no permission.') except IOError: logger.error(f'Can\'t open file "{filename}".') - return default else: with f: try: - return yaml.load(f) + default = yaml.load(f) except yaml.YAMLError as e: mark = e.problem_mark logger.error(f'In YAML file "{filename}" near line {mark.line}, column {mark.column+1}.') - return default + finally: + return default # --------------------------------------------------------------------------- # Runs a script and returns its stdout parsed as yaml, or None on error. -- libgit2 0.21.2