Do not include removed records in the search domain of One2Many
Adding an OR-ed clause prevents the domain inversion to set any unique values when creating a record from the search window. The removed records can be re-add with the undelete button instead. Closes #14540 (grafted from 4a30450c54bd6d75614fa1cfffeb7498a669cbcf) --HG-- branch : 6.0
This commit is contained in:
@@ -2512,11 +2512,6 @@
|
||||
}
|
||||
return result;
|
||||
},
|
||||
get_removed_ids: function(record) {
|
||||
return record._values[this.name].record_removed.map(function(r) {
|
||||
return r.id;
|
||||
});
|
||||
},
|
||||
get_domain: function(record) {
|
||||
var domains = this.get_domains(record);
|
||||
var attr_domain = domains[1];
|
||||
|
||||
@@ -3313,8 +3313,6 @@ function eval_pyson(value){
|
||||
var context = this.field.get_search_context(this.record);
|
||||
domain = [domain,
|
||||
this.record.expr_eval(this.attributes.add_remove)];
|
||||
var removed_ids = this.field.get_removed_ids(this.record);
|
||||
domain = ['OR', domain, ['id', 'in', removed_ids]];
|
||||
var text = this.wid_text.val();
|
||||
|
||||
var sequence = this._sequence();
|
||||
@@ -3567,8 +3565,6 @@ function eval_pyson(value){
|
||||
var domain = this.field.get_domain(this.record);
|
||||
domain = [domain,
|
||||
this.record.expr_eval(this.attributes.add_remove)];
|
||||
var removed_ids = this.field.get_removed_ids(this.record);
|
||||
domain = ['OR', domain, ['id', 'in', removed_ids]];
|
||||
return Sao.common.update_completion(
|
||||
this.wid_text, this.record, this.field, model, domain);
|
||||
},
|
||||
|
||||
@@ -862,9 +862,6 @@ class O2MField(Field):
|
||||
self._set_default_value(record)
|
||||
super(O2MField, self).state_set(record, states=states)
|
||||
|
||||
def get_removed_ids(self, record):
|
||||
return [x.id for x in record.value[self.name].record_removed]
|
||||
|
||||
def domain_get(self, record):
|
||||
screen_domain, attr_domain = self.domains_get(record)
|
||||
# Forget screen_domain because it only means at least one record
|
||||
|
||||
@@ -459,8 +459,6 @@ class One2Many(Widget):
|
||||
domain = self.field.domain_get(self.record)
|
||||
context = self.field.get_search_context(self.record)
|
||||
domain = [domain, self.record.expr_eval(self.attrs.get('add_remove'))]
|
||||
removed_ids = self.field.get_removed_ids(self.record)
|
||||
domain = ['OR', domain, ('id', 'in', removed_ids)]
|
||||
text = self.wid_text.get_text()
|
||||
|
||||
self.focus_out = False
|
||||
@@ -561,8 +559,6 @@ class One2Many(Widget):
|
||||
model = self.attrs['relation']
|
||||
domain = self.field.domain_get(self.record)
|
||||
domain = [domain, self.record.expr_eval(self.attrs.get('add_remove'))]
|
||||
removed_ids = self.field.get_removed_ids(self.record)
|
||||
domain = ['OR', domain, ('id', 'in', removed_ids)]
|
||||
update_completion(self.wid_text, self.record, self.field, model,
|
||||
domain=domain)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user