summaryrefslogtreecommitdiff
path: root/yaksh/templates
diff options
context:
space:
mode:
authorPalaparthy Adityachandra2021-03-24 16:12:33 +0530
committerGitHub2021-03-24 16:12:33 +0530
commitf8504f1077a532d0978fa1069c6eeb3c1912e939 (patch)
tree3b15ae27d9c6e6599fe8025ebc95075fb253c58a /yaksh/templates
parentf44cbc461f4c23c08d655749ccb525d99f2e7dbc (diff)
parent04684f6c636ed827a8ff029a8c0d9b7755096599 (diff)
downloadonline_test-f8504f1077a532d0978fa1069c6eeb3c1912e939.tar.gz
online_test-f8504f1077a532d0978fa1069c6eeb3c1912e939.tar.bz2
online_test-f8504f1077a532d0978fa1069c6eeb3c1912e939.zip
Merge pull request #807 from prathamesh920/add-test-cases-for-QRcode-based-upload
Add test cases for qrcode based upload
Diffstat (limited to 'yaksh/templates')
-rw-r--r--yaksh/templates/yaksh/question.html36
-rw-r--r--yaksh/templates/yaksh/upload_file.html78
2 files changed, 104 insertions, 10 deletions
diff --git a/yaksh/templates/yaksh/question.html b/yaksh/templates/yaksh/question.html
index 2779db2..f8f0c46 100644
--- a/yaksh/templates/yaksh/question.html
+++ b/yaksh/templates/yaksh/question.html
@@ -270,15 +270,6 @@ question_type = "{{ question.type }}";
<!-- Upload type question -->
{% if question.type == "upload" %}
- <p>Upload assignment file for the said question<p>
- <div class="dropzone needsclick dz-clickable" id="dropzone_file">
- <div class="dz-message needsclick">
- <button type="button" class="dz-button">
- Drop files here or click to upload.
- </button>
- </div>
- </div>
- <br>
{% if assignment_files %}
<div>
<ul class="list-group">
@@ -290,6 +281,32 @@ question_type = "{{ question.type }}";
</ul>
</div>
{% endif %}
+ <br />
+ <div class="row">
+ <div class="col-md-8">
+ <p>Upload assignment file for the said question.
+ <br>
+ <span class="badge badge-primary">
+ </u> <strong>You can upload using the file browser below or via the QR code.</strong></u>
+ </span>
+ </p>
+ <div class="dropzone needsclick dz-clickable" id="dropzone_file">
+ <div class="dz-message needsclick">
+ <button type="button" class="dz-button">
+ Drop files here or click to upload.
+ </button>
+ </div>
+ </div>
+ </div>
+ <div class="col-md-4">
+ {% if qrcode %}
+ <img src="{{ qrcode.image.url }}" width="200" height="200">
+ {% else %}
+ <a class="active btn btn-outline-primary " href="{% url 'yaksh:generate_qrcode' paper.id question.id module.id %}" data-toggle="tooltip"
+ title="Upload from any device using the QR Code">Generate QR Code</a>
+ {% endif %}
+ </div>
+ </div>
{% endif %}
<!-- Arrange type question -->
@@ -370,7 +387,6 @@ question_type = "{{ question.type }}";
{% if question.type == 'code' or question.type == 'upload' %}
<div id="error_panel"></div>
{% endif %}
-
<!-- Modal -->
<div class="modal" id="upload_alert" >
<div class="modal-dialog">
diff --git a/yaksh/templates/yaksh/upload_file.html b/yaksh/templates/yaksh/upload_file.html
new file mode 100644
index 0000000..e25e8e7
--- /dev/null
+++ b/yaksh/templates/yaksh/upload_file.html
@@ -0,0 +1,78 @@
+{% load static %}
+<html>
+<title> Upload File </title>
+<script language="JavaScript" type="text/javascript" src="{% static 'yaksh/js/jquery-3.3.1.min.js' %}"></script>
+<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.8.1/dropzone.min.css">
+<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.8.1/basic.min.css">
+<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.8.1/min/dropzone.min.js"></script>
+<style>
+div, input, button {
+ font-size: x-large;
+ text-align: center;
+}
+</style>
+<div>
+{% if success %}
+ <p> {{ msg }}</p>
+{% else %}
+ <form id="code" action="{% url 'yaksh:upload_file' key %}" method="post" enctype="multipart/form-data">
+ {% csrf_token %}
+ <h3>Upload assignment file for {{ question.summary }}</h3>
+ <div class="dropzone needsclick dz-clickable" id="dropzone_file">
+ <div class="dz-message needsclick">
+ <button type="button" class="dz-button">
+ Drop files here or click to upload.
+ </button>
+ </div>
+ </div>
+ <br>
+ <button class="btn btn-success" type="submit" name="check" id="check">Upload</button>
+ </form>
+{% endif %}
+</div>
+</html>
+<script>
+ Dropzone.autoDiscover = false;
+ var submitfiles;
+ $(document).ready(function(){
+ var filezone = $("div#dropzone_file").dropzone({
+ url: $("#code").attr("action"),
+ parallelUploads: 10,
+ uploadMultiple: true,
+ maxFiles:20,
+ paramName: "assignment",
+ autoProcessQueue: false,
+ init: function() {
+ var submitButton = document.querySelector("#check");
+ myDropzone = this;
+ submitButton.addEventListener("click", function(e) {
+ if (myDropzone.getQueuedFiles().length === 0) {
+ alert("Please select a file and upload");
+ e.preventDefault();
+ return;
+ }
+ if (myDropzone.getAcceptedFiles().length > 0) {
+ if (submitfiles === true) {
+ submitfiles = false;
+ return;
+ }
+ e.preventDefault();
+ myDropzone.processQueue();
+ myDropzone.on("complete", function () {
+ submitfiles = true;
+ $('#check').trigger('click');
+ });
+ }
+ });
+ },
+ success: function (file, response) {
+ document.open();
+ document.write(response);
+ document.close();
+ },
+ headers: {
+ "X-CSRFToken": document.getElementById("code").elements[0].value
+ }
+ });
+ });
+</script>