# Copyright 2020 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo import fields, models, api class ProjectTask(models.Model): _inherit = 'project.task' @api.model def default_get(self, fields): res = super(ProjectTask, self).default_get(fields) if 'default_project_id' in self.env.context: default_project_id = self.env['project.project'].browse(self.env.context['default_project_id']) if default_project_id.exists().porteurs_projets_ids: participant_ids = [] for porteur_project in default_project_id.porteurs_projets_ids: vals = { 'porteur_id': porteur_project.porteur_id.id, 'lastname': porteur_project.lastname, 'firstname': porteur_project.firstname, 'commune': porteur_project.commune, 'mobile': porteur_project.mobile, 'fixe': porteur_project.fixe, 'email': porteur_project.email, } participant_ids.append((0, 0, vals)) res.update({'participant_ids': participant_ids}) return res user_id = fields.Many2one( 'res.users', string='CFD', default=lambda self: self.env.uid, index=True, track_visibility='always') formateur_id = fields.Many2one( 'res.partner', string='Formateur', domain=[ ('active', '=', True), ('is_company', '=', False), ('is_consultant_form', '=', True), '|', ('reference', '=', 'reference'), ('reference', '=', 'prereference')], on_delete='restrict') duree_jr = fields.Selection([ ('demi_journee', "Demi journée"), ('journee', "Journée"), ], "Durée (en jours)") duree_hr = fields.Float("Durée en heures", compute='_compute_duree_hr') participant_ids = fields.One2many( 'res.partner.porteur.project', 'task_id', string="Participants") @api.depends('duree_jr') @api.multi def _compute_duree_hr(self): for task in self: if task.duree_jr == 'journee': task.duree_hr = 1 if task.duree_jr == 'demi_journee': task.duree_hr = 0.5