From bc014155fa42a1ca49760c7119446575185dc72a Mon Sep 17 00:00:00 2001 From: clementthomas Date: Fri, 26 Jul 2024 10:44:59 +0200 Subject: [PATCH] [IMP] event_track_calendar_event_event_speaker: change position of event_speaker in data model --- .../__manifest__.py | 7 ++++--- .../models/__init__.py | 1 + .../models/calendar_event.py | 10 ++++++++++ .../models/event_track.py | 13 +++++++++++++ .../views/event_track_views.xml | 18 ++++++++++++++++++ 5 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 event_track_calendar_event_event_speaker/models/calendar_event.py create mode 100644 event_track_calendar_event_event_speaker/views/event_track_views.xml diff --git a/event_track_calendar_event_event_speaker/__manifest__.py b/event_track_calendar_event_event_speaker/__manifest__.py index 77c3c01..ecb52be 100644 --- a/event_track_calendar_event_event_speaker/__manifest__.py +++ b/event_track_calendar_event_event_speaker/__manifest__.py @@ -9,9 +9,10 @@ "author": "Elabore", "website": "https://www.elabore.coop", "category": "", - 'summary': 'Event track calendar event adaptation when event_speaker module installed', - "depends": ["event_track_calendar_event","event_speaker"], - "data": [ + 'summary': 'Speaker management in calendar events of event tracks', + "depends": ["event_track_calendar_event"], + "data": [ + "views/event_track_views.xml" ], "installable": True, "auto_install":True diff --git a/event_track_calendar_event_event_speaker/models/__init__.py b/event_track_calendar_event_event_speaker/models/__init__.py index ff1c245..5d6d5ae 100644 --- a/event_track_calendar_event_event_speaker/models/__init__.py +++ b/event_track_calendar_event_event_speaker/models/__init__.py @@ -1 +1,2 @@ from . import event_track +from . import calendar_event \ No newline at end of file diff --git a/event_track_calendar_event_event_speaker/models/calendar_event.py b/event_track_calendar_event_event_speaker/models/calendar_event.py new file mode 100644 index 0000000..88610f2 --- /dev/null +++ b/event_track_calendar_event_event_speaker/models/calendar_event.py @@ -0,0 +1,10 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import fields, models, api, Command + + +class CalendarEvent(models.Model): + _inherit = 'calendar.event' + + speaker_ids = fields.Many2many( + 'res.partner', "calendar_event_speaker_rel", "calendar_event_id", "speaker_id", string="Speakers", domain="[('is_company','=',False)]" + ) diff --git a/event_track_calendar_event_event_speaker/models/event_track.py b/event_track_calendar_event_event_speaker/models/event_track.py index cea90c2..b739756 100644 --- a/event_track_calendar_event_event_speaker/models/event_track.py +++ b/event_track_calendar_event_event_speaker/models/event_track.py @@ -5,6 +5,19 @@ from odoo import fields, models, api, Command class EventTrack(models.Model): _inherit = "event.track" + speaker_ids = fields.Many2many( + 'res.partner', string="Speakers", compute="compute_speaker_ids" + ) + + def compute_speaker_ids(self): + """set speaker_ids as concat of all speakers of all events""" + for track in self: + speaker_ids = set() + for event in track.calendar_event_ids: + speaker_ids.update(event.speaker_ids.ids) + track.speaker_ids = list(speaker_ids) + + def get_calendar_event_partner_value(self): """Add speaker ids to calendar event partners """ diff --git a/event_track_calendar_event_event_speaker/views/event_track_views.xml b/event_track_calendar_event_event_speaker/views/event_track_views.xml new file mode 100644 index 0000000..c76dcc5 --- /dev/null +++ b/event_track_calendar_event_event_speaker/views/event_track_views.xml @@ -0,0 +1,18 @@ + + + + event.track.form.event.track.calendar.event.event.speaker + + event.track + + + + + + + + + + + +