diff --git a/cms/djangoapps/contentstore/views/course.py b/cms/djangoapps/contentstore/views/course.py index 432bd250a5..4e583bf8e4 100644 --- a/cms/djangoapps/contentstore/views/course.py +++ b/cms/djangoapps/contentstore/views/course.py @@ -1134,8 +1134,8 @@ class GroupConfiguration(object): """ if not self.configuration.get("name"): raise GroupConfigurationsValidationError(_("must have name of the configuration")) - if len(self.configuration.get('groups', [])) < 2: - raise GroupConfigurationsValidationError(_("must have at least two groups")) + if len(self.configuration.get('groups', [])) < 1: + raise GroupConfigurationsValidationError(_("must have at least one group")) def generate_id(self, used_ids): """ diff --git a/cms/djangoapps/contentstore/views/tests/test_group_configurations.py b/cms/djangoapps/contentstore/views/tests/test_group_configurations.py index 2f413871e7..9dd4a0bcb7 100644 --- a/cms/djangoapps/contentstore/views/tests/test_group_configurations.py +++ b/cms/djangoapps/contentstore/views/tests/test_group_configurations.py @@ -121,13 +121,11 @@ class GroupConfigurationsBaseTestCase(object): {u'name': u'Group B'}, ], }, - # must have at least two groups + # must have at least one group { u'name': u'Test name', u'description': u'Test description', - u'groups': [ - {u'name': u'Group A'}, - ], + u'groups': [], }, # an empty json {}, diff --git a/cms/static/js/models/group_configuration.js b/cms/static/js/models/group_configuration.js index f2e42a6531..95c97ee3d5 100644 --- a/cms/static/js/models/group_configuration.js +++ b/cms/static/js/models/group_configuration.js @@ -80,14 +80,14 @@ function(Backbone, _, str, gettext, GroupModel, GroupCollection) { validate: function(attrs) { if (!_.str.trim(attrs.name)) { return { - message: gettext('Group Configuration name is required'), + message: gettext('Group Configuration name is required.'), attributes: {name: true} }; } - if (attrs.groups.length < 2) { + if (attrs.groups.length < 1) { return { - message: gettext('There must be at least two groups'), + message: gettext('There must be at least one group.'), attributes: { groups: true } }; } else { @@ -100,7 +100,7 @@ function(Backbone, _, str, gettext, GroupModel, GroupCollection) { }); if (!_.isEmpty(invalidGroups)) { return { - message: gettext('All groups must have a name'), + message: gettext('All groups must have a name.'), attributes: { groups: invalidGroups } }; } diff --git a/cms/static/js/spec/models/group_configuration_spec.js b/cms/static/js/spec/models/group_configuration_spec.js index 550d1426bc..4a1b183f19 100644 --- a/cms/static/js/spec/models/group_configuration_spec.js +++ b/cms/static/js/spec/models/group_configuration_spec.js @@ -183,15 +183,14 @@ define([ expect(model.isValid()).toBeTruthy(); }); - it('requires at least two groups', function() { + it('requires at least one group', function() { var group1 = new GroupModel({ name: 'Group A' }), - group2 = new GroupModel({ name: 'Group B' }), model = new GroupConfigurationModel({ name: 'foo' }); - model.get('groups').reset([group1]); + model.get('groups').reset([]); expect(model.isValid()).toBeFalsy(); - model.get('groups').add(group2); + model.get('groups').add(group1); expect(model.isValid()).toBeTruthy(); });