Last chunk of portal type classes / zodb property sheets.
authorNicolas Dumazet <nicolas.dumazet@nexedi.com>
Tue, 1 Feb 2011 16:55:13 +0000 (16:55 +0000)
committerNicolas Dumazet <nicolas.dumazet@nexedi.com>
Tue, 1 Feb 2011 16:55:13 +0000 (16:55 +0000)
commitd02ba206bf8321cdf237e77c98fad13bb3b5dcfd
treeb813b1982f936c4123d515de7c48f9144a01e931
parentb49d48ed15b66081e4930a1b555006efadb15e21
Last chunk of portal type classes / zodb property sheets.
After this, all ERP5 objects become instances of portal type classes

Preferences:
* all the trickery for preferences is gone and is handled by a specific
  accessor holder holding all preference methods

Property holders
* our Base.aq_portal_type property holders are not used anymore:
  the "property holder" becomes the portal type class itself and the
  set of accessor_holder classes in the mro of the portal type class:
  portal-type-specific methods are on the portal type class, while
  portal-type-independant method are put on the accessor holder ancestors
* the portal type meta class now also inherits from "PropertyHolder" to
  provide the same introspection interface and methods.
  (In the future this class / interface will need to be refined)

Bootstrap/migration:
* bootstrapping/migration from older instances: provide with code able to
  import XML from ERP5/bootstrap/ to load necessary tools from almost any
  instance state
* migrate in BusinessTemplate installation code all non-portal type classes
  objects to portal type classes
* Change the way Tools are installed when creating a site, so that we create
  directly portal type classes objects instead of Documents

Accessors:
* add a generatePortalTypeAccessors method on the portal type class to generate
  portal-type-specific accessors
* associate BaseAccessorHolder to all portal type classes to contain
  all common category related accessors
* change the way workflow methods are generated to bind them directly on
  the portal type class
* disable Base._aq_dynamic (while still keeping its code for debugging and
  reference, this can be cleanup up later)

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@42902 20353a03-c40f-0410-a6d1-a30d3c3de9de
product/CMFActivity/ActivityTool.py
product/ERP5/Document/BusinessTemplate.py
product/ERP5/ERP5Site.py
product/ERP5Form/Document/Preference.py
product/ERP5Form/PreferenceTool.py
product/ERP5Type/Base.py
product/ERP5Type/ERP5Type.py
product/ERP5Type/TranslationProviderBase.py
product/ERP5Type/Utils.py
product/ERP5Type/dynamic/lazy_class.py
product/ERP5Type/dynamic/portal_type_class.py