def init(self, update=None, lang=None, installdeps=False): ''' Init pool Set update to proceed to update lang is a list of language code to be updated ''' # AKE: inter-workers communication from trytond import iwc with self._lock: # AKE: inter-workers communication iwc.start() if not self._started: self.start() with self._locks[self.database_name]: # Don't reset pool if already init and not to update if not update and self._pool.get(self.database_name): return logger.info('init pool for "%s"', self.database_name) self._pool.setdefault(self.database_name, {}) # Clean the _pool before loading modules for type in self.classes.keys(): self._pool[self.database_name][type] = {} self._post_init_calls[self.database_name] = [] restart = not load_modules(self.database_name, self, update=update, lang=lang, installdeps=installdeps) if restart: self.init() # AKE: inter-workers communication if update: iwc.broadcast_init_pool(self.database_name)
def transition_upgrade(self): pool = Pool() Module = pool.get('ir.module') Lang = pool.get('ir.lang') with Transaction().new_transaction(): modules = Module.search([ ('state', 'in', ['to upgrade', 'to remove', 'to activate']), ]) update = [m.name for m in modules] langs = Lang.search([ ('translatable', '=', True), ]) lang = [x.code for x in langs] if update: pool.init(update=update, lang=lang) broadcast_init_pool() return 'done'
def transition_upgrade(self): pool = Pool() Module = pool.get('ir.module') Lang = pool.get('ir.lang') with Transaction().new_transaction(): modules = Module.search([ ('state', 'in', ['to upgrade', 'to remove', 'to install']), ]) update = [m.name for m in modules] langs = Lang.search([ ('translatable', '=', True), ]) lang = [x.code for x in langs] if update: pool.init(update=update, lang=lang) broadcast_init_pool() return 'done'