} else {
var fields = _.keys(self.fields_view.fields);
fields.push('display_name');
- return self.dataset.read_index(fields,
+ // Use of search_read instead of read to check if we can still read the record (security rules)
+ return self.dataset.call('search_read', [[['id', '=', self.dataset.ids[self.dataset.index]]], fields],
{
context: {
'bin_size': true,
'future_display_name': true
}
}).then(function(r) {
- self.trigger('load_record', r);
+ if (_.isEmpty(r)){
+ self.do_action('history_back');
+ }
+ else{
+ self.trigger('load_record', r[0]);
+ }
});
}
});
},
reload_record: function (record) {
var self = this;
- return this.dataset.read_ids(
- [record.get('id')],
+ // Use of search_read instead of read to check if we can still read the record (security rules)
+ return this.dataset.call('search_read', [
+ [['id', '=', record.get('id')]],
_.pluck(_(this.columns).filter(function (r) {
return r.tag === 'field';
- }), 'name')
+ }), 'name')]
).done(function (records) {
- var values = records[0];
+ var values = _.isEmpty(records) ? undefined : records[0];
if (!values) {
self.records.remove(record);
return;