OCA reporting engine fork for dev and update.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

38 lines
1.3 KiB

# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, tools
class BiSQLView(models.Model):
_inherit = 'bi.sql.view'
def check_manual_fields(self, model):
# check the fields we need are defined on self, to stop it going
# early on install / startup - particularly problematic during upgrade
if 'group_operator' in tools.table_columns(
self.env.cr, 'bi_sql_view_field') and\
model._name.startswith(self._model_prefix):
# Use SQL instead of ORM, as ORM might not be fully initialised -
# we have no control over the order that fields are defined!
# We are not concerned about user security rules.
self.env.cr.execute(
"""
SELECT
f.name,
f.ttype,
f.group_operator
FROM
bi_sql_view v
LEFT JOIN bi_sql_view_field f ON f.bi_sql_view_id = v.id
WHERE
v.model_name = %s
;
""", (model._name,)
)
sql_fields = self.env.cr.fetchall()
for sql_field in sql_fields:
if sql_field[0] in model._fields and\
sql_field[1] in ('integer', 'float') and\
sql_field[2]:
model._fields[sql_field[0]].group_operator = sql_field[2]