hooks/notification.py
changeset 6142 8bc6eac1fac1
parent 5877 0c7b7b76a84f
child 6466 43d71dd8a8ec
equal deleted inserted replaced
6141:b8287e54b528 6142:8bc6eac1fac1
   123     def __call__(self):
   123     def __call__(self):
   124         session = self._cw
   124         session = self._cw
   125         if session.added_in_transaction(self.entity.eid):
   125         if session.added_in_transaction(self.entity.eid):
   126             return # entity is being created
   126             return # entity is being created
   127         # then compute changes
   127         # then compute changes
   128         attrs = [k for k in self.entity.edited_attributes
   128         attrs = [k for k in self.entity.cw_edited
   129                  if not k in self.skip_attrs]
   129                  if not k in self.skip_attrs]
   130         if not attrs:
   130         if not attrs:
   131             return
   131             return
   132         changes = session.transaction_data.setdefault('changes', {})
   132         changes = session.transaction_data.setdefault('changes', {})
   133         thisentitychanges = changes.setdefault(self.entity.eid, set())
   133         thisentitychanges = changes.setdefault(self.entity.eid, set())
   166         event = self.event.split('_', 1)[1]
   166         event = self.event.split('_', 1)[1]
   167         if event == 'update_entity':
   167         if event == 'update_entity':
   168             if self._cw.added_in_transaction(self.entity.eid):
   168             if self._cw.added_in_transaction(self.entity.eid):
   169                 return False
   169                 return False
   170             if self.entity.e_schema == 'CWUser':
   170             if self.entity.e_schema == 'CWUser':
   171                 if not (self.entity.edited_attributes - frozenset(('eid', 'modification_date',
   171                 if not (frozenset(self.entity.cw_edited)
   172                                                                    'last_login_time'))):
   172                         - frozenset(('eid', 'modification_date',
       
   173                                      'last_login_time'))):
   173                     # don't record last_login_time update which are done
   174                     # don't record last_login_time update which are done
   174                     # automatically at login time
   175                     # automatically at login time
   175                     return False
   176                     return False
   176         self._cw.transaction_data.setdefault('pendingchanges', []).append(
   177         self._cw.transaction_data.setdefault('pendingchanges', []).append(
   177             (event, self))
   178             (event, self))