diff --git a/mis_builder/models/mis_builder.py b/mis_builder/models/mis_builder.py index 275847a8..20271920 100644 --- a/mis_builder/models/mis_builder.py +++ b/mis_builder/models/mis_builder.py @@ -667,12 +667,12 @@ class MisReportInstance(models.Model): @api.multi def display_settings(self): - self.ensure_one() + assert len(self._ids) <= 1 view_id = self.env.ref('mis_builder.mis_report_instance_view_form') return { 'type': 'ir.actions.act_window', 'res_model': 'mis.report.instance', - 'res_id': self.id, + 'res_id': self.id if self.id else False, 'view_mode': 'form', 'view_type': 'form', 'views': [(view_id.id, 'form')], diff --git a/mis_builder/static/src/js/mis_builder.js b/mis_builder/static/src/js/mis_builder.js index 1babe907..e0346bd9 100644 --- a/mis_builder/static/src/js/mis_builder.js +++ b/mis_builder/static/src/js/mis_builder.js @@ -13,15 +13,23 @@ openerp.mis_builder = function(instance) { reload_widget: function() { var self = this self.mis_report_instance_id = self.getParent().datarecord.id - self.generate_content(); + if (self.mis_report_instance_id) { + self.generate_content(); + } else { + self.display_settings(); + } }, start: function() { this._super.apply(this, arguments); var self = this; self.mis_report_instance_id = self.getParent().datarecord.id - //self.getParent().dataset.context['no_destroy'] = true; - self.generate_content(); + if (self.mis_report_instance_id) { + self.getParent().dataset.context['no_destroy'] = true; + self.generate_content(); + } else { + self.display_settings(); + } }, get_context: function() {