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
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
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 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)))