diff --git a/runbot/models/build_config.py b/runbot/models/build_config.py index ec777cb6..33159d7a 100644 --- a/runbot/models/build_config.py +++ b/runbot/models/build_config.py @@ -822,6 +822,8 @@ class ConfigStep(models.Model): def _reference_batches_complement(self, batch, trigger): bundle = batch.bundle_id + if not bundle.base_id.to_upgrade or not bundle.base_id.to_upgrade_from: + return self.env['runbot.batch'] category_id = trigger.upgrade_dumps_trigger_id.category_id.id version = bundle.version_id next_versions = version.next_major_version_id | version.next_intermediate_version_ids # TODO filter on trigger version @@ -829,7 +831,7 @@ class ConfigStep(models.Model): upgrade_complement_step = trigger.upgrade_dumps_trigger_id.upgrade_step_id - if next_versions and bundle.base_id.to_upgrade: + if next_versions: for next_version in next_versions: if bundle.version_id in upgrade_complement_step._get_upgrade_source_versions(next_version): target_versions |= next_version @@ -871,7 +873,7 @@ class ConfigStep(models.Model): from_versions(bundle) for f_bundle in target_refs_bundles: from_versions(f_bundle) - source_refs_bundles = source_refs_bundles.filtered('to_upgrade') + source_refs_bundles = source_refs_bundles.filtered('to_upgrade_from') return (target_refs_bundles | source_refs_bundles).with_context( category_id=category_id diff --git a/runbot/models/bundle.py b/runbot/models/bundle.py index 8d07b007..97d7c4e2 100644 --- a/runbot/models/bundle.py +++ b/runbot/models/bundle.py @@ -34,6 +34,7 @@ class Bundle(models.Model): defined_base_id = fields.Many2one('runbot.bundle', 'Forced base bundle', domain="[('project_id', '=', project_id), ('is_base', '=', True)]") base_id = fields.Many2one('runbot.bundle', 'Base bundle', compute='_compute_base_id', store=True) to_upgrade = fields.Boolean('To upgrade', compute='_compute_to_upgrade', store=True, index=False) + to_upgrade_from = fields.Boolean('To upgrade From', compute='_compute_to_upgrade_from', store=True, index=False) has_pr = fields.Boolean('Has PR', compute='_compute_has_pr', store=True) @@ -89,6 +90,11 @@ class Bundle(models.Model): for bundle in self: bundle.to_upgrade = bundle.is_base + @api.depends('is_base') + def _compute_to_upgrade_from(self): + for bundle in self: + bundle.to_upgrade_from = bundle.is_base + @api.depends('name', 'is_base', 'defined_base_id', 'base_id.is_base', 'project_id') def _compute_base_id(self): for bundle in self: diff --git a/runbot/views/bundle_views.xml b/runbot/views/bundle_views.xml index cb02d487..6692e035 100644 --- a/runbot/views/bundle_views.xml +++ b/runbot/views/bundle_views.xml @@ -50,6 +50,7 @@ + @@ -150,6 +151,7 @@ + @@ -168,6 +170,8 @@ + + diff --git a/runbot_builder/tools.py b/runbot_builder/tools.py index 3e37c69b..636b1382 100644 --- a/runbot_builder/tools.py +++ b/runbot_builder/tools.py @@ -171,9 +171,10 @@ def run(client_class): config_addons_path = ','.join([config_addons_path, addon_path]) odoo.tools.config['addons_path'] = config_addons_path odoo.tools.config['forced_host_name'] = args.forced_host_name + import odoo.modules # create environment - registry = odoo.registry(args.database) + registry = odoo.modules.registry.Registry(args.database) try: with registry.cursor() as cr: env = odoo.api.Environment(cr, odoo.SUPERUSER_ID, {})