diff --git a/runbot/models/repo.py b/runbot/models/repo.py index 87274db0..86f002a5 100644 --- a/runbot/models/repo.py +++ b/runbot/models/repo.py @@ -24,7 +24,7 @@ class runbot_repo(models.Model): _name = "runbot.repo" name = fields.Char('Repository', required=True) - # branch_ids = fields.One2many('runbot.branch', inverse_name='repo_id') # keep for next version + short_name = fields.Char('Repository', compute='_compute_short_name', store=False, readonly=True) sequence = fields.Integer('Sequence') path = fields.Char(compute='_get_path', string='Directory', readonly=True) base = fields.Char(compute='_get_base_url', string='Base URL', readonly=True) # Could be renamed to a more explicit name like base_url @@ -74,6 +74,11 @@ class runbot_repo(models.Model): name = name.replace(':', '/') repo.base = name + @api.depends('name', 'base') + def _compute_short_name(self): + for repo in self: + repo.short_name = '/'.join(repo.base.split('/')[-2:]) + def _git(self, cmd): """Execute a git command 'cmd'""" for repo in self: diff --git a/runbot/templates/frontend.xml b/runbot/templates/frontend.xml index 516c9ef8..833e63fc 100644 --- a/runbot/templates/frontend.xml +++ b/runbot/templates/frontend.xml @@ -6,7 +6,7 @@ -
  • +
  • diff --git a/runbot/tests/test_repo.py b/runbot/tests/test_repo.py index 74438519..7ee9b0da 100644 --- a/runbot/tests/test_repo.py +++ b/runbot/tests/test_repo.py @@ -15,3 +15,10 @@ class Test_Repo(common.TransactionCase): self.assertEqual(repo.path, '/tmp/static/repo/bla_example.com_foo_bar') self.assertEqual(repo.base, 'example.com/foo/bar') + self.assertEqual(repo.short_name, 'foo/bar') + + https_repo = self.Repo.create({'name': 'https://bla@example.com/user/rep.git'}) + self.assertEqual(https_repo.short_name, 'user/rep') + + local_repo = self.Repo.create({'name': '/path/somewhere/rep.git'}) + self.assertEqual(local_repo.short_name, 'somewhere/rep')