В этой статье блога мы рассмотрим различные методы удаления суммы из древовидного представления для целых чисел и значений с плавающей запятой в Odoo 12. Мы предоставим вам пошаговые инструкции и примеры кода для достижения этой настройки. Итак, приступим!
Метод 1: изменение типа поля
Один из способов удалить сумму из древовидного представления — изменить тип поля соответствующего целочисленного поля или поля с плавающей запятой. Если изменить тип поля на float
, сумма больше не будет отображаться в древовидном представлении. Вот пример того, как этого можно добиться в Odoo 12:
class MyModel(models.Model):
_name = 'my.model'
my_field = fields.Float(string='My Field')
Метод 2. Настройка древовидного представления.
Другой подход заключается в настройке древовидного представления путем переопределения метода fields_view_get
и удаления поля суммы из определения представления. Этот метод обеспечивает больший контроль над макетом древовидного представления. Вот пример:
class MyModel(models.Model):
_name = 'my.model'
my_field = fields.Integer(string='My Field')
@api.model
def fields_view_get(self, view_id=None, view_type='tree', toolbar=False, submenu=False):
result = super(MyModel, self).fields_view_get(view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu)
if view_type == 'tree':
doc = etree.XML(result['arch'])
sum_field = doc.xpath("//field[@name='my_field']/tree/field[@name='my_field']")
if sum_field:
sum_field[0].set('sum', '0')
result['arch'] = etree.tostring(doc)
return result
Метод 3: использование JavaScript для скрытия поля суммы
Если вы предпочитаете решение на стороне клиента, вы можете использовать JavaScript, чтобы скрыть поле суммы в древовидном представлении. Вот пример использования jQuery:
$(document).ready(function() {
$('.o_list_view .o_list_table .o_list_record_selector').each(function() {
$(this).find('td[data-field="my_field"]').hide();
});
});