Odoo18-Base/addons/project/wizard/project_share_collaborator_wizard.py
2025-01-06 10:57:38 +07:00

44 lines
1.6 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class ProjectSharingCollaboratorWizard(models.TransientModel):
_name = 'project.share.collaborator.wizard'
_description = 'Project Sharing Collaborator Wizard'
parent_wizard_id = fields.Many2one(
'project.share.wizard',
export_string_translation=False,
)
partner_id = fields.Many2one(
'res.partner',
string='Collaborator',
required=True,
)
access_mode = fields.Selection(
[('read', 'Read'), ('edit_limited', 'Edit with limited access'), ('edit', 'Edit')],
default='read',
required=True,
help="Read: collaborators can view tasks but cannot edit them.\n"
"Edit with limited access: collaborators can view and edit tasks they follow in the Kanban view.\n"
"Edit: collaborators can view and edit all tasks in the Kanban view. Additionally, they can choose which tasks they want to follow."
)
send_invitation = fields.Boolean(
string='Send Invitation',
compute='_compute_send_invitation',
store=True,
readonly=False,
default=True,
)
@api.depends('partner_id', 'access_mode')
def _compute_send_invitation(self):
project = self.parent_wizard_id.resource_ref
for collaborator in self:
if (
collaborator.partner_id not in project.message_partner_ids
or (collaborator.access_mode != 'read' and collaborator.partner_id not in project.collaborator_ids.partner_id)
):
collaborator.send_invitation = True