From 8f9e883ade96bd33eaa338e2a60e37824994a245 Mon Sep 17 00:00:00 2001 From: Kostanjevec Date: Sun, 12 Jun 2022 18:46:07 +0200 Subject: [PATCH] popravljena koda za ocenjevanje --- app.py | 107 +++++++++++++++++++++++++++----------- templates/deck/index.html | 10 ++-- 2 files changed, 83 insertions(+), 34 deletions(-) diff --git a/app.py b/app.py index 6b603cb..39fb84b 100644 --- a/app.py +++ b/app.py @@ -1,4 +1,5 @@ import os +from textwrap import indent from flask import Flask, redirect, render_template, session, request, url_for from datetime import date @@ -45,54 +46,100 @@ def create_app(test_config=None): def index(): return 'redirecting' # meče skoz nazaj na login TODO + @app.route('/deck/beta', methods=["GET", "POST"]) + def deck2(): + if request.method == 'POST': + pass + + return render_template("deck/index.html") + #@login_required @app.route('/deck/index', methods=["GET", "POST"]) def deck(): - if 'user_id' in session: - user_id = session['user_id'] - username = session['username'] - - #pokliče na bazo, da dobi str card idjev, ga spremeni v list in srevira karte po idjih - deck_object = dbsession.query(Deck).filter(Deck.owner_id == user_id, Deck.completed == False).first() - deck_id = deck_object.id - # tu je treba preiti na current card - current_card = deck_object.current_card - print(current_card) - d = deck_object.cards_by_id.split(",") + if not 'user_id' in session: + return index() - if current_card < len(d): - card = dbsession.query(Card).filter(Card.id == d[current_card]).first() - dbsession.query(Deck).filter(Deck.owner_id == user_id, Deck.id == deck_id).update({'current_card': current_card+1}) + user_id = session['user_id'] + username = session['username'] + + #pokliče na bazo, da dobi str card idjev, ga spremeni v list in srevira karte po idjih + deck_query = dbsession.query(Deck).filter(Deck.owner_id == user_id) + deck_object = deck_query.filter(Deck.completed == False).first() + # @TODO: ce deck, ne obstaja, kaj naj zaj jas? + + deck_id = deck_object.id + + # Smo oddali obrazec? + if request.method == 'POST': + card_id = request.form.get('card_id', None) + if not card_id: + raise Exception("card_id je nujen!") + + + submit_card = dbsession.query(Card).get(card_id) + # @TODO preveri, ali je card del trenutnega decka! + + # Ali damo share? Potem nastavi na share in ponovi obrazec + share = request.form.get("share", None) + if share: + print(share) + # @TODO logika za share! + + # Če ne, gre za rate! else: - dbsession.query(Deck).filter(Deck.owner_id == user_id, Deck.id == deck_id).update({'completed': True}) - dbsession.commit() - return redirect(url_for("menu.index")) - - if request.method == 'POST': rate = request.form.get('rate', None) #je to nevarno?? print(rate) + + if not rate: + raise Exception("manjka rate info!") + if rate == "Yes": - dbsession.query(Card).filter(Card.id == card.id).update({'interest_rate': 1}) + submit_card.interest_rate = 1 elif rate == "Maybe": k = 0.5 - dbsession.query(Card).filter(Card.id == card.id).update({'interest_rate': abs(card.interest_rate*k)}) + print(submit_card) + submit_card.interest_rate= abs(submit_card.interest_rate*k) elif rate == "No": k = 0.1 - dbsession.query(Card).filter(Card.id == card.id).update({'interest_rate': abs(card.interest_rate*k)}) + submit_card.interest_rate = abs(submit_card.interest_rate*k) - if request.form.get("share", None): #to ne sme spremeniti karte - print("share") - - #dbsession.query(Card).filter(Card.id == card.id).update({'last_review': date()}) - dbsession.commit() - return render_template("deck/index.html", username=username, card = card) # no idea kaj se tu dogaja... - else: - return index() + # zaporedno število trenutnega carda v decku + next_card = deck_object.current_card + 1 + # Ali je deck končan? + if next_card >= deck_object.number_of_cards: + deck_object.completed = True + dbsession.commit() + return redirect(url_for("menu.index")) + + deck_object.current_card = next_card + dbsession.commit() + #dbsession.query(Card).filter(Card.id == card.id).update({'last_review': date()}) + + # Loudamo naslednjo karto v decku + show_card_index = deck_object.current_card + show_card_id = deck_object.cards_by_id.split(",")[show_card_index] + show_card = dbsession.query(Card).get(show_card_id) + + if not show_card: + raise Exception("Ne najdem naslednje karte") + + # Prikaži obrazec + return render_template("deck/index.html", username=username, card=show_card) + + + @app.route("/share_button", methods=["GET", "POST"]) + def share_button(): + userid = session["user_id"] + username = session["username"] + card_number = session["card_number"] + + print("share!!!") + return redirect(url_for("deck")) @app.route('/logout') def logout(): diff --git a/templates/deck/index.html b/templates/deck/index.html index ba5680d..96fe1d7 100644 --- a/templates/deck/index.html +++ b/templates/deck/index.html @@ -11,11 +11,13 @@
- - - + + + + + +
-