Скрытие полей из списка фильтров и группировок в Odoo

В последнее время у меня часто возникает потербность скрывать поля из списка фильтров и группировок Odoo. Для того чтобы каждый раз не искать как это сделать, решил написать эту заметку возможно кому-то тоже будет полезно.

Итак, чтобы скрыть поля из фильтров или группировки необходимо расширить метод fields_get у нашей модели:

from odoo import models, fields, api

class OutModel(models.Model)
    name = fields.Char("Name")

    @api.model
    def fields_get(self, allfields=None, attributes=None):
        res = super(OutModel, self).fields_get(allfields, attributes)
        fields_to_hide = ['create_date', 'write_date']
        for field in fields_to_hide:
            res[field]['selectable'] = False  # выключаем видимость поля в фильтрах
            res[field]['sortable'] = False  # выключаем видимость поля в группировке
        return res

Соответственно в этом примере я скрыл служебные поля (дата создания и дата изменения) из фильтров и группировки. Если надо скрыть поле только в одном списке, я оставил в коде комментарии какой атрибут надо поменять у него:

  • selectable выключает отображение поля в списке фильтров
  • sortable выключает отображение поля в списке группировок
 
comments powered by Disqus