equal
deleted
inserted
replaced
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') |