commit 68349116ee4b1d9ee73bf06475a0ea0292554d19
parent f65c8ada06c5d7df85ce7962addabad724deb717
Author: Oshgnacknak <osh@oshgnacknak.de>
Date: Sun, 28 Jul 2019 12:52:22 +0100
add approved field to players + logger
Diffstat:
6 files changed, 48 insertions(+), 28 deletions(-)
diff --git a/README.md b/README.md
@@ -16,14 +16,9 @@ cd SMTL
# Install dependencies
pip install -r requirements.txt
-# Create config.py and change the 'SECRET_KEY'
+# Create config.py and edit it to your likings
cp config.py.dist config.py
# Execute run.py
pyhton run.py
```
-
-
-## TODO
-
-- Use captcha
diff --git a/run.py b/run.py
@@ -1,11 +1,13 @@
-from smtl.app import app
+from smtl.app import app, db
from smtl.routes import routes
from config import run_config
import os
def main():
+ db.create_all()
app.register_blueprint(routes)
+
host = run_config.get('HOST', '127.0.0.1')
port = run_config.get('PORT', 5000)
debug = run_config.get('DEBUG', False)
diff --git a/smtl/logging.py b/smtl/logging.py
@@ -0,0 +1,9 @@
+import logging
+from config import run_config
+
+
+logging.basicConfig(format='%(asctime)s - %(levelname)s - %(message)s')
+
+level = logging.DEBUG if run_config.get('DEBUG', False) else logging.INFO
+logger = logging.getLogger(__name__)
+logger.setLevel(level)
diff --git a/smtl/models/player.py b/smtl/models/player.py
@@ -26,6 +26,11 @@ class Player(db.Model):
db.Integer(),
default=0
)
+
+ approved = db.Column(
+ db.Boolean(),
+ default=False
+ )
- def __repr__(self):
- return f'Player@{self.id}({self.name})'
+ def __str__(self):
+ return f'Player({self.name})'
diff --git a/smtl/routes.py b/smtl/routes.py
@@ -4,7 +4,7 @@ from smtl.signup_form import SignupForm
from smtl.meta import meta
from smtl.app import db
from smtl.models.player import Player
-import sys
+from smtl.logging import logger
routes = Blueprint('routes', __name__)
@@ -14,27 +14,36 @@ routes = Blueprint('routes', __name__)
def signup():
form = SignupForm(request.form)
if form.validate():
- p = Player(
- name=form.data['name'],
- club=form.data['club'],
- email=form.data['email'],
- dwz=form.data['dwz']
- )
- print(f'{request.remote_addr} is trying to add {p}', file=sys.stderr)
try:
- db.session.add(p)
- db.session.commit()
+ p = add_player(form)
+ logger.info(request.remote_addr + ' added ' + str(p))
except SQLAlchemyError as e:
- print(e, file=sys.stderr)
+ logger.error('Database Error: ' + e)
return 'Database Error!', 500
- flash(f'{p.name} wurde hinzugefügt.')
else:
- for messages in form.errors.values():
- for message in messages:
- flash(message, 'error')
+ show_errors(form)
return redirect('/', code=302)
+def add_player(form):
+ p = Player(
+ name=form.data['name'],
+ club=form.data['club'],
+ email=form.data['email'],
+ dwz=form.data['dwz']
+ )
+ db.session.add(p)
+ db.session.commit()
+ flash(f'{p.name} wurde hinzugefügt.')
+ return p
+
+
+def show_errors(form):
+ for messages in form.errors.values():
+ for message in messages:
+ flash(message, 'error')
+
+
@routes.route('/')
@routes.route('/home')
def home():
@@ -44,5 +53,5 @@ def home():
title='Stadtmeisterschaft',
form=form,
meta=meta,
- players=Player.query.all()
+ players=Player.query.filter_by(approved=True).all()
)
diff --git a/smtl/templates/player_table.html b/smtl/templates/player_table.html
@@ -5,11 +5,11 @@
<th>Verein</th>
<th>DWZ</th>
</tr>
- {% for player in players %}
+ {% for player in players: %}
<tr>
<td>{{ player.name }}</td>
- <td>{{ player.club }}</td>
- <td>{{ player.dwz }}</td>
+ <td>{{ player.club or '-'}}</td>
+ <td>{{ player.dwz or 0 }}</td>
</tr>
{% endfor %}
</table>