Commit 750640b6 by Andy Armstrong

Merge pull request #2902 from edx/usman/lms2136-wiki-slug-renamespacing-fix

Do not remap the wiki_slug if reimporting into the same course.
parents 2f2ce555 cb2243a4
...@@ -1763,6 +1763,26 @@ class ContentStoreTest(ModuleStoreTestCase): ...@@ -1763,6 +1763,26 @@ class ContentStoreTest(ModuleStoreTestCase):
def test_import_into_new_course_id_wiki_slug_renamespacing(self): def test_import_into_new_course_id_wiki_slug_renamespacing(self):
module_store = modulestore('direct') module_store = modulestore('direct')
# If reimporting into the same course do not change the wiki_slug.
target_location = Location('i4x', 'edX', 'toy', 'course', '2012_Fall')
course_data = {
'org': target_location.org,
'number': target_location.course,
'display_name': 'Robot Super Course',
'run': target_location.name
}
_create_course(self, course_data)
course_module = module_store.get_instance(target_location.course_id, target_location)
course_module.wiki_slug = 'toy'
course_module.save()
# Import a course with wiki_slug == location.course
import_from_xml(module_store, 'common/test/data/', ['toy'], target_location_namespace=target_location)
course_module = module_store.get_instance(target_location.course_id, target_location)
self.assertEquals(course_module.wiki_slug, 'toy')
# But change the wiki_slug if it is a different course.
target_location = Location('i4x', 'MITx', '999', 'course', '2013_Spring') target_location = Location('i4x', 'MITx', '999', 'course', '2013_Spring')
course_data = { course_data = {
'org': target_location.org, 'org': target_location.org,
...@@ -1770,7 +1790,6 @@ class ContentStoreTest(ModuleStoreTestCase): ...@@ -1770,7 +1790,6 @@ class ContentStoreTest(ModuleStoreTestCase):
'display_name': 'Robot Super Course', 'display_name': 'Robot Super Course',
'run': target_location.name 'run': target_location.name
} }
target_course_id = '{0}/{1}/{2}'.format(target_location.org, target_location.course, target_location.name)
_create_course(self, course_data) _create_course(self, course_data)
# Import a course with wiki_slug == location.course # Import a course with wiki_slug == location.course
...@@ -1778,9 +1797,9 @@ class ContentStoreTest(ModuleStoreTestCase): ...@@ -1778,9 +1797,9 @@ class ContentStoreTest(ModuleStoreTestCase):
course_module = module_store.get_instance(target_location.course_id, target_location) course_module = module_store.get_instance(target_location.course_id, target_location)
self.assertEquals(course_module.wiki_slug, 'MITx.999.2013_Spring') self.assertEquals(course_module.wiki_slug, 'MITx.999.2013_Spring')
# Now try importing a course with wiki_slug == '{0}{1}{2}'.format(location.org, location.course, location.name) # Now try importing a course with wiki_slug == '{0}.{1}.{2}'.format(location.org, location.course, location.name)
import_from_xml(module_store, 'common/test/data/', ['two_toys'], target_location_namespace=target_location) import_from_xml(module_store, 'common/test/data/', ['two_toys'], target_location_namespace=target_location)
course_module = module_store.get_instance(target_course_id, target_location) course_module = module_store.get_instance(target_location.course_id, target_location)
self.assertEquals(course_module.wiki_slug, 'MITx.999.2013_Spring') self.assertEquals(course_module.wiki_slug, 'MITx.999.2013_Spring')
def test_import_metadata_with_attempts_empty_string(self): def test_import_metadata_with_attempts_empty_string(self):
......
...@@ -515,19 +515,20 @@ def remap_namespace(module, target_location_namespace): ...@@ -515,19 +515,20 @@ def remap_namespace(module, target_location_namespace):
) )
# Original wiki_slugs had value location.course. To make them unique this was changed to 'org.course.name'. # Original wiki_slugs had value location.course. To make them unique this was changed to 'org.course.name'.
# If the wiki_slug is equal to either of these default values then remap that so that the wiki does not point # If we are importing into a course with a different course_id and wiki_slug is equal to either of these default
# to the old wiki. # values then remap it so that the wiki does not point to the old wiki.
original_unique_wiki_slug = '{0}.{1}.{2}'.format( if original_location.course_id != target_location_namespace.course_id:
original_location.org, original_unique_wiki_slug = '{0}.{1}.{2}'.format(
original_location.course, original_location.org,
original_location.name original_location.course,
) original_location.name
if module.wiki_slug == original_unique_wiki_slug or module.wiki_slug == original_location.course:
module.wiki_slug = '{0}.{1}.{2}'.format(
target_location_namespace.org,
target_location_namespace.course,
target_location_namespace.name,
) )
if module.wiki_slug == original_unique_wiki_slug or module.wiki_slug == original_location.course:
module.wiki_slug = '{0}.{1}.{2}'.format(
target_location_namespace.org,
target_location_namespace.course,
target_location_namespace.name,
)
module.save() module.save()
......
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