From 36caf80a34154dc76ba131041e9e6e3b8ad3f84a Mon Sep 17 00:00:00 2001 From: Kostanjevec Date: Tue, 14 Jun 2022 02:26:38 +0200 Subject: [PATCH] try to catch edgecase bugs... --- menu.py | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/menu.py b/menu.py index 453f200..5330074 100644 --- a/menu.py +++ b/menu.py @@ -5,9 +5,10 @@ from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from config import CONFIG -from create_db import Deck +from create_db import Deck, Card from deck import get_deck, probabilistic_deck_generator +from auth import login bp = Blueprint('menu', __name__, url_prefix='/menu') @@ -17,6 +18,9 @@ dbsession = dbsessionmaker() @bp.route("/", methods=("GET", "POST")) def index(): + if 'user_id' not in session: + return login() + if 'user_id' in session: user_id = session['user_id'] username = session['username'] @@ -29,19 +33,29 @@ def index(): if action == "new_session": # @TODO tu bi moral preveriti če je kak unfinished deck, potem bi pisalo continiue, namesto new + #preverimo če so sploh karte v collectionu + c = dbsession.query(Card).filter(Card.owner_id == user_id).all() + if c == []: + print("ne najdem collectiona") + return render_template("error/no_cards_in_collection.html") + #ustvari novi vnos v Deck deck = probabilistic_deck_generator(user_id, 5, 5) cards_by_id = get_deck(deck) - number_of_cards = len(cards_by_id.split(",")) - - print(cards_by_id, number_of_cards) - deck = Deck(cards_by_id=cards_by_id, owner_id=user_id, number_of_cards=number_of_cards, current_card=0, completed=False) - dbsession.add(deck) - dbsession.commit() + if cards_by_id == None: + print("DECK IS NONE") + return render_template(index()) + else: + number_of_cards = len(cards_by_id.split(",")) + + print(cards_by_id, number_of_cards) + deck = Deck(cards_by_id=cards_by_id, owner_id=user_id, number_of_cards=number_of_cards, current_card=0, completed=False) + dbsession.add(deck) + dbsession.commit() - return redirect(url_for("deck")) + return redirect(url_for("deck")) elif action == "matches": - pass + return redirect(url_for("matches.index")) elif action == "upload": return redirect(url_for("upload.index")) elif action == "settings":