Compare commits
6 Commits
v1.2.2
...
716206dc65
| Author | SHA1 | Date | |
|---|---|---|---|
| 716206dc65 | |||
| a8eda4078d | |||
| d28cd6daed | |||
| 57b25cd214 | |||
| 8013a776a9 | |||
| aa1f46ee62 |
@@ -54,7 +54,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{% if entry.end_time %}
|
{% if entry.end_time %}
|
||||||
{{ entry.end_time.strftime('%d %b %Y') }}
|
{{ entry.end_time.strftime('%Y-%m-%d %H:%M') }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
{{ element.get_name() }}
|
{{ element.get_name() }}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{ element.date.strftime('%d %b %Y %H:%M') }}
|
{{ element.date.strftime('%Y-%m-%d %H:%M') }}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{ element.creator.get_username() }}
|
{{ element.creator.get_username() }}
|
||||||
|
|||||||
@@ -33,13 +33,13 @@
|
|||||||
{% for test in tests %}
|
{% for test in tests %}
|
||||||
<tr class="table-row">
|
<tr class="table-row">
|
||||||
<td>
|
<td>
|
||||||
{{ test.start_date.strftime('%d %b %y %H:%M') }}
|
{{ test.start_date.strftime('%Y-%m-%d %H:%M') }}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{ test.get_code() }}
|
{{ test.get_code() }}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{ test.end_date.strftime('%d %b %Y %H:%M') }}
|
{{ test.end_date.strftime('%Y-%m-%d %H:%M') }}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{% if test.time_limit == None -%}
|
{% if test.time_limit == None -%}
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ def _fetch_questions():
|
|||||||
data_path = dataset.get_file()
|
data_path = dataset.get_file()
|
||||||
with open(data_path, 'r') as data_file:
|
with open(data_path, 'r') as data_file:
|
||||||
data = loads(data_file.read())
|
data = loads(data_file.read())
|
||||||
questions = generate_questions(data)
|
questions = generate_questions(dataset:data, randomise:false)
|
||||||
return jsonify({
|
return jsonify({
|
||||||
'time_limit': end_time,
|
'time_limit': end_time,
|
||||||
'questions': questions,
|
'questions': questions,
|
||||||
|
|||||||
@@ -3,13 +3,36 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="instruction-container">
|
<div class="instruction-container">
|
||||||
<h3>Instructions</h3>
|
<h3>Instructions</h3>
|
||||||
|
<p>
|
||||||
|
Thank you for putting yourself forward to sit the SKA Referee Theory Exam. Please read the following instructions carefully.
|
||||||
|
</p>
|
||||||
|
<h4>
|
||||||
|
Taking the Exam
|
||||||
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
The exam comprises 100 multiple-choice questions.
|
The exam consists of 100 questions, all of them multiple choice with two or three options, which are designed to test your knowledge of a wide range of rules. For each question, answer what decision you would give as a referee unless the question instructs otherwise.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
For each question, answer what decision you would give as a referee unless the question instructs otherwise.
|
It should take around an hour to complete.
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
The exam should be taken under exam conditions. Materials such as the official rules, guidelines, revision resources, or similar should not be consulted during the test.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
We would remind candidates that whilst we are relying on your honesty in this test, your theory knowledge will make up a part of the practical assessment when you are observed refereeing a game.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
You also may not discuss the test with any other person while you are sitting it.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
If you have any queries before the exam or would like further feedback on the test, your emails are welcome.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<h4>
|
||||||
|
Using the Web App
|
||||||
|
</h4>
|
||||||
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
You will be able to customise the display settings of the exam from the settings panel by clicking on the red gear button <a class="btn btn-danger" aria-title="Settings" title="Settings" onclick="return false;"><i class="bi bi-gear-fill"></i></a>.
|
You will be able to customise the display settings of the exam from the settings panel by clicking on the red gear button <a class="btn btn-danger" aria-title="Settings" title="Settings" onclick="return false;"><i class="bi bi-gear-fill"></i></a>.
|
||||||
</li>
|
</li>
|
||||||
@@ -17,7 +40,7 @@
|
|||||||
You can view your progress at a glance, as well as navigate to any question in the quiz, using the question grid, accessed via the yellow grid button <a class="btn btn-warning" aria-title="Question Grid" title="Question Grid" onclick="return false;"><i class="bi bi-table"></i></a>.
|
You can view your progress at a glance, as well as navigate to any question in the quiz, using the question grid, accessed via the yellow grid button <a class="btn btn-warning" aria-title="Question Grid" title="Question Grid" onclick="return false;"><i class="bi bi-table"></i></a>.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
If you are unsure of the answer to a question or would like to revise a question, you can flag the question to review it later on using the flag button button <a class="btn btn-secondary" id="q-nav-flag" title="Flag Button." onclick="return false;"><i class="bi bi-flag-fill"></i></a>.
|
If you are unsure of the answer to a question or would like to return to a question later, you can flag the question using the flag button button <a class="btn btn-secondary" id="q-nav-flag" title="Flag Button." onclick="return false;"><i class="bi bi-flag-fill"></i></a> to serve as a reminder for you to come back to it later.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -46,7 +69,7 @@
|
|||||||
Results
|
Results
|
||||||
</h4>
|
</h4>
|
||||||
<p>
|
<p>
|
||||||
The results of your exam will be processed immediately and sent to the SKA Refereeing Coordinator. You will also be emailed a copy of your results.
|
The results of your exam will be processed immediately and sent to the SKA Refereeing Coordinator. You will also be emailed a copy of your results. If you do not receive an email, make sure to check your spam folder.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
When you are ready to begin the quiz, click the following button.
|
When you are ready to begin the quiz, click the following button.
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ def _instructions():
|
|||||||
@quiz.route('/start/', methods=['GET', 'POST'])
|
@quiz.route('/start/', methods=['GET', 'POST'])
|
||||||
def _start():
|
def _start():
|
||||||
clubs = [
|
clubs = [
|
||||||
|
'Barrowland Bears Korfball Club',
|
||||||
'Dundee Korfball Club',
|
'Dundee Korfball Club',
|
||||||
'Edinburgh City Korfball Club',
|
'Edinburgh City Korfball Club',
|
||||||
'Edinburgh Mavericks Korfball Club',
|
'Edinburgh Mavericks Korfball Club',
|
||||||
@@ -59,11 +60,11 @@ def _start():
|
|||||||
except Exception as exception:
|
except Exception as exception:
|
||||||
write('system.log', f'Database error when processing request \'{request.url}\': {exception}')
|
write('system.log', f'Database error when processing request \'{request.url}\': {exception}')
|
||||||
return abort(500)
|
return abort(500)
|
||||||
|
if not test: return jsonify({'error': 'The exam code you entered is invalid.'}), 400
|
||||||
entry.test = test
|
entry.test = test
|
||||||
entry.dataset = test.dataset
|
entry.dataset = test.dataset
|
||||||
entry.user_code = request.form.get('user_code')
|
entry.user_code = request.form.get('user_code')
|
||||||
entry.user_code = None if entry.user_code == '' else entry.user_code.lower()
|
entry.user_code = None if entry.user_code == '' else entry.user_code.lower()
|
||||||
if not test: return jsonify({'error': 'The exam code you entered is invalid.'}), 400
|
|
||||||
if entry.user_code and entry.user_code not in test.adjustments: return jsonify({'error': f'The user code you entered is not valid.'}), 400
|
if entry.user_code and entry.user_code not in test.adjustments: return jsonify({'error': f'The user code you entered is not valid.'}), 400
|
||||||
if test.end_date < datetime.now(): return jsonify({'error': f'The exam code you entered expired on {test["expiry_date"].strftime("%d %b %Y %H:%M")}.'}), 400
|
if test.end_date < datetime.now(): return jsonify({'error': f'The exam code you entered expired on {test["expiry_date"].strftime("%d %b %Y %H:%M")}.'}), 400
|
||||||
if test.start_date > datetime.now(): return jsonify({'error': f'The exam has not yet opened. Your exam code will be valid from {test["start_date"].strftime("%d %b %Y %H:%M")}.'}), 400
|
if test.start_date > datetime.now(): return jsonify({'error': f'The exam has not yet opened. Your exam code will be valid from {test["start_date"].strftime("%d %b %Y %H:%M")}.'}), 400
|
||||||
|
|||||||
Reference in New Issue
Block a user