diff --git a/lms/djangoapps/instructor/tests/test_legacy_anon_csv.py b/lms/djangoapps/instructor/tests/test_legacy_anon_csv.py deleted file mode 100644 index 2f298f76dd..0000000000 --- a/lms/djangoapps/instructor/tests/test_legacy_anon_csv.py +++ /dev/null @@ -1,67 +0,0 @@ -""" -Unit tests for instructor dashboard - -Based on (and depends on) unit tests for courseware. - -Notes for running by hand: - -./manage.py lms --settings test test lms/djangoapps/instructor -""" - -from django.test.utils import override_settings - -# Need access to internal func to put users in the right group -from django.contrib.auth.models import User - -from django.core.urlresolvers import reverse - -from courseware.tests.helpers import LoginEnrollmentTestCase -from xmodule.modulestore.tests.django_utils import TEST_DATA_MOCK_MODULESTORE -import instructor.views.legacy -from student.roles import CourseStaffRole -from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase -from xmodule.modulestore.tests.factories import CourseFactory - -from mock import Mock, patch - - -@override_settings(MODULESTORE=TEST_DATA_MOCK_MODULESTORE) -class TestInstructorDashboardAnonCSV(ModuleStoreTestCase, LoginEnrollmentTestCase): - ''' - Check for download of csv - ''' - - # Note -- I copied this setUp from a similar test - def setUp(self): - # clear_existing_modulestores() - self.toy = CourseFactory.create(org='edX', course='toy', display_name='2012_Fall') - - # Create two accounts - self.student = 'view@test.com' - self.instructor = 'view2@test.com' - self.password = 'foo' - self.create_account('u1', self.student, self.password) - self.create_account('u2', self.instructor, self.password) - self.activate_user(self.student) - self.activate_user(self.instructor) - - CourseStaffRole(self.toy.id).add_users(User.objects.get(email=self.instructor)) - - self.logout() - self.login(self.instructor, self.password) - self.enroll(self.toy) - - @patch.object(instructor.views.legacy, 'anonymous_id_for_user', Mock(return_value='42')) - @patch.object(instructor.views.legacy, 'unique_id_for_user', Mock(return_value='41')) - def test_download_anon_csv(self): - course = self.toy - url = reverse('instructor_dashboard_legacy', kwargs={'course_id': course.id.to_deprecated_string()}) - response = self.client.post(url, {'action': 'Download CSV of all student anonymized IDs'}) - - self.assertEqual(response['Content-Type'], 'text/csv') - body = response.content.replace('\r', '') - self.assertEqual( - body, - ('"User ID","Anonymized User ID","Course Specific Anonymized User ID"' - '\n"2","41","42"\n') - ) diff --git a/lms/djangoapps/instructor/views/legacy.py b/lms/djangoapps/instructor/views/legacy.py index 71ab0108f2..5b27aa0c0a 100644 --- a/lms/djangoapps/instructor/views/legacy.py +++ b/lms/djangoapps/instructor/views/legacy.py @@ -315,31 +315,6 @@ def instructor_dashboard(request, course_id): #---------------------------------------- # DataDump - elif 'Download CSV of all student profile data' in action: - enrolled_students = User.objects.filter( - courseenrollment__course_id=course_key, - courseenrollment__is_active=1, - ).order_by('username').select_related("profile") - profkeys = ['name', 'language', 'location', 'year_of_birth', 'gender', 'level_of_education', - 'mailing_address', 'goals'] - datatable = {'header': ['username', 'email'] + profkeys} - - def getdat(user): - """ - Return a list of profile data for the given user. - """ - profile = user.profile - return [user.username, user.email] + [getattr(profile, xkey, '') for xkey in profkeys] - - datatable['data'] = [getdat(u) for u in enrolled_students] - datatable['title'] = _('Student profile data for course {course_id}').format( - course_id=course_key.to_deprecated_string() - ) - return return_csv( - 'profiledata_{course_id}.csv'.format(course_id=course_key.to_deprecated_string()), - datatable - ) - elif 'Download CSV of all responses to problem' in action: problem_to_dump = request.POST.get('problem_to_dump', '') @@ -366,15 +341,6 @@ def instructor_dashboard(request, course_id): datatable['title'] = _('Student state for problem {problem}').format(problem=problem_to_dump) return return_csv('student_state_from_{problem}.csv'.format(problem=problem_to_dump), datatable) - elif 'Download CSV of all student anonymized IDs' in action: - students = User.objects.filter( - courseenrollment__course_id=course_key, - ).order_by('id') - - datatable = {'header': ['User ID', 'Anonymized User ID', 'Course Specific Anonymized User ID']} - datatable['data'] = [[s.id, unique_id_for_user(s, save=False), anonymous_id_for_user(s, course_key, save=False)] for s in students] - return return_csv(course_key.to_deprecated_string().replace('/', '-') + '-anon-ids.csv', datatable) - #---------------------------------------- # enrollment diff --git a/lms/templates/courseware/legacy_instructor_dashboard.html b/lms/templates/courseware/legacy_instructor_dashboard.html index 87758293a1..d67514b2fa 100644 --- a/lms/templates/courseware/legacy_instructor_dashboard.html +++ b/lms/templates/courseware/legacy_instructor_dashboard.html @@ -369,15 +369,17 @@ function goto( mode) %if modeflag.get('Data'):
- +
+ ${_("To download student profile data, please visit the 'Data Download' section of the instructor dashboard.")}
+${_("Problem urlname:")}
-- + +
+ ${_("To download student anonymized IDs, please visit the 'Data Download' section of the instructor dashboard.")}