From f1ad393f1827f71bfdb06cb54a6151f4d0ce3293 Mon Sep 17 00:00:00 2001 From: Piotr Mitros Date: Sat, 10 Mar 2012 20:34:13 -0500 Subject: [PATCH] Course admins can now access student grades by going to profile/[userid] --HG-- branch : visible-grades --- courseware/content_parser.py | 2 +- courseware/views.py | 9 +++++---- student/models.py | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/courseware/content_parser.py b/courseware/content_parser.py index 2aefcbb8d0..ee818f31ba 100644 --- a/courseware/content_parser.py +++ b/courseware/content_parser.py @@ -153,7 +153,7 @@ def user_groups(user): cache_expiration = 60 * 60 # one hour # Kill caching on dev machines -- we switch groups a lot - if "dev" not in setting.DEFAULT_GROUPS: + if "dev" not in settings.DEFAULT_GROUPS: group_names = cache.get(fasthash(key)) else: group_names = None diff --git a/courseware/views.py b/courseware/views.py index 2a9a84aa67..2ef45ef7b1 100644 --- a/courseware/views.py +++ b/courseware/views.py @@ -34,7 +34,7 @@ etree.set_default_parser(etree.XMLParser(dtd_validation=False, load_dtd=False, template_imports={'urllib':urllib} -def get_grade(request, problem, cache): +def get_grade(user, problem, cache): ## HACK: assumes max score is fixed per problem id = problem.get('id') correct = 0 @@ -43,7 +43,7 @@ def get_grade(request, problem, cache): if id not in cache: module = StudentModule(module_type = 'problem', # TODO: Move into StudentModule.__init__? module_id = id, - student = request.user, + student = user, state = None, grade = 0, max_grade = None, @@ -76,7 +76,8 @@ def profile(request, student_id = None): if student_id == None: student = request.user else: - if 'course_admin' not in content.user_groups(request.user): + print content_parser.user_groups(request.user) + if 'course_admin' not in content_parser.user_groups(request.user): raise Http404 student = User.objects.get( id = int(student_id)) @@ -104,7 +105,7 @@ def profile(request, student_id = None): scores=[] if len(problems)>0: for p in problems: - (correct,total) = get_grade(request, p, response_by_id) + (correct,total) = get_grade(student, p, response_by_id) # id = p.get('id') # correct = 0 # if id in response_by_id: diff --git a/student/models.py b/student/models.py index 268503a7f3..f4498c396b 100644 --- a/student/models.py +++ b/student/models.py @@ -106,5 +106,5 @@ def add_user_to_group(group, user): def remove_user_from_group(group, user): utg = UserTestGroup.objects.get(name = group) - utg.users.add(User.objects.get(username = user)) + utg.users.remove(User.objects.get(username = user)) utg.save()