[FIX] Open records with selected ids for m2o popup.
bzr revid: sma@tinyerp.com-20110502132512-r9x0zts9wu21xrem
This commit is contained in:
parent
5b5edbe9b9
commit
9be03eaf9e
|
@ -329,7 +329,7 @@ class DataSet(openerpweb.Controller):
|
||||||
@openerpweb.jsonrequest
|
@openerpweb.jsonrequest
|
||||||
def search_read(self, request, model, fields=False, offset=0, limit=False, domain=None, context=None, sort=None):
|
def search_read(self, request, model, fields=False, offset=0, limit=False, domain=None, context=None, sort=None):
|
||||||
return self.do_search_read(request, model, fields, offset, limit, domain, context, sort)
|
return self.do_search_read(request, model, fields, offset, limit, domain, context, sort)
|
||||||
def do_search_read(self, request, model, fields=False, offset=0, limit=False, domain=None, context=None, sort=None):
|
def do_search_read(self, request, model, fields=False, offset=0, limit=False, domain=None, context=None, sort=None, ids=False):
|
||||||
""" Performs a search() followed by a read() (if needed) using the
|
""" Performs a search() followed by a read() (if needed) using the
|
||||||
provided search criteria
|
provided search criteria
|
||||||
|
|
||||||
|
@ -346,7 +346,8 @@ class DataSet(openerpweb.Controller):
|
||||||
:rtype: list
|
:rtype: list
|
||||||
"""
|
"""
|
||||||
Model = request.session.model(model)
|
Model = request.session.model(model)
|
||||||
ids = Model.search(domain or [], offset or 0, limit or False,
|
if not ids:
|
||||||
|
ids = Model.search(domain or [], offset or 0, limit or False,
|
||||||
sort or False, request.context)
|
sort or False, request.context)
|
||||||
if fields and fields == ['id']:
|
if fields and fields == ['id']:
|
||||||
# shortcut read if we only want the ids
|
# shortcut read if we only want the ids
|
||||||
|
@ -562,11 +563,11 @@ class ListView(View):
|
||||||
|
|
||||||
@openerpweb.jsonrequest
|
@openerpweb.jsonrequest
|
||||||
def fill(self, request, model, id, domain,
|
def fill(self, request, model, id, domain,
|
||||||
offset=0, limit=False):
|
offset=0, limit=False, ids=False):
|
||||||
return self.do_fill(request, model, id, domain, offset, limit)
|
return self.do_fill(request, model, id, domain, offset, limit, ids)
|
||||||
|
|
||||||
def do_fill(self, request, model, id, domain,
|
def do_fill(self, request, model, id, domain,
|
||||||
offset=0, limit=False):
|
offset=0, limit=False, ids=False):
|
||||||
""" Returns all information needed to fill a table:
|
""" Returns all information needed to fill a table:
|
||||||
|
|
||||||
* view with processed ``editable`` flag
|
* view with processed ``editable`` flag
|
||||||
|
@ -588,7 +589,7 @@ class ListView(View):
|
||||||
|
|
||||||
rows = DataSet().do_search_read(request, model,
|
rows = DataSet().do_search_read(request, model,
|
||||||
offset=offset, limit=limit,
|
offset=offset, limit=limit,
|
||||||
domain=domain)
|
domain=domain, ids=ids)
|
||||||
eval_context = request.session.evaluation_context(
|
eval_context = request.session.evaluation_context(
|
||||||
request.context)
|
request.context)
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -316,7 +316,8 @@ openerp.base.ListView = openerp.base.Controller.extend(
|
||||||
'model': this.dataset.model,
|
'model': this.dataset.model,
|
||||||
'id': this.view_id,
|
'id': this.view_id,
|
||||||
'context': this.dataset.context,
|
'context': this.dataset.context,
|
||||||
'domain': this.dataset.domain
|
'domain': this.dataset.domain,
|
||||||
|
'ids': this.dataset.ids
|
||||||
}, this.do_fill_table);
|
}, this.do_fill_table);
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -9,7 +9,6 @@ openerp.base.m2o = openerp.base.Controller.extend({
|
||||||
this.relation = model;
|
this.relation = model;
|
||||||
this.dataset = dataset;
|
this.dataset = dataset;
|
||||||
this.name = this.element.attr('name');
|
this.name = this.element.attr('name');
|
||||||
|
|
||||||
this.selectedResultRow = 0;
|
this.selectedResultRow = 0;
|
||||||
this.selectedResult = false;
|
this.selectedResult = false;
|
||||||
this.numResultRows = 0;
|
this.numResultRows = 0;
|
||||||
|
@ -17,7 +16,6 @@ openerp.base.m2o = openerp.base.Controller.extend({
|
||||||
this.specialKeyPressed = false;
|
this.specialKeyPressed = false;
|
||||||
this.lastKey = null;
|
this.lastKey = null;
|
||||||
this.delayedRequest = null;
|
this.delayedRequest = null;
|
||||||
|
|
||||||
this.lastTextResult = this.element.val();
|
this.lastTextResult = this.element.val();
|
||||||
this.lastSearch = null;
|
this.lastSearch = null;
|
||||||
|
|
||||||
|
@ -181,8 +179,8 @@ openerp.base.m2o = openerp.base.Controller.extend({
|
||||||
case 13:
|
case 13:
|
||||||
case 1:
|
case 1:
|
||||||
var $selectedRow = jQuery("#autoComplete" + this.name + "_" + this.selectedResultRow);
|
var $selectedRow = jQuery("#autoComplete" + this.name + "_" + this.selectedResultRow);
|
||||||
this.dataset.ids = _.without.apply(null, [this.dataset.ids].concat(this.result_ids));
|
this.dataset.ids = this.result_ids;
|
||||||
|
this.dataset.domain = [];
|
||||||
this.dataset.count = this.dataset.ids.length;
|
this.dataset.count = this.dataset.ids.length;
|
||||||
if ($selectedRow.find('td').attr('id') == 'more') {
|
if ($selectedRow.find('td').attr('id') == 'more') {
|
||||||
var element_id = _.uniqueId("act_window_dialog");
|
var element_id = _.uniqueId("act_window_dialog");
|
||||||
|
@ -199,6 +197,7 @@ openerp.base.m2o = openerp.base.Controller.extend({
|
||||||
});
|
});
|
||||||
var event_list = new openerp.base.ListView(this.view_manager, this.session, element_id, this.dataset, false);
|
var event_list = new openerp.base.ListView(this.view_manager, this.session, element_id, this.dataset, false);
|
||||||
event_list.start();
|
event_list.start();
|
||||||
|
event_list.do_reload();
|
||||||
}
|
}
|
||||||
this.setCompletionText($selectedRow, true);
|
this.setCompletionText($selectedRow, true);
|
||||||
this.clearResults();
|
this.clearResults();
|
||||||
|
|
Loading…
Reference in New Issue