mirror of
https://github.com/OCA/reporting-engine.git
synced 2025-02-16 16:30:38 +02:00
[IMP] bi_sql_editor : allow to reset to the previous state, and not only into 'draft' state
This commit is contained in:
@@ -298,28 +298,33 @@ class BiSQLView(models.Model):
|
||||
sql_view.cron_id.active = True
|
||||
sql_view.state = "model_valid"
|
||||
|
||||
def button_reset_to_model_valid(self):
|
||||
views = self.filtered(lambda x: x.state == "ui_valid")
|
||||
views.mapped("tree_view_id").unlink()
|
||||
views.mapped("graph_view_id").unlink()
|
||||
views.mapped("pivot_view_id").unlink()
|
||||
views.mapped("search_view_id").unlink()
|
||||
views.mapped("action_id").unlink()
|
||||
views.mapped("menu_id").unlink()
|
||||
return views.write({"state": "model_valid"})
|
||||
|
||||
def button_reset_to_sql_valid(self):
|
||||
self.button_reset_to_model_valid()
|
||||
views = self.filtered(lambda x: x.state == "model_valid")
|
||||
for sql_view in views:
|
||||
# Drop SQL View (and indexes by cascade)
|
||||
if sql_view.is_materialized:
|
||||
sql_view._drop_view()
|
||||
if sql_view.cron_id:
|
||||
sql_view.cron_id.active = False
|
||||
# Drop ORM
|
||||
sql_view._drop_model_and_fields()
|
||||
return views.write({"state": "sql_valid"})
|
||||
|
||||
def button_set_draft(self):
|
||||
for sql_view in self.filtered(lambda x: x.state != "draft"):
|
||||
sql_view.menu_id.unlink()
|
||||
sql_view.action_id.unlink()
|
||||
sql_view.tree_view_id.unlink()
|
||||
sql_view.graph_view_id.unlink()
|
||||
sql_view.pivot_view_id.unlink()
|
||||
sql_view.search_view_id.unlink()
|
||||
|
||||
if sql_view.state in ("model_valid", "ui_valid"):
|
||||
# Drop SQL View (and indexes by cascade)
|
||||
if sql_view.is_materialized:
|
||||
sql_view._drop_view()
|
||||
|
||||
if sql_view.cron_id:
|
||||
sql_view.cron_id.active = False
|
||||
|
||||
# Drop ORM
|
||||
sql_view._drop_model_and_fields()
|
||||
|
||||
super(BiSQLView, sql_view).button_set_draft()
|
||||
return True
|
||||
self.button_reset_to_model_valid()
|
||||
self.button_reset_to_sql_valid()
|
||||
return super().button_set_draft()
|
||||
|
||||
def button_create_ui(self):
|
||||
self.tree_view_id = self.env["ir.ui.view"].create(self._prepare_tree_view()).id
|
||||
|
||||
@@ -34,14 +34,20 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//header" position="inside">
|
||||
<button
|
||||
name="button_set_draft"
|
||||
name="button_reset_to_sql_valid"
|
||||
type="object"
|
||||
states="model_valid,ui_valid"
|
||||
string="Set to Draft"
|
||||
states="model_valid"
|
||||
string="Delete SQL Elements"
|
||||
groups="sql_request_abstract.group_sql_request_manager"
|
||||
confirm="It will delete the materialized view, and all the previous mapping realized with the columns"
|
||||
/>
|
||||
<button
|
||||
name="button_reset_to_model_valid"
|
||||
type="object"
|
||||
states="ui_valid"
|
||||
string="Delete UI"
|
||||
groups="sql_request_abstract.group_sql_request_manager"
|
||||
confirm="Are you sure you want to set to draft this SQL View. It will delete the materialized view, and all the previous mapping realized with the columns"
|
||||
/>
|
||||
|
||||
<button
|
||||
name="button_create_sql_view_and_model"
|
||||
type="object"
|
||||
@@ -66,13 +72,6 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
class="oe_highlight"
|
||||
help="This will create Odoo View, Action and Menu"
|
||||
/>
|
||||
<button
|
||||
name="button_refresh_materialized_view"
|
||||
type="object"
|
||||
string="Refresh"
|
||||
help="Refresh Materialized View"
|
||||
attrs="{'invisible': ['|', ('state', 'in', ('draft', 'sql_valid')), ('is_materialized', '=', False)]}"
|
||||
/>
|
||||
<button
|
||||
name="button_open_view"
|
||||
type="object"
|
||||
@@ -80,6 +79,13 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
states="ui_valid"
|
||||
class="oe_highlight"
|
||||
/>
|
||||
<button
|
||||
name="button_refresh_materialized_view"
|
||||
type="object"
|
||||
string="Refresh"
|
||||
help="Refresh Materialized View"
|
||||
attrs="{'invisible': ['|', ('state', 'in', ('draft', 'sql_valid')), ('is_materialized', '=', False)]}"
|
||||
/>
|
||||
</xpath>
|
||||
<group name="group_main_info" position="inside">
|
||||
<group>
|
||||
|
||||
Reference in New Issue
Block a user