Example #1
0
    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()
Example #2
0
 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()
Example #3
0
    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 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)
Example #5
0
 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
Example #6
0
 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
Example #7
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)
Example #8
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)
Example #9
0
 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)
Example #10
0
 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)
Example #11
0
 def get_group(self, name=None):
     assert name is None
     return get_chamber_for_context(self.__parent__)
Example #12
0
 def group_id(self):
     """Return current parliament's group id.
     """
     return get_chamber_for_context(self.__parent__).group_id
Example #13
0
 def get_group(self):
     return get_chamber_for_context(self.__parent__)
Example #14
0
 def group_id(self):
     """Return current chamber's group id.
     """
     return get_chamber_for_context(self.__parent__).group_id
Example #15
0
 def get_group(self, name=None):
     assert name is None
     return get_chamber_for_context(self.__parent__)
Example #16
0
 def get_group(self):
     return get_chamber_for_context(self.__parent__)