summaryrefslogtreecommitdiff
path: root/yaksh/views.py
diff options
context:
space:
mode:
authoradityacp2018-07-17 15:37:19 +0530
committeradityacp2018-07-17 15:37:19 +0530
commit8902f96f28ead9f2ed158691e582f09c8366dfcd (patch)
treefae09dcb990eb010609f8080c5b8fbf98c7d122c /yaksh/views.py
parentb15117aa6755f71221520eb73bf6af1ab90b7f13 (diff)
downloadonline_test-8902f96f28ead9f2ed158691e582f09c8366dfcd.tar.gz
online_test-8902f96f28ead9f2ed158691e582f09c8366dfcd.tar.bz2
online_test-8902f96f28ead9f2ed158691e582f09c8366dfcd.zip
Create assignment upload files for a particular course instead of quiz
Diffstat (limited to 'yaksh/views.py')
-rw-r--r--yaksh/views.py35
1 files changed, 19 insertions, 16 deletions
diff --git a/yaksh/views.py b/yaksh/views.py
index ecd7efd..521096e 100644
--- a/yaksh/views.py
+++ b/yaksh/views.py
@@ -30,8 +30,8 @@ from yaksh.code_server import get_result as get_result_from_code_server
from yaksh.models import (
Answer, AnswerPaper, AssignmentUpload, Course, FileUpload, Profile,
QuestionPaper, QuestionSet, Quiz, Question, TestCase, User,
- FIXTURES_DIR_PATH, MOD_GROUP_NAME, Lesson, LessonFile, LearningUnit, LearningModule,
- CourseStatus
+ FIXTURES_DIR_PATH, MOD_GROUP_NAME, Lesson, LessonFile, LearningUnit,
+ LearningModule, CourseStatus
)
from yaksh.forms import (
UserRegisterForm, UserLoginForm, QuizForm, QuestionForm,
@@ -77,7 +77,7 @@ def is_moderator(user, group_name=MOD_GROUP_NAME):
def add_as_moderator(users, group_name=MOD_GROUP_NAME):
""" add users to moderator group """
try:
- group = Group.objects.get(name=group_name)
+ Group.objects.get(name=group_name)
except Group.DoesNotExist:
raise Http404('The Group {0} does not exist.'.format(group_name))
for user in users:
@@ -729,19 +729,17 @@ def check(request, q_id, attempt_num=None, questionpaper_id=None,
for fname in assignment_filename:
fname._name = fname._name.replace(" ", "_")
assignment_files = AssignmentUpload.objects.filter(
- assignmentQuestion=current_question,
- assignmentFile__icontains=fname, user=user,
- question_paper=questionpaper_id)
+ assignmentQuestion=current_question, course_id=course_id,
+ assignmentFile__icontains=fname, user=user,
+ question_paper=questionpaper_id)
if assignment_files.exists():
- assign_file = assignment_files.get(
- assignmentQuestion=current_question,
- assignmentFile__icontains=fname, user=user,
- question_paper=questionpaper_id)
+ assign_file = assignment_files.first()
if os.path.exists(assign_file.assignmentFile.path):
os.remove(assign_file.assignmentFile.path)
assign_file.delete()
AssignmentUpload.objects.create(
user=user, assignmentQuestion=current_question,
+ course_id=course_id,
assignmentFile=fname, question_paper_id=questionpaper_id
)
user_answer = 'ASSIGNMENT UPLOADED'
@@ -1890,10 +1888,10 @@ def view_answerpaper(request, questionpaper_id, course_id):
data = AnswerPaper.objects.get_user_data(user, questionpaper_id,
course_id)
has_user_assignment = AssignmentUpload.objects.filter(
- user=user,
+ user=user, course_id=course.id,
question_paper_id=questionpaper_id
).exists()
- context = {'data': data, 'quiz': quiz,
+ context = {'data': data, 'quiz': quiz, 'course_id': course.id,
"has_user_assignment": has_user_assignment}
return my_render_to_response(
request, 'yaksh/view_answerpaper.html', context
@@ -2100,13 +2098,18 @@ def update_email(request):
@login_required
@email_verified
-def download_assignment_file(request, quiz_id, question_id=None, user_id=None):
+def download_assignment_file(request, quiz_id, course_id=None,
+ question_id=None, user_id=None):
user = request.user
- if not is_moderator(user):
- raise Http404("You are not allowed to view this page")
+ course = Course.objects.get(id=course_id)
+ if (not course.is_creator(user) and not course.is_teacher(user) and
+ not course.is_student(user)):
+ raise Http404("You are not allowed to download {}".format(
+ course.name.replace(" ", "_"))
+ )
qp = QuestionPaper.objects.get(quiz_id=quiz_id)
assignment_files, file_name = AssignmentUpload.objects.get_assignments(
- qp, question_id, user_id
+ qp, question_id, user_id, course_id
)
zipfile_name = string_io()
zip_file = zipfile.ZipFile(zipfile_name, "w")