From 6af24261ba6450ea2e8ce51e5d3550821fc44fd8 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 15 Sep 2011 10:12:41 +0200 Subject: [PATCH] [ADD] Added duplicate feature to FormView bzr revid: fme@openerp.com-20110915081241-3q4us9bweru4iyx1 --- addons/web/static/src/js/view_form.js | 15 +++++++++++++++ addons/web/static/src/xml/base.xml | 1 + 2 files changed, 16 insertions(+) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index b097fc6abf0..a2188d736fd 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -89,6 +89,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# this.$form_header.find('button.oe_form_button_save_edit').click(this.do_save_edit); this.$form_header.find('button.oe_form_button_cancel').click(this.do_cancel); this.$form_header.find('button.oe_form_button_new').click(this.on_button_new); + this.$form_header.find('button.oe_form_button_duplicate').click(this.on_button_duplicate); if (this.options.sidebar && this.options.sidebar_id) { this.sidebar = new openerp.web.Sidebar(this, this.options.sidebar_id); @@ -307,6 +308,20 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# }); return def.promise(); }, + on_button_duplicate: function() { + var self = this; + var def = $.Deferred(); + $.when(this.has_been_loaded).then(function() { + if (self.can_be_discarded()) { + self.dataset.call('copy', [self.datarecord.id, {}, self.dataset.context]).then(function(new_id) { + return self.on_created({ result : new_id }); + }).then(function() { + def.resolve(); + }); + } + }); + return def.promise(); + }, can_be_discarded: function() { return !this.dirty_for_user || confirm(_t("Warning, the record has been modified, your changes will be discarded.")); }, diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 422ecca5760..83ca819b4e6 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -661,6 +661,7 @@ +