Commit c5c39137 by polesye

BLD-1091: Hide user_partitions from Advanced settings.

parent bf8183f6
...@@ -2,6 +2,7 @@ from xblock.fields import Scope ...@@ -2,6 +2,7 @@ from xblock.fields import Scope
from xmodule.modulestore.django import modulestore from xmodule.modulestore.django import modulestore
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
class CourseMetadata(object): class CourseMetadata(object):
''' '''
For CRUD operations on metadata fields which do not have specific editors For CRUD operations on metadata fields which do not have specific editors
...@@ -23,6 +24,7 @@ class CourseMetadata(object): ...@@ -23,6 +24,7 @@ class CourseMetadata(object):
'graded', 'graded',
'hide_from_toc', 'hide_from_toc',
'pdf_textbooks', 'pdf_textbooks',
'user_partitions',
'name', # from xblock 'name', # from xblock
'tags', # from xblock 'tags', # from xblock
'video_speed_optimizations', 'video_speed_optimizations',
......
...@@ -499,15 +499,21 @@ class CourseFixture(StudioApiFixture): ...@@ -499,15 +499,21 @@ class CourseFixture(StudioApiFixture):
""" """
Publish the xblock at `locator`. Publish the xblock at `locator`.
""" """
self._update_xblock(locator, {'publish': 'make_public'})
def _update_xblock(self, locator, data):
"""
Update the xblock at `locator`.
"""
# Create the new XBlock # Create the new XBlock
response = self.session.put( response = self.session.put(
"{}/xblock/{}".format(STUDIO_BASE_URL, locator), "{}/xblock/{}".format(STUDIO_BASE_URL, locator),
data=json.dumps({'publish': 'make_public'}), data=json.dumps(data),
headers=self.headers, headers=self.headers,
) )
if not response.ok: if not response.ok:
msg = "Could not publish {}. Status was {}".format(locator, response.status_code) msg = "Could not update {} with data {}. Status was {}".format(locator, data, response.status_code)
raise CourseFixtureError(msg) raise CourseFixtureError(msg)
def _encode_post_dict(self, post_dict): def _encode_post_dict(self, post_dict):
......
...@@ -143,6 +143,7 @@ class ContainerPage(PageObject): ...@@ -143,6 +143,7 @@ class ContainerPage(PageObject):
Note that this does an ajax call. Note that this does an ajax call.
""" """
self.q(css='.add-missing-groups-button').first.click() self.q(css='.add-missing-groups-button').first.click()
self.wait_for_page()
def missing_groups_button_present(self): def missing_groups_button_present(self):
""" """
......
...@@ -69,16 +69,22 @@ class SplitTest(ContainerBase, SplitTestMixin): ...@@ -69,16 +69,22 @@ class SplitTest(ContainerBase, SplitTestMixin):
""" """
__test__ = True __test__ = True
def setUp(self):
super(SplitTest, self).setUp()
# This line should be called once courseFixture is installed
self.course_fixture._update_xblock(self.course_fixture._course_location, {
"metadata": {
u"user_partitions": [
UserPartition(0, 'Configuration alpha,beta', 'first', [Group("0", 'alpha'), Group("1", 'beta')]).to_json(),
UserPartition(1, 'Configuration 0,1,2', 'second', [Group("0", 'Group 0'), Group("1", 'Group 1'), Group("2", 'Group 2')]).to_json()
],
},
})
def populate_course_fixture(self, course_fixture): def populate_course_fixture(self, course_fixture):
""" Populates the course """ """ Populates the course """
course_fixture.add_advanced_settings( course_fixture.add_advanced_settings(
{ {u"advanced_modules": {"value": ["split_test"]}}
u"advanced_modules": {"value": ["split_test"]},
u"user_partitions": {"value": [
UserPartition(0, 'Configuration alpha,beta', 'first', [Group("0", 'alpha'), Group("1", 'beta')]).to_json(),
UserPartition(1, 'Configuration 0,1,2', 'second', [Group("0", 'Group 0'), Group("1", 'Group 1'), Group("2", 'Group 2')]).to_json()
]}
}
) )
course_fixture.add_children( course_fixture.add_children(
...@@ -101,15 +107,14 @@ class SplitTest(ContainerBase, SplitTestMixin): ...@@ -101,15 +107,14 @@ class SplitTest(ContainerBase, SplitTestMixin):
container.edit() container.edit()
component_editor = ComponentEditorView(self.browser, container.locator) component_editor = ComponentEditorView(self.browser, container.locator)
component_editor.set_select_value_and_save('Group Configuration', 'Configuration alpha,beta') component_editor.set_select_value_and_save('Group Configuration', 'Configuration alpha,beta')
self.course_fixture.add_advanced_settings( self.course_fixture._update_xblock(self.course_fixture._course_location, {
{ "metadata": {
u"user_partitions": {"value": [ u"user_partitions": [
UserPartition(0, 'Configuration alpha,beta', 'first', UserPartition(0, 'Configuration alpha,beta', 'first',
[Group("0", 'alpha'), Group("2", 'gamma')]).to_json() [Group("0", 'alpha'), Group("2", 'gamma')]).to_json()
]} ],
} },
) })
self.course_fixture._add_advanced_settings()
return self.go_to_container_page() return self.go_to_container_page()
def test_create_and_select_group_configuration(self): def test_create_and_select_group_configuration(self):
...@@ -267,7 +272,7 @@ class GroupConfigurationsTest(ContainerBase, SplitTestMixin): ...@@ -267,7 +272,7 @@ class GroupConfigurationsTest(ContainerBase, SplitTestMixin):
u"advanced_modules": {"value": ["split_test"]}, u"advanced_modules": {"value": ["split_test"]},
}) })
course_fixture.add_children( course_fixture.add_children(
XBlockFixtureDesc('chpater', 'Test Section').add_children( XBlockFixtureDesc('chapter', 'Test Section').add_children(
XBlockFixtureDesc('sequential', 'Test Subsection').add_children( XBlockFixtureDesc('sequential', 'Test Subsection').add_children(
XBlockFixtureDesc('vertical', 'Test Unit') XBlockFixtureDesc('vertical', 'Test Unit')
) )
...@@ -302,18 +307,16 @@ class GroupConfigurationsTest(ContainerBase, SplitTestMixin): ...@@ -302,18 +307,16 @@ class GroupConfigurationsTest(ContainerBase, SplitTestMixin):
Then I see `description` and `groups` appear and also have correct values Then I see `description` and `groups` appear and also have correct values
And I do the same checks for the second group configuration And I do the same checks for the second group configuration
""" """
self.course_fixture.add_advanced_settings({ self.course_fixture._update_xblock(self.course_fixture._course_location, {
u"user_partitions": { "metadata": {
"value": [ u"user_partitions": [
UserPartition(0, 'Name of the Group Configuration', 'Description of the group configuration.', [Group("0", 'Group 0'), Group("1", 'Group 1')]).to_json(), UserPartition(0, 'Name of the Group Configuration', 'Description of the group configuration.', [Group("0", 'Group 0'), Group("1", 'Group 1')]).to_json(),
UserPartition(1, 'Name of second Group Configuration', 'Second group configuration.', [Group("0", 'Alpha'), Group("1", 'Beta'), Group("2", 'Gamma')]).to_json() UserPartition(1, 'Name of second Group Configuration', 'Second group configuration.', [Group("0", 'Alpha'), Group("1", 'Beta'), Group("2", 'Gamma')]).to_json(),
], ],
}, },
}) })
self.course_fixture._add_advanced_settings()
self.page.visit() self.page.visit()
config = self.page.group_configurations()[0] config = self.page.group_configurations()[0]
# no groups when the the configuration is collapsed # no groups when the the configuration is collapsed
self.assertEqual(len(config.groups), 0) self.assertEqual(len(config.groups), 0)
...@@ -496,19 +499,17 @@ class GroupConfigurationsTest(ContainerBase, SplitTestMixin): ...@@ -496,19 +499,17 @@ class GroupConfigurationsTest(ContainerBase, SplitTestMixin):
And I click button 'Cancel' And I click button 'Cancel'
Then I see that new changes were discarded Then I see that new changes were discarded
""" """
self.course_fixture.add_advanced_settings({ self.course_fixture._update_xblock(self.course_fixture._course_location, {
u"user_partitions": { "metadata": {
"value": [ u"user_partitions": [
UserPartition(0, 'Name of the Group Configuration', 'Description of the group configuration.', [Group("0", 'Group 0'), Group("1", 'Group 1')]).to_json(), UserPartition(0, 'Name of the Group Configuration', 'Description of the group configuration.', [Group("0", 'Group 0'), Group("1", 'Group 1')]).to_json(),
UserPartition(1, 'Name of second Group Configuration', 'Second group configuration.', [Group("0", 'Alpha'), Group("1", 'Beta'), Group("2", 'Gamma')]).to_json() UserPartition(1, 'Name of second Group Configuration', 'Second group configuration.', [Group("0", 'Alpha'), Group("1", 'Beta'), Group("2", 'Gamma')]).to_json(),
], ],
}, },
}) })
self.course_fixture._add_advanced_settings()
self.page.visit() self.page.visit()
config = self.page.group_configurations()[0] config = self.page.group_configurations()[0]
config.name = "New Group Configuration Name" config.name = "New Group Configuration Name"
config.description = "New Description of the group configuration." config.description = "New Description of the group configuration."
# Add 2 new groups # Add 2 new groups
......
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