Commit e0d1449e by Chris Dodge

add a finally statement to be sure to turn back on event firing on writes in…

add a finally statement to be sure to turn back on event firing on writes in case an import throws an exception
parent e59b650f
...@@ -207,6 +207,7 @@ def import_from_xml(store, data_dir, course_dirs=None, ...@@ -207,6 +207,7 @@ def import_from_xml(store, data_dir, course_dirs=None,
course_id_components = course_id.split('/') course_id_components = course_id.split('/')
pseudo_course_id = '/'.join([course_id_components[0], course_id_components[1]]) pseudo_course_id = '/'.join([course_id_components[0], course_id_components[1]])
try:
# turn off all write signalling while importing as this is a high volume operation # turn off all write signalling while importing as this is a high volume operation
if pseudo_course_id not in store.ignore_write_events_on_courses: if pseudo_course_id not in store.ignore_write_events_on_courses:
store.ignore_write_events_on_courses.append(pseudo_course_id) store.ignore_write_events_on_courses.append(pseudo_course_id)
...@@ -305,7 +306,7 @@ def import_from_xml(store, data_dir, course_dirs=None, ...@@ -305,7 +306,7 @@ def import_from_xml(store, data_dir, course_dirs=None,
# NOTE: It's important to use own_metadata here to avoid writing # NOTE: It's important to use own_metadata here to avoid writing
# inherited metadata everywhere. # inherited metadata everywhere.
store.update_metadata(module.location, dict(own_metadata(module))) store.update_metadata(module.location, dict(own_metadata(module)))
finally:
# turn back on all write signalling # turn back on all write signalling
if pseudo_course_id in store.ignore_write_events_on_courses: if pseudo_course_id in store.ignore_write_events_on_courses:
store.ignore_write_events_on_courses.remove(pseudo_course_id) store.ignore_write_events_on_courses.remove(pseudo_course_id)
......
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