def set_filters(self, filters): ''' Customizable filters for the view ''' form = self.form_params filters['portal_type'] = 'todo' filters['path'] = self.searched_paths state_mode = form.get('state-mode', self._state_mode_default) if state_mode: filters['review_state'] = state_mode start = form.get('start', None) end = form.get('end', None) if start and end: if start > end: raise InvalidFiltersException( 'Invalid date range: %r, %r' % ( start, end, ) ) filters['due__range'] = (solr_date(start), solr_date(end)) elif start: filters['due__gt'] = solr_date(start) elif end: filters['due__lt'] = solr_date(end) for key in ( 'assignee', 'initiator', ): value = form.get(key, None) if value: filters[key] = value
def test_solr_date(self): self.assertRaises(scorched.exc.SolrError, solr_date, None) s = solr_date("2009-07-23T03:24:34.000376Z") s_older = solr_date("2007-07-23T03:24:34.000376Z") self.assertEqual(s.microsecond, 376) self.assertEqual(s, solr_date(s)) self.assertTrue(s == s) self.assertTrue(s > s_older) self.assertTrue(s_older < s) self.assertRaises(TypeError, s.__lt__, datetime.datetime(2009, 7, 22, 10)) if scorched.compat.is_py2: # pragma: no cover self.assertRaises(TypeError, s.__eq__, datetime.datetime(2009, 7, 22, 10)) else: # pragma: no cover self.assertFalse(s == "Foo") self.assertEqual(s.__repr__(), 'datetime.datetime(2009, 7, 23, 3, 24, 34, 376, tzinfo=<UTC>)')
def test_solr_date(self): self.assertRaises(scorched.exc.SolrError, solr_date, None) s = solr_date("2009-07-23T03:24:34.000376Z") s_older = solr_date("2007-07-23T03:24:34.000376Z") self.assertEqual(s.microsecond, 376) self.assertEqual(s, solr_date(s)) self.assertTrue(s == s) self.assertTrue(s > s_older) self.assertTrue(s_older < s) self.assertRaises(TypeError, s.__lt__, datetime.datetime(2009, 7, 22, 10)) if scorched.compat.is_py2: # pragma: no cover self.assertRaises(TypeError, s.__eq__, datetime.datetime(2009, 7, 22, 10)) else: # pragma: no cover self.assertFalse(s == "Foo") self.assertEqual( s.__repr__(), 'datetime.datetime(2009, 7, 23, 3, 24, 34, 376, tzinfo=<UTC>)')
def get_authenticated_events(self): """ Load events from solr """ # We only provide a history of 30 days, otherwise, fullcalendar has # too much to render. This could be made more flexible user = api.user.get_current() if not user: return [] fullcalendar_day_span = api.portal.get_registry_record( 'ploneintranet.calendar.fullcalendar_day_span', default=30, ) evt_date = localized_now() - timedelta(fullcalendar_day_span) query = dict(object_provides=IEvent.__identifier__, end__gt=solr_date(evt_date)) query['is_archived'] = False sitesearch = getUtility(ISiteSearch) return sitesearch.query(filters=query, step=99999)
def upcoming_events(self): """ Return upcoming events, potentially filtered by invitation status and/or search term """ now = localized_now() query = dict( object_provides=IEvent.__identifier__, end__gt=solr_date(now), ) phrase = None if self.data.get('SearchableText', ''): phrase = self.data['SearchableText'] + '*' elif self.data.get('my_events', True): query['invitees'] = [api.user.get_current().getId()] search_util = getUtility(ISiteSearch) upcoming_events = search_util.query( phrase=phrase, filters=query, sort='start', ) return [ev.getObject() for ev in upcoming_events]
def check_solr_date_from_string(s, date): assert solr_date( s)._dt_obj == date, "Unequal representations of %r: %r and %r" % ( solr_date(s)._dt_obj, date, s)
def check_solr_date_from_date(s, date, canonical_date): from scorched.compat import str assert str( solr_date(date)) == s, "Unequal representations of %r: %r and %r" % ( date, str(solr_date(date)), s) check_solr_date_from_string(s, canonical_date)
def test_solr_date_ranges(self): query = LuceneQuery() date = solr_date("2009-07-23T03:24:34.000376Z") query.Q(**{"last_modified__gt": date})
def test_solr_date_from_str(self): # str here is original str from python self.assertTrue("'str'" in repr(str)) s = solr_date(str("2009-07-23T03:24:34.000376Z")) self.assertEqual(s, solr_date(s)) self.assertTrue(s == s)
def check_solr_date_from_string(s, date): assert solr_date(s)._dt_obj == date, "Unequal representations of %r: %r and %r" % ( solr_date(s)._dt_obj, date, s)
def check_solr_date_from_date(s, date, canonical_date): from scorched.compat import str assert str(solr_date(date)) == s, "Unequal representations of %r: %r and %r" % ( date, str(solr_date(date)), s) check_solr_date_from_string(s, canonical_date)