summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorprathamesh2021-03-24 14:51:49 +0530
committerprathamesh2021-03-24 14:51:49 +0530
commit0d2046dfd7d9ce5e7da1d36b6cc26806001f49cc (patch)
tree030bbf17f259a47c11ba351edd4d9f9363dc2f3e
parentf38664721ed117f445b27af839fe41898ed90a47 (diff)
downloadonline_test-0d2046dfd7d9ce5e7da1d36b6cc26806001f49cc.tar.gz
online_test-0d2046dfd7d9ce5e7da1d36b6cc26806001f49cc.tar.bz2
online_test-0d2046dfd7d9ce5e7da1d36b6cc26806001f49cc.zip
Add proper redirect to the QR code and check for existing active QR code.
Also, the answerpaper status will be updated!
-rw-r--r--yaksh/models.py3
-rw-r--r--yaksh/views.py31
2 files changed, 27 insertions, 7 deletions
diff --git a/yaksh/models.py b/yaksh/models.py
index efe772c..9f34ade 100644
--- a/yaksh/models.py
+++ b/yaksh/models.py
@@ -3358,6 +3358,9 @@ class QRcode(models.Model):
except IntegrityError:
num = num + 1
+ def is_qrcode_available(self):
+ return self.active and not self.used and self.image is not None
+
def generate_image(self, content):
img = qrcode.make(content)
qr_dir = os.path.join(settings.MEDIA_ROOT, 'qrcode')
diff --git a/yaksh/views.py b/yaksh/views.py
index a93f6e0..d2aa319 100644
--- a/yaksh/views.py
+++ b/yaksh/views.py
@@ -4158,14 +4158,22 @@ def generate_qrcode(request, answerpaper_id, question_id, module_id):
handler = QRcodeHandler.objects.get_or_create(user=user, question=question,
answerpaper=answerpaper)[0]
qrcode = handler.get_qrcode()
- content = request.build_absolute_uri(
- reverse("yaksh:upload_file", args=[qrcode.short_key])
+ if not qrcode.is_qrcode_available():
+ content = request.build_absolute_uri(
+ reverse("yaksh:upload_file", args=[qrcode.short_key])
+ )
+ qrcode.generate_image(content)
+ qrcode.save()
+ return redirect(
+ reverse(
+ 'yaksh:skip_question',
+ kwargs={'q_id': question_id, 'next_q': question_id,
+ 'attempt_num': answerpaper.attempt_number,
+ 'module_id': module_id,
+ 'questionpaper_id': answerpaper.question_paper.id,
+ 'course_id': answerpaper.course_id}
+ )
)
- qrcode.generate_image(content)
- qrcode.save()
- return show_question(request, question, answerpaper,
- course_id=answerpaper.course_id, module_id=module_id,
- previous_question=question)
def upload_file(request, key):
@@ -4199,6 +4207,15 @@ def upload_file(request, key):
answer_paper_id=handler.answerpaper_id)
)
AssignmentUpload.objects.bulk_create(uploaded_files)
+ user_answer = 'ASSIGNMENT UPLOADED'
+ new_answer = Answer(
+ question=handler.question, answer=user_answer,
+ correct=False, error=json.dumps([])
+ )
+ new_answer.save()
+ paper = handler.answerpaper
+ paper.answers.add(new_answer)
+ next_q = paper.add_completed_question(handler.question_id)
qrcode.set_used()
qrcode.deactivate()
qrcode.save()