diff --git a/cms/djangoapps/contentstore/tests/test_contentstore.py b/cms/djangoapps/contentstore/tests/test_contentstore.py index 99ef1169b1..9d533dffed 100644 --- a/cms/djangoapps/contentstore/tests/test_contentstore.py +++ b/cms/djangoapps/contentstore/tests/test_contentstore.py @@ -112,7 +112,7 @@ class ContentStoreToyCourseTest(ModuleStoreTestCase): self.assertTrue(sequential.location.url() in chapter.definition['children']) self.client.post(reverse('delete_item'), - json.dumps({'id': sequential.location.url(), 'delete_children':'true'}), + json.dumps({'id': sequential.location.url(), 'delete_children':'true', 'delete_all_versions':'true'}), "application/json") found = False diff --git a/cms/djangoapps/contentstore/views.py b/cms/djangoapps/contentstore/views.py index c2c80106fa..6566350f8d 100644 --- a/cms/djangoapps/contentstore/views.py +++ b/cms/djangoapps/contentstore/views.py @@ -643,15 +643,15 @@ def delete_item(request): modulestore('direct').delete_item(item.location) # cdodge: we need to remove our parent's pointer to us so that it is no longer dangling + if delete_all_versions: + parent_locs = modulestore('direct').get_parent_locations(item_loc, None) - parent_locs = modulestore('direct').get_parent_locations(item_loc, None) - - for parent_loc in parent_locs: - parent = modulestore('direct').get_item(parent_loc) - item_url = item_loc.url() - if item_url in parent.definition["children"]: - parent.definition["children"].remove(item_url) - modulestore('direct').update_children(parent.location, parent.definition["children"]) + for parent_loc in parent_locs: + parent = modulestore('direct').get_item(parent_loc) + item_url = item_loc.url() + if item_url in parent.definition["children"]: + parent.definition["children"].remove(item_url) + modulestore('direct').update_children(parent.location, parent.definition["children"]) return HttpResponse()