diff --git a/partner_event/__manifest__.py b/partner_event/__manifest__.py
index ad6377189..312807ddb 100644
--- a/partner_event/__manifest__.py
+++ b/partner_event/__manifest__.py
@@ -5,11 +5,12 @@
# Copyright 2017 Tecnativa S.L. - David Vidal
# Copyright 2018 Jupical Technologies Pvt. Ltd. - Anil Kesariya
# Copyright 2020 Tecnativa S.L. - Víctor Martínez
+# Copyright 2023 Tecnativa S.L. - Carolina Fernandez
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
"name": "Link partner to events",
- "version": "15.0.1.0.0",
+ "version": "16.0.1.0.0",
"category": "Marketing",
"author": "Tecnativa," "Odoo Community Association (OCA)",
"website": "https://github.com/OCA/event",
diff --git a/partner_event/models/event_registration.py b/partner_event/models/event_registration.py
index c830e2997..9cfb81d94 100644
--- a/partner_event/models/event_registration.py
+++ b/partner_event/models/event_registration.py
@@ -1,10 +1,11 @@
-# Copyright 2014 Tecnativa S.L. - Pedro M. Baeza
-# Copyright 2015 Tecnativa S.L. - Javier Iniesta
-# Copyright 2016 Tecnativa S.L. - Antonio Espinosa
-# Copyright 2016 Tecnativa S.L. - Vicent Cubells
-# Copyright 2020 Tecnativa S.L. - Víctor Martínez
+# Copyright 2015 Tecnativa - Javier Iniesta
+# Copyright 2016 Tecnativa - Antonio Espinosa
+# Copyright 2016 Tecnativa - Vicent Cubells
+# Copyright 2018 Jupical Technologies Pvt. Ltd. - Anil Kesariya
+# Copyright 2020 Tecnativa - Víctor Martínez
+# Copyright 2014-2023 Tecnativa - Pedro M. Baeza
+# Copyright 2023 Tecnativa - Carolina Fernandez
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-
from odoo import api, fields, models
@@ -17,6 +18,7 @@ class EventRegistration(models.Model):
string="Attendee Partner",
ondelete="restrict",
copy=False,
+ index=True,
)
def _prepare_partner(self, vals):
@@ -64,7 +66,12 @@ def _onchange_partner_id(self):
get_attendee_partner_address = {
"get_attendee_partner_address": self.attendee_partner_id,
}
- return super(
- EventRegistration, self.with_context(**get_attendee_partner_address)
- )._onchange_partner_id()
- return super(EventRegistration, self)._onchange_partner_id()
+ self = self.with_context(**get_attendee_partner_address)
+ for registration in self:
+ if registration.partner_id:
+ registration.update(
+ registration._synchronize_partner_values(
+ registration.partner_id
+ )
+ )
+ return {}
diff --git a/partner_event/readme/CONTRIBUTORS.rst b/partner_event/readme/CONTRIBUTORS.rst
index 736ece26e..91f0d5fc7 100644
--- a/partner_event/readme/CONTRIBUTORS.rst
+++ b/partner_event/readme/CONTRIBUTORS.rst
@@ -8,6 +8,7 @@
* Rafael Blasco
* Víctor Martínez
* Stefan Ungureanu
+ * Carolina Fernandez
* `Antiun `__:
diff --git a/partner_event/readme/DESCRIPTION.rst b/partner_event/readme/DESCRIPTION.rst
index 9c2e259c5..2360047bb 100644
--- a/partner_event/readme/DESCRIPTION.rst
+++ b/partner_event/readme/DESCRIPTION.rst
@@ -10,3 +10,4 @@ It also includes:
* Action in partner tree view 'More' button, to register several partners
to an event
* Restricts partner deletion when event attendees are linked to it.
+* Onchange for partner_id removed in v16 core in Event Registration- including functionality here
diff --git a/partner_event/static/description/index.html b/partner_event/static/description/index.html
index 4ad43f5db..ecad89690 100644
--- a/partner_event/static/description/index.html
+++ b/partner_event/static/description/index.html
@@ -431,6 +431,7 @@
Rafael Blasco
Víctor Martínez
Stefan Ungureanu
+Carolina Fernandez/li>
Antiun:
diff --git a/partner_event/tests/test_event_registration.py b/partner_event/tests/test_event_registration.py
index 0eccd6f4d..0b65b07f8 100644
--- a/partner_event/tests/test_event_registration.py
+++ b/partner_event/tests/test_event_registration.py
@@ -63,12 +63,12 @@ def test_count_registrations(self):
event_1 = self.event_0.copy()
self.assertEqual(self.partner_01.registration_count, 0)
self.registration_01.state = "open"
- self.partner_01.invalidate_cache()
+ self.partner_01.invalidate_recordset()
self.assertEqual(self.partner_01.registration_count, 1)
self.registration_02.state = "done"
self.registration_02.attendee_partner_id = self.partner_01
self.registration_02.event_id = event_1
- self.partner_01.invalidate_cache()
+ self.partner_01.invalidate_recordset()
self.assertEqual(self.partner_01.registration_count, 2)
def test_button_register(self):
@@ -81,16 +81,16 @@ def test_data_update(self):
event_2 = self.event_0.copy()
self.yesterday = datetime.now() - timedelta(days=1)
self.tomorrow = datetime.now() + timedelta(days=1)
- self.last_moth = datetime.now() - timedelta(days=30)
+ self.last_month = datetime.now() - timedelta(days=30)
# Set an old event
- event_2.write({"date_begin": self.last_moth})
+ event_2.write({"date_begin": self.last_month})
event_2.write({"date_end": self.yesterday})
self.registration_02.event_id = event_2
self.registration_02.attendee_partner_id = self.partner_01
# Update partner for an old event
self.partner_01.write({"email": "new@test.com"})
self.assertNotEqual(event_2.registration_ids.email, "new@test.com")
- # Update partner for an current event
+ # Update partner for a current event
event_2.write({"date_end": self.tomorrow})
self.partner_01.write({"email": "new@test.com"})
self.assertEqual(event_2.registration_ids.email, "new@test.com")
diff --git a/partner_event/wizard/res_partner_register_event.py b/partner_event/wizard/res_partner_register_event.py
index eb5c6bb8d..951513f23 100644
--- a/partner_event/wizard/res_partner_register_event.py
+++ b/partner_event/wizard/res_partner_register_event.py
@@ -1,9 +1,9 @@
-# Copyright 2014 Tecnativa S.L. - Pedro M. Baeza
-# Copyright 2015 Tecnativa S.L. - Javier Iniesta
-# Copyright 2016 Tecnativa S.L. - Antonio Espinosa
-# Copyright 2016 Tecnativa S.L. - Vicent Cubells
+# Copyright 2015 Tecnativa - Javier Iniesta
+# Copyright 2016 Tecnativa - Antonio Espinosa
+# Copyright 2016 Tecnativa - Vicent Cubells
# Copyright 2018 Jupical Technologies Pvt. Ltd. - Anil Kesariya
-# Copyright 2020 Tecnativa S.L. - Víctor Martínez
+# Copyright 2020 Tecnativa - Víctor Martínez
+# Copyright 2014-2023 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
@@ -11,13 +11,11 @@
class ResPartnerRegisterEvent(models.TransientModel):
_name = "res.partner.register.event"
-
_description = "Register partner for event"
event = fields.Many2one(
comodel_name="event.event", required=True, ondelete="cascade"
)
- errors = fields.Text(readonly=True)
def _prepare_registration(self, partner):
return {
@@ -27,28 +25,19 @@ def _prepare_registration(self, partner):
"name": partner.name,
"email": partner.email,
"phone": partner.phone,
- "date_open": fields.Datetime.now(),
}
def button_register(self):
- registration_obj = self.env["event.registration"]
- errors = []
+ vals_list = []
+ Registration = self.env["event.registration"]
for partner in self.env["res.partner"].browse(
self.env.context.get("active_ids", [])
):
- try:
- with self.env.cr.savepoint():
- registration_obj.create(self._prepare_registration(partner))
- except Exception:
- errors.append(partner.name)
- if errors:
- self.errors = "\n".join(errors)
- data_obj = self.env.ref("partner_event." "res_partner_register_event_view")
- return {
- "type": "ir.actions.act_window",
- "res_model": self._name,
- "view_mode": "form",
- "view_id": [data_obj.id],
- "res_id": self.id,
- "target": "new",
- }
+ if not Registration.search(
+ [
+ ("event_id", "=", self.event.id),
+ ("attendee_partner_id", "=", partner.id),
+ ]
+ ):
+ vals_list.append(self._prepare_registration(partner))
+ self.env["event.registration"].create(vals_list)
diff --git a/partner_event/wizard/res_partner_register_event_view.xml b/partner_event/wizard/res_partner_register_event_view.xml
index d3a54c514..c1846c61f 100644
--- a/partner_event/wizard/res_partner_register_event_view.xml
+++ b/partner_event/wizard/res_partner_register_event_view.xml
@@ -1,5 +1,6 @@
-
@@ -8,22 +9,14 @@
res.partner.register.event