sobjects/supervising.py
branchtls-sprint
changeset 1723 30c3a713ab61
parent 1398 5fe84a5f7035
child 1977 606923dff11b
--- a/sobjects/supervising.py	Mon May 11 11:30:42 2009 +0200
+++ b/sobjects/supervising.py	Mon May 11 11:55:10 2009 +0200
@@ -19,7 +19,7 @@
     events = ('before_add_relation', 'before_delete_relation',
               'after_add_entity', 'before_update_entity')
     accepts = ('Any',)
-    
+
     def call(self, session, *args):
         dest = self.config['supervising-addrs']
         if not dest: # no supervisors, don't do this for nothing...
@@ -27,24 +27,24 @@
         self.session = session
         if self._call(*args):
             SupervisionMailOp(session)
-        
+
     def _call(self, *args):
         if self._event() == 'update_entity' and args[0].e_schema == 'CWUser':
             updated = set(args[0].iterkeys())
             if not (updated - frozenset(('eid', 'modification_date', 'last_login_time'))):
-                # don't record last_login_time update which are done 
+                # don't record last_login_time update which are done
                 # automatically at login time
                 return False
         self.session.add_query_data('pendingchanges', (self._event(), args))
         return True
-        
+
     def _event(self):
         return self.event.split('_', 1)[1]
 
 
 class EntityDeleteHook(SomethingChangedHook):
     events = ('before_delete_entity',)
-    
+
     def _call(self, eid):
         entity = self.session.entity(eid)
         try:
@@ -80,19 +80,19 @@
                 changes.remove(change)
                 if entity.from_state:
                     try:
-                        changes.remove( ('delete_relation', 
-                                         (entity.wf_info_for[0].eid, 'in_state', 
+                        changes.remove( ('delete_relation',
+                                         (entity.wf_info_for[0].eid, 'in_state',
                                           entity.from_state[0].eid)) )
                     except ValueError:
                         pass
                     try:
-                        changes.remove( ('add_relation', 
-                                         (entity.wf_info_for[0].eid, 'in_state', 
+                        changes.remove( ('add_relation',
+                                         (entity.wf_info_for[0].eid, 'in_state',
                                           entity.to_state[0].eid)) )
                     except ValueError:
                         pass
                     event = 'change_state'
-                    change = (event, 
+                    change = (event,
                               (entity.wf_info_for[0],
                                entity.from_state[0], entity.to_state[0]))
                     changes.append(change)
@@ -115,7 +115,7 @@
                 #     at entity creation time
                 elif changedescr[1] == 'in_state' and changedescr[0] in added:
                     index['add_relation'].remove(change)
-                    
+
         except KeyError:
             break
     for eid in deleted:
@@ -146,10 +146,10 @@
 
     def recipients(self):
         return self.config['supervising-addrs']
-        
+
     def subject(self):
         return self.req._('[%s supervision] changes summary') % self.config.appid
-    
+
     def call(self, changes):
         user = self.req.actual_session().user
         self.w(self.req._('user %s has made the following change(s):\n\n')
@@ -163,30 +163,30 @@
         return {'eid': entity.eid,
                 'etype': entity.dc_type().lower(),
                 'title': entity.dc_title()}
-    
+
     def add_entity(self, entity):
         msg = self.req._('added %(etype)s #%(eid)s (%(title)s)')
         self.w(u'%s\n' % (msg % self._entity_context(entity)))
         self.w(u'  %s' % entity.absolute_url())
-            
+
     def update_entity(self, entity):
         msg = self.req._('updated %(etype)s #%(eid)s (%(title)s)')
         self.w(u'%s\n' % (msg % self._entity_context(entity)))
         # XXX print changes
         self.w(u'  %s' % entity.absolute_url())
-            
+
     def delete_entity(self, eid, etype, title):
         msg = self.req._('deleted %(etype)s #%(eid)s (%(title)s)')
         etype = display_name(self.req, etype).lower()
         self.w(msg % locals())
-        
+
     def change_state(self, entity, fromstate, tostate):
         msg = self.req._('changed state of %(etype)s #%(eid)s (%(title)s)')
         self.w(u'%s\n' % (msg % self._entity_context(entity)))
-        self.w(_('  from state %(fromstate)s to state %(tostate)s\n' % 
+        self.w(_('  from state %(fromstate)s to state %(tostate)s\n' %
                  {'fromstate': _(fromstate.name), 'tostate': _(tostate.name)}))
         self.w(u'  %s' % entity.absolute_url())
-        
+
     def _relation_context(self, fromeid, rtype, toeid):
         _ = self.req._
         session = self.req.actual_session()
@@ -202,7 +202,7 @@
                 'frometype': describe(fromeid),
                 'toeid': toeid,
                 'toetype': describe(toeid)}
-        
+
     def add_relation(self, fromeid, rtype, toeid):
         msg = self.req._('added relation %(rtype)s from %(frometype)s #%(fromeid)s to %(toetype)s #%(toeid)s')
         self.w(msg % self._relation_context(fromeid, rtype, toeid))
@@ -210,8 +210,8 @@
     def delete_relation(self, fromeid, rtype, toeid):
         msg = self.req._('deleted relation %(rtype)s from %(frometype)s #%(fromeid)s to %(toetype)s #%(toeid)s')
         self.w(msg % self._relation_context(fromeid, rtype, toeid))
-        
-                
+
+
 class SupervisionMailOp(SendMailOp):
     """special send email operation which should be done only once for a bunch
     of changes
@@ -219,14 +219,14 @@
     def _get_view(self):
         return self.session.vreg.select_component('supervision_notif',
                                                   self.session, None)
-        
+
     def _prepare_email(self):
         session = self.session
         config = session.vreg.config
         uinfo = {'email': config['sender-addr'],
                  'name': config['sender-name']}
         view = self._get_view()
-        content = view.dispatch(changes=session.query_data('pendingchanges'))
+        content = view.render(changes=session.query_data('pendingchanges'))
         recipients = view.recipients()
         msg = format_mail(uinfo, recipients, content, view.subject(), config=config)
         self.to_send = [(msg, recipients)]