From da6cd6f1114b3ce540876cd508451ec1dc4b818c Mon Sep 17 00:00:00 2001 From: fpereiro Date: Thu, 28 Oct 2021 00:59:13 -0500 Subject: [PATCH] Add 404 page to catch all unspecified requests. (#1120) --- app.py | 8 ++++++-- coursedata/texts/en.yaml | 1 + coursedata/texts/es.yaml | 1 + coursedata/texts/nl.yaml | 3 ++- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app.py b/app.py index 0e9fee6005b..537c8e26031 100644 --- a/app.py +++ b/app.py @@ -80,7 +80,7 @@ def load_adventure_for_language(lang): if not adventures_for_lang.has_adventures(): # The default fall back language is English - fall_back = FALL_BACK_ADVENTURE.get(lang, "en") + fall_back = FALL_BACK_ADVENTURE.get(lang, "en") adventures_for_lang = ADVENTURES[fall_back] return adventures_for_lang.adventures_file['adventures'] @@ -513,7 +513,7 @@ def get_quiz(level_source, question_nr, attempt): option_obj['char_index'] = char_array[i] i += 1 question_obj.append(option_obj) - + html_obj = render_template('quiz_question.html', quiz=quiz_data, level_source=level_source, @@ -819,6 +819,10 @@ def client_messages(): return response +@app.errorhandler(404) +def not_found(exception): + return utils.page_404 (TRANSLATIONS, render_main_menu('adventures'), current_user(request) ['username'], requested_lang (), TRANSLATIONS.get_translations (requested_lang (), 'ui').get ('page_not_found')) + @app.errorhandler(500) def internal_error(exception): import traceback diff --git a/coursedata/texts/en.yaml b/coursedata/texts/en.yaml index 51b318a768f..e60350fea06 100644 --- a/coursedata/texts/en.yaml +++ b/coursedata/texts/en.yaml @@ -38,6 +38,7 @@ ui: no_such_adventure_level: "No such level for this Hedy adventure!" no_such_program: "No such Hedy program!" invalid_teacher_invitation_code: "The teacher invitation code is invalid. To become a teacher, reach out to hedy@felienne.com." + page_not_found: "We could not find that page!" ClientErrorMessages: Transpile_warning: "Warning!" Transpile_error: "We can't run your program." diff --git a/coursedata/texts/es.yaml b/coursedata/texts/es.yaml index 24ba7882e1d..fe323a2339d 100644 --- a/coursedata/texts/es.yaml +++ b/coursedata/texts/es.yaml @@ -27,6 +27,7 @@ ui: switch_to_another_adventure: "Elegir otra aventura" commands_title: "Comandos" by: "por" + page_not_found: "¡No pudimos encontrar esta página!" ClientErrorMessages: Transpile_warning: "¡Atención!" Transpile_error: "El servidor no puede traducir este programa." diff --git a/coursedata/texts/nl.yaml b/coursedata/texts/nl.yaml index 0f9552df7f0..e1c74f00576 100644 --- a/coursedata/texts/nl.yaml +++ b/coursedata/texts/nl.yaml @@ -28,7 +28,8 @@ ui: commands_title: "Commando's" by: "door" start_quiz: "Naar de quiz" - invalid_teacher_invitation_code: "Deze leerkrachtenuitnodigingscode is niet geldig. ALs je een nieuwe uitnodiging nodig hebt, neem dan contact op met hedy@felienne.com" + invalid_teacher_invitation_code: "Deze leerkrachtenuitnodigingscode is niet geldig. Als je een nieuwe uitnodiging nodig hebt, neem dan contact op met hedy@felienne.com" + page_not_found: "We konden deze pagina niet vinden!" ClientErrorMessages: Transpile_warning: "Let op!" Transpile_error: "We konden je code niet goed lezen."