Rename 'cohort groups' to just 'cohorts'
This commit is contained in:
@@ -328,7 +328,7 @@ browser and pasting the output. When that file changes, this one should be rege
|
||||
<% }); %>
|
||||
</select>
|
||||
</label><div class="field-help">
|
||||
Discussion admins, moderators, and TAs can make their posts visible to all students or specify a single cohort group.
|
||||
Discussion admins, moderators, and TAs can make their posts visible to all students or specify a single cohort.
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
* Example usages:
|
||||
* interpolate_text('{title} ({count})', {title: expectedTitle, count: expectedCount}
|
||||
* interpolate_text(
|
||||
* ngettext("{numUsersAdded} student has been added to this cohort group",
|
||||
* "{numUsersAdded} students have been added to this cohort group", numUsersAdded),
|
||||
* ngettext("{numUsersAdded} student has been added to this cohort",
|
||||
* "{numUsersAdded} students have been added to this cohort", numUsersAdded),
|
||||
* {numUsersAdded: numUsersAdded}
|
||||
* );
|
||||
*
|
||||
|
||||
@@ -104,7 +104,7 @@ class MembershipPageCohortManagementSection(PageObject):
|
||||
|
||||
def _get_cohort_options(self):
|
||||
"""
|
||||
Returns the available options in the cohort dropdown, including the initial "Select a cohort group".
|
||||
Returns the available options in the cohort dropdown, including the initial "Select a cohort".
|
||||
"""
|
||||
return self.q(css=self._bounded_selector("#cohort-select option"))
|
||||
|
||||
@@ -122,7 +122,7 @@ class MembershipPageCohortManagementSection(PageObject):
|
||||
|
||||
def get_cohorts(self):
|
||||
"""
|
||||
Returns, as a list, the names of the available cohorts in the drop-down, filtering out "Select a cohort group".
|
||||
Returns, as a list, the names of the available cohorts in the drop-down, filtering out "Select a cohort".
|
||||
"""
|
||||
return [
|
||||
self._cohort_name(opt.text)
|
||||
@@ -227,7 +227,7 @@ class MembershipPageCohortManagementSection(PageObject):
|
||||
def set_cohort_associated_content_group(self, content_group=None, select_settings=True):
|
||||
"""
|
||||
Sets the content group associated with the cohort currently being edited.
|
||||
If content_group is None, un-links the cohort group from any content group.
|
||||
If content_group is None, un-links the cohort from any content group.
|
||||
Presses Save to update the cohort's settings.
|
||||
"""
|
||||
if select_settings:
|
||||
|
||||
@@ -41,7 +41,7 @@ class CohortTestMixin(object):
|
||||
def setup_cohort_config(self, course_fixture, auto_cohort_groups=None):
|
||||
"""
|
||||
Sets up the course to use cohorting with the given list of auto_cohort_groups.
|
||||
If auto_cohort_groups is None, no auto cohort groups are set.
|
||||
If auto_cohort_groups is None, no auto cohorts are set.
|
||||
"""
|
||||
course_fixture._update_xblock(course_fixture._course_location, {
|
||||
"metadata": {
|
||||
@@ -67,7 +67,7 @@ class CohortTestMixin(object):
|
||||
|
||||
def add_manual_cohort(self, course_fixture, cohort_name):
|
||||
"""
|
||||
Adds a cohort group by name, returning the ID for the group.
|
||||
Adds a cohort by name, returning its ID.
|
||||
"""
|
||||
url = LMS_BASE_URL + "/courses/" + course_fixture._course_key + '/cohorts/'
|
||||
data = json.dumps({"name": cohort_name})
|
||||
@@ -77,7 +77,7 @@ class CohortTestMixin(object):
|
||||
|
||||
def add_user_to_cohort(self, course_fixture, username, cohort_id):
|
||||
"""
|
||||
Adds a user to the specified cohort group.
|
||||
Adds a user to the specified cohort.
|
||||
"""
|
||||
url = LMS_BASE_URL + "/courses/" + course_fixture._course_key + "/cohorts/{}/add".format(cohort_id)
|
||||
data = {"users": username}
|
||||
|
||||
@@ -89,12 +89,12 @@ class CohortConfigurationTest(UniqueCourseTest, CohortTestMixin):
|
||||
"""
|
||||
self.verify_cohort_description(
|
||||
self.manual_cohort_name,
|
||||
'Students are added to this cohort group only when you provide '
|
||||
'Students are added to this cohort only when you provide '
|
||||
'their email addresses or usernames on this page',
|
||||
)
|
||||
self.verify_cohort_description(
|
||||
self.auto_cohort_name,
|
||||
'Students are added to this cohort group automatically',
|
||||
'Students are added to this cohort automatically',
|
||||
)
|
||||
|
||||
def test_no_content_groups(self):
|
||||
@@ -104,7 +104,7 @@ class CohortConfigurationTest(UniqueCourseTest, CohortTestMixin):
|
||||
|
||||
Given I have a course with a cohort defined but no content groups
|
||||
When I view the cohort in the instructor dashboard and select settings
|
||||
Then the cohort group is not linked to a content group
|
||||
Then the cohort is not linked to a content group
|
||||
And there is text stating that no content groups are defined
|
||||
And I cannot select the radio button to enable content group association
|
||||
And there is a link I can select to open Group settings in Studio
|
||||
@@ -113,7 +113,7 @@ class CohortConfigurationTest(UniqueCourseTest, CohortTestMixin):
|
||||
self.assertIsNone(self.cohort_management_page.get_cohort_associated_content_group())
|
||||
self.assertEqual(
|
||||
"Warning:\nNo content groups exist. "
|
||||
"Create a content group to associate with cohort groups. Create a content group",
|
||||
"Create a content group to associate with cohorts. Create a content group",
|
||||
self.cohort_management_page.get_cohort_related_content_group_message()
|
||||
)
|
||||
self.assertFalse(self.cohort_management_page.select_content_group_radio_button())
|
||||
@@ -167,7 +167,7 @@ class CohortConfigurationTest(UniqueCourseTest, CohortTestMixin):
|
||||
confirmation_messages = self.cohort_management_page.get_cohort_confirmation_messages()
|
||||
self.assertEqual(
|
||||
[
|
||||
"2 students have been added to this cohort group",
|
||||
"2 students have been added to this cohort",
|
||||
"1 student was removed from " + self.manual_cohort_name
|
||||
],
|
||||
confirmation_messages
|
||||
@@ -235,8 +235,8 @@ class CohortConfigurationTest(UniqueCourseTest, CohortTestMixin):
|
||||
|
||||
self.assertEqual(
|
||||
[
|
||||
"0 students have been added to this cohort group",
|
||||
"1 student was already in the cohort group"
|
||||
"0 students have been added to this cohort",
|
||||
"1 student was already in the cohort"
|
||||
],
|
||||
self.cohort_management_page.get_cohort_confirmation_messages()
|
||||
)
|
||||
@@ -359,7 +359,7 @@ class CohortConfigurationTest(UniqueCourseTest, CohortTestMixin):
|
||||
"Your file '{}' has been uploaded. Allow a few minutes for processing.".format(filename)
|
||||
)
|
||||
|
||||
# student_user is moved from manual cohort group to auto cohort group
|
||||
# student_user is moved from manual cohort to auto cohort
|
||||
self.assertEqual(
|
||||
self.event_collection.find({
|
||||
"name": "edx.cohort.user_added",
|
||||
@@ -378,7 +378,7 @@ class CohortConfigurationTest(UniqueCourseTest, CohortTestMixin):
|
||||
}).count(),
|
||||
1
|
||||
)
|
||||
# instructor_user (previously unassigned) is added to manual cohort group
|
||||
# instructor_user (previously unassigned) is added to manual cohort
|
||||
self.assertEqual(
|
||||
self.event_collection.find({
|
||||
"name": "edx.cohort.user_added",
|
||||
@@ -388,7 +388,7 @@ class CohortConfigurationTest(UniqueCourseTest, CohortTestMixin):
|
||||
}).count(),
|
||||
1
|
||||
)
|
||||
# unicode_student_user (previously unassigned) is added to manual cohort group
|
||||
# unicode_student_user (previously unassigned) is added to manual cohort
|
||||
self.assertEqual(
|
||||
self.event_collection.find({
|
||||
"name": "edx.cohort.user_added",
|
||||
@@ -467,7 +467,7 @@ class CohortConfigurationTest(UniqueCourseTest, CohortTestMixin):
|
||||
|
||||
class CohortContentGroupAssociationTest(UniqueCourseTest, CohortTestMixin):
|
||||
"""
|
||||
Tests for linking between content groups and cohort groups in the instructor dashboard.
|
||||
Tests for linking between content groups and cohort in the instructor dashboard.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
@@ -515,7 +515,7 @@ class CohortContentGroupAssociationTest(UniqueCourseTest, CohortTestMixin):
|
||||
|
||||
Given I have a course with a cohort defined and content groups defined
|
||||
When I view the cohort in the instructor dashboard and select settings
|
||||
Then the cohort group is not linked to a content group
|
||||
Then the cohort is not linked to a content group
|
||||
And there is no text stating that content groups are undefined
|
||||
And the content groups are listed in the selector
|
||||
"""
|
||||
@@ -622,7 +622,7 @@ class CohortContentGroupAssociationTest(UniqueCourseTest, CohortTestMixin):
|
||||
)
|
||||
self.cohort_management_page.set_cohort_associated_content_group("Pears")
|
||||
confirmation_messages = self.cohort_management_page.get_cohort_settings_messages()
|
||||
self.assertEqual(["Saved cohort group."], confirmation_messages)
|
||||
self.assertEqual(["Saved cohort"], confirmation_messages)
|
||||
self.assertIsNone(self.cohort_management_page.get_cohort_related_content_group_message())
|
||||
self.assertEquals(["Bananas", "Pears"], self.cohort_management_page.get_all_content_groups())
|
||||
|
||||
@@ -652,7 +652,7 @@ class CohortContentGroupAssociationTest(UniqueCourseTest, CohortTestMixin):
|
||||
Then refreshes the page and selects the cohort.
|
||||
"""
|
||||
confirmation_messages = self.cohort_management_page.get_cohort_settings_messages()
|
||||
self.assertEqual(["Saved cohort group."], confirmation_messages)
|
||||
self.assertEqual(["Saved cohort"], confirmation_messages)
|
||||
self.browser.refresh()
|
||||
self.cohort_management_page.wait_for_page()
|
||||
self.cohort_management_page.select_cohort(cohort_name)
|
||||
|
||||
@@ -36,10 +36,10 @@ class CohortedDiscussionTestMixin(BaseDiscussionMixin, CohortTestMixin):
|
||||
"""
|
||||
def setup_cohorts(self):
|
||||
"""
|
||||
Sets up the course to use cohorting with a single defined cohort group.
|
||||
Sets up the course to use cohorting with a single defined cohort.
|
||||
"""
|
||||
self.setup_cohort_config(self.course_fixture)
|
||||
self.cohort_1_name = "Cohort Group 1"
|
||||
self.cohort_1_name = "Cohort 1"
|
||||
self.cohort_1_id = self.add_manual_cohort(self.course_fixture, self.cohort_1_name)
|
||||
|
||||
def test_cohort_visibility_label(self):
|
||||
|
||||
@@ -551,7 +551,7 @@ def upload_grades_csv(_xmodule_instance_args, _entry_id, course_id, _task_input,
|
||||
task_progress = TaskProgress(action_name, enrolled_students.count(), start_time)
|
||||
|
||||
course = get_course_by_id(course_id)
|
||||
cohorts_header = ['Cohort Group Name'] if course.is_cohorted else []
|
||||
cohorts_header = ['Cohort Name'] if course.is_cohorted else []
|
||||
|
||||
partition_service = LmsPartitionService(user=None, course_id=course_id)
|
||||
partitions = partition_service.course_partitions
|
||||
|
||||
@@ -75,7 +75,7 @@ class TestInstructorGradeReport(TestReportMixin, InstructorTaskCourseTestCase):
|
||||
report_csv_filename = report_store.links_for(course_id)[0][0]
|
||||
with open(report_store.path_to(course_id, report_csv_filename)) as csv_file:
|
||||
for row in unicodecsv.DictReader(csv_file):
|
||||
cohort_groups_in_csv.append(row['Cohort Group Name'])
|
||||
cohort_groups_in_csv.append(row['Cohort Name'])
|
||||
|
||||
self.assertEqual(cohort_groups_in_csv, expected_cohort_groups)
|
||||
|
||||
@@ -97,12 +97,12 @@ class TestInstructorGradeReport(TestReportMixin, InstructorTaskCourseTestCase):
|
||||
|
||||
def test_unicode_cohort_data_in_grading(self):
|
||||
"""
|
||||
Test that cohort groups can contain unicode characters.
|
||||
Test that cohorts can contain unicode characters.
|
||||
"""
|
||||
cohort_groups = [u'ÞrÖfessÖr X', u'MàgnëtÖ']
|
||||
course = CourseFactory.create(cohort_config={'cohorted': True})
|
||||
|
||||
# Create users and manually assign cohort groups
|
||||
# Create users and manually assign cohorts
|
||||
user1 = UserFactory.create(username='user1')
|
||||
user2 = UserFactory.create(username='user2')
|
||||
CourseEnrollment.enroll(user1, course.id)
|
||||
|
||||
@@ -54,7 +54,7 @@ var edx = edx || {};
|
||||
event.preventDefault();
|
||||
cohortFormView.saveForm()
|
||||
.done(function() {
|
||||
cohortFormView.showMessage(gettext('Saved cohort group.'));
|
||||
cohortFormView.showMessage(gettext('Saved cohort'));
|
||||
});
|
||||
},
|
||||
|
||||
@@ -145,8 +145,8 @@ var edx = edx || {};
|
||||
numPresent = modifiedUsers.present.length;
|
||||
if (numUsersAdded > 0 || numPresent > 0) {
|
||||
title = interpolate_text(
|
||||
ngettext("{numUsersAdded} student has been added to this cohort group",
|
||||
"{numUsersAdded} students have been added to this cohort group", numUsersAdded),
|
||||
ngettext("{numUsersAdded} student has been added to this cohort",
|
||||
"{numUsersAdded} students have been added to this cohort", numUsersAdded),
|
||||
{numUsersAdded: numUsersAdded}
|
||||
);
|
||||
|
||||
@@ -174,8 +174,8 @@ var edx = edx || {};
|
||||
if (numPresent > 0) {
|
||||
details.push(
|
||||
interpolate_text(
|
||||
ngettext("{numPresent} student was already in the cohort group",
|
||||
"{numPresent} students were already in the cohort group", numPresent),
|
||||
ngettext("{numPresent} student was already in the cohort",
|
||||
"{numPresent} students were already in the cohort", numPresent),
|
||||
{numPresent: numPresent}
|
||||
)
|
||||
);
|
||||
|
||||
@@ -93,7 +93,7 @@ var edx = edx || {};
|
||||
var errorMessages;
|
||||
errorMessages = [];
|
||||
if (!fieldData.name) {
|
||||
errorMessages.push(gettext('You must specify a name for the cohort group'));
|
||||
errorMessages.push(gettext('You must specify a name for the cohort'));
|
||||
}
|
||||
if (this.hasAssociatedContentGroup() && fieldData.group_id === null) {
|
||||
if (this.$('.input-cohort-group-association').val() === 'None') {
|
||||
@@ -125,8 +125,7 @@ var edx = edx || {};
|
||||
errorMessages = this.validate(fieldData);
|
||||
if (errorMessages.length > 0) {
|
||||
showErrorMessage(
|
||||
isUpdate ? gettext("The cohort group cannot be saved")
|
||||
: gettext("The cohort group cannot be added"),
|
||||
isUpdate ? gettext("The cohort cannot be saved") : gettext("The cohort cannot be added"),
|
||||
errorMessages
|
||||
);
|
||||
saveOperation.reject();
|
||||
|
||||
@@ -78,8 +78,8 @@ var edx = edx || {};
|
||||
additionalCohortControlElement.addClass(hiddenClass);
|
||||
this.showNotification({
|
||||
type: 'warning',
|
||||
title: gettext('You currently have no cohort groups configured'),
|
||||
actionText: gettext('Add Cohort Group'),
|
||||
title: gettext('You currently have no cohorts configured'),
|
||||
actionText: gettext('Add Cohort'),
|
||||
actionClass: 'action-create',
|
||||
actionIconClass: 'fa-plus'
|
||||
});
|
||||
@@ -182,7 +182,7 @@ var edx = edx || {};
|
||||
self.showNotification({
|
||||
type: 'confirmation',
|
||||
title: interpolate_text(
|
||||
gettext('The {cohortGroupName} cohort group has been created. You can manually add students to this group below.'),
|
||||
gettext('The {cohortGroupName} cohort has been created. You can manually add students to this cohort below.'),
|
||||
{cohortGroupName: newCohort.get('name')}
|
||||
)
|
||||
});
|
||||
@@ -212,7 +212,7 @@ var edx = edx || {};
|
||||
if (!this.fileUploaderView) {
|
||||
this.fileUploaderView = new FileUploaderView({
|
||||
el: uploadElement,
|
||||
title: gettext("Assign students to cohort groups by uploading a CSV file."),
|
||||
title: gettext("Assign students to cohorts by uploading a CSV file."),
|
||||
inputLabel: gettext("Choose a .csv file"),
|
||||
inputTip: gettext("Only properly formatted .csv files will be accepted."),
|
||||
submitButtonText: gettext("Upload File and Assign Students"),
|
||||
|
||||
@@ -153,10 +153,10 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
var requestCount = requests.length,
|
||||
form, expectedTitle;
|
||||
if (action === 'add') {
|
||||
expectedTitle = 'The cohort group cannot be added';
|
||||
expectedTitle = 'The cohort cannot be added';
|
||||
form = getAddModal();
|
||||
} else {
|
||||
expectedTitle = 'The cohort group cannot be saved';
|
||||
expectedTitle = 'The cohort cannot be saved';
|
||||
form = cohortsView.$('.cohort-management-settings-form');
|
||||
}
|
||||
form.find('.action-save').click();
|
||||
@@ -181,9 +181,9 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
it("shows an error if no cohorts are defined", function() {
|
||||
createCohortsView(this, {cohorts: []});
|
||||
verifyMessage(
|
||||
'You currently have no cohort groups configured',
|
||||
'You currently have no cohorts configured',
|
||||
'warning',
|
||||
'Add Cohort Group'
|
||||
'Add Cohort'
|
||||
);
|
||||
|
||||
// If no cohorts have been created, can't upload a CSV file.
|
||||
@@ -210,7 +210,7 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
expect(cohortsView.$(fileUploadFormCss).length).toBe(0);
|
||||
uploadCsvToggle = cohortsView.$('.toggle-cohort-management-secondary');
|
||||
expect(uploadCsvToggle.text()).
|
||||
toContain('Assign students to cohort groups by uploading a CSV file');
|
||||
toContain('Assign students to cohorts by uploading a CSV file');
|
||||
uploadCsvToggle.click();
|
||||
// After toggle is clicked, it should be hidden.
|
||||
expect(uploadCsvToggle).toHaveClass('is-hidden');
|
||||
@@ -294,8 +294,8 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
{ cohorts: createMockCohort(defaultCohortName) }
|
||||
);
|
||||
verifyMessage(
|
||||
'The ' + defaultCohortName + ' cohort group has been created.' +
|
||||
' You can manually add students to this group below.',
|
||||
'The ' + defaultCohortName + ' cohort has been created.' +
|
||||
' You can manually add students to this cohort below.',
|
||||
'confirmation'
|
||||
);
|
||||
verifyHeader(1, defaultCohortName, 0);
|
||||
@@ -316,7 +316,7 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
createCohortsView(this, {selectCohort: 1});
|
||||
cohortsView.$('.action-create').click();
|
||||
cohortsView.$('.cohort-name').val(' ');
|
||||
saveFormAndExpectErrors('add', ['You must specify a name for the cohort group']);
|
||||
saveFormAndExpectErrors('add', ['You must specify a name for the cohort']);
|
||||
});
|
||||
|
||||
it("shows a message saving when choosing to have content groups but not selecting one", function() {
|
||||
@@ -333,7 +333,7 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
cohortsView.$('.cohort-name').val('');
|
||||
cohortsView.$('.radio-yes').prop('checked', true).change();
|
||||
saveFormAndExpectErrors('add', [
|
||||
'You must specify a name for the cohort group',
|
||||
'You must specify a name for the cohort',
|
||||
'You did not select a cohorted content group'
|
||||
]);
|
||||
});
|
||||
@@ -373,9 +373,9 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
expect(cohortsView.$('.cohort-management-nav')).toHaveClass('is-disabled');
|
||||
cohortsView.$('.action-cancel').click();
|
||||
verifyMessage(
|
||||
'You currently have no cohort groups configured',
|
||||
'You currently have no cohorts configured',
|
||||
'warning',
|
||||
'Add Cohort Group'
|
||||
'Add Cohort'
|
||||
);
|
||||
});
|
||||
|
||||
@@ -385,7 +385,7 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
// First try to save a blank name to create a message
|
||||
cohortsView.$('.action-create').click();
|
||||
cohortsView.$('.cohort-name').val('');
|
||||
saveFormAndExpectErrors('add', ['You must specify a name for the cohort group']);
|
||||
saveFormAndExpectErrors('add', ['You must specify a name for the cohort']);
|
||||
|
||||
// Now switch to a different cohort
|
||||
cohortsView.$('.cohort-select').val('2').change();
|
||||
@@ -399,7 +399,7 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
// First try to save a blank name to create a message
|
||||
cohortsView.$('.action-create').click();
|
||||
cohortsView.$('.cohort-name').val('');
|
||||
saveFormAndExpectErrors('add', ['You must specify a name for the cohort group']);
|
||||
saveFormAndExpectErrors('add', ['You must specify a name for the cohort']);
|
||||
|
||||
// Now cancel the form
|
||||
cohortsView.$('.action-cancel').click();
|
||||
@@ -441,7 +441,7 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
respondToAdd({ added: ['student@sample.com'] });
|
||||
respondToRefresh(catLoversUpdatedCount, dogLoversInitialCount);
|
||||
verifyHeader(1, 'Cat Lovers', catLoversUpdatedCount);
|
||||
verifyMessage('1 student has been added to this cohort group', 'confirmation');
|
||||
verifyMessage('1 student has been added to this cohort', 'confirmation');
|
||||
expect(getStudentInput().val()).toBe('');
|
||||
});
|
||||
|
||||
@@ -508,19 +508,19 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
);
|
||||
respondToAdd({
|
||||
changed: [
|
||||
{email: 'moved1@sample.com', name: 'moved1', previous_cohort: 'group 2', username: 'moved1'},
|
||||
{email: 'moved2@sample.com', name: 'moved2', previous_cohort: 'group 2', username: 'moved2'},
|
||||
{email: 'moved3@sample.com', name: 'moved3', previous_cohort: 'group 3', username: 'moved3'}
|
||||
{email: 'moved1@sample.com', name: 'moved1', previous_cohort: 'cohort 2', username: 'moved1'},
|
||||
{email: 'moved2@sample.com', name: 'moved2', previous_cohort: 'cohort 2', username: 'moved2'},
|
||||
{email: 'moved3@sample.com', name: 'moved3', previous_cohort: 'cohort 3', username: 'moved3'}
|
||||
],
|
||||
present: ['alreadypresent@sample.com']
|
||||
});
|
||||
respondToRefresh();
|
||||
|
||||
verifyDetailedMessage('3 students have been added to this cohort group', 'confirmation',
|
||||
verifyDetailedMessage('3 students have been added to this cohort', 'confirmation',
|
||||
[
|
||||
"2 students were removed from group 2",
|
||||
"1 student was removed from group 3",
|
||||
"1 student was already in the cohort group"
|
||||
"2 students were removed from cohort 2",
|
||||
"1 student was removed from cohort 3",
|
||||
"1 student was already in the cohort"
|
||||
]
|
||||
);
|
||||
expect(getStudentInput().val()).toBe('');
|
||||
@@ -546,7 +546,7 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
addStudents('student@sample.com');
|
||||
respondToAdd({ added: ['student@sample.com'] });
|
||||
respondToRefresh(catLoversInitialCount + 1, dogLoversInitialCount);
|
||||
verifyMessage('1 student has been added to this cohort group', 'confirmation');
|
||||
verifyMessage('1 student has been added to this cohort', 'confirmation');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -602,7 +602,7 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
requests,
|
||||
createMockCohort('Cat Lovers', 1, catLoversInitialCount, 0, 0)
|
||||
);
|
||||
verifyMessage('Saved cohort group.', 'confirmation');
|
||||
verifyMessage('Saved cohort', 'confirmation');
|
||||
});
|
||||
|
||||
it("can clear selected content group", function () {
|
||||
@@ -630,7 +630,7 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
requests,
|
||||
createMockCohort('Cat Lovers', 1, catLoversInitialCount, 0, 0)
|
||||
);
|
||||
verifyMessage('Saved cohort group.', 'confirmation');
|
||||
verifyMessage('Saved cohort', 'confirmation');
|
||||
});
|
||||
|
||||
it("shows a message saving when choosing to have content groups but not selecting one", function() {
|
||||
@@ -662,7 +662,7 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
requests,
|
||||
createMockCohort('Cat Lovers', 1, catLoversInitialCount, 0, 0)
|
||||
);
|
||||
verifyMessage('Saved cohort group.', 'confirmation');
|
||||
verifyMessage('Saved cohort', 'confirmation');
|
||||
|
||||
// Verify that the deleted content group and associated message have been removed
|
||||
expect(cohortsView.$('option.option-unavailable').text().trim()).toBe('');
|
||||
@@ -693,7 +693,7 @@ define(['backbone', 'jquery', 'js/common_helpers/ajax_helpers', 'js/common_helpe
|
||||
expect(cohortsView.$('.radio-yes').prop('disabled')).toBeTruthy();
|
||||
message = cohortsView.$('.msg-inline').text().trim();
|
||||
expect(message).toContain('Warning: No content groups exist.');
|
||||
expect(message).toContain('Create a content group to associate with cohort groups.');
|
||||
expect(message).toContain('Create a content group to associate with cohorts.');
|
||||
expect(message).toContain('Create a content group');
|
||||
expect(
|
||||
cohortsView.$('.msg-inline a').attr('href'),
|
||||
|
||||
@@ -540,7 +540,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
// create or edit cohort group
|
||||
// create or edit cohort
|
||||
.cohort-management-settings,
|
||||
.cohort-management-edit {
|
||||
@extend %cohort-management-form;
|
||||
@@ -567,7 +567,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
// cohort group
|
||||
// cohort
|
||||
.cohort-management-group-header {
|
||||
padding: $baseline;
|
||||
border-bottom: ($baseline/10) solid $gray-l4;
|
||||
|
||||
@@ -373,7 +373,7 @@ function goto( mode)
|
||||
%if modeflag.get('Manage Groups'):
|
||||
%if instructor_access:
|
||||
%if course.is_cohorted:
|
||||
<p class="is-deprecated">${_("To manage beta tester roles and cohort groups, visit the Membership section of the Instructor Dashboard.")}</p>
|
||||
<p class="is-deprecated">${_("To manage beta tester roles and cohorts, visit the Membership section of the Instructor Dashboard.")}</p>
|
||||
%else:
|
||||
<p class="is-deprecated">${_("To manage beta tester roles, visit the Membership section of the Instructor Dashboard.")}</p>
|
||||
%endif
|
||||
|
||||
@@ -399,7 +399,7 @@
|
||||
${'<% }); %>'}
|
||||
</select>
|
||||
</label><div class="field-help">
|
||||
${_("Discussion admins, moderators, and TAs can make their posts visible to all students or specify a single cohort group.")}
|
||||
${_("Discussion admins, moderators, and TAs can make their posts visible to all students or specify a single cohort.")}
|
||||
</div>
|
||||
</div>
|
||||
${'<% } %>'}
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
<div class="cohort-management-group-setup">
|
||||
<div class="setup-value">
|
||||
<% if (cohort.get('assignment_type') == "none") { %>
|
||||
<%- gettext("Students are added to this cohort group only when you provide their email addresses or usernames on this page.") %>
|
||||
<%- gettext("Students are added to this cohort only when you provide their email addresses or usernames on this page.") %>
|
||||
<a href="http://edx.readthedocs.org/projects/edx-partner-course-staff/en/latest/cohorts/cohort_config.html#assign-students-to-cohort-groups-manually" class="incontext-help action-secondary action-help"><%= gettext("What does this mean?") %></a>
|
||||
<% } else { %>
|
||||
<%- gettext("Students are added to this cohort group automatically.") %>
|
||||
<%- gettext("Students are added to this cohort automatically.") %>
|
||||
<a href="http://edx.readthedocs.org/projects/edx-partner-course-staff/en/latest/cohorts/cohorts_overview.html#all-automated-assignment" class="incontext-help action-secondary action-help"><%- gettext("What does this mean?") %></a>
|
||||
<% } %>
|
||||
</div>
|
||||
@@ -36,10 +36,10 @@
|
||||
<div class="cohort-management-group-add tab-content tab-content-manage_students">
|
||||
<form action="" method="post" id="cohort-management-group-add-form" class="cohort-management-group-add-form">
|
||||
|
||||
<h4 class="form-title"><%- gettext('Add students to this cohort group') %></h4>
|
||||
<h4 class="form-title"><%- gettext('Add students to this cohort') %></h4>
|
||||
|
||||
<div class="form-introduction">
|
||||
<p><%- gettext('Note: Students can be in only one cohort group. Adding students to this group overrides any previous group assignment.') %></p>
|
||||
<p><%- gettext('Note: Students can be in only one cohort. Adding students to this group overrides any previous group assignment.') %></p>
|
||||
</div>
|
||||
|
||||
<div class="cohort-confirmations"></div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="cohort-management-settings">
|
||||
<form action="" method="post" name="" id="cohort-management-settings-form" class="cohort-management-settings-form">
|
||||
<% if (isNewCohort) { %>
|
||||
<h3 class="form-title"><%- gettext('Add a New Cohort Group') %></h3>
|
||||
<h3 class="form-title"><%- gettext('Add a New Cohort') %></h3>
|
||||
<div class="tab-content is-visible new-cohort-form">
|
||||
<% } %>
|
||||
<div class="form-fields">
|
||||
@@ -14,12 +14,12 @@
|
||||
<div class="form-field">
|
||||
<div class="cohort-management-settings-form-name field field-text">
|
||||
<label for="cohort-name" class="form-label">
|
||||
<%- gettext('Cohort Group Name') %> *
|
||||
<%- gettext('Cohort Name') %> *
|
||||
<span class="sr"><%- gettext('(Required Field)')%></span>
|
||||
</label>
|
||||
<input type="text" name="cohort-name" value="<%- cohort ? cohort.get('name') : '' %>" class="input cohort-name"
|
||||
id="cohort-name"
|
||||
placeholder="<%- gettext("Enter the name of the cohort group") %>" required="required" />
|
||||
placeholder="<%- gettext("Enter the name of the cohort") %>" required="required" />
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
@@ -96,7 +96,7 @@
|
||||
<%=
|
||||
interpolate(
|
||||
// Translators: Any text between %(screen_reader_start)s and %(screen_reader_end)s is only read by screen readers and never shown in the browser.
|
||||
'%(screen_reader_start)sWarning:%(screen_reader_end)s No content groups exist. Create a content group to associate with cohort groups.',
|
||||
'%(screen_reader_start)sWarning:%(screen_reader_end)s No content groups exist. Create a content group to associate with cohorts.',
|
||||
{
|
||||
screen_reader_start: '<span class="sr">',
|
||||
screen_reader_end: '</span>'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<% if (!selectedCohort) { %>
|
||||
<option value=""><%- gettext('Select a cohort group') %></option>
|
||||
<option value=""><%- gettext('Select a cohort') %></option>
|
||||
<% } %>
|
||||
<% _.each(cohorts, function(cohort) { %>
|
||||
<%
|
||||
|
||||
@@ -4,23 +4,23 @@
|
||||
</h2>
|
||||
|
||||
<div class="cohort-management-nav">
|
||||
<h3 class="subsection-title"><%- gettext('Assign students to cohort groups manually') %></h3>
|
||||
<h3 class="subsection-title"><%- gettext('Assign students to cohorts manually') %></h3>
|
||||
<form action="" method="post" name="" id="cohort-management-nav-form" class="cohort-management-nav-form">
|
||||
|
||||
<div class="cohort-management-nav-form-select field field-select">
|
||||
<label for="cohort-select" class="label sr"><%- gettext("Select a cohort group to manage") %></label>
|
||||
<label for="cohort-select" class="label sr"><%- gettext("Select a cohort to manage") %></label>
|
||||
<select class="input cohort-select" name="cohort-select" id="cohort-select">
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
<button class="form-submit button action-primary action-view sr"><%- gettext('View Cohort Group') %></button>
|
||||
<button class="form-submit button action-primary action-view sr"><%- gettext('View Cohort') %></button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<a href="" class="action-primary action-create">
|
||||
<i class="icon fa fa-plus"></i>
|
||||
<%- gettext('Add Cohort Group') %>
|
||||
<%- gettext('Add Cohort') %>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -35,14 +35,14 @@
|
||||
<hr class="divider divider-lv1" />
|
||||
|
||||
<!-- Uploading a CSV file of cohort assignments. -->
|
||||
<a class="toggle-cohort-management-secondary" href="#cohort-management-file-upload"><%- gettext('Assign students to cohort groups by uploading a CSV file') %></a>
|
||||
<a class="toggle-cohort-management-secondary" href="#cohort-management-file-upload"><%- gettext('Assign students to cohorts by uploading a CSV file') %></a>
|
||||
<div class="cohort-management-file-upload csv-upload is-hidden" id="cohort-management-file-upload"></div>
|
||||
|
||||
<div class="cohort-management-supplemental">
|
||||
<p class="">
|
||||
<i class="icon fa fa-info-circle"></i>
|
||||
<%= interpolate(
|
||||
gettext('To review student cohort group assignments or see the results of uploading a CSV file, download course profile information or cohort results on %(link_start)s the Data Download page. %(link_end)s'),
|
||||
gettext('To review student cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on %(link_start)s the Data Download page. %(link_end)s'),
|
||||
{link_start: '<a href="" class="link-cross-reference" data-section="data_download">', link_end: '</a>'},
|
||||
true
|
||||
) %>
|
||||
|
||||
@@ -1,464 +0,0 @@
|
||||
<%! from django.utils.translation import ugettext as _ %>
|
||||
<%! from django.core.urlresolvers import reverse %>
|
||||
|
||||
<%inherit file="/main.html" />
|
||||
<%namespace name='static' file='/static_content.html'/>
|
||||
|
||||
<%block name="pagetitle">Instructor Dashboard</%block>
|
||||
<%block name="nav_skip">#instructor-dashboard-content</%block>
|
||||
|
||||
<%block name="headextra">
|
||||
<%static:css group='style-course-vendor'/>
|
||||
<%static:css group='style-vendor-tinymce-content'/>
|
||||
<%static:css group='style-vendor-tinymce-skin'/>
|
||||
<%static:css group='style-course'/>
|
||||
<script type="text/javascript">
|
||||
// This is a hack to get tinymce to work correctly in Firefox until the annotator tool is refactored to not include
|
||||
// tinymce globally.
|
||||
if(typeof window.Range.prototype === "undefined") {
|
||||
window.Range.prototype = { };
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript" src="${static.url('js/vendor/mustache.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/vendor/flot/jquery.flot.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/vendor/flot/jquery.flot.axislabels.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/vendor/jquery-jvectormap-1.1.1/jquery-jvectormap-1.1.1.min.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/vendor/jquery-jvectormap-1.1.1/jquery-jvectormap-world-mill-en.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/course_groups/cohorts.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/vendor/jquery.event.drag-2.2.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/vendor/jquery.event.drop-2.2.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/vendor/slick.core.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/vendor/slick.grid.js')}"></script>
|
||||
<link rel="stylesheet" href="${static.url('css/vendor/slickgrid/smoothness/jquery-ui-1.8.16.custom.css')}">
|
||||
<link rel="stylesheet" href="${static.url('css/vendor/slickgrid/slick.grid.css')}">
|
||||
<script type="text/javascript" src="${static.url('js/vendor/codemirror-compressed.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/vendor/tinymce/js/tinymce/tinymce.full.min.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js')}"></script>
|
||||
<%static:js group='module-descriptor-js'/>
|
||||
<%static:js group='instructor_dash'/>
|
||||
</%block>
|
||||
|
||||
<section class="container">
|
||||
<div class="instructor-dashboard-wrapper-2">
|
||||
<section class="instructor-dashboard-content-2" id="instructor-dashboard-content">
|
||||
<h1>Instructor Dashboard</h1>
|
||||
|
||||
<section class="idash-section active-section" id="membership">
|
||||
|
||||
<div class="batch-enrollment membership-section">
|
||||
<h2> Batch Enrollment </h2>
|
||||
<p>
|
||||
<label for="student-ids">
|
||||
Enter email addresses and/or usernames separated by new lines or commas.
|
||||
You will not get notification for emails that bounce, so please double-check spelling. </label>
|
||||
<textarea rows="6" name="student-ids" placeholder="Email Addresses/Usernames" spellcheck="false"></textarea>
|
||||
</p>
|
||||
|
||||
<div class="enroll-option">
|
||||
<input type="checkbox" name="auto-enroll" value="Auto-Enroll" checked="yes">
|
||||
<label for="auto-enroll">Auto Enroll</label>
|
||||
<div class="hint auto-enroll-hint">
|
||||
<span class="hint-caret"></span>
|
||||
<p>
|
||||
If this option is <em>checked</em>, users who have not yet registered for {platform_name} will be automatically enrolled.").format(platform_name=settings.PLATFORM_NAME)}
|
||||
If this option is left <em>unchecked</em>, users who have not yet registered for {platform_name} will not be enrolled, but will be allowed to enroll once they make an account.").format(platform_name=settings.PLATFORM_NAME)}
|
||||
<br /><br />
|
||||
Checking this box has no effect if 'Unenroll' is selected.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="enroll-option">
|
||||
<input type="checkbox" name="email-students" value="Notify-students-by-email" checked="yes">
|
||||
<label for="email-students">Notify users by email</label>
|
||||
<div class="hint email-students-hint">
|
||||
<span class="hint-caret"></span>
|
||||
<p>
|
||||
If this option is <em>checked</em>, users will receive an email notification.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="button" name="enrollment-button" class="enrollment-button" value="Enroll" data-action="enroll" >
|
||||
<input type="button" name="enrollment-button" class="enrollment-button" value="Unenroll" data-action="unenroll" >
|
||||
</div>
|
||||
<div class="request-response"></div>
|
||||
<div class="request-response-error"></div>
|
||||
</div>
|
||||
|
||||
<hr class="divider" />
|
||||
|
||||
<div class="batch-beta-testers membership-section">
|
||||
<h2> Batch Beta Tester Addition </h2>
|
||||
<p>
|
||||
<label for="student-ids-for-beta">
|
||||
Enter email addresses and/or usernames separated by new lines or commas.<br/>
|
||||
Note: Users must have an activated {platform_name} account before they can be enrolled as a beta tester.").format(platform_name=settings.PLATFORM_NAME)}
|
||||
</label>
|
||||
|
||||
<textarea rows="6" cols="50" name="student-ids-for-beta" placeholder="Email Addresses/Usernames" spellcheck="false"></textarea>
|
||||
</p>
|
||||
|
||||
<div class="enroll-option">
|
||||
<input type="checkbox" name="auto-enroll" value="Auto-Enroll" checked="yes">
|
||||
<label for="auto-enroll-beta">Auto Enroll</label>
|
||||
<div class="hint auto-enroll-beta-hint">
|
||||
<span class="hint-caret"></span>
|
||||
<p>
|
||||
If this option is <em>checked</em>, users who have not enrolled in your course will be automatically enrolled.
|
||||
<br /><br />
|
||||
Checking this box has no effect if 'Remove beta testers' is selected.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="enroll-option">
|
||||
<input type="checkbox" name="email-students-beta" value="Notify-students-by-email" checked="yes">
|
||||
<label for="email-students-beta">Notify users by email</label>
|
||||
<div class="hint email-students-beta-hint">
|
||||
<span class="hint-caret"></span>
|
||||
<p> If this option is <em>checked</em>, users will receive an email notification.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="button" name="beta-testers" class="enrollment-button" value="Add beta testers" data-action="add" >
|
||||
<input type="button" name="beta-testers" class="enrollment-button" value="Remove beta testers" data-action="remove" >
|
||||
</div>
|
||||
|
||||
<div class="request-response"></div>
|
||||
<div class="request-response-error"></div>
|
||||
</div>
|
||||
|
||||
<hr class="divider" />
|
||||
|
||||
<div class="member-lists-management membership-section">
|
||||
## Translators: an "Administration List" is a list, such as Course Staff, that users can be added to.
|
||||
<h2> Administration List Management </h2>
|
||||
|
||||
<div class="request-response-error"></div>
|
||||
|
||||
<div class="wrapper-member-select">
|
||||
## Translators: an "Administrator Group" is a group, such as Course Staff, that users can be added to.
|
||||
<label for="member-lists-selector">Select an Administrator Group:</label>
|
||||
<select id="member-lists-selector" class="member-lists-selector">
|
||||
<option> Getting available lists... </option>
|
||||
</select>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<p>
|
||||
Staff cannot modify staff or beta tester lists. To modify these lists, "
|
||||
"contact your instructor and ask them to add you as an instructor for staff "
|
||||
"and beta lists, or a discussion admin for discussion management.
|
||||
</p>
|
||||
|
||||
<div class="auth-list-container"
|
||||
data-rolename="staff"
|
||||
data-display-name="Course Staff"
|
||||
data-info-text="
|
||||
Course staff can help you manage limited aspects of your course. Staff "
|
||||
"can enroll and unenroll students, as well as modify their grades and "
|
||||
"see all course data. Course staff are not automatically given access "
|
||||
"to Studio and will not be able to edit your course."
|
||||
data-list-endpoint=""
|
||||
data-modify-endpoint=""
|
||||
data-add-button-label="Add Staff"
|
||||
></div>
|
||||
|
||||
<div class="auth-list-container"
|
||||
data-rolename="instructor"
|
||||
data-display-name="Instructors"
|
||||
data-info-text="
|
||||
Instructors are the core administration of your course. Instructors can "
|
||||
"add and remove course staff, as well as administer discussion access."
|
||||
data-list-endpoint=""
|
||||
data-modify-endpoint=""
|
||||
data-add-button-label="Add Instructor"
|
||||
></div>
|
||||
|
||||
<div class="auth-list-container"
|
||||
data-rolename="beta"
|
||||
data-display-name="Beta Testers"
|
||||
data-info-text="
|
||||
Beta testers can see course content before the rest of the students. "
|
||||
"They can make sure that the content works, but have no additional "
|
||||
"privileges."
|
||||
data-list-endpoint=""
|
||||
data-modify-endpoint=""
|
||||
data-add-button-label="Add Beta Tester"
|
||||
></div>
|
||||
|
||||
<div class="auth-list-container"
|
||||
data-rolename="Administrator"
|
||||
data-display-name="Discussion Admins"
|
||||
data-info-text="
|
||||
Discussion admins can edit or delete any post, clear misuse flags, close "
|
||||
"and re-open threads, endorse responses, and see posts from all cohorts. "
|
||||
"They CAN add/delete other moderators and their posts are marked as 'staff'."
|
||||
data-list-endpoint=""
|
||||
data-modify-endpoint=""
|
||||
data-add-button-label="Add Discussion Admin"
|
||||
></div>
|
||||
|
||||
<div class="auth-list-container"
|
||||
data-rolename="Moderator"
|
||||
data-display-name="Discussion Moderators"
|
||||
data-info-text="
|
||||
Discussion moderators can edit or delete any post, clear misuse flags, close "
|
||||
"and re-open threads, endorse responses, and see posts from all cohorts. "
|
||||
"They CANNOT add/delete other moderators and their posts are marked as 'staff'."
|
||||
data-list-endpoint=""
|
||||
data-modify-endpoint=""
|
||||
data-add-button-label="Add Moderator"
|
||||
></div>
|
||||
|
||||
<div class="auth-list-container"
|
||||
data-rolename="Community TA"
|
||||
data-display-name="Discussion Community TAs"
|
||||
data-info-text="
|
||||
Community TA's are members of the community whom you deem particularly "
|
||||
"helpful on the discussion boards. They can edit or delete any post, clear misuse flags, "
|
||||
"close and re-open threads, endorse responses, and see posts from all cohorts. "
|
||||
"Their posts are marked 'Community TA'."
|
||||
data-list-endpoint=""
|
||||
data-modify-endpoint=""
|
||||
data-add-button-label="Add Community TA"
|
||||
></div>
|
||||
</div>
|
||||
|
||||
<hr class="divider" />
|
||||
|
||||
<div class="cohort-management membership-section">
|
||||
<h2 class="section-title">
|
||||
<span class="value">Cohort Management</span>
|
||||
<span class="description">Cohorts are such and such and are used for this and that to do all the things</span>
|
||||
</h2>
|
||||
|
||||
<!-- nav -->
|
||||
<div class="cohort-management-nav">
|
||||
<form action="" method="post" name="" id="cohort-management-nav-form" class="cohort-management-nav-form">
|
||||
|
||||
<div class="form-fields">
|
||||
<div class="cohort-management-nav-form-select field field-select">
|
||||
<label for="cohort-select" class="label sr">Select a cohort group to manage</label>
|
||||
|
||||
<select class="input cohort-select" name="cohort-select" id="cohort-select">
|
||||
<option>Select a cohort group</option>
|
||||
<option value="cohort-name-1">Cohort Name is Placed Here and Should Accommodate Almost Everything (12,546)</option>
|
||||
<option value="cohort-name-2" selected>Cras mattis consectetur purus sit amet fermentum (8,546)</option>
|
||||
<option value="cohort-name-3">Donec id elit non mi porta gravida at eget metus. (4)
|
||||
</option>
|
||||
<option value="cohort-name-4">Donec id elit non mi porta gravida at eget metus. (4)
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
<button class="form-submit button action-primary action-view sr">View cohort group</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<a href="" class="action-primary action-create">
|
||||
<i class="icon fa fa-plus"></i>
|
||||
Add Cohort Group
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- message - error - no groups -->
|
||||
<div class="message message-warning is-shown">
|
||||
<h3 class="message-title">You currently have no cohort groups configured</h3>
|
||||
|
||||
<div class="message-copy">
|
||||
<p>Please complete your cohort group configuration by creating groups within Studio</p>
|
||||
</div>
|
||||
|
||||
<div class="message-actions">
|
||||
<button class="action-primary action-create">
|
||||
<i class="icon fa fa-plus"></i>
|
||||
Add a Cohort Group
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- message - error - bad configuration -->
|
||||
<div class="message message-error">
|
||||
<h3 class="message-title">There's currently an error with your cohorts configuration within this course.</h3>
|
||||
|
||||
<div class="message-copy">
|
||||
<p>Error output (if any and near-human legible/comprehendable can be displayed here)</p>
|
||||
</div>
|
||||
|
||||
<div class="message-actions">
|
||||
<a href="" class="action-primary action-review">Review Configuration in Studio</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- adding new group -->
|
||||
<div class="cohort-management-create">
|
||||
<form action="" method="post" name="" id="cohort-management-create-form" class="cohort-management-create-form">
|
||||
|
||||
<h3 class="form-title">Add a New Cohort Group</h3>
|
||||
|
||||
<div class="form-fields">
|
||||
<div class="cohort-management-create-form-name field field-text">
|
||||
<label for="cohort-create-name" class="label">
|
||||
New Cohort Name *
|
||||
<span class="sr">(Required Field)</span>
|
||||
</label>
|
||||
<input type="text" name="cohort-create-name" value="" class=" input cohort-create-name" id="cohort-create-name" placeholder="Enter Your New Cohort Group's Name" required="required" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
<button class="form-submit button action-primary action-save">
|
||||
<i class="icon fa fa-plus"></i>
|
||||
Save
|
||||
</button>
|
||||
<a href="" class="form-cancel action-secondary action-cancel">Cancel</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- editing group -->
|
||||
<div class="cohort-management-edit">
|
||||
<form action="" method="post" name="" id="cohort-management-edit-form" class="cohort-management-edit-form">
|
||||
|
||||
<h3 class="form-title">Editing "Cohort Group's Name"</h3>
|
||||
|
||||
<div class="form-fields">
|
||||
<div class="cohort-management-edit-form-name field field-text">
|
||||
<label for="cohort-create-name" class="label">
|
||||
Cohort Name *
|
||||
<span class="sr">(Required Field)</span>
|
||||
</label>
|
||||
<input type="text" name="cohort-edit-name" value="" class=" input cohort-edit-name" id="cohort-edit-name" placeholder="Enter Your Cohort Group's Name" required="required" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
<button class="form-submit button action-primary action-save">
|
||||
<i class="icon fa fa-plus"></i>
|
||||
Save
|
||||
</button>
|
||||
<a href="" class="form-cancel action-secondary action-cancel">Cancel</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- create/edit cohort group messages -->
|
||||
<div class="message message-confirmation">
|
||||
<h3 class="message-title">New Cohort Name has been created. You can manually add students to this group below.</h3>
|
||||
</div>
|
||||
|
||||
<!-- individual group -->
|
||||
<div class="cohort-management-group">
|
||||
<header class="cohort-management-group-header">
|
||||
<h3 class="group-header-title">
|
||||
<span class="title-value">Cohort Name Can be Placed Here and Should Accommodate Almost Everything</span>
|
||||
<span class="group-count">(contains 12,546 Students)</span>
|
||||
|
||||
<a href="" class="action-secondary action-edit action-edit-name">Edit</a>
|
||||
</h3>
|
||||
|
||||
<div class="cohort-management-group-setup">
|
||||
<h4 class="sr">This cohort group's current management set up:</h4>
|
||||
<div class="setup-value">
|
||||
Students are added to this group automatically.
|
||||
<a href="" class="incontext-help action-secondary action-help">What does this mean?</a>
|
||||
</div>
|
||||
|
||||
<div class="setup-actions">
|
||||
<a href="" class="action-secondary action-edit">Edit settings in Studio</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="cohort-management-group-setup">
|
||||
<h4 class="sr">This cohort group's current management set up:</h4>
|
||||
<div class="setup-value">
|
||||
Students are added to this group only when you provide their email addresses or usernames on this page.
|
||||
<a href="" class="incontext-help action-secondary action-help">What does this mean?</a>
|
||||
</div>
|
||||
|
||||
<div class="setup-actions">
|
||||
<a href="" class="action-secondary action-edit">Edit settings in Studio</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- individual group - form -->
|
||||
<div class="cohort-management-group-add">
|
||||
<form action="" method="post" name="" id="cohort-management-group-add-form" class="cohort-management-group-add-form">
|
||||
|
||||
<h4 class="form-title">Add students to this cohort group</h4>
|
||||
|
||||
<div class="form-introduction">
|
||||
<p>Note: Students can only be in one cohort group. Adding students to this group overrides any previous group assignment.</p>
|
||||
</div>
|
||||
|
||||
<!-- individual group - form message - confirmation -->
|
||||
<div class="message message-confirmation">
|
||||
<h3 class="message-title">2,546 students have been added to this cohort group</h3>
|
||||
|
||||
<div class="message-copy">
|
||||
<ul class="list-summary summary-items">
|
||||
<li class="summary-item">1,245 were removed from Cohort Name is Placed Here and Should Accommodate Almost Everything</li>
|
||||
<li class="summary-item">1,245 were removed from Cohort Name is Placed Here and Should Accommodate Almost Everything</li>
|
||||
<li class="summary-item">1,245 were removed from Cohort Name is Placed Here and Should Accommodate Almost Everything</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- individual group - form message - error (collapsed) -->
|
||||
<div class="message message-error">
|
||||
<h3 class="message-title">There were 25 errors when trying to add students:</h3>
|
||||
|
||||
<div class="message-copy">
|
||||
<ul class="list-summary summary-items">
|
||||
<li class="summary-item">Unknown user: ahgaeubgoq</li>
|
||||
<li class="summary-item">Unknown user: hagaihga</li>
|
||||
<li class="summary-item">Unknown user: ahgaeubgoq</li>
|
||||
<li class="summary-item">Unknown user: ahgaeubgoq</li>
|
||||
<li class="summary-item">Unknown user: hagaihga</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="message-actions">
|
||||
<a href="" class="action-primary action-expand">View all errors</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-fields">
|
||||
<div class="field field-textarea is-required">
|
||||
<label for="cohort-management-group-add-students" class="label">
|
||||
Enter email addresses and/or usernames separated by new lines or commas for students to add. *
|
||||
<span class="sr">(Required Field)</span>
|
||||
</label>
|
||||
|
||||
<textarea name="cohort-management-group-add-students" id="cohort-management-group-add-students" class="input cohort-management-group-add-students" placeholder="e.g. johndoe@example.com, JaneDoe, joeydoe@example.com" required="required"></textarea>
|
||||
|
||||
<span class="tip">You will not get notification for emails that bounce, so please double-check spelling.</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
<button class="form-submit button action-primary action-add">
|
||||
<i class="button-icon icon fa fa-plus"></i> Add Students
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- cta - view download -->
|
||||
<div class="cohort-management-supplemental">
|
||||
<p class=""><i class="icon fa fa-info-sign"></i> You may view individual student information for each cohort via your entire course profile data download on <a href="" class="link-cross-reference">the data download view</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
@@ -1,5 +1,5 @@
|
||||
"""
|
||||
This file contains the logic for cohort groups, as exposed internally to the
|
||||
This file contains the logic for cohorts, as exposed internally to the
|
||||
forums, and to the cohort admin views.
|
||||
"""
|
||||
|
||||
@@ -88,8 +88,8 @@ class CohortAssignmentType(object):
|
||||
# No automatic rules are applied to this cohort; users must be manually added.
|
||||
NONE = "none"
|
||||
|
||||
# One of (possibly) multiple cohort groups to which users are randomly assigned.
|
||||
# Note: The 'default cohort' group is included in this category iff it exists and
|
||||
# One of (possibly) multiple cohorts to which users are randomly assigned.
|
||||
# Note: The 'default' cohort is included in this category iff it exists and
|
||||
# there are no other random groups. (Also see Note 2 above.)
|
||||
RANDOM = "random"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user