def handle_publish(self, action, data): self.generated_content = self.generateContent(data) if IWorkspaceScheduling.providedBy(self.request): if not hasattr(self.context, "group_id"): context_group_id = ISchedulingContext(self.context).group_id else: context_group_id = self.context.group_id else: #get the chamber id context_group_id = get_chamber_for_context( self.context).parliament_id report = domain.Report( title=self.title, start_date=self.start_date, end_date=self.end_date, body=self.generated_content, owner_id=get_login_user().user_id, # !+GROUP_AS_OWNER language=self.language, group_id=context_group_id) session = Session() session.add(report) session.flush() notify(ObjectCreatedEvent(report)) self.status = _(u"Report has been processed and saved") return self.template()
def handle_publish(self, action, data): self.generated_content = self.generate_content(data) if IWorkspaceScheduling.providedBy(self.request): if not hasattr(self.context, "group_id"): context_group_id = ISchedulingContext(self.context).group_id else: context_group_id = self.context.group_id else: # get the chamber id context_group_id = get_chamber_for_context(self.context).group_id report = domain.Report( title=self.title, start_date=self.start_date, end_date=self.end_date, body=self.generated_content, owner_id=get_login_user().user_id, # !+GROUP_AS_OWNER language=self.language, group_id=context_group_id ) session = Session() session.add(report) session.flush() # requires self db id to have been updated report.on_create() notify(ObjectCreatedEvent(report)) self.status = _(u"Report has been processed and saved") return self.template()
def update(self): self.path = self._get_path(self.context) # if the view is a location, append this to the breadcrumbs if ILocation.providedBy(self.__parent__) and \ IDCDescriptiveProperties.providedBy(self.__parent__): self.path.append({ "name": self.__parent__.title, "url": None, }) self.chamber = get_chamber_for_context(self.context)
def group_id(self): group_id = None if IScheduleText.implementedBy(self.domain_class): # use current chamber if any as group id chamber = get_chamber_for_context(self.context) if chamber: group_id = chamber.group_id else: parent = self.context while parent is not None: group_id = getattr(parent, "group_id", None) if group_id: break else: parent = parent.__parent__ return group_id
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)
def __call__(self): """Redirect to container. """ #context = proxy.removeSecurityProxy( self.context ) response = self.request.response root_url = url.absoluteURL(self.context, self.request) #response.setHeader('Content-Type', 'application/octect-stream') #if len(self.traverse_subpath) != 1: # return #fname = self.traverse_subpath[0] qstr = self.request['QUERY_STRING'] if 'date' not in self.request.form: qstr = "%s&date=%s" % (qstr, datetime.date.strftime( datetime.date.today(), '%Y-%m-%d')) to_url = root_url + '/parliament/' if len(self.traverse_subpath) >= 1: # we have a traversal to redirect to if self.traverse_subpath[0] == 'parliament': to_url = "%s/parliament/obj-%s/%s?%s" % ( root_url, get_chamber_for_context(self.context).group_id, '/'.join(self.traverse_subpath[1:]), qstr) return response.redirect(to_url)
def __call__(self): """Redirect to container. """ #context = proxy.removeSecurityProxy( self.context ) response = self.request.response root_url = url.absoluteURL(self.context, self.request) #response.setHeader('Content-Type', 'application/octect-stream') #if len(self.traverse_subpath) != 1: # return #fname = self.traverse_subpath[0] qstr = self.request['QUERY_STRING'] if 'date' not in self.request.form: qstr = "%s&date=%s" % (qstr, datetime.date.strftime(datetime.date.today(),'%Y-%m-%d')) to_url = root_url + '/parliament/' if len(self.traverse_subpath) >= 1: # we have a traversal to redirect to if self.traverse_subpath[0] == 'parliament': to_url = "%s/parliament/obj-%s/%s?%s" % ( root_url, get_chamber_for_context(self.context).group_id, '/'.join(self.traverse_subpath[1:]), qstr) return response.redirect(to_url)
def get_group(self, name=None): assert name is None return get_chamber_for_context(self.__parent__)
def group_id(self): """Return current parliament's group id. """ return get_chamber_for_context(self.__parent__).group_id
def get_group(self): return get_chamber_for_context(self.__parent__)
def group_id(self): """Return current chamber's group id. """ return get_chamber_for_context(self.__parent__).group_id