Merge pull request #4 from Eficent/9.0-mig-bi_sql_editor-imp
[IMP]bi_sql_editor. Select View Order.pull/148/head
commit
48978f4cc0
|
@ -59,6 +59,14 @@ class BiSQLView(models.Model):
|
||||||
|
|
||||||
state = fields.Selection(selection_add=_STATE_SQL_EDITOR)
|
state = fields.Selection(selection_add=_STATE_SQL_EDITOR)
|
||||||
|
|
||||||
|
view_order = fields.Char(string='View Order',
|
||||||
|
required=True,
|
||||||
|
readonly=False,
|
||||||
|
states={'ui_valid': [('readonly', True)]},
|
||||||
|
default="pivot,graph,tree",
|
||||||
|
help='Comma-separated text. Possible values:'
|
||||||
|
' "graph", "pivot" or "tree"')
|
||||||
|
|
||||||
query = fields.Text(
|
query = fields.Text(
|
||||||
help="SQL Request that will be inserted as the view. Take care to :\n"
|
help="SQL Request that will be inserted as the view. Take care to :\n"
|
||||||
" * set a name for all your selected fields, specially if you use"
|
" * set a name for all your selected fields, specially if you use"
|
||||||
|
@ -113,6 +121,16 @@ class BiSQLView(models.Model):
|
||||||
rule_id = fields.Many2one(
|
rule_id = fields.Many2one(
|
||||||
string='Odoo Rule', comodel_name='ir.rule', readonly=True)
|
string='Odoo Rule', comodel_name='ir.rule', readonly=True)
|
||||||
|
|
||||||
|
@api.constrains('view_order')
|
||||||
|
@api.multi
|
||||||
|
def _check_view_order(self):
|
||||||
|
for rec in self:
|
||||||
|
if rec.view_order:
|
||||||
|
for vtype in rec.view_order.split(','):
|
||||||
|
if vtype not in ('graph', 'pivot', 'tree'):
|
||||||
|
raise UserError(_(
|
||||||
|
'Only graph, pivot or tree views are supported'))
|
||||||
|
|
||||||
# Compute Section
|
# Compute Section
|
||||||
@api.depends('is_materialized')
|
@api.depends('is_materialized')
|
||||||
@api.multi
|
@api.multi
|
||||||
|
@ -233,7 +251,7 @@ class BiSQLView(models.Model):
|
||||||
'type': 'ir.actions.act_window',
|
'type': 'ir.actions.act_window',
|
||||||
'res_model': self.model_id.model,
|
'res_model': self.model_id.model,
|
||||||
'search_view_id': self.search_view_id.id,
|
'search_view_id': self.search_view_id.id,
|
||||||
'view_mode': 'graph,pivot,tree',
|
'view_mode': self.action_id.view_mode,
|
||||||
}
|
}
|
||||||
|
|
||||||
# Prepare Function
|
# Prepare Function
|
||||||
|
@ -357,12 +375,20 @@ class BiSQLView(models.Model):
|
||||||
@api.multi
|
@api.multi
|
||||||
def _prepare_action(self):
|
def _prepare_action(self):
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
|
view_mode = self.view_order
|
||||||
|
first_view = view_mode.split(',')[0]
|
||||||
|
if first_view == 'tree':
|
||||||
|
view_id = self.tree_view_id.id
|
||||||
|
elif first_view == 'pivot':
|
||||||
|
view_id = self.pivot_view_id.id
|
||||||
|
else:
|
||||||
|
view_id = self.graph_view_id.id
|
||||||
return {
|
return {
|
||||||
'name': self.name,
|
'name': self.name,
|
||||||
'res_model': self.model_id.model,
|
'res_model': self.model_id.model,
|
||||||
'type': 'ir.actions.act_window',
|
'type': 'ir.actions.act_window',
|
||||||
'view_mode': 'graph,pivot,tree',
|
'view_mode': view_mode,
|
||||||
'view_id': self.graph_view_id.id,
|
'view_id': view_id,
|
||||||
'search_view_id': self.search_view_id.id,
|
'search_view_id': self.search_view_id.id,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,8 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||||
<group>
|
<group>
|
||||||
<group>
|
<group>
|
||||||
<field name="technical_name"/>
|
<field name="technical_name"/>
|
||||||
<field name="view_name" />
|
<field name="view_name"/>
|
||||||
|
<field name="view_order"/>
|
||||||
<field name="is_materialized"/>
|
<field name="is_materialized"/>
|
||||||
<field name="size"
|
<field name="size"
|
||||||
attrs="{'invisible': ['|', ('state', '=', 'draft'), ('is_materialized', '=', False)]}"/>
|
attrs="{'invisible': ['|', ('state', '=', 'draft'), ('is_materialized', '=', False)]}"/>
|
||||||
|
|
Loading…
Reference in New Issue