def _data(self):
     context = aq_inner(self.context)
     catalog = getToolByName(context, 'portal_catalog')
     limit = self.data.count
     state = self.data.state
     now = DateTime()
     tomorrow = DateTime.Date(now + 1)
     yesterday = DateTime.Date(now - 1)
     path = self.navigation_root_path
     results = catalog(portal_type='Event',
                       review_state=state,
                       end={
                           'query': now,
                           'range': 'min'
                       },
                       start={
                           'query': [yesterday, tomorrow],
                           'range': 'min:max'
                       },
                       path=path,
                       sort_on='start',
                       sort_limit=limit)[:limit]
     count = len(results)
     if count < limit:
         results2 = catalog(portal_type=('Event'),
                            review_state=state,
                            end={
                                'query': now,
                                'range': 'min'
                            },
                            start={
                                'query': yesterday,
                                'range': 'max'
                            },
                            path=path,
                            sort_on='start',
                            sort_limit=limit - count)[:limit - count]
         count = len(results + results2)
         if count < limit:
             results3 = catalog(portal_type=('Event'),
                                review_state=state,
                                end={
                                    'query': now,
                                    'range': 'min'
                                },
                                start={
                                    'query': tomorrow,
                                    'range': 'min'
                                },
                                path=path,
                                sort_on='start',
                                sort_limit=limit - count)[:limit - count]
             return results + results2 + results3
         else:
             return results + results2
     else:
         return results
 def sameDay(self, evento):
     if DateTime.Date(evento.start) == DateTime.Date(evento.end):
         return True
     else:
         return False
Beispiel #3
0
 def sameDay(self):
     if DateTime.Date(self.item.start) == DateTime.Date(self.item.end):
         return True
     else:
         return False