summaryrefslogtreecommitdiff
path: root/addons/base/static/src
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2011-04-26 13:24:13 +0200
committerniv-openerp <nicolas.vanhoren@openerp.com>2011-04-26 13:24:13 +0200
commit2cfc487ccddc9b1a21c23facdd44aee27b0d82c9 (patch)
tree64a99476fb25925a4437405cc9722d2c2fe54076 /addons/base/static/src
parent5e2cda5a0c382c297e45bb28d32b9ad7c89b9271 (diff)
[IMP] Read-only many2many implemented.
bzr revid: nicolas.vanhoren@openerp.com-20110426112413-nfoozpnol8zbli26
Diffstat (limited to 'addons/base/static/src')
-rw-r--r--addons/base/static/src/js/data.js9
-rw-r--r--addons/base/static/src/js/form.js28
2 files changed, 31 insertions, 6 deletions
diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js
index a29f320b79c..bd84f1d7229 100644
--- a/addons/base/static/src/js/data.js
+++ b/addons/base/static/src/js/data.js
@@ -183,6 +183,15 @@ openerp.base.DataSetSearch = openerp.base.DataSet.extend({
openerp.base.DataSetRelational = openerp.base.DataSet.extend( /** @lends openerp.base.DataSet# */{
});
+openerp.base.DataSetMany2Many = openerp.base.DataSetSearch.extend({
+ /* should extend DataSetStatic instead, but list view still does not support it
+ */
+
+ unlink: function(ids) {
+ // just do nothing
+ },
+});
+
};
// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax:
diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js
index c6ec07b11e6..08c4a4fbb74 100644
--- a/addons/base/static/src/js/form.js
+++ b/addons/base/static/src/js/form.js
@@ -900,20 +900,36 @@ openerp.base.form.FieldMany2Many = openerp.base.form.Field.extend({
},
start: function() {
this._super.apply(this, arguments);
- this.dataset = new openerp.base.DataSetSearch(this.session, this.field.relation);
- this.list_view = new openerp.base.ListView(undefined, this.view.session,
- this.list_id, this.dataset, false, undefined);
+ this.dataset = new openerp.base.DataSetMany2Many(this.session, this.field.relation);
+ this.list_view = new openerp.base.form.Many2ManyListView(undefined, this.view.session,
+ this.list_id, this.dataset, false, {'selected': false, 'addable': null, 'deletable': false});
this.list_view.start();
},
set_value: function(value) {
if (value != false) {
- this.dataset.ids = value;
- this.dataset.count = value.length;
- this.list_view.do_update();
+ // this is not correct behavior, need to change once list view can work with
+ // static datasets
+ this.dataset.domain = [["id","in",value]];
+ /*this.dataset.ids = value;
+ this.dataset.count = value.length;*/
+ this.list_view.do_reload();
}
}
});
+openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({
+ do_delete: function (e) {
+ /*
+ e.stopImmediatePropagation();
+ var ids = [this.rows[$(e.currentTarget).closest('tr').prevAll().length].data.id.value];
+ this.dataset.ids = _.without.apply(null, [this.dataset.ids].concat(ids));
+ this.dataset.count = this.dataset.ids.length;
+ // there may be a faster way
+ this.do_reload();
+ */
+ }
+});
+
openerp.base.form.FieldReference = openerp.base.form.Field.extend({
init: function(view, node) {
this._super(view, node);