def query(self): items_query = Session().query(self.domain_class) if not IScheduleText.implementedBy(self.domain_class): items_query = items_query.filter( self.domain_class.status.in_(self.filter_states)) if len(self.item_filters): for (key, value) in self.item_filters.iteritems(): column = getattr(self.domain_class, key) #!+SCHEDULING(mb, Jan-2011) extend query spec to include sql filters if "date" in key: if "|" in value: start, end = value.split("|") if start and end: expression = sql.between(column, start, end) elif start: expression = (column >= value) elif end: expression = (column <= value) else: continue else: expression = (column == value) else: expression = (column == value) items_query = items_query.filter(expression) if self.group_filter and not IScheduleText.implementedBy( self.domain_class): if hasattr(self.domain_class, "parliament_id") and self.group_id: items_query = items_query.filter( self.domain_class.parliament_id == self.group_id) elif hasattr(self.domain_class, "group_id") and self.group_id: items_query = items_query.filter( self.domain_class.group_id == self.group_id) return tuple(items_query)
def query(self): items_query = Session().query(self.domain_class).filter( self.domain_class.status.in_(self.filter_states) ) if len(self.item_filters): for (key, value) in self.item_filters.iteritems(): column = getattr(self.domain_class, key) #!+SCHEDULING(mb, Jan-2011) extend query spec to include sql filters if "date" in key: if "|" in value: start, end = value.split("|") if start and end: expression = sql.between(column, start, end) elif start: expression = (column>=value) elif end: expression = (column<=value) else: continue else: expression = (column==value) else: expression = (column==value) items_query = items_query.filter(expression) if self.group_filter: if hasattr(self.domain_class, "group_id") and self.group_id: items_query = items_query.filter( self.domain_class.group_id==self.group_id ) return tuple(items_query)
def query(self): items_query = Session().query(self.domain_class) if not IScheduleText.implementedBy(self.domain_class): items_query = items_query.filter( self.domain_class.status.in_(self.filter_states) ) if len(self.item_filters): for (key, value) in self.item_filters.iteritems(): column = getattr(self.domain_class, key) #!+SCHEDULING(mb, Jan-2011) extend query spec to include sql filters if "date" in key: if "|" in value: start, end = value.split("|") if start and end: expression = sql.between(column, start, end) elif start: expression = (column>=value) elif end: expression = (column<=value) else: continue else: expression = (column==value) else: expression = (column==value) items_query = items_query.filter(expression) if self.group_filter and not IScheduleText.implementedBy(self.domain_class): if hasattr(self.domain_class, "chamber_id") and self.group_id: # filter by the current chamber #!+(SCHEDULING, Oct-2013) Todo: rework to get group documents items_query = items_query.filter( self.domain_class.chamber_id== get_chamber_for_context(self.context).group_id ) elif hasattr(self.domain_class, "group_id") and self.group_id: items_query = items_query.filter( self.domain_class.group_id==self.group_id ) elif self.group_filter and IScheduleText.implementedBy(self.domain_class): if hasattr(self.domain_class, "group_id") and self.group_id: items_query = items_query.filter( self.domain_class.group_id==self.group_id ) return tuple(items_query)
def query(self): items_query = Session().query(self.domain_class) if not IScheduleText.implementedBy(self.domain_class): items_query = items_query.filter( self.domain_class.status.in_(self.filter_states)) if len(self.item_filters): for (key, value) in self.item_filters.iteritems(): column = getattr(self.domain_class, key) #!+SCHEDULING(mb, Jan-2011) extend query spec to include sql filters if "date" in key: if "|" in value: start, end = value.split("|") if start and end: expression = sql.between(column, start, end) elif start: expression = (column >= value) elif end: expression = (column <= value) else: continue else: expression = (column == value) else: expression = (column == value) items_query = items_query.filter(expression) if self.group_filter and not IScheduleText.implementedBy( self.domain_class): if hasattr(self.domain_class, "chamber_id") and self.group_id: # filter by the current chamber #!+(SCHEDULING, Oct-2013) Todo: rework to get group documents items_query = items_query.filter( self.domain_class.chamber_id == get_chamber_for_context( self.context).group_id) elif hasattr(self.domain_class, "group_id") and self.group_id: items_query = items_query.filter( self.domain_class.group_id == self.group_id) elif self.group_filter and IScheduleText.implementedBy( self.domain_class): if hasattr(self.domain_class, "group_id") and self.group_id: items_query = items_query.filter( self.domain_class.group_id == self.group_id) return tuple(items_query)