Deleted on_change_measures method and added a domain in expression field of Measure model

This commit is contained in:
MarinaNico 2021-04-19 13:23:54 +02:00
parent e3ecb930a2
commit 4b6a4a05d0
4 changed files with 5 additions and 34 deletions

20
babi.py
View file

@ -704,20 +704,6 @@ class Report(ModelSQL, ModelView):
if execution.state == 'calculated' and not execution.filtered:
return execution.id
@fields.depends('measures')
def on_change_measures(self):
field_types_dict = dict(FIELD_TYPES)
aggregate_types_dict = dict(AGGREGATE_TYPES)
for measure in self.measures:
if measure and measure.aggregate in ('sum', 'avg'):
if (measure.expression and measure.expression.ttype
not in ('integer', 'float', 'numeric')):
raise UserError(
gettext('babi.invalid_measures_type',
ttype=field_types_dict.get(measure.expression.ttype),
expression=measure.expression.name,
aggregate=aggregate_types_dict.get(measure.aggregate)))
@classmethod
def write(cls, *args):
actions = iter(args)
@ -2247,7 +2233,11 @@ class Measure(ModelSQL, ModelView):
expression = fields.Many2One('babi.expression', 'Expression',
required=True, domain=[
('model', '=', Eval('_parent_report', {}).get('model', 0)),
])
If(Eval('aggregate').in_(['sum', 'avg']), [
('ttype', 'in', ['integer', 'float', 'numeric']),
],
[])
], depends=['aggregate'])
aggregate = fields.Selection(AGGREGATE_TYPES, 'Aggregate', required=True)
internal_measures = fields.One2Many('babi.internal.measure',
'measure', 'Internal Measures')

View file

@ -766,14 +766,6 @@ msgstr ""
"L'execució \"%(execution)s\" té paràmetres de filtre i vostè no va "
"proporcionar cap d'ells. Si us plau executa-ho des del menú."
msgctxt "model:ir.message,text:invalid_measures_type"
msgid ""
"Measures: Invalid field type \"%(ttype)s\" for expression \"%(expression)s\""
" for aggregate \"%(aggregate)s\"."
msgstr ""
"Mesures: tipus de camp no vàlid \"%(ttype)s\" per l'expressió "
"\"%(expression)s\" per l'agregat \"%(aggregate)s\"."
msgctxt "model:ir.message,text:no_dimensions"
msgid "Report \"%(report)s\" has no dimensions. At least one is needed."
msgstr "L'informe \"%(report)s\" no té dimensions. Al menys un és necessari."

View file

@ -766,14 +766,6 @@ msgstr ""
"La ejecución \"%(execution)s\" tiene parámetros de filtro y usted no "
"proporcionó ninguno de ellos. Por favor ejecutalo desde el menu."
msgctxt "model:ir.message,text:invalid_measures_type"
msgid ""
"Measures: Invalid field type \"%(ttype)s\" for expression \"%(expression)s\""
" for aggregate \"%(aggregate)s\"."
msgstr ""
"Medidas: tipo de campo no válido \"%(ttype)s\" para la expresión "
"\"%(expression)s\" para el agregado \"%(aggregate)s\"."
msgctxt "model:ir.message,text:no_dimensions"
msgid "Report \"%(report)s\" has no dimensions. At least one is needed."
msgstr "El informe \"%(report)s\" no tiene dimensiones. Al menos se necesita uno."

View file

@ -48,8 +48,5 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.message" id="false">
<field name="text">False</field>
</record>
<record model="ir.message" id="invalid_measures_type">
<field name="text">Measures: Invalid field type "%(ttype)s" for expression "%(expression)s" for aggregate "%(aggregate)s".</field>
</record>
</data>
</tryton>