web/views/massmailing.py
changeset 3377 dd9d292b6a6d
parent 2664 1578e1a57828
child 3451 6b46d73823f5
equal deleted inserted replaced
3376:f5c69485381f 3377:dd9d292b6a6d
    20 from cubicweb.web.formwidgets import CheckBox, TextInput, AjaxWidget, ImgButton
    20 from cubicweb.web.formwidgets import CheckBox, TextInput, AjaxWidget, ImgButton
    21 from cubicweb.web.views import forms, formrenderers
    21 from cubicweb.web.views import forms, formrenderers
    22 
    22 
    23 
    23 
    24 class SendEmailAction(Action):
    24 class SendEmailAction(Action):
    25     id = 'sendemail'
    25     __regid__ = 'sendemail'
    26     # XXX should check email is set as well
    26     # XXX should check email is set as well
    27     __select__ = implements(IEmailable) & match_user_groups('managers', 'users')
    27     __select__ = implements(IEmailable) & match_user_groups('managers', 'users')
    28 
    28 
    29     title = _('send email')
    29     title = _('send email')
    30     category = 'mainactions'
    30     category = 'mainactions'
    36         return self.build_url(self.req.relative_path(includeparams=False),
    36         return self.build_url(self.req.relative_path(includeparams=False),
    37                               **params)
    37                               **params)
    38 
    38 
    39 
    39 
    40 class MassMailingForm(forms.FieldsForm):
    40 class MassMailingForm(forms.FieldsForm):
    41     id = 'massmailing'
    41     __regid__ = 'massmailing'
    42 
    42 
    43     sender = StringField(widget=TextInput({'disabled': 'disabled'}), label=_('From:'))
    43     sender = StringField(widget=TextInput({'disabled': 'disabled'}), label=_('From:'))
    44     recipient = StringField(widget=CheckBox(), label=_('Recipients:'))
    44     recipient = StringField(widget=CheckBox(), label=_('Recipients:'))
    45     subject = StringField(label=_('Subject:'), max_length=256)
    45     subject = StringField(label=_('Subject:'), max_length=256)
    46     mailbody = StringField(widget=AjaxWidget(wdgtype='TemplateTextField',
    46     mailbody = StringField(widget=AjaxWidget(wdgtype='TemplateTextField',
    80         return u'<div id="substitutions"><span>%s</span>%s</div>' % (
    80         return u'<div id="substitutions"><span>%s</span>%s</div>' % (
    81             helpmsg, u'\n'.join(substs))
    81             helpmsg, u'\n'.join(substs))
    82 
    82 
    83 
    83 
    84 class MassMailingFormRenderer(formrenderers.FormRenderer):
    84 class MassMailingFormRenderer(formrenderers.FormRenderer):
    85     id = 'massmailing'
    85     __regid__ = 'massmailing'
    86     button_bar_class = u'toolbar'
    86     button_bar_class = u'toolbar'
    87 
    87 
    88     def _render_fields(self, fields, w, form):
    88     def _render_fields(self, fields, w, form):
    89         w(u'<table class="headersform">')
    89         w(u'<table class="headersform">')
    90         for field in fields:
    90         for field in fields:
   116 
   116 
   117     def render_buttons(self, w, form):
   117     def render_buttons(self, w, form):
   118         pass
   118         pass
   119 
   119 
   120 class MassMailingFormView(FormViewMixIn, EntityView):
   120 class MassMailingFormView(FormViewMixIn, EntityView):
   121     id = 'massmailing'
   121     __regid__ = 'massmailing'
   122     __select__ = implements(IEmailable) & match_user_groups('managers', 'users')
   122     __select__ = implements(IEmailable) & match_user_groups('managers', 'users')
   123 
   123 
   124     def call(self):
   124     def call(self):
   125         req = self.req
   125         req = self.req
   126         req.add_js('cubicweb.widgets.js', 'cubicweb.massmailing.js')
   126         req.add_js('cubicweb.widgets.js', 'cubicweb.massmailing.js')