from flask import flash, redirect, render_template, url_for, Blueprint, request, session from create_db import User, get_session import json bp = Blueprint('settings', __name__, url_prefix='/settings') dbsession = get_session() def get_settings(user_id): """get settings from db, turns it into a dict and returns it""" user = dbsession.query(User).get(user_id) 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(): """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)