Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 28 additions & 11 deletions kool/Examples/WebInterfaces/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,27 +69,33 @@ def make_quiz_form(self):

@cherrypy.expose
def make_quiz(self, qname, numquestions, numoptions):
quizoptions = quizoptionstart
QUIZ_OPTIONS = t.QUIZ_OPTIONS_START
for nn in range(0, int(numquestions)):
quizoptions = quizoptions + newquestion
QUIZ_OPTIONS = QUIZ_OPTIONS + t.NEW_QUESTION
for n in range(0, int(numoptions)):
quizoptions = quizoptions + quizoption
quizoptions = quizoptions + quizoptionend
QUIZ_OPTIONS = QUIZ_OPTIONS + t.QUIZ_OPTION
QUIZ_OPTIONS = QUIZ_OPTIONS + t.QUIZ_OPTIONS_END

#setup forms apporpriately to write to database
page = t.HEADER + quizoptions + t.FOOTER
page = t.HEADER + QUIZ_OPTIONS + t.FOOTER
return page

@cherrypy.expose
def choose_quiz(self, quizchoice):
#check firstname, lastname, quiz and score match
page = t.HEADER + quiz + t.FOOTER
page = t.HEADER + t.QUIZ_PAGE + t.FOOTER
return page

@cherrypy.expose
def quiz_created(self, otext, qtext):
#put all values in otext and qtext, then reformat to save to database
page = t.HEADER + t.QUIZ_CREATED + t.FOOTER
return page

@cherrypy.expose
def grade_quiz(self, option):
#check firstname, lastname, quiz and score match
page = t.HEADER + quizscore + t.FOOTER
page = t.HEADER + t.QUIZ_SCORE + t.FOOTER
return page

@cherrypy.expose
Expand All @@ -103,10 +109,21 @@ def show_students_scores(self):

@cherrypy.expose
def delete_student(self, value):
# delete t.STUDENT_FORM from database
# choose student to delete from database
page = t.HEADER + t.DELETE_STUDENT + t.FOOTER
return page

@cherrypy.expose
def display_student_scores(self,value):
page = t.HEADER + t.DISPLAY_STUDENT_SCORES + t.FOOTER
return page

@cherrypy.expose
def complete_delete_student(self,value):
# delete t.STUDENT_FORM from database
page = t.HEADER + t.COMPLETE_DELETE_STUDENT + t.FOOTER
return page

@cherrypy.expose
def educator_options(self):
page = t.HEADER + t.NAVBAR + t.START_CONTAINER + t.EDUCATOR_FORM + t.END_CONTAINER + t.FOOTER
Expand All @@ -119,20 +136,20 @@ def add_student(self, fname, lname, email, pword1, pword2):
lname = escape(lname)
email = escape(email)
pword1 = escape(pword1)
pword2 = escape(pword2)
pword2 = escape(pword2)
match = ''

if pword1 != pword2:
match = 'Passwords do not match, enter again'

if not match:
response_body = t.SHOW_STUDENT.format(
response_body = t.SHOW_STUDENT.format(
fname or 'No entry',
lname or 'No entry',
email or 'No entry',
)
return t.HEADER + t.NAVBAR + t.START_CONTAINER + response_body + t.END_CONTAINER + t.FOOTER
else:
else:
response_body = t.ERROR_MSG.format(match)
return t.HEADER + t.NAVBAR + t.START_CONTAINER + response_body + t.ADD_STUDENT + t.END_CONTAINER + t.FOOTER

Expand Down
134 changes: 99 additions & 35 deletions kool/Examples/WebInterfaces/templates.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
LOGIN_FORM = """
<div class="container">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="col-md-6">
<div id="login" class="card">
<h2>Login</h2>
<form method="post" action="start">
Expand Down Expand Up @@ -126,7 +126,7 @@
<div class="card">
<h2>Choose an option</h2>
<form method="post" action="student">

<div class="form-check">
<label class="form-check-label">
<input type="radio" class="form-check-input" name="option" value="show_my_scores" checked>
Expand All @@ -140,7 +140,7 @@
Take quiz
</label>
</div>

<br>

<input type="submit" value="Submit" class="btn btn-success">
Expand Down Expand Up @@ -198,17 +198,17 @@
SHOW_STUDENT_SCORES = """
<div class="card">
<h2>Show student scores</h2>
<form method="post" action="show_student_score">
<form method="post" action="display_student_scores">

<div class="form-group">
<select name="studenttodel" size="3">
<select name="value" size="3">
<option value="orenge@ut.ee">Antony Orenge orenge@ut.ee</option>
<option value="benson.muite@ut.ee">Benson Muite benson.muite@ut.ee</option>
<option value="kira.lurich@ut.ee">Kira Lurich kira.lurich@ut.ee</option>
</select>
</p>
<div>

<br>
<input type="submit" value="Submit" class="btn btn-success">

Expand All @@ -219,10 +219,10 @@
DELETE_STUDENT = """
<div class="card">
<h2>Select student record to delete from menu</h2>
<form method="post" action="delstudentaction">
<form method="post" action="complete_delete_student">

<div class="form-group">
<select name="studenttodel" size="3">
<select name="value" size="3">
<option value="orenge@ut.ee">Antony Orenge orenge@ut.ee</option>
<option value="benson.muite@ut.ee">Benson Muite benson.muite@ut.ee</option>
<option value="kira.lurich@ut.ee">Kira Lurich kira.lurich@ut.ee</option>
Expand All @@ -234,12 +234,46 @@
</div>
"""

COMPLETE_DELETE_STUDENT = """
<div class="card">
<h2>Record deleted</h2>
<form method="post" action="/">
<p>
<input type="submit" value="Return" class="btn btn-default">
</p>
</form>
</div>
"""

SHOW_MY_SCORE = """
<div class="card">
<h2>My quiz scores</h2>
<form method="post" action="/">
<p>
Placeholder for now - get scores from database and display them
<table style="width:100%">
<tr>
<th>Quiz</th>
<th>My score</th>
<th>Total Score</th>
</tr>
<tr>
<td>A</td>
<td>8</td>
<td>10</td>
</tr>
<tr>
<td>B</td>
<td>17</td>
<td>20</td>
</tr>
<tr>
<td>D</td>
<td>14</td>
<td>15</td>
</tr>
</table>
</p>
</p>
<p>
<input type="submit" value="Return" class="btn btn-default">
Expand All @@ -248,24 +282,60 @@
</div>
"""

DISPLAY_STUDENT_SCORES = """
<div class="card">
<h2>Student quiz scores</h2>
<form method="post" action="/">
<p>
Placeholder for now - get scores from database and display them
<table style="width:100%">
<tr>
<th>Quiz</th>
<th>My score</th>
<th>Total Score</th>
</tr>
<tr>
<td>A</td>
<td>8</td>
<td>10</td>
</tr>
<tr>
<td>B</td>
<td>17</td>
<td>20</td>
</tr>
<tr>
<td>D</td>
<td>14</td>
<td>15</td>
</tr>
</table>
</p>
<p>
<input type="submit" value="Return" class="btn btn-default">
</p>
</form>
</div>
"""

MAKE_QUIZ = """
<div class="card">
<h2>Make quiz</h2>
<form method="post" action="makequizaction">
<form method="post" action="make_quiz">

<div class="form-group">
<label for="qname">New quiz name</label>
<input type="text" class="form-control" id="qname" placeholder="">
<input type="text" class="form-control" name="qname" id="qname" placeholder="">
</div>

<div class="form-group">
<label for="numquestions">Number of questions (1-100)</label>
<input type="number" class="form-control" id="numquestions" placeholder="">
<input type="number" class="form-control" name="numquestions" id="numquestions" placeholder="">
</div>

<div class="form-group">
<label for="numoptions">Multiple choice options per question (1-15)</label>
<input type="number" class="form-control" id="numoptions" placeholder="">
<input type="number" class="form-control" name="numoptions" id="numoptions" placeholder="">
</div>
<br>

Expand All @@ -275,27 +345,11 @@
</div>
"""

ADD_QUIZ_QUESTION = """
<div class="card">
<h2>Add quiz question - modify to allow insertion of multiple questions</h2>
<form method="post" action="addquizquestionaction">
<p>
Question text:<br> <input type="text" name="qtext"><br>
option text:<br> <input type="text" name="otext0"><br>
option text:<br> <input type="text" name="otext1"><br>
Answer:<br> <input type="number" name="answer"><br>
</p>
<p>
<input type="submit" value="Add question">
</p>
</form>
</div>
"""

CHOOSE_QUIZ = """
<div class="card">
<h2>Choose unattempted quiz to take</h2>
<form method="post" action="choosequizaction">
<form method="post" action="choose_quiz">
<p>
Placeholder sliding menu for now<br>
<select name="quizchoice" size="5">
Expand All @@ -310,13 +364,13 @@
<input type="submit" value="Submit" class="btn btn-success">
</p>
</form>
</div>
</div>
"""

QUIZ_PAGE = """
<div class="card">
<h2>Quiz</h2>
<form method="post" action="gradequizaction">
<form method="post" action="grade_quiz">
<p>
Question 1<br>
<input type="radio" name="option" value="A">Answer 1<br>
Expand All @@ -332,7 +386,7 @@

QUIZ_OPTIONS_START = """
<div class="card">
<form method="post" action="gradequizaction">
<form method="post" action="quiz_created">
"""

NEW_QUESTION = """
Expand All @@ -343,6 +397,7 @@
Option text:<br> <input type="text" name="otext">
<input type="radio" name="option" value="A">Correct answer<br>
"""

QUIZ_OPTIONS_END = """
<input type="submit" value="Create quiz">
</form>
Expand All @@ -352,7 +407,16 @@
DEL_STUDENT_RECORD = """
<div class="card">
<h2>Succefully deleted student record</h2>
<form method="post" action="returneducatoraction">
<form method="post" action="educator_options">
<input type="submit" value="Return to educator options">
</form>
</div>
"""

QUIZ_CREATED = """
<div class="card">
<h2>Succefully created quiz</h2>
<form method="post" action="educator_options">
<input type="submit" value="Return to educator options">
</form>
</div>
Expand All @@ -379,4 +443,4 @@
<div class="alert alert-danger" role="alert">
{}
</div>
"""
"""