changing options on files_*, search, also next/prev all now use POST->redirect model, so should allow back/forward browser buttons to work - commit so we can test in PROD

This commit is contained in:
2022-01-22 21:36:58 +11:00
parent 491663f1c9
commit 0f4632e240
14 changed files with 264 additions and 77 deletions

48
user.py
View File

@@ -1,9 +1,12 @@
from main import db
from sqlalchemy import Sequence
from flask_login import UserMixin
from flask import request, redirect
from flask_login import UserMixin, login_required
from main import db, app, ma
from sqlalchemy.exc import SQLAlchemyError
from status import st, Status
# pylint: disable=no-member
################################################################################
@@ -17,9 +20,48 @@ class PAUser(UserMixin,db.Model):
__tablename__ = "pa_user"
id = db.Column(db.Integer, db.Sequence('pa_user_id_seq'), primary_key=True)
dn = db.Column(db.String)
default_noo = db.Column(db.String)
default_grouping = db.Column(db.String)
default_how_many = db.Column(db.Integer)
default_size = db.Column(db.Integer)
default_folders = db.Column(db.Boolean)
default_fullscreen = db.Column(db.Boolean)
def __repr__(self):
return self.dn
str=f"<{self.__class__.__name__}("
for k, v in self.__dict__.items():
str += f"{k}={v!r}, "
str=str.rstrip(", ") + ")>"
return str
def get_id(self):
return self.dn
################################################################################
# /changedefaults -> POST only -> changes defaults in DB, states.html reloads
# /states once its successful
################################################################################
@app.route("/changedefaults", methods=["POST"])
@login_required
def changedefaults():
print( "change defaults -- need to sanitize form!?" )
for el in request.form:
print( f"{el}={request.form[el]}" )
user=PAUser.query.filter(PAUser.dn==request.form['dn']).one()
user.default_size = request.form['default_size']
user.default_noo = request.form['default_noo']
user.default_how_many = request.form['default_how_many']
user.default_grouping = request.form['default_grouping']
if request.form['default_folders'] == 'True':
user.default_folders = True
else:
user.default_folders = False
print("fullscreen is failing?")
if request.form['default_fullscreen'] == 'True':
user.default_fullscreen = True
else:
user.default_fullscreen = False
print( user )
db.session.add(user)
db.session.commit()
return "done"