Beispiel #1
0
    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
Beispiel #3
0
 def listQueryTopicCriteria(self):
     return listQueryTopicCriteria(self.context)
 def listQueryTopicCriteria(self):
     return listQueryTopicCriteria(self.context)