summaryrefslogtreecommitdiff
path: root/addons/google_spreadsheet/static
diff options
context:
space:
mode:
authorDenis Ledoux <dle@openerp.com>2013-06-27 19:11:37 +0200
committerDenis Ledoux <dle@openerp.com>2013-06-27 19:11:37 +0200
commitaa28839fb1818db22ce58606cc2a831ee39546ef (patch)
tree423ee638e382bdc990e12331cecc0048814e5dc1 /addons/google_spreadsheet/static
parent53358465b32fb99295bf75a2a7ffd3f1d8157af6 (diff)
[ADD]google_spreadsheet
bzr revid: dle@openerp.com-20130627171137-5r1gyciz92c8abbr
Diffstat (limited to 'addons/google_spreadsheet/static')
-rw-r--r--addons/google_spreadsheet/static/src/js/search.js54
-rw-r--r--addons/google_spreadsheet/static/src/xml/addtospreadsheet.xml5
2 files changed, 59 insertions, 0 deletions
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 @@
+<template>
+<div t-name="SearchView.addtogooglespreadsheet" class="oe_searchview_dashboard">
+ <h4>Add to Google Spreadsheet</h4>
+</div>
+</template> \ No newline at end of file