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 |