[FIX] web: sorting in mock_server's search_read

The mock server was slicing the records before sorting.

Now mocking a search read would sort the records before slicing them.

This will ensure the records to be loaded with the correct sorting order
when e.g. a load more is applied on a subset.

Taskid: 2196661
This commit is contained in:
Bruno Boi
2020-11-18 07:52:03 +00:00
parent 0391c0f7b8
commit 99fb043668
@@ -1693,6 +1693,13 @@ var MockServer = Class.extend({
var fields = args.fields && args.fields.length ? args.fields : _.keys(this.data[args.model].fields);
var nbRecords = records.length;
var offset = args.offset || 0;
if (args.sort) {
// warning: only consider first level of sort
args.sort = args.sort.split(',')[0];
var fieldName = args.sort.split(' ')[0];
var order = args.sort.split(' ')[1];
records = this._sortByField(records, args.model, fieldName, order);
}
records = records.slice(offset, args.limit ? (offset + args.limit) : nbRecords);
var processedRecords = _.map(records, function (r) {
var result = {};
@@ -1710,13 +1717,6 @@ var MockServer = Class.extend({
});
return result;
});
if (args.sort) {
// warning: only consider first level of sort
args.sort = args.sort.split(',')[0];
var fieldName = args.sort.split(' ')[0];
var order = args.sort.split(' ')[1];
processedRecords = this._sortByField(processedRecords, args.model, fieldName, order);
}
var result = {
length: nbRecords,
records: processedRecords,