[repo creation] removing existing entities of 'single' cardinality relatino should be considered as 'activeintegrity' hook. Also don't disable that category during repo creation to avoid pb such as two default workflows for one entity types stable
authorSylvain Thénault <sylvain.thenault@logilab.fr>
Tue, 30 Mar 2010 19:55:20 +0200
branchstable
changeset 5090 8c39d2bf58fd
parent 5087 192ebe969779
child 5091 ae161c25a68e
[repo creation] removing existing entities of 'single' cardinality relatino should be considered as 'activeintegrity' hook. Also don't disable that category during repo creation to avoid pb such as two default workflows for one entity types
server/__init__.py
server/repository.py
--- a/server/__init__.py	Tue Mar 30 17:59:18 2010 +0200
+++ b/server/__init__.py	Tue Mar 30 19:55:20 2010 +0200
@@ -210,8 +210,11 @@
     paths = [p for p in config.cubes_path() + [config.apphome]
              if exists(join(p, 'migration'))]
     # deactivate every hooks but those responsible to set metadata
-    # so, NO INTEGRITY CHECKS are done, to have quicker db creation
-    with hooks_control(session, session.HOOKS_DENY_ALL, 'metadata'):
+    # so, NO INTEGRITY CHECKS are done, to have quicker db creation.
+    # Active integrity is kept else we may pb such as two default
+    # workflows for one entity type.
+    with hooks_control(session, session.HOOKS_DENY_ALL, 'metadata',
+                       'activeintegrity'):
         # execute cubicweb's pre<event> script
         mhandler.exec_event_script('pre%s' % event)
         # execute cubes pre<event> script if any
--- a/server/repository.py	Tue Mar 30 17:59:18 2010 +0200
+++ b/server/repository.py	Tue Mar 30 19:55:20 2010 +0200
@@ -59,7 +59,7 @@
     # XXX we should imo rely on the orm to first fetch existing entity if any
     # then delete it.
     if session.is_internal_session \
-           or not session.is_hook_category_activated('integrity'):
+           or not session.is_hook_category_activated('activeintegrity'):
         return
     card = session.schema_rproperty(rtype, eidfrom, eidto, 'cardinality')
     # one may be tented to check for neweids but this may cause more than one