From aa28839fb1818db22ce58606cc2a831ee39546ef Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Thu, 27 Jun 2013 19:11:37 +0200 Subject: [ADD]google_spreadsheet bzr revid: dle@openerp.com-20130627171137-5r1gyciz92c8abbr --- addons/google_spreadsheet/static/src/js/search.js | 54 ++++++++++++++++++++++ .../static/src/xml/addtospreadsheet.xml | 5 ++ 2 files changed, 59 insertions(+) create mode 100644 addons/google_spreadsheet/static/src/js/search.js create mode 100644 addons/google_spreadsheet/static/src/xml/addtospreadsheet.xml (limited to 'addons/google_spreadsheet/static/src') diff --git a/addons/google_spreadsheet/static/src/js/search.js b/addons/google_spreadsheet/static/src/js/search.js new file mode 100644 index 00000000000..beac52c4d6f --- /dev/null +++ b/addons/google_spreadsheet/static/src/js/search.js @@ -0,0 +1,54 @@ +openerp.google_spreadsheet = function(instance) { + var _t = instance.web._t; + instance.web.FormView.include({ + on_processed_onchange: function(result, processed) { + var self = this; + + var fields = self.fields; + _(result.selection).each(function (selection, fieldname) { + var field = fields[fieldname]; + if (!field) { return; } + field.field.selection = selection; + field.values = selection; + field.renderElement(); + }); + return this._super(result, processed); + }, + }); + instance.board.AddToGoogleSpreadsheet = instance.web.search.Input.extend({ + template: 'SearchView.addtogooglespreadsheet', + _in_drawer: true, + start: function () { + var self = this; + this.$el.on('click', 'h4', function(){ + var view = self.view; + var data = view.build_search_data(); + var model = view.model; + var list_view = self.view.getParent().views['list']; + var view_id = list_view ? list_view.view_id : false; + var context = new instance.web.CompoundContext(view.dataset.get_context() || []); + var domain = new instance.web.CompoundDomain(view.dataset.get_domain() || []); + _.each(data.contexts, context.add, context); + _.each(data.domains, domain.add, domain); + domain = JSON.stringify(domain.eval()); + var groupbys = instance.web.pyeval.eval('groupbys', data.groupbys).join(" "); + var view_id = view_id; + var ds = new instance.web.DataSet(self, 'google.drive.config'); + ds.call('set_spreadsheet', [model, domain, groupbys, view_id]).done(function (url) { + if (url){ + window.open(url, '_blank'); + } + }); + }); + }, + }); + instance.web.SearchView.include({ + add_common_inputs: function() { + this._super(); + var vm = this.getParent().getParent(); + if (vm.inner_action && vm.inner_action.views) { + (new instance.board.AddToGoogleSpreadsheet(this)); + } + } + }); +}; \ No newline at end of file diff --git a/addons/google_spreadsheet/static/src/xml/addtospreadsheet.xml b/addons/google_spreadsheet/static/src/xml/addtospreadsheet.xml new file mode 100644 index 00000000000..faf984141a6 --- /dev/null +++ b/addons/google_spreadsheet/static/src/xml/addtospreadsheet.xml @@ -0,0 +1,5 @@ + \ No newline at end of file -- cgit v1.2.3 From 5a1b08bfbd9cc10e1a066dc39b1eeeaa47c3edec Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Mon, 22 Jul 2013 16:30:34 +0200 Subject: [FIX]google_spreadsheet: write formula once spreadsheet opened bzr revid: dle@openerp.com-20130722143034-4tf8mr71ocf049ma --- addons/google_spreadsheet/static/src/js/search.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'addons/google_spreadsheet/static/src') diff --git a/addons/google_spreadsheet/static/src/js/search.js b/addons/google_spreadsheet/static/src/js/search.js index beac52c4d6f..0812c12638e 100644 --- a/addons/google_spreadsheet/static/src/js/search.js +++ b/addons/google_spreadsheet/static/src/js/search.js @@ -34,9 +34,11 @@ openerp.google_spreadsheet = function(instance) { var groupbys = instance.web.pyeval.eval('groupbys', data.groupbys).join(" "); var view_id = view_id; var ds = new instance.web.DataSet(self, 'google.drive.config'); - ds.call('set_spreadsheet', [model, domain, groupbys, view_id]).done(function (url) { + ds.call('set_spreadsheet', [model]).done(function (url) { if (url){ window.open(url, '_blank'); + var key = url.match("(key=|/d/)([A-Za-z0-9-_]+)")[2] + ds.call('write_config_formula', [key, model, domain, groupbys, view_id]); } }); }); -- cgit v1.2.3 From 8fe619095bb4f4b5ddd1a379e1194bcb95a8bb5c Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Mon, 22 Jul 2013 18:45:08 +0200 Subject: [ADD]google_spreadsheet: view (ir.attachement) in reporting, formula used in description of attachement bzr revid: dle@openerp.com-20130722164508-1849vgrr6j0j6yhk --- addons/google_spreadsheet/static/src/js/search.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'addons/google_spreadsheet/static/src') diff --git a/addons/google_spreadsheet/static/src/js/search.js b/addons/google_spreadsheet/static/src/js/search.js index 0812c12638e..c46ec615792 100644 --- a/addons/google_spreadsheet/static/src/js/search.js +++ b/addons/google_spreadsheet/static/src/js/search.js @@ -34,11 +34,9 @@ openerp.google_spreadsheet = function(instance) { var groupbys = instance.web.pyeval.eval('groupbys', data.groupbys).join(" "); var view_id = view_id; var ds = new instance.web.DataSet(self, 'google.drive.config'); - ds.call('set_spreadsheet', [model]).done(function (url) { - if (url){ - window.open(url, '_blank'); - var key = url.match("(key=|/d/)([A-Za-z0-9-_]+)")[2] - ds.call('write_config_formula', [key, model, domain, groupbys, view_id]); + ds.call('set_spreadsheet', [model, domain, groupbys, view_id]).done(function (res) { + if (res['url']){ + window.open(res['url'], '_blank'); } }); }); -- cgit v1.2.3