def _getCriteriaArgs(self): context, request = self.context, self.request response = request.response query = context.buildQuery() topicCriteria = listQueryTopicCriteria(context) args = {} if not query: return ({}, []) for fname in ['portal_type', 'Type']: if fname in query.keys(): items = getCookieItems(request, fname) if items: args[fname] = items else: args[fname] = query[fname] filters = [] #reinit cookies if criterions are no more there for criteria in context.listCriteria(): if criteria not in listQueryTopicCriteria(context): response.expireCookie(criteria.Field()) if request.cookies.get('sfqueryDisplay', None) not in [a.Field() for a in topicCriteria]: response.expireCookie('sfqueryDisplay') for criteria in self.context.listCriteria(): if criteria.meta_type not in [ 'ATSelectionCriterion', 'ATListCriterion', 'ATSortCriterion', 'ATPortalTypeCriterion' ] and criteria.Field(): args[criteria.Field()] = query[criteria.Field()] elif criteria.meta_type in [ 'ATSelectionCriterion', 'ATListCriterion' ] and criteria.getCriteriaItems() and len( criteria.getCriteriaItems()[0]) > 1 and len( criteria.getCriteriaItems()[0][1]['query']) > 0: items = getCookieItems(request, criteria.Field()) if items and criteria in topicCriteria: if 'undefined' in items: filters.append({ 'name': criteria.Field(), 'values': items }) else: args[criteria.Field()] = items else: args[criteria.Field()] = query[criteria.Field()] return args, filters
def _getCriteriaArgs(self): context, request = self.context, self.request response = request.response query = context.buildQuery() topicCriteria = listQueryTopicCriteria(context) args = {} if not query: return ({}, []) for fname in ['portal_type', 'Type']: if fname in query.keys(): items = getCookieItems(request, fname) if items: args[fname] = items else: args[fname] = query[fname] filters = [] #reinit cookies if criterions are no more there for criteria in context.listCriteria(): if criteria not in listQueryTopicCriteria(context): response.expireCookie(criteria.Field()) if request.cookies.get('sfqueryDisplay', None) not in [a.Field() for a in topicCriteria]: response.expireCookie('sfqueryDisplay') for criteria in self.context.listCriteria(): if criteria.meta_type not in ['ATSelectionCriterion', 'ATListCriterion', 'ATSortCriterion', 'ATPortalTypeCriterion'] and criteria.Field(): args[criteria.Field()] = query[criteria.Field()] elif criteria.meta_type in ['ATSelectionCriterion', 'ATListCriterion'] and criteria.getCriteriaItems() and len(criteria.getCriteriaItems()[0])>1 and len(criteria.getCriteriaItems()[0][1]['query'])>0: items = getCookieItems(request, criteria.Field()) if items and criteria in topicCriteria: if 'undefined' in items: filters.append({'name':criteria.Field(), 'values':items}) else: args[criteria.Field()] = items else: args[criteria.Field()] = query[criteria.Field()] return args, filters
def listQueryTopicCriteria(self): return listQueryTopicCriteria(self.context)