40 __select__ = yes() |
40 __select__ = yes() |
41 user_rql = ('Any X,E,A WHERE X is CWUser, X in_state S, S name "activated",' |
41 user_rql = ('Any X,E,A WHERE X is CWUser, X in_state S, S name "activated",' |
42 'X primary_email E, E address A') |
42 'X primary_email E, E address A') |
43 |
43 |
44 def recipients(self): |
44 def recipients(self): |
45 mode = self.config['default-recipients-mode'] |
45 mode = self.req.vreg.config['default-recipients-mode'] |
46 if mode == 'users': |
46 if mode == 'users': |
47 # use unsafe execute else we may don't have the right to see users |
47 # use unsafe execute else we may don't have the right to see users |
48 # to notify... |
48 # to notify... |
49 execute = self.req.unsafe_execute |
49 execute = self.req.unsafe_execute |
50 dests = [(u.get_email(), u.property_value('ui.language')) |
50 dests = [(u.get_email(), u.property_value('ui.language')) |
51 for u in execute(self.user_rql, build_descr=True, propagate=True).entities()] |
51 for u in execute(self.user_rql, build_descr=True, propagate=True).entities()] |
52 elif mode == 'default-dest-addrs': |
52 elif mode == 'default-dest-addrs': |
53 lang = self.vreg.property_value('ui.language') |
53 lang = self.vreg.property_value('ui.language') |
54 dests = zip(self.config['default-dest-addrs'], repeat(lang)) |
54 dests = zip(self.req.vreg.config['default-dest-addrs'], repeat(lang)) |
55 else: # mode == 'none' |
55 else: # mode == 'none' |
56 dests = [] |
56 dests = [] |
57 return dests |
57 return dests |
58 |
58 |
59 |
59 |
169 |
169 |
170 def cell_call(self, row, col=0, **kwargs): |
170 def cell_call(self, row, col=0, **kwargs): |
171 self.w(self.req._(self.content) % self.context(**kwargs)) |
171 self.w(self.req._(self.content) % self.context(**kwargs)) |
172 |
172 |
173 def construct_message_id(self, eid): |
173 def construct_message_id(self, eid): |
174 return construct_message_id(self.config.appid, eid, self.msgid_timestamp) |
174 return construct_message_id(self.req.vreg.config.appid, eid, self.msgid_timestamp) |
175 |
175 |
176 def render_and_send(self, **kwargs): |
176 def render_and_send(self, **kwargs): |
177 """generate and send an email message for this view""" |
177 """generate and send an email message for this view""" |
178 self._kwargs = kwargs |
178 self._kwargs = kwargs |
179 recipients = self.recipients() |
179 recipients = self.recipients() |
209 # XXX call render before subject to set .row/.col attributes on the |
209 # XXX call render before subject to set .row/.col attributes on the |
210 # view |
210 # view |
211 content = self.render(row=0, col=0, **kwargs) |
211 content = self.render(row=0, col=0, **kwargs) |
212 subject = self.subject() |
212 subject = self.subject() |
213 msg = format_mail(userdata, [emailaddr], content, subject, |
213 msg = format_mail(userdata, [emailaddr], content, subject, |
214 config=self.config, msgid=msgid, references=refs) |
214 config=self.req.vreg.config, msgid=msgid, references=refs) |
215 self.send([emailaddr], msg) |
215 self.send([emailaddr], msg) |
216 # restore language |
216 # restore language |
217 self.req.set_language(origlang) |
217 self.req.set_language(origlang) |
218 |
218 |
219 def send(self, recipients, msg): |
219 def send(self, recipients, msg): |