From 4c8f257ff6e0be8507180d4d743ae8943e9203fa Mon Sep 17 00:00:00 2001 From: Xavier-Do Date: Fri, 20 Mar 2026 08:47:26 +0100 Subject: [PATCH 01/50] [IMP] runbot: easiets search on pr pull head name --- runbot/controllers/frontend.py | 10 ++++------ runbot/templates/frontend.xml | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/runbot/controllers/frontend.py b/runbot/controllers/frontend.py index 1598fda9d..30e8608e1 100644 --- a/runbot/controllers/frontend.py +++ b/runbot/controllers/frontend.py @@ -80,7 +80,7 @@ def _pending(self): '/runbot/', '/runbot//search/'], website=True, auth='public', type='http') def bundles(self, project=None, search='', refresh=False, limit=40, has_pr=None, **kwargs): - search = search if len(search) < 60 else search[:60] + search = search if len(search) < 60 else search[:200] env = request.env categories = env['runbot.category'].search([]) projects = self.env['runbot.project'].search([('hidden', '=', False)]) @@ -119,13 +119,11 @@ def bundles(self, project=None, search='', refresh=False, limit=40, has_pr=None, pr_numbers = [] for search_elem in search.split("|"): if search_elem.isnumeric(): - pr_numbers.append(int(search_elem)) + search_domains.append([('branch_ids', 'any', [('name', '=', search_elem)])]) + if ':' in search_elem: + search_domains.append([('branch_ids', 'any', [('pull_head_name', '=', search_elem)])]) operator = '=ilike' if '%' in search_elem else 'ilike' search_domains.append([('name', operator, search_elem)]) - if pr_numbers: - res = request.env['runbot.branch'].search([('name', 'in', pr_numbers)]) - if res: - search_domains.append([('id', 'in', res.mapped('bundle_id').ids)]) search_domain = Domain.OR(search_domains) domain = Domain.AND([domain, search_domain]) diff --git a/runbot/templates/frontend.xml b/runbot/templates/frontend.xml index 0298dca6d..8a267be32 100644 --- a/runbot/templates/frontend.xml +++ b/runbot/templates/frontend.xml @@ -6,7 +6,7 @@