mirror of
https://github.com/OCA/reporting-engine.git
synced 2025-02-16 16:30:38 +02:00
[FIX] bi_view_editor: Apostrophe + migration script
Apostrophe in model name raised ValueError. Added needed migration script.
This commit is contained in:
@@ -7,6 +7,8 @@ from odoo import api, fields, models, tools
|
||||
from odoo.exceptions import UserError
|
||||
from odoo.tools.translate import _
|
||||
|
||||
from odoo.addons.base_sparse_field.models.fields import Serialized
|
||||
|
||||
|
||||
class BveView(models.Model):
|
||||
_name = 'bve.view'
|
||||
@@ -38,7 +40,7 @@ class BveView(models.Model):
|
||||
('created', 'Created')],
|
||||
default='draft',
|
||||
copy=False)
|
||||
data = fields.Text(
|
||||
data = Serialized(
|
||||
help="Use the special query builder to define the query "
|
||||
"to generate your report dataset. "
|
||||
"NOTE: To be edited, the query should be in 'Draft' status.")
|
||||
@@ -62,12 +64,6 @@ class BveView(models.Model):
|
||||
_('Custom BI View names must be unique!')),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def _get_format_data(cls, data):
|
||||
data = data.replace('\'', '"')
|
||||
data = data.replace(': u"', ':"')
|
||||
return data
|
||||
|
||||
@api.multi
|
||||
def _create_view_arch(self):
|
||||
self.ensure_one()
|
||||
@@ -95,7 +91,7 @@ class BveView(models.Model):
|
||||
view_fields.append(field_def)
|
||||
return view_fields
|
||||
|
||||
fields_info = json.loads(self._get_format_data(self.data))
|
||||
fields_info = json.loads(self.data)
|
||||
view_fields = _get_field_list(fields_info)
|
||||
return view_fields
|
||||
|
||||
@@ -117,7 +113,7 @@ class BveView(models.Model):
|
||||
view_fields.append(field_def)
|
||||
return view_fields
|
||||
|
||||
fields_info = json.loads(self._get_format_data(self.data))
|
||||
fields_info = json.loads(self.data)
|
||||
|
||||
view_fields = _get_field_list(fields_info)
|
||||
return view_fields
|
||||
@@ -218,7 +214,7 @@ class BveView(models.Model):
|
||||
res = self.env.cr.fetchall()
|
||||
return [x[0] for x in res]
|
||||
|
||||
info = json.loads(self._get_format_data(self.data))
|
||||
info = json.loads(self.data)
|
||||
model_names = list(set([f['model'] for f in info]))
|
||||
read_groups = set.intersection(*[set(
|
||||
group_ids_with_access(model_name, 'read')
|
||||
@@ -289,7 +285,7 @@ class BveView(models.Model):
|
||||
|
||||
check_empty_data(self.data)
|
||||
|
||||
formatted_data = json.loads(self._get_format_data(self.data))
|
||||
formatted_data = json.loads(self.data)
|
||||
info = get_fields_info(formatted_data)
|
||||
select_fields = get_fields(info)
|
||||
tables = get_tables(info)
|
||||
@@ -387,7 +383,7 @@ class BveView(models.Model):
|
||||
self._create_sql_view()
|
||||
|
||||
# create model and fields
|
||||
data = json.loads(self._get_format_data(self.data))
|
||||
data = json.loads(self.data)
|
||||
model_vals = {
|
||||
'name': self.name,
|
||||
'model': self.model_name,
|
||||
|
||||
Reference in New Issue
Block a user