diff --git a/states.py b/states.py index 6a100ff..bec0f8f 100644 --- a/states.py +++ b/states.py @@ -4,6 +4,8 @@ from flask_login import login_required, current_user from main import db, app, ma from shared import PA from user import PAUser +from datetime import datetime +import pytz ################################################################################ # PA_UserState: preference data for a given user / path_type combo, so a given user @@ -14,6 +16,7 @@ class PA_UserState(db.Model): __tablename__ = "pa_user_state" id = db.Column(db.Integer, db.Sequence('pa_user_state_id_seq'), primary_key=True ) pa_user_dn = db.Column(db.String, db.ForeignKey('pa_user.dn'), primary_key=True ) + last_used = db.Column(db.DateTime(timezone=True)) path_type = db.Column(db.String, primary_key=True, unique=False, nullable=False ) noo = db.Column(db.String, unique=False, nullable=False ) grouping = db.Column(db.String, unique=False, nullable=False ) @@ -56,7 +59,6 @@ class States(PA): self.last_eid=0 self.num_entries=0 - print( f"STATES() called, rp={request.path}, ref={request.referrer}" ) # this is any next/prev or noo, grouping, etc. change (so use referrer to work out what to do with this) # because this can happen on a view, or files_up, etc. change this FIRST if 'ChangeFileOpts' in request.path: @@ -153,17 +155,13 @@ class States(PA): self.offset=0 self.size=u.default_size if self.path_type == "View": - print("WE ARE A VIEW" ) self.root='static/' + self.orig_ptype self.first_eid=orig_pref.first_eid self.last_eid=orig_pref.last_eid self.num_entries=orig_pref.num_entries self.noo=orig_pref.noo self.folders=orig_pref.folders - print(f"orig_pref={orig_pref}" ) - print(f"self.folders={self.folders}" ) else: - print("not a view?" ) self.root='static/' + self.path_type if self.path_type == 'Import': self.noo = u.default_import_noo @@ -231,12 +229,13 @@ class States(PA): if 'current' in request.form: self.current = int(request.form['current']) + last_used=datetime.now(pytz.utc) # now save pref if not pref: # insert new pref for this combo (might be a new search or view, or first time for a path) - pref=PA_UserState( pa_user_dn=current_user.dn, path_type=self.path_type, view_eid=self.view_eid, noo=self.noo, - grouping=self.grouping, how_many=self.how_many, st_offset=self.offset, size=self.size, folders=self.folders, - root=self.root, cwd=self.cwd, orig_ptype=self.orig_ptype, orig_search_term=self.orig_search_term, + pref=PA_UserState( pa_user_dn=current_user.dn, last_used=last_used, path_type=self.path_type, view_eid=self.view_eid, + noo=self.noo, grouping=self.grouping, how_many=self.how_many, st_offset=self.offset, size=self.size, + folders=self.folders, root=self.root, cwd=self.cwd, orig_ptype=self.orig_ptype, orig_search_term=self.orig_search_term, orig_url=self.orig_url, current=self.current, first_eid=self.first_eid, last_eid=self.last_eid, num_entries=self.num_entries ) else: # update this pref with the values calculated above (most likely from POST to form) @@ -254,6 +253,7 @@ class States(PA): pref.orig_ptype = self.orig_ptype pref.orig_search_term = self.orig_search_term pref.orig_url = self.orig_url + pref.last_used = last_used # only passed in (at the moment) in viewlist pref.current = self.current