From 727b2ddd787ca2459f44d678732eb6b8a73024fc Mon Sep 17 00:00:00 2001 From: Christopher Rogos Date: Fri, 20 Mar 2026 17:08:40 +0000 Subject: [PATCH] [IMP] partner_event: Add create attendee partner button from registration --- partner_event/models/event_registration.py | 23 +++++++++++++++++++ .../views/event_registration_view.xml | 13 ++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/partner_event/models/event_registration.py b/partner_event/models/event_registration.py index ef4fc855b..b0861f534 100644 --- a/partner_event/models/event_registration.py +++ b/partner_event/models/event_registration.py @@ -8,6 +8,7 @@ # Copyright 2024 Tecnativa - Juan José Seguí # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo import api, fields, models +from odoo.exceptions import UserError class EventRegistration(models.Model): @@ -22,6 +23,7 @@ class EventRegistration(models.Model): index=True, ) + @api.model def _prepare_partner(self, vals): return { "name": vals.get("name") or vals.get("email"), @@ -29,6 +31,27 @@ def _prepare_partner(self, vals): "phone": vals.get("phone", False), } + def action_create_attendee_partner(self): + self.ensure_one() + if self.attendee_partner_id: + return True + if not self.name and not self.email: + raise UserError( + self.env._( + "Set at least the attendee name or email before creating a partner." + ) + ) + keys = self._prepare_partner({}).keys() + attendee_partner = self.env["res.partner"].create( + self._prepare_partner({field_name: self[field_name] for field_name in keys}) + ) + vals = {"attendee_partner_id": attendee_partner.id} + if not self.partner_id: + vals["partner_id"] = attendee_partner.id + self.write(vals) + return True + + @api.model def _update_attendee_partner_id(self, vals): # Don't update if doing a partner merging if ( diff --git a/partner_event/views/event_registration_view.xml b/partner_event/views/event_registration_view.xml index 80fb9accf..5f2510b69 100644 --- a/partner_event/views/event_registration_view.xml +++ b/partner_event/views/event_registration_view.xml @@ -8,7 +8,18 @@ - +