From ab442bd76dc48d699014fa4e128b331794106100 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 d1a095d869..1d82a56c6d 100644 --- a/lms/djangoapps/instructor/tests/test_api.py +++ b/lms/djangoapps/instructor/tests/test_api.py @@ -2519,6 +2519,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) @@ -2530,6 +2533,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 8501243f86..7ac669315c 100644 --- a/lms/djangoapps/instructor/views/api.py +++ b/lms/djangoapps/instructor/views/api.py @@ -1246,7 +1246,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 @@ -1264,8 +1264,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): @@ -1277,6 +1275,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 = {