65 lines
2.5 KiB
Python
65 lines
2.5 KiB
Python
# Copyright 2022 Elabore (https://elabore.coop)
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo import api, fields, models
|
|
|
|
class CreatePositionProfile(models.TransientModel):
|
|
_name = "create.position.profile"
|
|
_description = "create Position Profile"
|
|
|
|
@api.model
|
|
def _default_is_company(self):
|
|
return self.env['res.partner'].browse(self._context.get('active_ids')).is_company
|
|
|
|
@api.model
|
|
def _default_structure_id(self):
|
|
current_partner_id = self.env['res.partner'].browse(self._context.get('active_ids'))
|
|
if current_partner_id.is_company:
|
|
return current_partner_id.id
|
|
else:
|
|
return None
|
|
|
|
@api.model
|
|
def _default_partner_id(self):
|
|
current_partner_id = self.env['res.partner'].browse(self._context.get('active_ids'))
|
|
if not current_partner_id.is_company:
|
|
return current_partner_id.id
|
|
else:
|
|
return None
|
|
|
|
is_company = fields.Boolean('Is Company', default=_default_is_company)
|
|
structure_id = fields.Many2one('res.partner', string='Structure', domain="[('is_company', '=', True), ('is_main_profile', '=', True)]", default=_default_structure_id )
|
|
partner_id = fields.Many2one('res.partner', string='Person', domain="[('is_company', '=', False), ('is_main_profile', '=', True)]", default=_default_partner_id)
|
|
function = fields.Char('Function')
|
|
phone = fields.Char('Phone')
|
|
email = fields.Char('Email')
|
|
comment = fields.Text('Notes')
|
|
|
|
def _compute_position_profile_values(self):
|
|
values= {
|
|
"contact_id": self.partner_id.id,
|
|
"parent_id": self.structure_id.id,
|
|
"function": self.function,
|
|
"name": self.partner_id.name,
|
|
"phone": self.phone,
|
|
"email": self.email,
|
|
"comment" : self.comment,
|
|
"partner_profile": self.env.ref("partner_profiles.partner_profile_position").id
|
|
}
|
|
return values
|
|
|
|
|
|
def create_position_profile(self):
|
|
values = self._compute_position_profile_values()
|
|
position_partner_id = self.env["res.partner"].create(values)
|
|
view = self.env.ref("base.view_partner_form")
|
|
return {
|
|
"name": "Position Partner created",
|
|
"view_type": "form",
|
|
"view_mode": "form",
|
|
"view_id": view.id,
|
|
"res_model": "res.partner",
|
|
"type": "ir.actions.act_window",
|
|
"res_id": position_partner_id.id,
|
|
"context": self.env.context,
|
|
} |