equal
deleted
inserted
replaced
1 """some hooks and views to handle notification on entity's changes |
1 """some hooks and views to handle notification on entity's changes |
2 |
2 |
3 :organization: Logilab |
3 :organization: Logilab |
4 :copyright: 2001-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
4 :copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
5 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr |
5 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr |
6 """ |
6 """ |
7 __docformat__ = "restructuredtext en" |
7 __docformat__ = "restructuredtext en" |
8 |
8 |
9 from base64 import b64encode, b64decode |
9 from base64 import b64encode, b64decode |
19 |
19 |
20 from cubicweb import RegistryException |
20 from cubicweb import RegistryException |
21 from cubicweb.common.view import EntityView |
21 from cubicweb.common.view import EntityView |
22 from cubicweb.common.appobject import Component |
22 from cubicweb.common.appobject import Component |
23 from cubicweb.common.registerers import accepts_registerer |
23 from cubicweb.common.registerers import accepts_registerer |
24 from cubicweb.common.selectors import accept |
24 from cubicweb.common.selectors import implements |
25 from cubicweb.common.mail import format_mail |
25 from cubicweb.common.mail import format_mail |
26 |
26 |
27 from cubicweb.server.pool import PreCommitOperation |
27 from cubicweb.server.pool import PreCommitOperation |
28 from cubicweb.server.hookhelper import SendMailOp |
28 from cubicweb.server.hookhelper import SendMailOp |
29 from cubicweb.server.hooksmanager import Hook |
29 from cubicweb.server.hooksmanager import Hook |
36 by default user's with their email set are notified if any, else the default |
36 by default user's with their email set are notified if any, else the default |
37 email addresses specified in the configuration are used |
37 email addresses specified in the configuration are used |
38 """ |
38 """ |
39 id = 'recipients_finder' |
39 id = 'recipients_finder' |
40 __registerer__ = accepts_registerer |
40 __registerer__ = accepts_registerer |
41 __selectors__ = (accept,) |
41 __selectors__ = (implements('Any'),) |
42 accepts = ('Any',) |
|
43 user_rql = ('Any X,E,A WHERE X is EUser, X in_state S, S name "activated",' |
42 user_rql = ('Any X,E,A WHERE X is EUser, X in_state S, S name "activated",' |
44 'X primary_email E, E address A') |
43 'X primary_email E, E address A') |
45 |
44 |
46 def recipients(self): |
45 def recipients(self): |
47 mode = self.config['default-recipients-mode'] |
46 mode = self.config['default-recipients-mode'] |
297 entity.eid, self.user_login()) |
296 entity.eid, self.user_login()) |
298 |
297 |
299 |
298 |
300 class CardAddedView(NormalizedTextView): |
299 class CardAddedView(NormalizedTextView): |
301 """get notified from new cards""" |
300 """get notified from new cards""" |
302 accepts = ('Card',) |
301 __selectors__ = (implements('Card'),) |
303 content_attr = 'synopsis' |
302 content_attr = 'synopsis' |
304 |
303 |
305 |
304 |