create ui now create tree view [IMP] fr translation [IMP] add last refresh date time on the action name of each sql materialized view

This commit is contained in:
Sylvain LE GAL
2017-07-14 16:17:07 +02:00
committed by David James
parent 5b8cf460ad
commit 8425bcd972
6 changed files with 227 additions and 157 deletions

View File

@@ -4,6 +4,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import logging
from datetime import datetime
from psycopg2 import ProgrammingError
from openerp import _, api, fields, models, SUPERUSER_ID
@@ -86,6 +87,9 @@ class BiSQLView(models.Model):
model_id = fields.Many2one(
string='Odoo Model', comodel_name='ir.model', readonly=True)
tree_view_id = fields.Many2one(
string='Odoo Tree View', comodel_name='ir.ui.view', readonly=True)
graph_view_id = fields.Many2one(
string='Odoo Graph View', comodel_name='ir.ui.view', readonly=True)
@@ -186,8 +190,10 @@ class BiSQLView(models.Model):
# Drop ORM
sql_view._drop_model_and_fields()
sql_view.tree_view_id.unlink()
sql_view.graph_view_id.unlink()
sql_view.pivot_view_id.unlink()
sql_view.search_view_id.unlink()
sql_view.action_id.unlink()
sql_view.menu_id.unlink()
sql_view.rule_id.unlink()
@@ -197,6 +203,8 @@ class BiSQLView(models.Model):
@api.multi
def button_create_ui(self):
self.tree_view_id = self.env['ir.ui.view'].create(
self._prepare_tree_view()).id
self.graph_view_id = self.env['ir.ui.view'].create(
self._prepare_graph_view()).id
self.pivot_view_id = self.env['ir.ui.view'].create(
@@ -225,8 +233,7 @@ class BiSQLView(models.Model):
'type': 'ir.actions.act_window',
'res_model': self.model_id.model,
'search_view_id': self.search_view_id.id,
'view_type': 'form',
'view_mode': 'graph,pivot',
'view_mode': 'graph,pivot,tree',
}
# Prepare Function
@@ -282,6 +289,21 @@ class BiSQLView(models.Model):
'global': True,
}
@api.multi
def _prepare_tree_view(self):
self.ensure_one()
return {
'name': self.name,
'type': 'tree',
'model': self.model_id.model,
'arch':
"""<?xml version="1.0"?>"""
"""<tree string="Analysis">{}"""
"""</tree>""".format("".join(
[x._prepare_tree_field()
for x in self.bi_sql_view_field_ids]))
}
@api.multi
def _prepare_graph_view(self):
self.ensure_one()
@@ -339,8 +361,8 @@ class BiSQLView(models.Model):
'name': self.name,
'res_model': self.model_id.model,
'type': 'ir.actions.act_window',
'view_type': 'form',
'view_mode': 'graph,pivot',
'view_mode': 'graph,pivot,tree',
'view_id': self.graph_view_id.id,
'search_view_id': self.search_view_id.id,
}
@@ -504,6 +526,12 @@ class BiSQLView(models.Model):
sql_view.materialized_text, sql_view.view_name)
self._log_execute(req)
sql_view._refresh_size()
if sql_view.action_id:
# Alter name of the action, to display last refresh datetime
# of the materialized view
sql_view.action_id.name = "%s (%s)" % (
self.name,
datetime.utcnow().strftime(_("%m/%d/%Y %H:%M:%S UTC")))
@api.multi
def _refresh_size(self):