コード例 #1
0
    def get_items(self):
        context = aq_inner(self.context)
        if IATFolder.providedBy(context) or \
                IATBTreeFolder.providedBy(context):
            res = self.context.getFolderContents(
                contentFilter={
                    'sort_on': 'getObjPositionInParent',
                    'portal_type': self.settings.allowed_types,
                    'limit': self.settings.limit
                }
            )
        elif IATTopic.providedBy(context):
            if self.settings.limit and self.settings.limit > 0:
                res = context.queryCatalog(batch=True,
                                           b_size=self.settings.limit,
                                           portal_type=
                                           self.settings.allowed_types,
                                           )
            else:
                res = context.queryCatalog(
                    portal_type=self.settings.allowed_types,
                    limit=self.settings.limit
                )
        elif ICollection.providedBy(context):
            query = queryparser.parseFormquery(
                context, context.getRawQuery())
            query['portal_type'] = self.settings.allowed_types
            query['limit'] = self.settings.limit
            if self.settings.limit and self.settings.limit > 0:
                res = context.queryCatalog(batch=True,
                                           b_size=self.settings.limit)
            else:
                res = context.queryCatalog(query)

        return res
コード例 #2
0
ファイル: folder.py プロジェクト: adam139/devplone422
    def getBanners(self):
        """
        Returns a list of objects that provide ICarouselBanner.
        """

        banner_brains = []
        if IFolderish.providedBy(self.context):
            catalog = getToolByName(self.context, "portal_catalog")
            banner_brains = catalog.searchResults(
                {
                    "path": "/".join(self.context.getPhysicalPath()),
                    "object_provides": ICarouselBanner.__identifier__,
                    "sort_on": "getObjPositionInParent",
                }
            )
        elif IATTopic.providedBy(self.context):
            banner_brains = self.context.queryCatalog()

        banner_objects = [b.getObject() for b in banner_brains]
        banner_objects = [b for b in banner_objects if ICarouselBanner.providedBy(b)]

        # Shuffle carousel images if needde
        if self.getSettings().random_order:
            shuffle(banner_objects)

        return banner_objects
コード例 #3
0
    def get_items(self):
        context = aq_inner(self.context)
        res = ""
        if IATFolder.providedBy(context) or \
                IATBTreeFolder.providedBy(context):
            res = self.context.getFolderContents(
                contentFilter={
                    'sort_on': 'getObjPositionInParent',
                    'portal_type': self.settings.allowed_types,
                    'limit': self.settings.limit
                })
        elif IATTopic.providedBy(context):
            if self.settings.limit and self.settings.limit > 0:
                res = context.queryCatalog(
                    batch=True,
                    b_size=self.settings.limit,
                    portal_type=self.settings.allowed_types,
                )
            else:
                res = context.queryCatalog(
                    portal_type=self.settings.allowed_types,
                    limit=self.settings.limit)
        elif ICollection.providedBy(context):
            query = queryparser.parseFormquery(context, context.getRawQuery())
            query['portal_type'] = self.settings.allowed_types
            query['limit'] = self.settings.limit
            if self.settings.limit and self.settings.limit > 0:
                res = context.queryCatalog(batch=True,
                                           b_size=self.settings.limit)
            else:
                res = context.queryCatalog(query)

        return res
コード例 #4
0
ファイル: folder.py プロジェクト: bogdangi/Products.Carousel
    def getBanners(self):
        """
        Returns a list of objects that provide ICarouselBanner.
        """

        banner_brains = []
        if IFolderish.providedBy(self.context):
            catalog = getToolByName(self.context, 'portal_catalog')
            banner_brains = catalog.searchResults({
                'path':
                '/'.join(self.context.getPhysicalPath()),
                'object_provides':
                ICarouselBanner.__identifier__,
                'sort_on':
                'getObjPositionInParent',
            })
        elif IATTopic.providedBy(self.context):
            banner_brains = self.context.queryCatalog()

        banner_objects = [b.getObject() for b in banner_brains]
        banner_objects = [
            b for b in banner_objects if ICarouselBanner.providedBy(b)
        ]

        # Shuffle carousel images if needde
        if self.getSettings().random_order:
            shuffle(banner_objects)

        return banner_objects
コード例 #5
0
    def checkInterface(self, interface, unset=''):
        """ """
        
        def flagCondition():
            """
                se verifico una interfaccia di unset (unset=True), la condizione di visualizzazione della relativa azione
                e' il valore ritornato dal metodo

                se verifico una interfaccia di set, la condizione di visualizzazione della relativa azione
                e' negato rispetto al valore ritornato dal metodo
            """
            if unset:
                return False
            return True
            
        if not interfaces_dict.has_key(interface):
            return flagCondition()
        
        context = self.context
        
        if self.context.restrictedTraverse('@@plone').isDefaultPageInFolder():
            context = context.aq_inner.aq_parent
        
        if not (IBaseFolder.providedBy(context) or IATTopic.providedBy(context)):
            return flagCondition()
        
        iface = interfaces_dict[interface]
        
        return iface.providedBy(context)
コード例 #6
0
    def query_contents(self, iface=None, full_objects=False):
        if iface == None:
            contentFilter = getattr(self, '_filtering', None)
            iface = contentFilter and {'object_provides': contentFilter} or {}

        if IATTopic.providedBy(self.context):
             return self.context.queryCatalog(full_objects = full_objects, **iface)
        return self.context.getFolderContents(contentFilter=iface,
                                              full_objects = full_objects)
コード例 #7
0
 def getImages(self):
     """docstring for getImages"""
     
     if IATTopic.providedBy(self.context):
         images = self.context.queryCatalog()
     else:
         ct_tool = getToolByName(self.context, "portal_catalog")
         images = ct_tool(Type = 'Image', path = '/'.join(self.context.getPhysicalPath()), sort_on="getObjPositionInParent")
     
     return images
コード例 #8
0
ファイル: view.py プロジェクト: ekulos/Products.SquareListing
    def getImageExample(self, obj):
        """ """

        if IATTopic.providedBy(obj):
            images = obj.queryCatalog()
        else:
            ct_tool = getToolByName(self.context, "portal_catalog")
            images = ct_tool(Type = 'Image', path = '/'.join(obj.getPhysicalPath()))

        if len(images) > 0:
            return images[0].getURL()
        return None
コード例 #9
0
    def get_events(self):
        context = self.context
        pc = context.portal_catalog

        if IATTopic.providedBy(context):
            query = context.buildQuery()
        elif IATFolder.providedBy(context):
            current_path = "/".join(context.getPhysicalPath())
            query = {"portal_type": "Event", "path": {"query": current_path}}
        query["sort_on"] = "start"
        if self.past_events:
            query["start"] = {"query": DateTime(), "range": "max"}
            query["sort_order"] = "reverse"
        else:
            query["start"] = {"query": DateTime(), "range": "min"}
        return pc.searchResults(query)
 def getImages(self):
     """ """
     target = self.target
     
     items = []
     
     if IATTopic.providedBy(target):
         items = target.queryCatalog()
     else:
         items = self.catalog_tool.searchResults(portal_type=['Image',],
                         path = {'query' : '/'.join(target.getPhysicalPath()),'depth' : 100})
         
     limit = self.data.limit
     images = []
     images = [ item.getURL() + '/' + self.data.size for item in items ]
     
     if limit:
         return images[:limit]
     return images
コード例 #11
0
    def get_events(self):
        context = self.context
        pc = context.portal_catalog

        if IATTopic.providedBy(context):
            query = context.buildQuery()
        elif IATFolder.providedBy(context):
            current_path = "/".join(context.getPhysicalPath())
            query = {
                "portal_type": "Event",
                "path": { "query": current_path }}
        query["sort_on"] = "start"
        if self.past_events:
            query["start"] = {
                "query": DateTime(), "range" : "max"}
            query["sort_order"] = "reverse"
        else:
            query["start"] = {
                "query": DateTime(), "range" : "min"}
        return pc.searchResults(query)
コード例 #12
0
ファイル: views.py プロジェクト: ableeb/collective.easyslider
    def get_items(self):
        if IATFolder.providedBy(self.context) or \
                IATBTreeFolder.providedBy(self.context):
            res = self.context.getFolderContents(
                contentFilter={
                    'sort_on': 'getObjPositionInParent',
                    'portal_type': self.settings.allowed_types,
                    'limit': self.settings.limit
                }
            )
        elif IATTopic.providedBy(self.context):
            res = aq_inner(self.context).queryCatalog(
                portal_type=self.settings.allowed_types,
                limit=self.settings.limit
            )

        if self.settings.limit == 0:
            return res
        else:
            return res[:self.settings.limit]
コード例 #13
0
 def _getSlotItems(self,
                   slot_number,
                   folder_name='homepage',
                   base_name="slot",
                   num_items=DEFAULT_NUMBER_OF_ITEMS):
     """Helper to be reused below. We're using sensible defaults for the optional args:
     folder_name: name of folder containing our Collections.  Can be a full path relative to the root.
     base_name: used with slot_number to construct the id of the Collection.
     """
     slot_obj = self.portal.restrictedTraverse(
         "%s/%s%s" % (folder_name, base_name, slot_number), None)
     if slot_obj is None:
         return None
     if IATTopic.providedBy(slot_obj):
         return [
             brain.getObject()
             for brain in slot_obj.queryCatalog()[:num_items]
         ]
     else:
         return [
             slot_obj,
         ]
コード例 #14
0
    def getEvents(self, start=None, end=None):
        """ searches the catalog for event like objects in the given
        time frame """
        query_func = self.portal_catalog.searchResults
        if IATFolder.providedBy(self.context):
            query_func = self.context.getFolderContents
        elif IATTopic.providedBy(self.context) \
                and self.context.buildQuery() is not None:
            query_func = self.context.queryCatalog
        query = {'object_provides': ICalendarSupport.__identifier__}
        if start:
            query['start'] = {'query': DateTime(int(start)), 'range': 'min'}
        if end:
            query['end'] = {'query': DateTime(int(end)), 'range': 'max'}

        brains = query_func(query)

        jret = []
        for brain in brains:
            jdict = self._buildDict(brain)
            jret.append(jdict)
        return jret