Сообщение #1
08 февраля 2017, 14:26
|
создать модуль с tree view с ограничением на выборку
Здравствуйте! Я новичок в Odoo. Поступила задача создать модуль для просмотра звонков руководителями отделов по своим подчиненным. Т.е. руководитель, заходя в систему, выбирает нужный пункт меню и ему показывается информация только по звонкам сотрудников его отдела, при этом нельзя снять фильтр в поиске, что выборка идет только по разрешенным ему записям, но поиск присутствует и в разрешенной выборке он может также делать поиск по нужным ему условиям. Если в систему заходит админ, то он имеет право также видеть вторую таблицу с информацией о разрешениях, какому пользователю чьи звонки показывать и может эту вторую таблицу править.
Как я себе это вижу:
1)надо завести 2 класса:
основной класс для показа руководителям отделов
и
класс для раздачи прав, какие телефоны из столбца calling какому users_id можно показать
причем столбец calling из класса asterisk_show должен ссылаться на столбец calling класса asterisk_show_admin, а столбец users_id класса asterisk_show_admin на таблицу users с ограничением по вошедшему пользователю:
2) представление в виде
я думал, что ограничение для входящего пользователя можно сделать в виде домена в поле со ссылкой на res.users.ID также поставить поле many2one в первом классе со ссылкой на второй
PS: я еще толком не разобрался, как строить ограничение выборки в tree view.
Просьба сильно не пинать и подсказать, как это сделать, ну или хотя бы кинуть ссылки. Спасибо
Как я себе это вижу:
1)надо завести 2 класса:
основной класс для показа руководителям отделов
class asterisk_show(osv.Model):
_columns = {
'callingFIO': fields.char('Вызывающий ФИО', size=100), #, required=True
'calling': fields.many2one('asterisk.show.admin'),
'called': fields.char('Вызываемый', size=50),
'dt': fields.datetime(string='ДатаВремя', default=lambda *a: datetime.now()),
'duration': fields.integer('Время ожидания(сек.)'),
'billsec': fields.integer('Время разговора(сек.)'),
'status': fields.char('Статус', size=50),
}
и
класс для раздачи прав, какие телефоны из столбца calling какому users_id можно показать
class asterisk_show_admin(osv.Model):
_columns = {
'users_id': fields.many2one('res.users','Пользователь',domain="[('id','=','user.id')]"),
'calling': fields.char('Вызывающий', size=50),
}
причем столбец calling из класса asterisk_show должен ссылаться на столбец calling класса asterisk_show_admin, а столбец users_id класса asterisk_show_admin на таблицу users с ограничением по вошедшему пользователю:
domain="[('id','=','user.id')]"
2) представление в виде
<tree string="Журнал звонков" default_order="dt desc" colors="green:status=='ANSWERED';red:status in ('BUSY','FAILED');grey:status not in ('ANSWERED','BUSY','FAILED')" >
<field name="callingFIO" />
<field name="calling" />
<field name="called" />
<field name="dt" />
<field name="duration" />
<field name="billsec" />
<field name="status" />
</tree>
я думал, что ограничение для входящего пользователя можно сделать в виде домена в поле со ссылкой на res.users.ID также поставить поле many2one в первом классе со ссылкой на второй
PS: я еще толком не разобрался, как строить ограничение выборки в tree view.
Просьба сильно не пинать и подсказать, как это сделать, ну или хотя бы кинуть ссылки. Спасибо