merge stable
authorAurelien Campeas <aurelien.campeas@logilab.fr>
Wed, 21 Oct 2009 19:32:53 +0200
branchstable
changeset 3780 4ff37d54aae1
parent 3778 fd5449479584 (diff)
parent 3779 bb44b3a522fe (current diff)
child 3781 c7ef58db0e4b
merge
--- a/.hgtags	Wed Oct 21 19:31:28 2009 +0200
+++ b/.hgtags	Wed Oct 21 19:32:53 2009 +0200
@@ -80,3 +80,5 @@
 2e22b975f9c23aebfe3e0a16a798c3fe81fa2a82 cubicweb-debian-version-3.5.3-1
 312349b3712e0a3e32247e03fdc7408e17bd19de cubicweb-version-3.5.4
 37d025b2aa7735dae4a861059014c560b45b19e6 cubicweb-debian-version-3.5.4-1
+1eca47d59fd932fe23f643ca239cf2408e5b1856 cubicweb-version-3.5.5
+aad818d9d9b6fdb2ffea56c0a9af718c0b69899d cubicweb-debian-version-3.5.5-1
--- a/server/hooks.py	Wed Oct 21 19:31:28 2009 +0200
+++ b/server/hooks.py	Wed Oct 21 19:32:53 2009 +0200
@@ -13,7 +13,7 @@
 from cubicweb import UnknownProperty, ValidationError, BadConnectionId
 from cubicweb.schema import RQLVocabularyConstraint
 from cubicweb.server.pool import Operation, LateOperation, PreCommitOperation
-from cubicweb.server.hookhelper import (check_internal_entity, 
+from cubicweb.server.hookhelper import (check_internal_entity,
                                         get_user_sessions, rproperty)
 from cubicweb.server.repository import FTIndexEntityOp
 
@@ -519,8 +519,8 @@
             msg = session._('mandatory relation')
             raise ValidationError(entity.eid, {'by_transition': msg})
         deststate = wf.state_by_eid(deststateeid)
-        if not cowpowers and deststate is None:
-            msg = entity.req._("state doesn't belong to entity's workflow")
+        if deststate is None:
+            msg = entity.req._("state doesn't belong to entity's current workflow")
             raise ValidationError(entity.eid, {'to_state': msg})
     else:
         # check transition is valid and allowed, unless we're coming back from
--- a/server/schemahooks.py	Wed Oct 21 19:31:28 2009 +0200
+++ b/server/schemahooks.py	Wed Oct 21 19:32:53 2009 +0200
@@ -16,6 +16,7 @@
 from yams.buildobjs import EntityType, RelationType, RelationDefinition
 from yams.schema2sql import eschema2sql, rschema2sql, type_from_constraints
 
+from logilab.common.decorators import clear_cache
 
 from cubicweb import ValidationError, RepositoryError
 from cubicweb.schema import META_RTYPES, VIRTUAL_RTYPES, CONSTRAINTS
@@ -134,10 +135,18 @@
         self.repo = session.repo
         SingleLastOperation.__init__(self, session)
 
+    def precommit_event(self):
+        for eschema in self.repo.schema.entities():
+            if not eschema.final:
+                clear_cache(eschema, 'ordered_relations')
+
     def commit_event(self):
         rebuildinfered = self.session.data.get('rebuild-infered', True)
         self.repo.set_schema(self.repo.schema, rebuildinfered=rebuildinfered)
 
+    def rollback_event(self):
+        self.precommit_event()
+
 
 class MemSchemaOperation(Operation):
     """base class for schema operations"""
--- a/web/views/primary.py	Wed Oct 21 19:31:28 2009 +0200
+++ b/web/views/primary.py	Wed Oct 21 19:32:53 2009 +0200
@@ -223,7 +223,7 @@
                 self.w(u'</div>')
         # else show links to display related entities
         else:
-            rql = rset.printable_rql()
+            rql = self.rset.printable_rql()
             self.rset.limit(limit) # remove extra entity
             self.w(u'<div>')
             self.wview('simplelist', self.rset)