1 # copyright 2003-2013 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
1 # copyright 2003-2014 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr |
2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr |
3 # |
3 # |
4 # This file is part of CubicWeb. |
4 # This file is part of CubicWeb. |
5 # |
5 # |
6 # CubicWeb is free software: you can redistribute it and/or modify it under the |
6 # CubicWeb is free software: you can redistribute it and/or modify it under the |
194 for eschema in self.session.repo.schema.entities(): |
194 for eschema in self.session.repo.schema.entities(): |
195 if not eschema.final: |
195 if not eschema.final: |
196 clear_cache(eschema, 'ordered_relations') |
196 clear_cache(eschema, 'ordered_relations') |
197 |
197 |
198 def postcommit_event(self): |
198 def postcommit_event(self): |
199 rebuildinfered = self.session.data.get('rebuild-infered', True) |
|
200 repo = self.session.repo |
199 repo = self.session.repo |
201 # commit event should not raise error, while set_schema has chances to |
200 # commit event should not raise error, while set_schema has chances to |
202 # do so because it triggers full vreg reloading |
201 # do so because it triggers full vreg reloading |
203 try: |
202 try: |
204 if rebuildinfered: |
203 repo.schema.rebuild_infered_relations() |
205 repo.schema.rebuild_infered_relations() |
|
206 # trigger vreg reload |
204 # trigger vreg reload |
207 repo.set_schema(repo.schema) |
205 repo.set_schema(repo.schema) |
208 # CWUser class might have changed, update current session users |
206 # CWUser class might have changed, update current session users |
209 cwuser_cls = self.session.vreg['etypes'].etype_class('CWUser') |
207 cwuser_cls = self.session.vreg['etypes'].etype_class('CWUser') |
210 for session in repo._sessions.itervalues(): |
208 for session in repo._sessions.itervalues(): |