mirror of
https://github.com/odoo/runbot.git
synced 2025-03-27 13:25:47 +07:00
[IMP] runbot: add an action to reassign team automaticaly
This commit is contained in:
parent
af7a0751fc
commit
ada69222c9
@ -19,4 +19,14 @@
|
|||||||
records.clean_content()
|
records.clean_content()
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
<record model="ir.actions.server" id="action_reassign_build_errors">
|
||||||
|
<field name="name">Re-assign build errors</field>
|
||||||
|
<field name="model_id" ref="runbot.model_runbot_build_error" />
|
||||||
|
<field name="binding_model_id" ref="runbot.model_runbot_build_error" />
|
||||||
|
<field name="type">ir.actions.server</field>
|
||||||
|
<field name="state">code</field>
|
||||||
|
<field name="code">
|
||||||
|
records.assign()
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
</odoo>
|
</odoo>
|
||||||
|
@ -59,8 +59,6 @@ class BuildError(models.Model):
|
|||||||
@api.model_create_multi
|
@api.model_create_multi
|
||||||
def create(self, vals_list):
|
def create(self, vals_list):
|
||||||
cleaners = self.env['runbot.error.regex'].search([('re_type', '=', 'cleaning')])
|
cleaners = self.env['runbot.error.regex'].search([('re_type', '=', 'cleaning')])
|
||||||
teams = None
|
|
||||||
repos = None
|
|
||||||
for vals in vals_list:
|
for vals in vals_list:
|
||||||
content = vals.get('content')
|
content = vals.get('content')
|
||||||
cleaned_content = cleaners.r_sub('%', content)
|
cleaned_content = cleaners.r_sub('%', content)
|
||||||
@ -68,13 +66,20 @@ class BuildError(models.Model):
|
|||||||
'cleaned_content': cleaned_content,
|
'cleaned_content': cleaned_content,
|
||||||
'fingerprint': self._digest(cleaned_content)
|
'fingerprint': self._digest(cleaned_content)
|
||||||
})
|
})
|
||||||
if 'team_id' not in vals and 'file_path' in vals:
|
records = super().create(vals_list)
|
||||||
teams = teams or self.env['runbot.team'].search(['|', ('path_glob', '!=', False), ('module_ownership_ids', '!=', False)])
|
records.assign()
|
||||||
repos = repos or self.env['runbot.repo'].search([])
|
return records
|
||||||
team = teams._get_team(vals['file_path'], repos)
|
|
||||||
|
def assign(self):
|
||||||
|
if not any((not record.responsible and not record.team_id and record.file_path) for record in self):
|
||||||
|
return
|
||||||
|
teams = self.env['runbot.team'].search(['|', ('path_glob', '!=', False), ('module_ownership_ids', '!=', False)])
|
||||||
|
repos = self.env['runbot.repo'].search([])
|
||||||
|
for record in self:
|
||||||
|
if not record.responsible and not record.team_id and record.file_path:
|
||||||
|
team = teams._get_team(record.file_path, repos)
|
||||||
if team:
|
if team:
|
||||||
vals.update({'team_id': team.id})
|
record.team_id = team
|
||||||
return super().create(vals_list)
|
|
||||||
|
|
||||||
def write(self, vals):
|
def write(self, vals):
|
||||||
if 'active' in vals:
|
if 'active' in vals:
|
||||||
|
@ -117,6 +117,7 @@
|
|||||||
<field name="last_seen_date" string="Last Seen"/>
|
<field name="last_seen_date" string="Last Seen"/>
|
||||||
<field name="build_count"/>
|
<field name="build_count"/>
|
||||||
<field name="responsible"/>
|
<field name="responsible"/>
|
||||||
|
<field name="team_id"/>
|
||||||
<field name="test_tags"/>
|
<field name="test_tags"/>
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
|
Loading…
Reference in New Issue
Block a user