mirror of
https://github.com/bringout/oca-ocb-project.git
synced 2026-04-19 23:22:00 +02:00
36 lines
1.4 KiB
Python
36 lines
1.4 KiB
Python
from odoo import models
|
|
|
|
|
|
class ResUsersSettings(models.Model):
|
|
_inherit = 'res.users.settings'
|
|
|
|
def get_embedded_actions_settings(self):
|
|
embedded_actions_settings_dict = super().get_embedded_actions_settings()
|
|
res_model = self.env.context.get('res_model')
|
|
res_id = self.env.context.get('res_id')
|
|
if not (res_model == 'project.project' and res_id):
|
|
return embedded_actions_settings_dict
|
|
|
|
project_manager = self.env['project.project'].browse(res_id).user_id
|
|
if self.user_id == project_manager:
|
|
return embedded_actions_settings_dict
|
|
|
|
user_configs = self.env['res.users.settings.embedded.action'].search(
|
|
domain=[
|
|
('user_setting_id', '=', self.id),
|
|
('res_model', '=', res_model),
|
|
('res_id', '=', res_id),
|
|
],
|
|
)
|
|
manager_configs_sudo = self.env['res.users.settings.embedded.action'].sudo().search(
|
|
domain=[
|
|
('user_setting_id', '=', project_manager.sudo().res_users_settings_id.id),
|
|
('res_model', '=', res_model),
|
|
('res_id', '=', res_id),
|
|
('action_id', 'not in', user_configs.action_id.ids),
|
|
],
|
|
)
|
|
if manager_configs_sudo:
|
|
embedded_actions_settings_dict.update(manager_configs_sudo.copy({'user_setting_id': self.id})._embedded_action_settings_format())
|
|
|
|
return embedded_actions_settings_dict
|