Commit 0e78b576 authored by SANCHIT JAIN's avatar SANCHIT JAIN

Merge branch 'master' of https://git.cse.iitb.ac.in/ARFA/ARFA

parents 786cf6ed ee8366d7
......@@ -40,6 +40,7 @@ INSTALLED_APPS = [
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 'datetimepicker',
]
MIDDLEWARE = [
......
......@@ -2,8 +2,9 @@ from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from .models import *
from django.forms.widgets import Select, Widget,DateTimeInput,TimeInput
import datetime
from datetimepicker.widgets import DateTimePicker
# class QuestionForm(forms.ModelForm):
# class Meta:
......@@ -16,7 +17,19 @@ from .models import *
# model = Options
# fields = ('option_value',)
class TestForm(forms.ModelForm):
VISIBILITY_CHOICES= ('1980', '1981', '1982')
# class TestForm(forms.ModelForm):
# # start_time = forms.DateTimeField(widget=DateTimePicker(), initial=datetime.datetime.now())
# start_time = forms.DateTimeField(widget=DateTimeInput, initial=datetime.datetime.now())
# expected_time_for_completion = forms.TimeField(widget=TimeInput,initial=datetime.datetime.now())
# class Meta:
# model = Test
# exclude = ['test_ID', 'ownership']
class TestForm(forms.ModelForm):
class Meta:
model = Test
model = Test
exclude = ['test_ID', 'ownsership']
\ No newline at end of file
......@@ -29,9 +29,9 @@ class Test(models.Model):
test_name = models.CharField(max_length=200,unique=True)
visibility_student = models.CharField(max_length=20)
ownership = models.CharField(max_length=20)
expected_time_for_completion = models.DurationField(blank=True)
start_time = models.DateTimeField(auto_now=False, auto_now_add=False)
max_marks = models.FloatField(null=True)
expected_time_for_completion = models.CharField(max_length=10)
start_time = models.CharField(max_length=10)
max_marks = models.IntegerField(null=True)
# class TestQuestions(models.Model):
# test_ID = models.ForeignKey(
......
......@@ -7,6 +7,14 @@
Create Test
{%endblock%}
{%block head%}
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML">
MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
</script>
{%endblock%}
{%block body%}
<h1> You CAN CREATE A Test HERE prof {{username}}</h1>
......@@ -26,10 +34,9 @@ Create Test
{%for question in questions%}
<li class="list-group-item">
<!-- <li> -->
<input type="checkbox" value= "True" name = "{{question.q_id}}" >
<div class="row toggle">
<div class="col-xs-10">
<input type="checkbox" value= "True" name = "i{{question.q_id}}" >
{{question.question_text}} {{question.q_id}} </br>
</div>
</div>
......@@ -37,16 +44,20 @@ Create Test
<hr></hr>
<ul>
{%for option in question.option_details%}
<li> {{option.is_answer}}
{{option.option_text}}
</li>
<!-- marks -->
{%if option.is_answer %}
<li>
<p style="color: green"> {{option.option_text}} </p>
</li>
{%else%}
<li>
{{option.option_text}}
</li>
{%endif%}
{%endfor%}
<label> marks
<input type="number" name="{{question.q_id}}1" min="0" max="10" placeholder="4" step="0.25" value="4">
<input type="number" name="{{question.q_id}}2" min="-10" max="0" placeholder="-1" step="0.25" value="0">
<input type="number" name="{{question.q_id}}" min="0" max="10" placeholder="4" step="0.25" value="4">
<input type="number" name="{{question.q_id}}" min="-10" max="0" placeholder="-1" step="0.25" value="0">
</label>
</ul>
......
......@@ -28,13 +28,15 @@ View all Question
<!-- <div class="fluid-row"> -->
<ul>
{%for option in question.option_details%}
<!-- <div class="col-xs-1"> -->
<li> {{option.is_answer}}
<!-- </div> -->
<!-- <div class="col-xs-5"> -->
{{option.option_text}}
<!-- </div> -->
</li>
{%if option.is_answer %}
<li>
<p style="color: green"> {{option.option_text}} </p>
</li>
{%else%}
<li>
{{option.option_text}}
</li>
{%endif%}
{%endfor%}
</ul>
<!-- </div> -->
......
......@@ -6,10 +6,34 @@
MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
</script>
{%endblock%}
{%block title%}
View personal Test
View personal Question
{%endblock%}
{%block body%}
<h1> You CAN VIEW personal Test HERE prof {{username}}</h1>
<h1> You CAN VIEW your tests prof {{username}}</h1>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css">
<div class="container">
<div class="panel-default">
<div class="panel-heading">
<h3 class="panel-title">LIST OF TESTS</h3>
</div>
<ul class="list-group">
<!-- <ul> -->
{%for test in tests%}
<li class="list-group-item">
<!-- <li> -->
<div class="row toggle">
<div class="col-xs-10">
{{test.test_name}}
</div>
</div>
<div>
<hr></hr>
</div>
</li>
{%endfor%}
</ul>
</div>
</div>
{%endblock%}
\ No newline at end of file
......@@ -23,21 +23,19 @@ View personal Question
</div>
<div>
<hr></hr>
<!-- <div class="container"> -->
<!-- <div class="fluid-row"> -->
<ul>
{%for option in question.option_details%}
<!-- <div class="col-xs-1"> -->
<li> {{option.is_answer}}
<!-- </div> -->
<!-- <div class="col-xs-5"> -->
{{option.option_text}}
<!-- </div> -->
</li>
{%if option.is_answer %}
<li>
<p style="color: green"> {{option.option_text}} </p>
</li>
{%else%}
<li>
{{option.option_text}}
</li>
{%endif%}
{%endfor%}
</ul>
<!-- </div> -->
<!-- </div> -->
</div>
</li>
{%endfor%}
......
......@@ -312,6 +312,7 @@ def create_Test(request):
res = utilities.get_all_questions(request)
test = None
form = forms.TestForm()
args={'username':request.session['username'],'questions':res, 'TestForm':TestForm,
'is_session':True}
......@@ -324,10 +325,22 @@ def create_Test(request):
if not data: #only csrf token was sent, display create test page
return render(request,'ARFA_app/create_Test.html',args)
<<<<<<< HEAD
if TestForm.is_valid():
test = TestForm.save()
# for attr in dir(Test):
# print attr
# try:
# data.pop(attr)
# except KeyError as e:
# pass
=======
if form.is_valid():
test = form.save()
creator = models.Created_BY(test_ID=test,faculty=models.Faculty.objects.filter(username=request.session['username']).get())
creator.save()
else:
print form
if form.errors:
for field in form :
print field.errors
......@@ -335,45 +348,70 @@ def create_Test(request):
for attr in dir(Test):
print attr
# print attr
try:
data.pop(attr)
except KeyError as e:
pass
>>>>>>> 4d542e9d29b7dc0879b73a66c89a6617595f2a80
#data is being sent
#create test object
# test = Test()
containsObj = models.Contains(test_ID=test)
<<<<<<< HEAD
for q in data.keys():
# try:
print q
if q[0] != 'i':
continue ;
q = q[1:]
=======
print data
for q in data.keys():
if len(data[q]) != 3:
continue
try:
if q[0] != 'i':
continue ;
# if q[0] != 'i':
# continue ;
>>>>>>> 4d542e9d29b7dc0879b73a66c89a6617595f2a80
int(q)
containsObj.q_ID_id = q
print q
#data[q] is an array ['True', 'pos_marks', 'neg_marks']
<<<<<<< HEAD
containsObj.marks_pos = data[q + "1"]
containsObj.marks_neg = data[q + "2"]
print data[q + "1"]
=======
containsObj.marks_pos = data[q][1]
containsObj.marks_neg = data[q][2]
>>>>>>> 4d542e9d29b7dc0879b73a66c89a6617595f2a80
containsObj.pk = None
containsObj.save()
except ValueError as e:
print "success"
print containsObj
# except ValueError as e:
data.pop(q)
print e
continue
# for q in data:
<<<<<<< HEAD
return view_personal_Test(request)
#print data
return render(request,'ARFA_app/view_personal_Test.html',args)
def view_personal_Test(request):
args={'username':request.session['username']}
return render(request,'ARFA_app/view_personal_Test.html',args)
=======
# return HttpResponse("Test Created")
return view_personal_Test(request)
>>>>>>> 4d542e9d29b7dc0879b73a66c89a6617595f2a80
def view_all_Test(request):
args={'username':request.session['username']}
......@@ -418,3 +456,29 @@ def add_question(request):
except:
return HttpResponse(json.dumps({'status':'Failed','reason':'input/database error'}))
def view_personal_Test(request):
if(request.session.get('session',None)!=True):
return render(request,'ARFA_app/login.html')
if(request.session.get('role',None)!="faculty"):
return render(request,'ARFA_app/not_a_faculty.html',request.session.get('args',None))
cursor = connection.cursor()
cursor.execute(''' SELECT t."test_ID" as test_ID,t.test_name,t.visibility_student,
t.ownership,t.expected_time_for_completion,t.start_time,t.max_marks
FROM "ARFA_app_created_by" as c,
"ARFA_app_test" as t
WHERE c."test_ID_id" = t."test_ID" and c.faculty_id = %s
order by t.start_time desc ''',[request.session['username']])
rows = cursor.fetchall()
print rows
columns = [col[0] for col in cursor.description]
res = []
for val in rows:
res.append(dict(zip(columns,val)))
args={'username':request.session['username'],'tests':res}
return render(request,'ARFA_app/view_personal_Test.html',args)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment