# HG changeset patch # User Sylvain Thénault # Date 1268035476 -3600 # Node ID 8a505bf12193b0a6ecfd6927f9f413d3f09be770 # Parent 7eba168407c33652c273c9a48ef29658e82bd11c [hook] use entity instead of values dict, check for edited_attributes on rtype change diff -r 7eba168407c3 -r 8a505bf12193 hooks/syncschema.py --- a/hooks/syncschema.py Mon Mar 08 09:03:43 2010 +0100 +++ b/hooks/syncschema.py Mon Mar 08 09:04:36 2010 +0100 @@ -226,7 +226,7 @@ class SourceDbCWRTypeUpdate(hook.Operation): """actually update some properties of a relation definition""" - rschema = values = entity = None # make pylint happy + rschema = entity = None # make pylint happy def precommit_event(self): session = self.session @@ -241,8 +241,7 @@ UpdateFTIndexOp(session) if rschema.final or not 'inlined' in entity.edited_attributes: return # nothing to do - inlined = self.values['inlined'] - entity = self.entity + inlined = entity.inlined # check in-lining is necessary / possible if not entity.inlined_changed(inlined): return # nothing to do @@ -939,15 +938,14 @@ def __call__(self): entity = self.entity - rschema = self._cw.vreg.schema.rschema(entity.name) newvalues = {} - for prop in ('meta', 'symmetric', 'inlined'): - if prop in entity: + for prop in ('symmetric', 'inlined', 'fulltext_container'): + if prop in entity.edited_attributes: newvalues[prop] = entity[prop] if newvalues: + rschema = self._cw.vreg.schema.rschema(entity.name) + SourceDbCWRTypeUpdate(self._cw, rschema=rschema, entity=entity) MemSchemaCWRTypeUpdate(self._cw, rschema=rschema, values=newvalues) - SourceDbCWRTypeUpdate(self._cw, rschema=rschema, values=newvalues, - entity=entity) class AfterDelRelationTypeHook(SyncSchemaHook):