hooks/syncsession.py
changeset 6628 7cf5d55cbb8a
parent 6142 8bc6eac1fac1
child 7121 c2badb6de3fe
equal deleted inserted replaced
6627:430b7703b3fd 6628:7cf5d55cbb8a
   153     __select__ = SyncSessionHook.__select__ & is_instance('CWProperty')
   153     __select__ = SyncSessionHook.__select__ & is_instance('CWProperty')
   154     events = ('after_add_entity',)
   154     events = ('after_add_entity',)
   155 
   155 
   156     def __call__(self):
   156     def __call__(self):
   157         key, value = self.entity.pkey, self.entity.value
   157         key, value = self.entity.pkey, self.entity.value
       
   158         if key.startswith('sources.'):
       
   159             return
   158         session = self._cw
   160         session = self._cw
   159         try:
   161         try:
   160             value = session.vreg.typed_value(key, value)
   162             value = session.vreg.typed_value(key, value)
   161         except UnknownProperty:
   163         except UnknownProperty:
   162             qname = role_name('pkey', 'subject')
   164             qname = role_name('pkey', 'subject')
   163             raise ValidationError(self.entity.eid,
   165             msg = session._('unknown property key %s') % key
   164                                   {qname: session._('unknown property key')})
   166             raise ValidationError(self.entity.eid, {qname: msg})
   165         except ValueError, ex:
   167         except ValueError, ex:
   166             qname = role_name('value', 'subject')
   168             qname = role_name('value', 'subject')
   167             raise ValidationError(self.entity.eid,
   169             raise ValidationError(self.entity.eid,
   168                                   {qname: session._(str(ex))})
   170                                   {qname: session._(str(ex))})
   169         if not session.user.matching_groups('managers'):
   171         if not session.user.matching_groups('managers'):
   180         entity = self.entity
   182         entity = self.entity
   181         if not ('pkey' in entity.cw_edited or
   183         if not ('pkey' in entity.cw_edited or
   182                 'value' in entity.cw_edited):
   184                 'value' in entity.cw_edited):
   183             return
   185             return
   184         key, value = entity.pkey, entity.value
   186         key, value = entity.pkey, entity.value
       
   187         if key.startswith('sources.'):
       
   188             return
   185         session = self._cw
   189         session = self._cw
   186         try:
   190         try:
   187             value = session.vreg.typed_value(key, value)
   191             value = session.vreg.typed_value(key, value)
   188         except UnknownProperty:
   192         except UnknownProperty:
   189             return
   193             return