mirror of
https://github.com/OCA/reporting-engine.git
synced 2025-02-16 16:30:38 +02:00
pre-commit
This commit is contained in:
@@ -6,19 +6,19 @@ from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class BveViewLine(models.Model):
|
||||
_name = 'bve.view.line'
|
||||
_description = 'BI View Editor Lines'
|
||||
_name = "bve.view.line"
|
||||
_description = "BI View Editor Lines"
|
||||
|
||||
name = fields.Char(compute='_compute_name')
|
||||
name = fields.Char(compute="_compute_name")
|
||||
sequence = fields.Integer(default=1)
|
||||
bve_view_id = fields.Many2one('bve.view', ondelete='cascade')
|
||||
model_id = fields.Many2one('ir.model', string='Model')
|
||||
model_name = fields.Char(compute='_compute_model_name', store=True)
|
||||
bve_view_id = fields.Many2one("bve.view", ondelete="cascade")
|
||||
model_id = fields.Many2one("ir.model", string="Model")
|
||||
model_name = fields.Char(compute="_compute_model_name", store=True)
|
||||
table_alias = fields.Char()
|
||||
join_model_id = fields.Many2one('ir.model', string='Join Model')
|
||||
field_id = fields.Many2one('ir.model.fields', string='Field')
|
||||
field_name = fields.Char(compute='_compute_model_field_name', store=True)
|
||||
ttype = fields.Char(string='Type')
|
||||
join_model_id = fields.Many2one("ir.model", string="Join Model")
|
||||
field_id = fields.Many2one("ir.model.fields", string="Field")
|
||||
field_name = fields.Char(compute="_compute_model_field_name", store=True)
|
||||
ttype = fields.Char(string="Type")
|
||||
description = fields.Char(translate=True)
|
||||
relation = fields.Char()
|
||||
join_node = fields.Char()
|
||||
@@ -28,88 +28,87 @@ class BveViewLine(models.Model):
|
||||
column = fields.Boolean()
|
||||
measure = fields.Boolean()
|
||||
in_list = fields.Boolean()
|
||||
list_attr = fields.Selection([
|
||||
('sum', 'Sum'),
|
||||
('avg', 'Average'),
|
||||
], string='List Attribute', default='sum')
|
||||
view_field_type = fields.Char(compute='_compute_view_field_type')
|
||||
list_attr = fields.Selection(
|
||||
[("sum", "Sum"), ("avg", "Average"),], string="List Attribute", default="sum"
|
||||
)
|
||||
view_field_type = fields.Char(compute="_compute_view_field_type")
|
||||
|
||||
@api.depends('row', 'column', 'measure')
|
||||
@api.depends("row", "column", "measure")
|
||||
def _compute_view_field_type(self):
|
||||
for line in self:
|
||||
row = line.row and 'row'
|
||||
column = line.column and 'col'
|
||||
measure = line.measure and 'measure'
|
||||
row = line.row and "row"
|
||||
column = line.column and "col"
|
||||
measure = line.measure and "measure"
|
||||
line.view_field_type = row or column or measure
|
||||
|
||||
@api.constrains('row', 'column', 'measure')
|
||||
@api.constrains("row", "column", "measure")
|
||||
def _constrains_options_check(self):
|
||||
measure_types = ['float', 'integer', 'monetary']
|
||||
measure_types = ["float", "integer", "monetary"]
|
||||
for line in self.filtered(lambda l: l.row or l.column):
|
||||
if line.join_model_id or line.ttype in measure_types:
|
||||
err_msg = _('This field cannot be a row or a column.')
|
||||
err_msg = _("This field cannot be a row or a column.")
|
||||
raise ValidationError(err_msg)
|
||||
for line in self.filtered(lambda l: l.measure):
|
||||
if line.join_model_id or line.ttype not in measure_types:
|
||||
err_msg = _('This field cannot be a measure.')
|
||||
err_msg = _("This field cannot be a measure.")
|
||||
raise ValidationError(err_msg)
|
||||
|
||||
@api.constrains('table_alias', 'field_id')
|
||||
@api.constrains("table_alias", "field_id")
|
||||
def _constrains_unique_fields_check(self):
|
||||
seen = set()
|
||||
for line in self.mapped('bve_view_id.field_ids'):
|
||||
if (line.table_alias, line.field_id.id, ) not in seen:
|
||||
seen.add((line.table_alias, line.field_id.id, ))
|
||||
for line in self.mapped("bve_view_id.field_ids"):
|
||||
if (line.table_alias, line.field_id.id,) not in seen:
|
||||
seen.add((line.table_alias, line.field_id.id,))
|
||||
else:
|
||||
raise ValidationError(_('Field %s/%s is duplicated.\n'
|
||||
'Please remove the duplications.') % (
|
||||
line.field_id.model, line.field_id.name
|
||||
))
|
||||
raise ValidationError(
|
||||
_("Field %s/%s is duplicated.\n" "Please remove the duplications.")
|
||||
% (line.field_id.model, line.field_id.name)
|
||||
)
|
||||
|
||||
@api.depends('field_id', 'sequence')
|
||||
@api.depends("field_id", "sequence")
|
||||
def _compute_name(self):
|
||||
for line in self.filtered(lambda l: l.field_id):
|
||||
field_name = line.field_id.name
|
||||
line.name = 'x_bve_%s_%s' % (line.table_alias, field_name,)
|
||||
line.name = "x_bve_{}_{}".format(line.table_alias, field_name)
|
||||
|
||||
@api.depends('model_id')
|
||||
@api.depends("model_id")
|
||||
def _compute_model_name(self):
|
||||
for line in self.filtered(lambda l: l.model_id):
|
||||
line.model_name = line.model_id.model
|
||||
|
||||
@api.depends('field_id')
|
||||
@api.depends("field_id")
|
||||
def _compute_model_field_name(self):
|
||||
for line in self.filtered(lambda l: l.field_id):
|
||||
field_name = line.description
|
||||
model_name = line.model_name
|
||||
line.field_name = '%s (%s)' % (field_name, model_name, )
|
||||
line.field_name = "{} ({})".format(field_name, model_name)
|
||||
|
||||
def _prepare_field_vals(self):
|
||||
vals_list = []
|
||||
for line in self:
|
||||
field = line.field_id
|
||||
vals = {
|
||||
'name': line.name,
|
||||
'complete_name': field.complete_name,
|
||||
'model': line.bve_view_id.model_name,
|
||||
'relation': field.relation,
|
||||
'field_description': line.description,
|
||||
'ttype': field.ttype,
|
||||
'selection': field.selection,
|
||||
'size': field.size,
|
||||
'state': 'manual',
|
||||
'readonly': True,
|
||||
'groups': [(6, 0, field.groups.ids)],
|
||||
"name": line.name,
|
||||
"complete_name": field.complete_name,
|
||||
"model": line.bve_view_id.model_name,
|
||||
"relation": field.relation,
|
||||
"field_description": line.description,
|
||||
"ttype": field.ttype,
|
||||
"selection": field.selection,
|
||||
"size": field.size,
|
||||
"state": "manual",
|
||||
"readonly": True,
|
||||
"groups": [(6, 0, field.groups.ids)],
|
||||
}
|
||||
if vals['ttype'] == 'monetary':
|
||||
vals.update({'ttype': 'float'})
|
||||
if field.ttype == 'selection' and not field.selection:
|
||||
if vals["ttype"] == "monetary":
|
||||
vals.update({"ttype": "float"})
|
||||
if field.ttype == "selection" and not field.selection:
|
||||
model_obj = self.env[field.model_id.model]
|
||||
selection = model_obj._fields[field.name].selection
|
||||
if callable(selection):
|
||||
selection_domain = selection(model_obj)
|
||||
else:
|
||||
selection_domain = selection
|
||||
vals.update({'selection': str(selection_domain)})
|
||||
vals.update({"selection": str(selection_domain)})
|
||||
vals_list.append(vals)
|
||||
return vals_list
|
||||
|
||||
Reference in New Issue
Block a user