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 ответ
Во-первых, я думаю, что ваш домен не правильный, это могло быть:
[('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)]
С уважением