Skip to content

Commit

Permalink
results + filter refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
thet committed Feb 26, 2015
1 parent f5b44ad commit b5af51b
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 16 deletions.
23 changes: 18 additions & 5 deletions plone/app/contenttypes/browser/collection.py
Expand Up @@ -14,11 +14,24 @@ def __init__(self, *args, **kwargs):
self.b_size = self.collection_behavior.item_count

def results(self, **kwargs):
return self.collection_behavior.results(
b_start=self.b_start,
b_size=self.b_size,
**kwargs
)
"""Return a content listing based result set with results from the
collection query.
:param **kwargs: Any keyword argument, which can be used for catalog
queries.
:type **kwargs: keyword argument
:returns: plone.app.contentlisting based result set.
:rtype: ``plone.app.contentlisting.interfaces.IContentListing`` based
sequence.
"""
# Extra filter
kwargs.update(dict(getattr(self.request, 'contentFilter', {})))
kwargs.setdefault('batch', True)
kwargs.setdefault('b_size', self.b_size)
kwargs.setdefault('b_start', self.b_start)

return self.collection_behavior.results(**kwargs)

def getFoldersAndImages(self, **kwargs):
context = aq_inner(self.context)
Expand Down
31 changes: 20 additions & 11 deletions plone/app/contenttypes/browser/folder.py
Expand Up @@ -38,18 +38,27 @@ def __init__(self, context, request):
b_start = getattr(self.request, 'b_start', None)
self.b_start = int(b_start) if b_start is not None else 0

def _content_filter(self):
content_filter = getattr(self.request, 'contentFilter', None)
content_filter = dict(content_filter) if content_filter else {}
content_filter.setdefault('portal_type', self.friendly_types)
content_filter.setdefault('batch', True)
content_filter.setdefault('b_size', self.b_size)
content_filter.setdefault('b_start', self.b_start)
return content_filter

def results(self):
def results(self, **kwargs):
"""Return a content listing based result set with contents of the
folder.
:param **kwargs: Any keyword argument, which can be used for catalog
queries.
:type **kwargs: keyword argument
:returns: plone.app.contentlisting based result set.
:rtype: ``plone.app.contentlisting.interfaces.IContentListing`` based
sequence.
"""
# Extra filter
kwargs.update(dict(getattr(self.request, 'contentFilter', {})))
kwargs.setdefault('portal_type', self.friendly_types)
kwargs.setdefault('batch', True)
kwargs.setdefault('b_size', self.b_size)
kwargs.setdefault('b_start', self.b_start)

results = self.context.restrictedTraverse(
'@@folderListing')(**self._content_filter())
'@@folderListing')(**kwargs)
return results

def batch(self):
Expand Down

0 comments on commit b5af51b

Please sign in to comment.