213 self.search_state = ('linksearch', searchstate.split(':')) |
213 self.search_state = ('linksearch', searchstate.split(':')) |
214 assert len(self.search_state[-1]) == 4 |
214 assert len(self.search_state[-1]) == 4 |
215 if self.cnx is not None: |
215 if self.cnx is not None: |
216 self.set_session_data('search_state', searchstate) |
216 self.set_session_data('search_state', searchstate) |
217 |
217 |
|
218 def match_search_state(self, rset): |
|
219 """when searching an entity to create a relation, return True if entities in |
|
220 the given rset may be used as relation end |
|
221 """ |
|
222 try: |
|
223 searchedtype = self.search_state[1][-1] |
|
224 except IndexError: |
|
225 return False # no searching for association |
|
226 for etype in rset.column_types(0): |
|
227 if etype != searchedtype: |
|
228 return False |
|
229 return True |
|
230 |
218 def update_breadcrumbs(self): |
231 def update_breadcrumbs(self): |
219 """stores the last visisted page in session data""" |
232 """stores the last visisted page in session data""" |
220 searchstate = self.get_session_data('search_state') |
233 searchstate = self.get_session_data('search_state') |
221 if searchstate == 'normal': |
234 if searchstate == 'normal': |
222 breadcrumbs = self.get_session_data('breadcrumbs', None) |
235 breadcrumbs = self.get_session_data('breadcrumbs', None) |