diff options
author | adityacp | 2018-07-17 15:37:19 +0530 |
---|---|---|
committer | adityacp | 2018-07-17 15:37:19 +0530 |
commit | 8902f96f28ead9f2ed158691e582f09c8366dfcd (patch) | |
tree | fae09dcb990eb010609f8080c5b8fbf98c7d122c /yaksh/views.py | |
parent | b15117aa6755f71221520eb73bf6af1ab90b7f13 (diff) | |
download | online_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.py | 35 |
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") |