hooks/syncschema.py
branchstable
changeset 9588 fe267b7336f3
parent 9375 8e88576787c3
child 9600 bde625698f44
equal deleted inserted replaced
9587:0f0199948f93 9588:fe267b7336f3
     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():