From b3ac32efc6edc76e21562e7a163389f2cbe2e451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Wed, 11 Jun 2014 16:34:51 +0200 Subject: [PATCH] add second object folders index (#4683) --- .../collection/profiles/default/registry.xml | 13 +++++++++++++ src/pfwbged/collection/searchview.py | 17 ++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/pfwbged/collection/profiles/default/registry.xml b/src/pfwbged/collection/profiles/default/registry.xml index 4a3c8d1..7d89782 100644 --- a/src/pfwbged/collection/profiles/default/registry.xml +++ b/src/pfwbged/collection/profiles/default/registry.xml @@ -27,6 +27,19 @@ Location + + Direct Folder + Find items that are in that are directly in folder + True + False + + plone.app.querystring.operation.string.is + + Location + + + Keywords diff --git a/src/pfwbged/collection/searchview.py b/src/pfwbged/collection/searchview.py index ef0f9d9..da37bde 100644 --- a/src/pfwbged/collection/searchview.py +++ b/src/pfwbged/collection/searchview.py @@ -155,7 +155,10 @@ class ResultsTable(BaseTable): self.folder_id = None try: if self.request.form.get('query', {})[0].get('i') == 'object_folders': - self.folder_id = int(self.request.form.get('query', {})[0].get('v')[0]) + if type(self.request.form.get('query', {})[0].get('v')) is list: + self.folder_id = int(self.request.form.get('query', {})[0].get('v')[0]) + else: + self.folder_id = int(self.request.form.get('query', {})[0].get('v')) except (IndexError, ValueError, KeyError): pass if self.folder_id: @@ -416,6 +419,18 @@ class QueryBuilder(plone.app.querystring.querybuilder.QueryBuilder): query[i] = param except ValueError: pass + if param.get('o', '') == 'plone.app.querystring.operation.int.is': + value = param.get('v') + try: + param = dict(param.copy()) + if type(value) is list: + param['v'] = int(value[0]) + else: + param['v'] = int(value) + query[i] = param + except ValueError: + pass + return plone.app.querystring.querybuilder.QueryBuilder.__call__(self, query, *args, **kwargs)