Odoo: установить команду модуля по умолчанию на странице настроек

Создав представление на странице res.config, я реализовал поле many2one, в котором перечислены существующие группы в модуле Helpdesk. Я бы хотел задать команду службы поддержки по умолчанию при автоматическом создании заявки (по умолчанию это Служба поддержки клиентов). Таким образом, команда, которую пользователь выбирает в моем настраиваемом поле в представлении res.config, будет командой службы поддержки по умолчанию. Как лучше всего это реализовать?


person ITJ    schedule 27.02.2021    source источник


Ответы (1)


этого можно легко добиться, используя context в действии:

<field name="context">{'default_team_id': active_id}</field>

или вы можете сделать это программно (не рекомендуется), используя функцию lambda по умолчанию, как показано ниже:

team_id = fields.Many2one(comodel_name='helpdesk.team', default=_default_team_id)

def _default_team_id(self):
    team_id = self.env.ref('my_module.best_team_ever').read()[0]
    return team_id
# update using configuration would be:
def _default_team_id(self):
    get_param = self.env['ir.config_parameter'].sudo().get_param
    default_team = get_param('helpdesk.my_custom_default_team')
    return default_team
person kerbrose    schedule 28.02.2021
comment
Разве это не предполагает, что я создаю действие. Что, если бы я хотел поместить это настраиваемое поле в общие настройки в res.config? Также почему бы вам не посоветовать решение на стороне сервера? - person ITJ; 28.02.2021
comment
конечно, вы можете получить идентификатор команды из res.config. Я не советую использовать жестко запрограммированный метод. потому что xml можно изменить во время производства, не блокируя пользователя. - person kerbrose; 28.02.2021
comment
Итак, после наследования общего вида настроек это будет <field name="custom_field" context= "{'helpdesk.default_team_id': active_id}"/> - person ITJ; 28.02.2021