From cafc15cf7da3e160d020d859451ec951dae28102 Mon Sep 17 00:00:00 2001 From: cahrens Date: Mon, 16 May 2016 10:27:36 -0400 Subject: [PATCH] Move city and country fields to the very end. OSPR-1155 --- lms/djangoapps/instructor/tests/test_api.py | 5 +++++ lms/djangoapps/instructor/views/api.py | 10 +++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/instructor/tests/test_api.py b/lms/djangoapps/instructor/tests/test_api.py index 7adc6e3256..7a3391b008 100644 --- a/lms/djangoapps/instructor/tests/test_api.py +++ b/lms/djangoapps/instructor/tests/test_api.py @@ -2525,6 +2525,9 @@ class TestInstructorAPILevelsDataDump(SharedModuleStoreTestCase, LoginEnrollment Test that some minimum of information is formatted correctly in the response to get_students_features. """ + for student in self.students: + student.profile.city = "Mos Eisley {}".format(student.id) + student.profile.save() url = reverse('get_students_features', kwargs={'course_id': self.course.id.to_deprecated_string()}) response = self.client.get(url, {}) res_json = json.loads(response.content) @@ -2536,6 +2539,8 @@ class TestInstructorAPILevelsDataDump(SharedModuleStoreTestCase, LoginEnrollment ][0] self.assertEqual(student_json['username'], student.username) self.assertEqual(student_json['email'], student.email) + self.assertEqual(student_json['city'], student.profile.city) + self.assertEqual(student_json['country'], "") @ddt.data(True, False) def test_get_students_features_cohorted(self, is_cohorted): diff --git a/lms/djangoapps/instructor/views/api.py b/lms/djangoapps/instructor/views/api.py index 26369ecbb1..a21db446bc 100644 --- a/lms/djangoapps/instructor/views/api.py +++ b/lms/djangoapps/instructor/views/api.py @@ -1245,7 +1245,7 @@ def get_students_features(request, course_id, csv=False): # pylint: disable=red query_features = [ 'id', 'username', 'name', 'email', 'language', 'location', 'year_of_birth', 'gender', 'level_of_education', 'mailing_address', - 'goals', 'city', 'country' + 'goals', ] # Provide human-friendly and translatable names for these features. These names @@ -1263,8 +1263,6 @@ def get_students_features(request, course_id, csv=False): # pylint: disable=red 'level_of_education': _('Level of Education'), 'mailing_address': _('Mailing Address'), 'goals': _('Goals'), - 'city': _('City'), - 'country': _('Country'), } if is_course_cohorted(course.id): @@ -1276,6 +1274,12 @@ def get_students_features(request, course_id, csv=False): # pylint: disable=red query_features.append('team') query_features_names['team'] = _('Team') + # For compatibility reasons, city and country should always appear last. + query_features.append('city') + query_features_names['city'] = _('City') + query_features.append('country') + query_features_names['country'] = _('Country') + if not csv: student_data = instructor_analytics.basic.enrolled_students_features(course_key, query_features) response_payload = {