mirror of
https://github.com/odoo/runbot.git
synced 2025-03-15 23:45:44 +07:00
[IMP] runbot: add qualifiers ir.model.fields
This commit is contained in:
parent
b92f14b803
commit
96dcbc5e7c
@ -681,6 +681,28 @@ class ErrorQualifyRegex(models.Model):
|
|||||||
|
|
||||||
test_ids = fields.One2many('runbot.error.qualify.test', 'qualify_regex_id', string="Test Sample", help="Error samples to test qualifying regex")
|
test_ids = fields.One2many('runbot.error.qualify.test', 'qualify_regex_id', string="Test Sample", help="Error samples to test qualifying regex")
|
||||||
|
|
||||||
|
def action_generate_fields(self):
|
||||||
|
for rec in self:
|
||||||
|
for field in list(re.compile(rec.regex).groupindex.keys()):
|
||||||
|
existing = self.env['ir.model.fields'].search([('model', '=', 'runbot.build.error.content'), ('name', '=', f'x_{field}')])
|
||||||
|
if existing:
|
||||||
|
_logger.info(f"Field x_%s already exists", field)
|
||||||
|
else:
|
||||||
|
_logger.info(f"Creating field x_%s", field)
|
||||||
|
self.env['ir.model.fields'].create({
|
||||||
|
'model_id': self.env['ir.model']._get('runbot.build.error.content').id,
|
||||||
|
'name': f'x_{field}',
|
||||||
|
'field_description': ' '.join(field.capitalize().split('_')),
|
||||||
|
'ttype': 'char',
|
||||||
|
'required': False,
|
||||||
|
'readonly': True,
|
||||||
|
'store': True,
|
||||||
|
'depends': 'qualifiers',
|
||||||
|
'compute': f"""
|
||||||
|
for error_content in self:
|
||||||
|
error_content['x_{field}'] = error_content.qualifiers.get('{field}', '')""",
|
||||||
|
})
|
||||||
|
|
||||||
@api.constrains('regex')
|
@api.constrains('regex')
|
||||||
def _validate(self):
|
def _validate(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
|
@ -433,8 +433,6 @@
|
|||||||
<field name="model">runbot.error.qualify.regex</field>
|
<field name="model">runbot.error.qualify.regex</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Qualifying Regexes">
|
<tree string="Qualifying Regexes">
|
||||||
<header>
|
|
||||||
</header>
|
|
||||||
<field name="sequence" widget="handle"/>
|
<field name="sequence" widget="handle"/>
|
||||||
<field name="regex" readonly="1"/>
|
<field name="regex" readonly="1"/>
|
||||||
<field name="source_field" readonly="1"/>
|
<field name="source_field" readonly="1"/>
|
||||||
@ -447,6 +445,9 @@
|
|||||||
<field name="model">runbot.error.qualify.regex</field>
|
<field name="model">runbot.error.qualify.regex</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<form>
|
<form>
|
||||||
|
<header>
|
||||||
|
<button type="object" name="action_generate_fields" string="Create corresponding fields"/>
|
||||||
|
</header>
|
||||||
<div class="alert alert-info" role="alert">
|
<div class="alert alert-info" role="alert">
|
||||||
The regular expresion must have at least one named group pattern e.g: <code>'(?P<module>\w+)'</code>
|
The regular expresion must have at least one named group pattern e.g: <code>'(?P<module>\w+)'</code>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user