Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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)