Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
ARFA
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
ARFA
ARFA
Commits
0e78b576
Commit
0e78b576
authored
Nov 25, 2018
by
SANCHIT JAIN
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://git.cse.iitb.ac.in/ARFA/ARFA
parents
786cf6ed
ee8366d7
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
158 additions
and
45 deletions
+158
-45
ARFA/ARFA/settings.py
ARFA/ARFA/settings.py
+1
-0
ARFA/ARFA_app/forms.py
ARFA/ARFA_app/forms.py
+17
-4
ARFA/ARFA_app/models.py
ARFA/ARFA_app/models.py
+3
-3
ARFA/ARFA_app/templates/ARFA_app/create_Test.html
ARFA/ARFA_app/templates/ARFA_app/create_Test.html
+20
-9
ARFA/ARFA_app/templates/ARFA_app/view_all_question.html
ARFA/ARFA_app/templates/ARFA_app/view_all_question.html
+9
-7
ARFA/ARFA_app/templates/ARFA_app/view_personal_Test.html
ARFA/ARFA_app/templates/ARFA_app/view_personal_Test.html
+27
-3
ARFA/ARFA_app/templates/ARFA_app/view_personal_question.html
ARFA/ARFA_app/templates/ARFA_app/view_personal_question.html
+9
-11
ARFA/ARFA_app/views.py
ARFA/ARFA_app/views.py
+72
-8
No files found.
ARFA/ARFA/settings.py
View file @
0e78b576
...
...
@@ -40,6 +40,7 @@ INSTALLED_APPS = [
'django.contrib.sessions'
,
'django.contrib.messages'
,
'django.contrib.staticfiles'
,
# 'datetimepicker',
]
MIDDLEWARE
=
[
...
...
ARFA/ARFA_app/forms.py
View file @
0e78b576
...
...
@@ -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
ARFA/ARFA_app/models.py
View file @
0e78b576
...
...
@@ -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
.
Float
Field
(
null
=
True
)
expected_time_for_completion
=
models
.
CharField
(
max_length
=
10
)
start_time
=
models
.
CharField
(
max_length
=
10
)
max_marks
=
models
.
Integer
Field
(
null
=
True
)
# class TestQuestions(models.Model):
# test_ID = models.ForeignKey(
...
...
ARFA/ARFA_app/templates/ARFA_app/create_Test.html
View file @
0e78b576
...
...
@@ -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>
...
...
ARFA/ARFA_app/templates/ARFA_app/view_all_question.html
View file @
0e78b576
...
...
@@ -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> -->
...
...
ARFA/ARFA_app/templates/ARFA_app/view_personal_Test.html
View file @
0e78b576
...
...
@@ -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
ARFA/ARFA_app/templates/ARFA_app/view_personal_question.html
View file @
0e78b576
...
...
@@ -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%}
...
...
ARFA/ARFA_app/views.py
View file @
0e78b576
...
...
@@ -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
>>>>>>>
4
d542e9d29b7dc0879b73a66c89a6617595f2a80
#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 ;
>>>>>>>
4
d542e9d29b7dc0879b73a66c89a6617595f2a80
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
]
>>>>>>>
4
d542e9d29b7dc0879b73a66c89a6617595f2a80
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
)
>>>>>>>
4
d542e9d29b7dc0879b73a66c89a6617595f2a80
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
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment