common/mail.py
branchstable
changeset 3113 169bbf0b8dec
parent 3112 873202e181bb
child 3114 f87fd632e3f6
equal deleted inserted replaced
3112:873202e181bb 3113:169bbf0b8dec
   140     """
   140     """
   141     # XXX refactor this class to work with len(rset) > 1
   141     # XXX refactor this class to work with len(rset) > 1
   142 
   142 
   143     msgid_timestamp = True
   143     msgid_timestamp = True
   144 
   144 
   145     def user_login(self):
       
   146         try:
       
   147             # if req is actually a session (we are on the server side), and we
       
   148             # have to prevent nested internal session
       
   149             return self.req.actual_session().user.login
       
   150         except AttributeError:
       
   151             return self.req.user.login
       
   152 
       
   153     def recipients(self):
   145     def recipients(self):
   154         finder = self.vreg['components'].select('recipients_finder', self.req,
   146         finder = self.vreg['components'].select('recipients_finder', self.req,
   155                                                 rset=self.rset,
   147                                                 rset=self.rset,
   156                                                 row=self.row or 0,
   148                                                 row=self.row or 0,
   157                                                 col=self.col or 0)
   149                                                 col=self.col or 0)
   160     def subject(self):
   152     def subject(self):
   161         entity = self.entity(self.row or 0, self.col or 0)
   153         entity = self.entity(self.row or 0, self.col or 0)
   162         subject = self.req._(self.message)
   154         subject = self.req._(self.message)
   163         etype = entity.dc_type()
   155         etype = entity.dc_type()
   164         eid = entity.eid
   156         eid = entity.eid
   165         login = self.user_login()
   157         login = self.user_data['login']
   166         return self.req._('%(subject)s %(etype)s #%(eid)s (%(login)s)') % locals()
   158         return self.req._('%(subject)s %(etype)s #%(eid)s (%(login)s)') % locals()
   167 
   159 
   168     def context(self, **kwargs):
   160     def context(self, **kwargs):
   169         entity = self.entity(self.row or 0, self.col or 0)
   161         entity = self.entity(self.row or 0, self.col or 0)
   170         for key, val in kwargs.iteritems():
   162         for key, val in kwargs.iteritems():
   171             if val and isinstance(val, unicode) and val.strip():
   163             if val and isinstance(val, unicode) and val.strip():
   172                kwargs[key] = self.req._(val)
   164                kwargs[key] = self.req._(val)
   173         kwargs.update({'user': self.user_login(),
   165         kwargs.update({'user': self.user_data['login'],
   174                        'eid': entity.eid,
   166                        'eid': entity.eid,
   175                        'etype': entity.dc_type(),
   167                        'etype': entity.dc_type(),
   176                        'url': entity.absolute_url(),
   168                        'url': entity.absolute_url(),
   177                        'title': entity.dc_long_title(),})
   169                        'title': entity.dc_long_title(),})
   178         return kwargs
   170         return kwargs