7 Commits

6 changed files with 38 additions and 39 deletions

View File

@@ -1,4 +1,4 @@
FROM python:3.10-slim FROM python:3.13-slim
ARG DATA=./data/ ARG DATA=./data/
ENV DATA=$DATA ENV DATA=$DATA
WORKDIR /ref-test WORKDIR /ref-test

View File

@@ -61,10 +61,8 @@ def create_app():
app.register_blueprint(view, url_prefix='/admin/view') app.register_blueprint(view, url_prefix='/admin/view')
app.register_blueprint(analysis, url_prefix='/admin/analysis') app.register_blueprint(analysis, url_prefix='/admin/analysis')
"""Create Database Tables before First Request""" """Create Database Tables when creating app"""
@app.before_first_request with app.app_context():
def _create_database_tables(): db.create_all()
with app.app_context():
db.create_all()
return app return app

View File

@@ -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,

View File

@@ -41,7 +41,7 @@ class User(UserMixin, db.Model):
def set_password(self): raise AttributeError('set_password is not a readable attribute.') def set_password(self): raise AttributeError('set_password is not a readable attribute.')
set_password.setter set_password.setter
def set_password(self, password:str): self.password = generate_password_hash(password, method="sha256") def set_password(self, password:str): self.password = generate_password_hash(password, method="scrypt")
def verify_password(self, password:str): return check_password_hash(self.password, password) def verify_password(self, password:str): return check_password_hash(self.password, password)

View File

@@ -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',

View File

@@ -1,33 +1,33 @@
blinker==1.5 blinker==1.9.0
cffi==1.15.1 cffi==2.0.0
click==8.1.3 click==8.3.0
cryptography==39.0.2 cryptography==46.0.2
dnspython==2.3.0 dnspython==2.8.0
dominate==2.7.0 dominate==2.9.1
email-validator==1.3.1 email-validator==2.3.0
Flask==2.2.3 Flask==3.1.2
Flask-Bootstrap==3.3.7.1 Flask-Bootstrap==3.3.7.1
Flask-Login==0.6.2 Flask-Login==0.6.3
Flask-Mail==0.9.1 Flask-Mail==0.10.0
Flask-SQLAlchemy==3.0.3 Flask-SQLAlchemy==3.1.1
Flask-WTF==1.1.1 Flask-WTF==1.2.2
greenlet==2.0.2 greenlet==3.2.4
gunicorn==20.1.0 gunicorn==23.0.0
idna==3.4 idna==3.10
itsdangerous==2.1.2 itsdangerous==2.2.0
Jinja2==3.1.2 Jinja2==3.1.6
MarkupSafe==2.1.2 MarkupSafe==3.0.3
pip==23.0.1 packaging==25.0
pycparser==2.21 pycparser==2.23
PyMySQL==1.0.2 PyMySQL==1.1.2
python-dotenv==1.0.0 python-dotenv==1.1.1
setuptools==67.4.0 setuptools==80.9.0
six==1.16.0 six==1.17.0
SQLAlchemy==2.0.4 SQLAlchemy==2.0.43
sqlalchemy-json==0.5.0 sqlalchemy-json==0.7.0
SQLAlchemy-Utils==0.40.0 SQLAlchemy-Utils==0.42.0
typing_extensions==4.5.0 typing_extensions==4.15.0
visitor==0.1.3 visitor==0.1.3
Werkzeug==2.2.3 Werkzeug==3.1.3
wheel==0.38.4 wheel==0.45.1
WTForms==3.0.1 WTForms==3.2.1