Пример #1
0
 def update(self):
     self.key = 'pressapp.channelmanagement.channelList'
     context = aq_inner(self.context)
     unwanted = ('_authenticator', 'form.button.Submit')
     if 'form.button.Submit' in self.request:
         authenticator = getMultiAdapter((context, self.request),
                                         name=u"authenticator")
         if not authenticator.verify():
             raise Unauthorized
         form = self.request.form
         data = {}
         for field in form:
             if field not in unwanted:
                 data[field] = field
         cl = api.portal.get_registry_record(self.key)
         obsolete = list()
         cleaned = dict()
         for key in cl:
             if key in data:
                 cleaned[key] = cl[key]
             else:
                 obsolete.append(key)
         if len(cleaned) > 0:
             return self.process_channel_update(cleaned, obsolete)
         else:
             IStatusMessage(self.request).addStatusMessage(
                 _(u"Removal of selected channels was not possible"),
                 type='error')
             return self.request.response.redirect(context.absolute_url())
Пример #2
0
 def handleCancel(self, action):
     context = aq_inner(self.context)
     parent = aq_parent(context)
     IStatusMessage(self.request).addStatusMessage(
         _(u"Updating susbcriber has been cancelled."),
         type='info')
     return self.request.response.redirect(parent.absolute_url())
Пример #3
0
 def applyChanges(self, data):
     context = aq_inner(self.context)
     assert IChannel.providedBy(context)
     item = createContentInContainer(
         context,
         'pressapp.channelmanagement.subscriber',
         checkConstraints=True, **data)
     setattr(context, 'channel', list(data['channel']))
     modified(item)
     item.reindexObject(idxs='modified')
     IStatusMessage(self.request).addStatusMessage(
         _(u"A new address was successfully added"),
         type='info')
     return self.request.response.redirect(item.absolute_url())
Пример #4
0
 def process_channel_update(self, cleaned, obsolete):
     context = aq_inner(self.context)
     catalog = api.portal.get_tool(name="portal_catalog")
     idx = 0
     for cn in obsolete:
         brains = catalog(object_provides=ISubscriber.__identifier__,
                          channel=[cn])
         if len(brains) > 0:
             sidx = self.update_subscribers(brains, cn)
             idx += sidx
     api.portal.set_registry_record(self.key, cleaned)
     IStatusMessage(self.request).addStatusMessage(
         _(u"%s Subscriber objects have been updated" % idx),
         type='info')
     return self.request.response.redirect(context.absolute_url())
Пример #5
0
 def applyChanges(self, data):
     context = aq_inner(self.context)
     assert ISubscriber.providedBy(context)
     fti = getUtility(IDexterityFTI,
                      name='pressapp.channelmanagement.subscriber')
     schema = fti.lookupSchema()
     fields = getFieldsInOrder(schema)
     for key, value in fields:
         try:
             new_value = data[key]
             setattr(context, key, new_value)
         except KeyError:
             continue
     setattr(context, 'channel', list(data['channel']))
     modified(context)
     context.reindexObject(idxs='modified')
     IStatusMessage(self.request).addStatusMessage(
         _(u"SUbscriber has successfully been updated"),
         type='info')
     return self.request.response.redirect(context.absolute_url())
Пример #6
0
 def update(self):
     self.key = 'pressapp.channelmanagement.channelList'
     context = aq_inner(self.context)
     if 'form.button.Submit' in self.request:
         authenticator = getMultiAdapter((context, self.request),
                                         name=u"authenticator")
         if not authenticator.verify():
             raise Unauthorized
         form = self.request.form
         cname = form['channelname']
         newkey = queryUtility(IIDNormalizer).normalize(cname)
         if type(newkey) == str:
             clean_key = unicode(newkey, "utf-8", errors="ignore")
         else:
             clean_key = unicode(newkey)
         records = api.portal.get_registry_record(self.key)
         records[clean_key] = safe_unicode(cname)
         api.portal.set_registry_record(self.key, records)
         IStatusMessage(self.request).addStatusMessage(
             _(u"New channel has been added to the registry"),
             type='info')
         next_url = context.absolute_url() + '/@@channel-update'
         return self.request.response.redirect(next_url)
Пример #7
0
 def handleCancel(self, action):
     context = aq_inner(self.context)
     IStatusMessage(self.request).addStatusMessage(
         _(u"The creation of a new subscriber has been cancelled."),
         type='info')
     return self.request.response.redirect(context.absolute_url())