misc/migration/3.5.3_Any.py
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Thu, 20 May 2010 20:47:55 +0200
changeset 5556 9ab2b4c74baf
parent 3666 7d0f6234b001
child 8798 cdab3aadc679
permissions -rw-r--r--
[entity] introduce a new 'adapters' registry This changeset introduces the notion in adapters (as in Zope Component Architecture) in a cubicweb way, eg using a specific registry of appobjects. This allows nicer code structure, by avoid clutering entity classes and moving code usually specific to a place of the ui (or something else) together with the code that use the interface. We don't use actual interface anymore, they are implied by adapters (which may be abstract), whose reg id is an interface name. Appobjects that used to 'implements(IFace)' should now be rewritten by: * coding an IFaceAdapter(EntityAdapter) defining (implementing if desired) the interface, usually with __regid__ = 'IFace' * use "adaptable('IFace')" as selector instead Also, the implements_adapter_compat decorator eases backward compatibility with adapter's methods that may still be found on entities implementing the interface. Notice that unlike ZCA, we don't support automatic adapters chain (yagni?). All interfaces defined in cubicweb have been turned into adapters, also some new ones have been introduced to cleanup Entity / AnyEntity classes namespace. At the end, the pluggable mixins mecanism should disappear in favor of adapters as well.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3611
8d7d4a67820f [migration] fix 3.5.3_Any.py for migrations starting from before 3.5
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 3528
diff changeset
     1
# type attribute might already be there if migrating from
8d7d4a67820f [migration] fix 3.5.3_Any.py for migrations starting from before 3.5
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 3528
diff changeset
     2
# version < 3.5 to version >= 3.5.3, BaseTransition being added
8d7d4a67820f [migration] fix 3.5.3_Any.py for migrations starting from before 3.5
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 3528
diff changeset
     3
# in bootstrap_migration
3666
7d0f6234b001 fix migration script
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 3612
diff changeset
     4
if versions_map['cubicweb'][0] >= (3, 5, 0):
3611
8d7d4a67820f [migration] fix 3.5.3_Any.py for migrations starting from before 3.5
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 3528
diff changeset
     5
    add_attribute('BaseTransition', 'type')
3612
0605d8755613 [migration] make it more explicit that BaseTransition upgrade should only be done if migrating from version prior to 3.5
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 3611
diff changeset
     6
    sync_schema_props_perms('state_of')
0605d8755613 [migration] make it more explicit that BaseTransition upgrade should only be done if migrating from version prior to 3.5
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 3611
diff changeset
     7
    sync_schema_props_perms('transition_of')