OpenERP, ошибка при создании фильтра представления

У меня проблемы с созданием фильтра на объекте stock.picking. Совсем недавно я построил простое "реле привилегий" - в каждом складе вы можете определить "Назначенную группу пользователей", благодаря тому, что пользователи, входящие в определенную группу, могут или не могут подтверждать перемещения в или из местоположения.

Stock.picking: location_id -> assign_user_group -> пользователи

Теперь я хотел бы создать фильтр (позднее будет установлен по умолчанию) в представлении дерева комплектации, которое будет показывать только ходы, местоположение которых (исходное местоположение и место назначения; я использую их в объекте stock.picking) может управляться просмотром пользователь.

Безусловно, я написал фильтр, который выглядит так:

<record id="view_picking_internal_search_pl" model="ir.ui.view">
        <field name="model">stock.picking</field>
        <field name="inherit_id" ref="stock.view_picking_internal_search"/>
        <field name="arch" type="xml">
            <filter icon="terp-dialog-close" name="done" string="Done" domain="[('state','=','done')]" help="Pickings already processed" position="after">
                <filter icon="terp-check" name="locgroup" string="Location Group" domain="[('user_id','in',[user.id for user in location_id.user_group.users])]" context="{'group_by':'date'}"/>
            </filter>
        </field>
    </record>

Я также добавил поле location_id в дерево.

Но я все еще получаю сообщение об ошибке (после выбора фильтра), о котором даже Google ничего не знает:

TypeError: results.group_by is undefined

Мои вопросы:

  1. Глядя на домен в поле фильтра - что я делаю не так?

  2. Возможно ли что-то подобное?

Я с радостью приветствую любую помощь.

1 ответ

Во-первых, я думаю, что ваш домен не правильный, это могло быть:

[('user_group.users.id', '=', uid)]

(потому что первый элемент кортежа - это поле в модели; а uid - это специальное значение, предоставляемое в представлениях поиска)

Далее эта ошибка:

TypeError: results.group_by is undefined

Кажется, что это ошибка Javascript (пришедшая из интерфейса openerp-web), она часто выдает ошибку, когда получает неожиданные значения (например, когда мы делаем ошибку, определяя представление).

Можете ли вы сказать нам, если использование домена выше решило вашу проблему?

NB: ваше поле user_group является обязательным? Если нет, то я думаю, что в указанном выше домене не будет отображаться выборка, где user_group не установлена, если вы хотите отобразить сборку, где user_group тоже не установлена, вы можете установить домен следующим образом:

['|',('user_group.users.id', '=', uid), ('user_group','=',False)]

С уважением

Другие вопросы по тегам