[IMP] Many2x search popup wip. Currently working, need to add possibility to create new object.

bzr revid: nicolas.vanhoren@openerp.com-20110509115233-j1j004r9yxlhm63x
This commit is contained in:
niv-openerp 2011-05-09 13:52:33 +02:00
parent cb854aa0b3
commit a1149a97c6
2 changed files with 24 additions and 5 deletions

View File

@ -964,7 +964,15 @@ openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({
e.stopImmediatePropagation();
var pop = new openerp.base.form.Many2XSelectPopup(null, this.m2m_field.view.session);
pop.select_element(this.model);
//TODO niv: add callback
var self = this;
pop.on_select_element.add(function(element_id) {
if(! _.detect(self.dataset.ids, function(x) {return x == element_id;})) {
self.dataset.ids.push(element_id);
self.dataset.count = self.dataset.ids.length;
self.do_reload();
}
pop.stop();
});
},
on_select_row: function(event) {
var $target = $(event.currentTarget);
@ -998,8 +1006,13 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({
this.start();
},
start: function() {
this._super();
this.dataset = new openerp.base.DataSetSearch(this.session, this.model);
this.setup_search_view();
this.view_list = new openerp.base.form.Many2XPopupListView( null, this.session,
this.element_id + "_view_list", this.dataset, false);
this.view_list.popup = this;
this.view_list.start();
},
setup_search_view: function() {
var self = this;
@ -1008,17 +1021,22 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({
}
this.searchview = new openerp.base.SearchView(this, this.session, this.element_id + "_search",
this.dataset, false, {});
/*this.searchview.on_search.add(function(domains, contexts, groupbys) {
//TODO niv: do it correctly
self.views[self.active_view].controller.do_search.call(
this.searchview.on_search.add(function(domains, contexts, groupbys) {
self.view_list.do_search.call(
self, domains, contexts, groupbys);
});*/
});
return this.searchview.start();
},
on_select_element: function(element_id) {
}
});
openerp.base.form.Many2XPopupListView = openerp.base.ListView.extend({
switch_to_record: function(index) {
this.popup.on_select_element(this.dataset.ids[index]);
}
});
openerp.base.form.FieldReference = openerp.base.form.Field.extend({
init: function(view, node) {
this._super(view, node);

View File

@ -575,6 +575,7 @@
<t t-name="Many2XSelectPopup">
<div t-att-id="element_id">
<div t-att-id="element_id + '_search'"></div>
<div t-att-id="element_id + '_view_list'"></div>
</div>
</t>
</templates>