viewing same eid but different search, etc. caused BUG-84 -- Fixed now as we look for a pa_user_state of View, eid=<eid>, orig_search_term=<...>
This commit is contained in:
11
states.py
11
states.py
@@ -6,6 +6,7 @@ from shared import PA
|
|||||||
from user import PAUser
|
from user import PAUser
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import pytz
|
import pytz
|
||||||
|
import re
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# PA_UserState: preference data for a given user / path_type combo, so a given user
|
# PA_UserState: preference data for a given user / path_type combo, so a given user
|
||||||
@@ -80,7 +81,10 @@ class States(PA):
|
|||||||
self.url = request.form['orig_url']
|
self.url = request.form['orig_url']
|
||||||
else:
|
else:
|
||||||
# GET's occur on redirect, and we don't have a form, so get it from pref
|
# GET's occur on redirect, and we don't have a form, so get it from pref
|
||||||
pref=PA_UserState.query.filter(PA_UserState.pa_user_dn==current_user.dn,PA_UserState.path_type==self.path_type,PA_UserState.view_eid==self.view_eid).first()
|
st=self.url[8:]
|
||||||
|
ref=request.referrer
|
||||||
|
st=re.sub( '.+/search/', '', ref )
|
||||||
|
pref=PA_UserState.query.filter(PA_UserState.pa_user_dn==current_user.dn,PA_UserState.path_type==self.path_type,PA_UserState.view_eid==self.view_eid,PA_UserState.orig_search_term==st).first()
|
||||||
self.url = pref.orig_url
|
self.url = pref.orig_url
|
||||||
|
|
||||||
if 'files_ip' in self.url or 'file_list_ip' in self.url:
|
if 'files_ip' in self.url or 'file_list_ip' in self.url:
|
||||||
@@ -120,7 +124,7 @@ class States(PA):
|
|||||||
return
|
return
|
||||||
|
|
||||||
if self.path_type == 'View':
|
if self.path_type == 'View':
|
||||||
pref=PA_UserState.query.filter(PA_UserState.pa_user_dn==current_user.dn,PA_UserState.path_type==self.path_type,PA_UserState.view_eid==self.view_eid).first()
|
pref=PA_UserState.query.filter(PA_UserState.pa_user_dn==current_user.dn,PA_UserState.path_type==self.path_type,PA_UserState.view_eid==self.view_eid,PA_UserState.orig_search_term==self.orig_search_term).first()
|
||||||
# should find original path or search for this view (if not a search, search_term='')
|
# should find original path or search for this view (if not a search, search_term='')
|
||||||
orig_pref=PA_UserState.query.filter(PA_UserState.pa_user_dn==current_user.dn,PA_UserState.path_type==self.orig_ptype,PA_UserState.orig_search_term==self.orig_search_term).first()
|
orig_pref=PA_UserState.query.filter(PA_UserState.pa_user_dn==current_user.dn,PA_UserState.path_type==self.orig_ptype,PA_UserState.orig_search_term==self.orig_search_term).first()
|
||||||
elif self.path_type == 'Search':
|
elif self.path_type == 'Search':
|
||||||
@@ -146,6 +150,7 @@ class States(PA):
|
|||||||
self.num_entries=orig_pref.num_entries
|
self.num_entries=orig_pref.num_entries
|
||||||
self.noo=orig_pref.noo
|
self.noo=orig_pref.noo
|
||||||
self.folders=orig_pref.folders
|
self.folders=orig_pref.folders
|
||||||
|
self.orig_search_term=orig_pref.orig_search_term
|
||||||
else:
|
else:
|
||||||
self.root=pref.root
|
self.root=pref.root
|
||||||
self.first_eid = pref.first_eid
|
self.first_eid = pref.first_eid
|
||||||
@@ -167,6 +172,7 @@ class States(PA):
|
|||||||
self.num_entries=orig_pref.num_entries
|
self.num_entries=orig_pref.num_entries
|
||||||
self.noo=orig_pref.noo
|
self.noo=orig_pref.noo
|
||||||
self.folders=orig_pref.folders
|
self.folders=orig_pref.folders
|
||||||
|
self.orig_search_term=orig_pref.orig_search_term
|
||||||
else:
|
else:
|
||||||
self.root='static/' + self.path_type
|
self.root='static/' + self.path_type
|
||||||
if self.path_type == 'Import':
|
if self.path_type == 'Import':
|
||||||
@@ -235,6 +241,7 @@ class States(PA):
|
|||||||
if (self.offset + int(self.how_many)) < self.num_entries:
|
if (self.offset + int(self.how_many)) < self.num_entries:
|
||||||
self.offset += int(self.how_many)
|
self.offset += int(self.how_many)
|
||||||
else:
|
else:
|
||||||
|
# should be impossible now, but leave jic
|
||||||
print( f"WARNING: next image requested, but would go past end of list? - ignore this" )
|
print( f"WARNING: next image requested, but would go past end of list? - ignore this" )
|
||||||
print( f"DDP - offset={self.offset} + how_many={self.how_many} > num_entries={self.num_entries}" )
|
print( f"DDP - offset={self.offset} + how_many={self.how_many} > num_entries={self.num_entries}" )
|
||||||
if 'current' in request.form:
|
if 'current' in request.form:
|
||||||
|
|||||||
Reference in New Issue
Block a user