spremenil logiko za deck tako, da 'new_session' v db shrani stabilen deck kot string card idjev, potem pa ga lahko tudi večkrat istega kličemo da iteriramo ko dejansko prikazujemo karte iz decka

master
Kostanjevec 2022-06-05 18:56:40 +02:00
parent e0f2111b88
commit b3a15184c8
3 changed files with 39 additions and 21 deletions

21
app.py
View File

@ -6,9 +6,10 @@ from sqlalchemy import case
from auth import login_required, bp as auth_bp
from deck import probabilistic_deck_generator, bp as deck_bp
from menu import bp as menu_bp
from upload import bp as upload_bp
from flask import Flask, redirect, render_template, session, request, url_for
from create_db import Card
from create_db import Card, Deck
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from config import CONFIG
@ -57,17 +58,21 @@ def create_app(test_config=None):
global deck_index
user_id = session['user_id']
username = session['username']
d = probabilistic_deck_generator(user_id, 5, 5) #to je hell ker vsakič generira nov deck TODO deck bi moral bit nekako stabilen
#pokliče na bazo, da dobi str card idjev, ga spremeni v list in srevira karte po idjih
ids = dbsession.query(Deck).filter(Deck.owner_id == user_id, Deck.completed == False).first()
d = ids.cards_by_id.split(",")
deck_index+=1
if deck_index < len(d):
card = d[deck_index]
card = dbsession.query(Card).filter(Card.id == d[deck_index]).first()
else:
deck_index =-1
return redirect(url_for("menu.index"))
if request.method == 'POST':
rate = request.form['rate']
rate = request.form.get('rate', None) #je to nevarno??
cardtitle = request
print(rate)
if rate == "Yes":
@ -96,17 +101,13 @@ def create_app(test_config=None):
@app.route('/match')
def match():
return "match"
@app.route('/upload')
def upload():
return "upload"
return "match"
#app.register_blueprint(bp) # ??
app.register_blueprint(auth_bp)
app.register_blueprint(deck_bp)
app.register_blueprint(menu_bp)
app.register_blueprint(upload_bp)
app.add_url_rule('/', endpoint='index')
return app

19
deck.py
View File

@ -74,15 +74,18 @@ def probabilistic_deck_generator(user_id, max_new, max_due):
return deck
#################################################
#################################################
def get_deck(deck):
"""naredimo string iz cardov"""
cards_by_id = ""
for card in deck:
cards_by_id += str(card.id) + ","
cards_by_id = cards_by_id[:-1]
return cards_by_id
#################################################
##TODO
# config za max_new in max_due
#################################################
#################################################
#################################################
#################################################
#################################################
#################################################
#################################################

20
menu.py
View File

@ -6,7 +6,9 @@ from sqlalchemy.orm import sessionmaker
from auth import login_required
from config import CONFIG
from create_db import User
from create_db import Deck, User
from deck import get_deck, probabilistic_deck_generator
bp = Blueprint('menu', __name__, url_prefix='/menu')
@ -22,15 +24,27 @@ def index():
print(username)
if request.method == 'POST':
if request.method == "POST":
action = request.form.get("menu", False) #internetna rešitev, nevem kako, ampak dela, tj. dobi info iz meni buttonov
print(action)
if action == "new_session":
#tu bi moral preveriti če je kak unfinished deck, potem bi pisalo continiue, namesto new
#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()
return redirect(url_for("deck"))
elif action == "matches":
pass
elif action == "upload":
pass
return redirect(url_for("upload.index"))
elif action == "settings":
pass
elif action == "instructions":