def package_items(context, **kwargs): item = context['item'] refs = item.get_refs(kwargs['role']) if 'class' in kwargs: refs = [ref for ref in refs if ref.itemClass == kwargs['class']] if 'limit' in kwargs: refs = refs[:kwargs['limit']] items = [] for ref in refs: items.append(Item.objects(guid=ref.residRef).first()) return items
def render(self, context): context.push() nodelist = NodeList() kwargs = self.resolve_kwargs(context) limit = kwargs.get('limit', 55) start = kwargs.get('start', 0) order = kwargs.get('order', '-versionCreated') items = Item.objects(itemClass=kwargs['class'],publishedOn__ne=None).order_by(order)[start:limit] for item in items: context['item'] = item for node in self.nodelist: nodelist.append(node.render(context)) context.pop() return nodelist.render(context)