Commit a19319f7 by Victor Shnayder

add some error handling

parent 27cd9c9f
...@@ -243,7 +243,7 @@ def get_static_tab_by_slug(course, tab_slug): ...@@ -243,7 +243,7 @@ def get_static_tab_by_slug(course, tab_slug):
if course.tabs is None: if course.tabs is None:
return None return None
for tab in course.tabs: for tab in course.tabs:
# if the tab is misconfigured, this will blow up. The validation code should check... # The validation code checks that these exist.
if tab['type'] == 'static_tab' and tab['url_slug'] == tab_slug: if tab['type'] == 'static_tab' and tab['url_slug'] == tab_slug:
return tab return tab
...@@ -258,11 +258,17 @@ def get_static_tab_contents(course, tab): ...@@ -258,11 +258,17 @@ def get_static_tab_contents(course, tab):
Looks in tabs/{course_url_name}/{tab_slug}.html first, then tabs/{tab_slug}.html. Looks in tabs/{course_url_name}/{tab_slug}.html first, then tabs/{tab_slug}.html.
""" """
slug = tab['url_slug'] slug = tab['url_slug']
paths = ['tabs/{0}/{1}.html'.format(course.url_name, slug), 'tabs/{0}.html'.format(slug)] paths = ['tabs/{0}/{1}.html'.format(course.url_name, slug),
'tabs/{0}.html'.format(slug)]
fs = course.system.resources_fs fs = course.system.resources_fs
for p in paths: for p in paths:
if fs.exists(p): if fs.exists(p):
with fs.open(p) as tabfile: try:
# TODO: redundant with module_render.py. Want to be helper methods in static_replace or something. with fs.open(p) as tabfile:
contents = replace_urls(tabfile.read(), course.metadata['data_dir']) # TODO: redundant with module_render.py. Want to be helper methods in static_replace or something.
return replace_urls(contents, staticfiles_prefix='/courses/'+course.id, replace_prefix='/course/') contents = replace_urls(tabfile.read(), course.metadata['data_dir'])
return replace_urls(contents, staticfiles_prefix='/courses/'+course.id, replace_prefix='/course/')
except (ResourceNotFoundError) as err:
log.warning("Couldn't load tab contents from '{0}': {1}".format(p, err))
return None
return None
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment