summaryrefslogtreecommitdiff
path: root/yaksh/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'yaksh/views.py')
-rw-r--r--yaksh/views.py40
1 files changed, 24 insertions, 16 deletions
diff --git a/yaksh/views.py b/yaksh/views.py
index 0db1812..44f06b1 100644
--- a/yaksh/views.py
+++ b/yaksh/views.py
@@ -289,9 +289,11 @@ def prof_manage(request, msg=None):
user = request.user
ci = RequestContext(request)
if user.is_authenticated() and is_moderator(user):
- question_papers = QuestionPaper.objects.filter(quiz__course__creator=user,
- quiz__is_trial=False
- )
+ question_papers = QuestionPaper.objects.filter(
+ Q(quiz__course__creator=user) |
+ Q(quiz__course__teachers=user),
+ quiz__is_trial=False
+ ).distinct()
trial_paper = AnswerPaper.objects.filter(user=user,
question_paper__quiz__is_trial=True
)
@@ -790,7 +792,7 @@ def show_statistics(request, questionpaper_id, attempt_number=None):
@login_required
-def monitor(request, questionpaper_id=None):
+def monitor(request, quiz_id=None):
"""Monitor the progress of the papers taken so far."""
user = request.user
@@ -798,22 +800,23 @@ def monitor(request, questionpaper_id=None):
if not user.is_authenticated() or not is_moderator(user):
raise Http404('You are not allowed to view this page!')
- if questionpaper_id is None:
- q_paper = QuestionPaper.objects.filter(Q(quiz__course__creator=user) |
- Q(quiz__course__teachers=user),
- quiz__is_trial=False
- ).distinct()
- context = {'papers': [],
- 'quiz': None,
- 'quizzes': q_paper}
+ if quiz_id is None:
+ course_details = Course.objects.filter(Q(creator=user) |
+ Q(teachers=user),
+ is_trial=False).distinct()
+ context = {'papers': [], "course_details": course_details,
+ "msg": "Monitor"}
return my_render_to_response('yaksh/monitor.html', context,
context_instance=ci)
# quiz_id is not None.
try:
+ quiz = get_object_or_404(Quiz, id=quiz_id)
+ if not quiz.course.is_creator(user) and not quiz.course.is_teacher(user):
+ raise Http404('This course does not belong to you')
q_paper = QuestionPaper.objects.filter(Q(quiz__course__creator=user) |
Q(quiz__course__teachers=user),
quiz__is_trial=False,
- id=questionpaper_id).distinct()
+ quiz_id=quiz_id).distinct()
except QuestionPaper.DoesNotExist:
papers = []
q_paper = None
@@ -828,8 +831,8 @@ def monitor(request, questionpaper_id=None):
last_attempt_num=Max('attempt_number'))
latest_attempts.append(papers.get(user__in=auser,
attempt_number=last_attempt['last_attempt_num']))
- context = {'papers': papers, 'quiz': q_paper, 'quizzes': None,
- 'latest_attempts': latest_attempts,}
+ context = {'papers': papers, "quiz": quiz, "msg": "Quiz Results",
+ 'latest_attempts': latest_attempts}
return my_render_to_response('yaksh/monitor.html', context,
context_instance=ci)
@@ -1116,10 +1119,15 @@ def grade_user(request, quiz_id=None, user_id=None, attempt_number=None):
.values("id")
user_details = AnswerPaper.objects\
.get_users_for_questionpaper(questionpaper_id)
+ quiz = get_object_or_404(Quiz, id=quiz_id)
+ if not quiz.course.is_creator(current_user) and not \
+ quiz.course.is_teacher(current_user):
+ raise Http404('This course does not belong to you')
+
has_quiz_assignments = AssignmentUpload.objects.filter(
question_paper_id=questionpaper_id
).exists()
- context = {"users": user_details, "quiz_id": quiz_id,
+ context = {"users": user_details, "quiz_id": quiz_id, "quiz":quiz,
"has_quiz_assignments": has_quiz_assignments
}
if user_id is not None: