Fix TypeError: _renderRows expects no parameters - use state.data.records instead
This commit is contained in:
parent
584a6cabba
commit
be00cbfd74
|
|
@ -397,36 +397,43 @@ odoo.define('fims_general_search_tree_view.list_search', function (require) {
|
||||||
this.$('tbody .o_data_row').remove();
|
this.$('tbody .o_data_row').remove();
|
||||||
this.$('.oe_no_results').remove();
|
this.$('.oe_no_results').remove();
|
||||||
|
|
||||||
// Render new rows
|
// Try to use Odoo's internal _renderRows (without parameters)
|
||||||
this._renderRows(pageRecords);
|
if (typeof this._renderRows === 'function') {
|
||||||
|
try {
|
||||||
|
// _renderRows uses state.data.records internally
|
||||||
|
var $rows = this._renderRows();
|
||||||
|
if ($rows && $rows.length) {
|
||||||
|
this.$('tbody').append($rows);
|
||||||
|
} else {
|
||||||
|
// Fallback if no rows returned
|
||||||
|
this._createBasicRows(pageRecords);
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.warn('_renderRows failed:', err);
|
||||||
|
this._createBasicRows(pageRecords);
|
||||||
|
}
|
||||||
|
} else if (typeof this._renderBody === 'function') {
|
||||||
|
try {
|
||||||
|
// Try _renderBody as alternative
|
||||||
|
var result = this._renderBody();
|
||||||
|
if (result && typeof result.then === 'function') {
|
||||||
|
result.then(function() {
|
||||||
|
// Body rendered
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.warn('_renderBody failed:', err);
|
||||||
|
this._createBasicRows(pageRecords);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Direct fallback
|
||||||
|
this._createBasicRows(pageRecords);
|
||||||
|
}
|
||||||
|
|
||||||
// Update pager
|
// Update pager
|
||||||
this._updatePager(records.length);
|
this._updatePager(records.length);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* Render rows for given records
|
|
||||||
*/
|
|
||||||
_renderRows: function(records) {
|
|
||||||
var self = this;
|
|
||||||
|
|
||||||
// Try to use Odoo's internal render methods
|
|
||||||
if (typeof this._renderRow === 'function') {
|
|
||||||
// Render each record as a row
|
|
||||||
records.forEach(function(record) {
|
|
||||||
try {
|
|
||||||
var $row = self._renderRow(record);
|
|
||||||
self.$('tbody').append($row);
|
|
||||||
} catch (err) {
|
|
||||||
console.warn('Failed to render row:', err);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
// Fallback: Create basic rows
|
|
||||||
this._createBasicRows(records);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create basic rows as fallback
|
* Create basic rows as fallback
|
||||||
*/
|
*/
|
||||||
|
|
@ -442,10 +449,13 @@ odoo.define('fims_general_search_tree_view.list_search', function (require) {
|
||||||
self.columns.forEach(function(col) {
|
self.columns.forEach(function(col) {
|
||||||
if (!col.invisible && col.attrs && col.attrs.name) {
|
if (!col.invisible && col.attrs && col.attrs.name) {
|
||||||
var value = record[col.attrs.name] || '';
|
var value = record[col.attrs.name] || '';
|
||||||
|
// Handle many2one fields
|
||||||
if (typeof value === 'object' && value) {
|
if (typeof value === 'object' && value) {
|
||||||
value = value[1] || value.display_name || '';
|
value = value[1] || value.display_name || '';
|
||||||
}
|
}
|
||||||
var $cell = $('<td class="o_data_cell"></td>').text(value);
|
var $cell = $('<td class="o_data_cell"></td>');
|
||||||
|
$cell.text(value);
|
||||||
|
$cell.attr('data-field', col.attrs.name);
|
||||||
$row.append($cell);
|
$row.append($cell);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue