--- 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)