from flask import flash, render_template, Blueprint, request, session from create_db import User, get_session import json bp = Blueprint('settings', __name__, url_prefix='/settings') def get_settings(user_id): dbsession = get_session() """get settings from db, turns it into a dict and returns it""" user = dbsession.query(User).get(user_id) #tu rešujejo none user bug, ki se pojavi, ko na novo reg user, ni zazznan v querryju # zdaj imamo problem clasha med globalno in lokalno spremenljivko "dbsession" if user == None: print("user je bil none") dbsession = get_session() user = dbsession.query(User).get(user_id) print("User je: ", user) settings_db = user.settings if settings_db == "": #userji se zaenkrat generirajo brez settingsov aka empty string, zato dodamo te defaulte settings_dict = { "max_new" : 5, "max_due" : 5, "max_shared" : 5, } else: settings_dict = json.loads(settings_db) print("this is it: ", settings_dict) return settings_dict @bp.route("/save_settings", methods=["GET", "POST"]) def save_settings(): dbsession = get_session() """takes a dict of settings turns it into json and updates the database with it""" user_id = session['user_id'] username = session['username'] if request.method == "GET": settings_old = get_settings(user_id) return render_template("settings.html", username=username, settings=settings_old) if request.method == "POST": print('this is the form ', request.form) #request form stuff settings_dict = { "max_new" : request.form.get('max_new', False), "max_due" : request.form.get('max_due', False), "max_shared" : request.form.get('max_shared', False), } print('this is the dict: ', settings_dict) settings_json = json.dumps(settings_dict) print('this is the json: ', settings_json) user = dbsession.query(User).get(user_id) user.settings = settings_json dbsession.commit() dbsession.close() flash("settings updated") return render_template("settings.html", username=username, settings=settings_dict)