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 |