def category_events(self, catIds): from indico.modules.events import Event query = (Event.query .filter(~Event.is_deleted, Event.category_chain.overlap(map(int, catIds)), Event.happens_between(self._fromDT, self._toDT))) return self._process(x.as_legacy for x in query)
def event(self, idlist): query = (Event.find(Event.id.in_(idlist), ~Event.is_deleted, Event.happens_between(self._fromDT, self._toDT)) .options(*self._get_query_options(self._detail_level))) query = self._update_query(query) return self.serialize_events(x for x in query if self._filter_event(x) and x.can_access(self.user))
def category(self, idlist): query = (Event.query .filter(~Event.is_deleted, Event.category_chain.overlap(map(int, idlist)), Event.happens_between(self._fromDT, self._toDT)) .options(*self._get_query_options(self._detail_level))) query = self._update_query(query) return self.serialize_events(x for x in query if self._filter_event(x) and x.can_access(self.user))
def category_events(self, catIds): from indico.modules.events import Event query = (Event.query .filter(~Event.is_deleted, Event.category_chain_overlaps(map(int, catIds)), Event.happens_between(self._fromDT, self._toDT)) .options(joinedload('category').load_only('id', 'title'))) return self._process(x.as_legacy for x in query)
def category(self, idlist, format): try: idlist = map(int, idlist) except ValueError: raise HTTPAPIError('Category IDs must be numeric', 400) if format == 'ics': buf = serialize_categories_ical(idlist, self.user, event_filter=Event.happens_between(self._fromDT, self._toDT), event_filter_fn=self._filter_event, update_query=self._update_query) return send_file('events.ics', buf, 'text/calendar') else: query = (Event.query .filter(~Event.is_deleted, Event.category_chain_overlaps(idlist), Event.happens_between(self._fromDT, self._toDT)) .options(*self._get_query_options(self._detail_level))) query = self._update_query(query) return self.serialize_events(x for x in query if self._filter_event(x) and x.can_access(self.user))
def category(self, idlist, format): try: idlist = list(map(int, idlist)) except ValueError: raise HTTPAPIError('Category IDs must be numeric', 400) if format == 'ics': buf = serialize_categories_ical(idlist, self.user, event_filter=Event.happens_between( self._fromDT, self._toDT), event_filter_fn=self._filter_event, update_query=self._update_query) return send_file('events.ics', buf, 'text/calendar') else: query = (Event.query.filter( ~Event.is_deleted, Event.category_chain_overlaps(idlist), Event.happens_between(self._fromDT, self._toDT)).options( *self._get_query_options(self._detail_level))) query = self._update_query(query) return self.serialize_events( x for x in query if self._filter_event(x) and x.can_access(self.user))
def _query_categ_events(categ, start_dt, end_dt): return (Event.query .with_parent(categ) .filter(Event.happens_between(start_dt, end_dt)) .options(load_only('id', 'start_dt', 'end_dt')))
def category_events(self, catIds): from indico.modules.events import Event query = (Event.query.filter( ~Event.is_deleted, Event.category_chain.overlap(map(int, catIds)), Event.happens_between(self._fromDT, self._toDT))) return self._process(x.as_legacy for x in query)
def _query_categ_events(categ, start_dt, end_dt): return (Event.query .with_parent(categ) .filter(Event.happens_between(start_dt, end_dt)) .options(load_only('id', 'start_dt', 'end_dt')))