sobjects/notification.py
branchtls-sprint
changeset 633 087e3f1e87c8
parent 388 4e23b542f8ad
child 661 4f61eb8a96b7
equal deleted inserted replaced
632:3a394a90b702 633:087e3f1e87c8
     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