示例#1
0
    def getEventsBetween(self, start, end, catalogQuery=None):
        "get all the events that fall between start and end and return them as a dict keyed by integer day"
        catalog = self.getCatalog()
        events = {}
        if catalog is not None:
            query = {}
            query['profile'] = self.getSelectedProfiles()
            query['path'] = self.pathRestriction
            if self.extendedQuery:
                extendedQuery = self.getCompoundDoc().restrictedTraverse(
                    self.extendedQuery, None)
                if extendedQuery is not None:
                    query.update(extendedQuery())
            if catalogQuery is not None:
                query.update(catalogQuery)

            query[self.dateField] = {'query': [start, end], 'range': 'minmax'}

            for cdoc in com.catalog.catalogIter(
                    catalog(query, sort_on=self.dateField)):
                dateField = getattr(cdoc, self.dateField)
                try:
                    day = dateField.Date().day()
                except AttributeError:
                    day = dateField.day()
                if not day in events:
                    events[day] = []
                events[day].append(cdoc)

        return events
示例#2
0
    def getEventsBetween(self,start,end, catalogQuery=None):
        "get all the events that fall between start and end and return them as a dict keyed by integer day"
        catalog = self.getCatalog()
        events = {}
        if catalog is not None:
            query = {}
            query['profile'] = self.getSelectedProfiles()
            query['path'] = self.pathRestriction
            if self.extendedQuery:
                extendedQuery = self.getCompoundDoc().restrictedTraverse(self.extendedQuery, None)
                if extendedQuery is not None:
                    query.update(extendedQuery())
            if catalogQuery is not None:
                query.update(catalogQuery)

            query[self.dateField] = {'query':[start,end], 'range':'minmax'}
            
            for cdoc in com.catalog.catalogIter(catalog(query, sort_on=self.dateField)):
                dateField = getattr(cdoc, self.dateField)
                try:
                    day = dateField.Date().day()
                except AttributeError:
                    day = dateField.day()
                if not day in events:
                    events[day] = []
                events[day].append(cdoc)
            
        return events
示例#3
0
    def getLastOrder(self, container, username):
        "get the last order from this user"
        folder = container.restrictedTraverse(self.orderLocation, None)
        catalog = getattr(folder, self.orderCatalog)
        oldOrders = catalog(customerLogin= username, sort_on='bobobase_modification_time', sort_order='descending')

        #this will return immediately if we find any orders
        for lastOrder in com.catalog.catalogIter(oldOrders):
            return lastOrder
示例#4
0
    def getLastOrder(self, container, username):
        "get the last order from this user"
        folder = container.restrictedTraverse(self.orderLocation, None)
        catalog = getattr(folder, self.orderCatalog)
        oldOrders = catalog(customerLogin=username,
                            sort_on='bobobase_modification_time',
                            sort_order='descending')

        #this will return immediately if we find any orders
        for lastOrder in com.catalog.catalogIter(oldOrders):
            return lastOrder
 def edit(self, *args, **kw):
     "edit this object embedder"
     format = '<tr><td>%s</td><td>%s</td><td>%s</td><td><a href="%s/manage">%s</a></td></tr>\n'
     inuse = self.getUseNames()
     catalog = self.getRealCatalog()
     temp = []
     if not catalog:
         return ''
     if self.limit:
         temp.append('<p>A limit on the number of objects that can be selected is currently enabled.</p>')
         temp.append('<p>If more then %s objects are selected this item will no longer draw to prevent problems.</p>' % self.limit)
         temp.append('<p>You can only select %s objects</p>' % self.limit)
     temp.append('<div>%s</div>' % self.create_button("clear", "Clear"))
     table = []
     table.append('<table>')
     table.append('<thead><tr><th>Use</th><th>Id</th><th>Title</th><th>Location</th></tr></thead>\n')
     catalogResults = [(i.getPath(),i) for i in catalog()]
     catalogResults.sort()
     table.append('<tbody>')
     selected  = []
     notselected = []
     for path, i in catalogResults:
         id = i.id
         if id in inuse:
             selected.append(format % (self.radio_box(id,1, ['use']), id, i.title, path, path))
         else:
             notselected.append(format % (self.radio_box(id,0, ['use']), id, i.title, path, path))
     table.extend(selected)
     if self.limit and len(inuse) > self.limit:
         temp.append('<p>You have too many objects currently selected you need to remove current ones before selecting more.<p>')
     elif self.limit and len(inuse) == self.limit:
         temp.append('<p>You are at the current limit of selected objects to select more you have to unselect one of the current ones.</p>')
     else:
         table.extend(notselected)
     table.append('<tbody></table>')
     temp.append('<p>You have %s items currently selected</p>' % len(inuse))
     temp.extend(table)
     return ''.join(temp)
 def getCatalogResults(self, list, location=0, catalog=None):
     "return the items at this index recursively"
     navigationOrder = self.getNavigationOrder()
     item = navigationOrder[location]
     temp = []
     results = []
     custom = {}
     for i in xrange(location):
         local = navigationOrder[i]
         custom[local] = list[i]
     catalogOutput = catalog(custom)
     uniqueList = list(set([getattr(i, item) for i in catalogOutput]))
     for i in uniqueList:
         temp.append(i)
         if location < len(list) and list[location] == i:
             (output, catalogResults) = self.getCatalogResults(list, location+1, catalog)
             temp.append(output)
             if catalogResults:
                 results = catalogResults
     navigationIndexes = self.getNavigationIndexes()
     if location == len(list) and navigationIndexes[navigationOrder[location]]['returnResults']:
         return (temp, catalogOutput)
     return (temp, results)
 def getUseObjects(self):
     "Get the correct objects from the catalog based on the inuse object"
     catalog = self.getRealCatalog()
     if catalog is None or self.inuse is None or (self.limit and len(self.inuse) > self.limit):
         return None
     return list(com.catalog.catalogIter(catalog(id=self.inuse)))