Merge pull request #4424 from expsa/eltayar
Fix TypeError: _renderRows expects no parameters - use state.data.records
This commit is contained in:
commit
059383f5fb
|
|
@ -397,36 +397,43 @@ odoo.define('fims_general_search_tree_view.list_search', function (require) {
|
|||
this.$('tbody .o_data_row').remove();
|
||||
this.$('.oe_no_results').remove();
|
||||
|
||||
// Render new rows
|
||||
this._renderRows(pageRecords);
|
||||
// Try to use Odoo's internal _renderRows (without parameters)
|
||||
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
|
||||
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
|
||||
*/
|
||||
|
|
@ -442,10 +449,13 @@ odoo.define('fims_general_search_tree_view.list_search', function (require) {
|
|||
self.columns.forEach(function(col) {
|
||||
if (!col.invisible && col.attrs && col.attrs.name) {
|
||||
var value = record[col.attrs.name] || '';
|
||||
// Handle many2one fields
|
||||
if (typeof value === 'object' && value) {
|
||||
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);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue