class SendForm(form.SchemaForm): grok.require('tn.bulletino.SendContent') grok.context(behaviors.INewsletterFromContentMarker) schema = ISendSchema ignoreContext = True prefix = 'send' label = _(u'Send your newsletter to all subscribers') description = _(u"By pressing the button below you will send this " u'newsletter to all of your audience.') def __init__(self, context, request, send_view=None): super(SendForm, self).__init__(context, request) self.send_view = send_view @z3c.form.button.buttonAndHandler(_(u'Send to all recipients')) def handleSend(self, action): data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return mailing = zope.component.getUtility(pminterfaces.IMailing) mailing.send(self.context) IStatusMessage(self.request).add(_(u'Message successfully sent.'), type='info') if self.send_view is not None: self.send_view.notify_sent() self.redirect(self.context.absolute_url())
def handleTest(self, action): data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return subscribers = [ TestSubscriber(data['test_recipient_address'], format, None, self.context.absolute_url()) for format in data['formats'] ] mailing = zope.component.getUtility(pminterfaces.IMailing) mailing.send(self.context, subscribers=subscribers, suppress_events=True) IStatusMessage(self.request).add(_(u'Message successfully sent.'), type='info') if self.send_view is not None: self.send_view.notify_sent() self.redirect(self.context.absolute_url())
class ITestSchema(model.Schema): test_recipient_address = zope.schema.TextLine( title=_(u'Test recipient'), required=True, ) form.widget(formats=z3c.form.browser.checkbox.CheckBoxFieldWidget) formats = zope.schema.Tuple( title=_(u'Formats'), value_type=zope.schema.Choice( values=[u'html', u'text'] ), default=(u'html',), missing_value=(), required=True, )
class TestForm(form.SchemaForm): grok.require('tn.bulletino.SendContent') grok.context(behaviors.INewsletterFromContentMarker) schema = ITestSchema ignoreContext = True prefix = 'test' label = _(u'Test your newsletter') description = _(u'Send this newsletter to your own e-mail address in ' u'order to see how it will appear to your audience.') def __init__(self, context, request, send_view=None): super(TestForm, self).__init__(context, request) self.send_view = send_view @z3c.form.button.buttonAndHandler(_(u'Perform test')) def handleTest(self, action): data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return subscribers = [ TestSubscriber(data['test_recipient_address'], format, None, self.context.absolute_url()) for format in data['formats'] ] mailing = zope.component.getUtility(pminterfaces.IMailing) mailing.send(self.context, subscribers=subscribers, suppress_events=True) IStatusMessage(self.request).add(_(u'Message successfully sent.'), type='info') if self.send_view is not None: self.send_view.notify_sent() self.redirect(self.context.absolute_url())
def handleSend(self, action): data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return mailing = zope.component.getUtility(pminterfaces.IMailing) mailing.send(self.context) IStatusMessage(self.request).add(_(u'Message successfully sent.'), type='info') if self.send_view is not None: self.send_view.notify_sent() self.redirect(self.context.absolute_url())
def update(self): super(Send, self).update() self.test_form.update() self.send_form.update() # 'fname' is the key used to send the field name in an inline # validation request. If this is an inline validation request, don't # set a message. if ( len(self.subscribers()) == 0 and not self._sent and not self.request.form.get('fname') ): IStatusMessage(self.request).add( _(u'No subscribers were assigned to this newsletter yet. ' u'Edit and add one or more subscriber lists.'), type='warning' )