diff --git a/community/www/courses/topic.py b/community/www/courses/topic.py index 855cabc8..42dbb6a0 100644 --- a/community/www/courses/topic.py +++ b/community/www/courses/topic.py @@ -2,12 +2,16 @@ import frappe def get_context(context): context.no_cache = 1 - course_name = get_queryparam("course", '/courses') - context.course = get_course(course_name) - topic_name = get_queryparam("topic", '/courses?course=' + course_name) - context.topic = get_topic(course_name, topic_name) - context.livecode_url = get_livecode_url() + try: + course_name = get_queryparam("course", '/courses') + context.course = get_course(course_name) + + topic_name = get_queryparam("topic", '/courses/' + course_name) + context.topic = get_topic(course_name, topic_name) + context.livecode_url = get_livecode_url() + except frappe.DoesNotExistError: + context.template = 'www/404.html' def get_livecode_url(): doc = frappe.get_doc("LMS Settings") @@ -23,15 +27,15 @@ def get_queryparam(name, redirect_when_not_found): def get_course(name): try: course = frappe.get_doc('LMS Course', name) - except frappe.exceptions.DoesNotExistError: - raise frappe.NotFound + except frappe.DoesNotExistError: + raise return course def get_topic(course_name, topic_name): try: topic = frappe.get_doc('LMS Topic', topic_name) - except frappe.exceptions.DoesNotExistError: - raise frappe.NotFound + except frappe.DoesNotExistError: + raise if topic.course != course_name: - raise frappe.NotFound + raise frappe.DoesNotExistError() return topic