SMTL

Die Stadtmeistersteilerliste und das Anmeldeformular - SK Langen e.V.
git clone git://git.oshgnacknak.de/SMTL.git
Log | Files | Refs | README

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:
MREADME.md | 7+------
Mrun.py | 4+++-
Asmtl/logging.py | 9+++++++++
Msmtl/models/player.py | 9+++++++--
Msmtl/routes.py | 41+++++++++++++++++++++++++----------------
Msmtl/templates/player_table.html | 6+++---
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>