diff --git a/event_track_multi_speaker/README.rst b/event_track_multi_speaker/README.rst new file mode 100644 index 000000000..0b7b84c48 --- /dev/null +++ b/event_track_multi_speaker/README.rst @@ -0,0 +1,86 @@ +========================= +Event Track Multi Speaker +========================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:b68a380bf957a04f6f20f29ec5d8d1c62121548ca3853a7735dc98e82229043a + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fevent-lightgray.png?logo=github + :target: https://github.com/OCA/event/tree/16.0/event_track_multi_speaker + :alt: OCA/event +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/event-16-0/event-16-0-event_track_multi_speaker + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/event&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Allow for several speaker on event tracks + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Coop IT Easy SC + +Contributors +~~~~~~~~~~~~ + +* `Coop IT Easy SC `_: + + * Victor Champonnois + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-victor-champonnois| image:: https://github.com/victor-champonnois.png?size=40px + :target: https://github.com/victor-champonnois + :alt: victor-champonnois + +Current `maintainer `__: + +|maintainer-victor-champonnois| + +This module is part of the `OCA/event `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/event_track_multi_speaker/__init__.py b/event_track_multi_speaker/__init__.py new file mode 100644 index 000000000..7fbcfccdd --- /dev/null +++ b/event_track_multi_speaker/__init__.py @@ -0,0 +1,4 @@ +# SPDX-FileCopyrightText: 2024 Coop IT Easy SC +# +# SPDX-License-Identifier: AGPL-3.0-or-later +from . import models diff --git a/event_track_multi_speaker/__manifest__.py b/event_track_multi_speaker/__manifest__.py new file mode 100644 index 000000000..e4a443718 --- /dev/null +++ b/event_track_multi_speaker/__manifest__.py @@ -0,0 +1,27 @@ +# SPDX-FileCopyrightText: 2024 Coop IT Easy SC +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +{ + "name": "Event Track Multi Speaker", + "summary": """ + Allow for several speaker on event tracks""", + "version": "16.0.1.0.0", + "category": "Event", + "website": "https://github.com/OCA/event", + "author": "Coop IT Easy SC, Odoo Community Association (OCA)", + "maintainers": ["victor-champonnois"], + "license": "AGPL-3", + "application": False, + "depends": ["website_event_track"], + "excludes": [], + "data": [ + "security/ir.model.access.csv", + "views/event_track.xml", + "views/event_track_speaker.xml", + "views/res_partner.xml", + "views/menuitems.xml", + ], + "demo": [], + "qweb": [], +} diff --git a/event_track_multi_speaker/i18n/event_track_multi_speaker.pot b/event_track_multi_speaker/i18n/event_track_multi_speaker.pot new file mode 100644 index 000000000..3e8a8146d --- /dev/null +++ b/event_track_multi_speaker/i18n/event_track_multi_speaker.pot @@ -0,0 +1,337 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * event_track_multi_speaker +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-10-08 15:27+0000\n" +"PO-Revision-Date: 2024-10-08 15:27+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_ids +msgid "Activities" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_state +msgid "Activity State" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__partner_id +msgid "Contact" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__create_uid +msgid "Created by" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__create_date +msgid "Created on" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__display_name +msgid "Display Name" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields.selection,name:event_track_multi_speaker.selection__event_track_speaker__status__draft +msgid "Draft" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__email +msgid "Email" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__event_id +#: model_terms:ir.ui.view,arch_db:event_track_multi_speaker.view_event_track_speaker_search +msgid "Event" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.actions.act_window,name:event_track_multi_speaker.action_event_speakers +msgid "Event Speakers" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model,name:event_track_multi_speaker.model_event_track +msgid "Event Track" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: event_track_multi_speaker +#: model_terms:ir.ui.view,arch_db:event_track_multi_speaker.view_event_track_speaker_search +msgid "Group By" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__has_message +msgid "Has Message" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__id +msgid "ID" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__message_has_error +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__message_has_sms_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__image +msgid "Image 256" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__function +msgid "Job Position" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker____last_update +msgid "Last Modified on" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__write_date +msgid "Last Updated on" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_main_attachment_id +msgid "Main Attachment" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_ids +msgid "Messages" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: event_track_multi_speaker +#: model_terms:ir.ui.view,arch_db:event_track_multi_speaker.view_event_track_speaker_search +msgid "My Speakers" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__name +msgid "Name" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_calendar_event_id +msgid "Next Activity Calendar Event" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__phone +msgid "Phone" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_has_sms_error +msgid "SMS Delivery error" +msgstr "" + +#. module: event_track_multi_speaker +#: model_terms:ir.ui.view,arch_db:event_track_multi_speaker.view_event_track_speaker_form +msgid "Speaker" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track__speaker_ids +#: model_terms:ir.ui.view,arch_db:event_track_multi_speaker.view_event_track_form +msgid "Speakers" +msgstr "" + +#. module: event_track_multi_speaker +#. odoo-python +#: code:addons/event_track_multi_speaker/models/event_track_speaker.py:0 +#, python-format +msgid "Speakers should belong to only one event." +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__status +msgid "Status" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model,name:event_track_multi_speaker.model_event_track_speaker +#: model_terms:ir.ui.view,arch_db:event_track_multi_speaker.view_event_track_speaker_form +msgid "Track Speaker" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.ui.menu,name:event_track_multi_speaker.menu_event_speaker +msgid "Track Speakers" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__track_ids +#: model_terms:ir.ui.view,arch_db:event_track_multi_speaker.view_event_track_speaker_form +msgid "Tracks" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields.selection,name:event_track_multi_speaker.selection__event_track_speaker__status__validated +msgid "Validated" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields.selection,name:event_track_multi_speaker.selection__event_track_speaker__status__waiting +msgid "Waiting" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__biography +msgid "Website Partner Full Description" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__website_message_ids +msgid "Website communication history" +msgstr "" diff --git a/event_track_multi_speaker/i18n/fr.po b/event_track_multi_speaker/i18n/fr.po new file mode 100644 index 000000000..97461b414 --- /dev/null +++ b/event_track_multi_speaker/i18n/fr.po @@ -0,0 +1,337 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * event_track_multi_speaker +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-10-08 14:33+0000\n" +"PO-Revision-Date: 2024-10-08 14:33+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_needaction +msgid "Action Needed" +msgstr "Action requise" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_ids +msgid "Activities" +msgstr "Activités" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_state +msgid "Activity State" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__partner_id +msgid "Contact" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__create_uid +msgid "Created by" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__create_date +msgid "Created on" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__display_name +msgid "Display Name" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields.selection,name:event_track_multi_speaker.selection__event_track_speaker__status__draft +msgid "Draft" +msgstr "Brouillon" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__email +msgid "Email" +msgstr "Courriel" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__event_id +#: model_terms:ir.ui.view,arch_db:event_track_multi_speaker.view_event_track_speaker_search +msgid "Event" +msgstr "Évènement" + +#. module: event_track_multi_speaker +#: model:ir.actions.act_window,name:event_track_multi_speaker.action_event_speakers +msgid "Event Speakers" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model,name:event_track_multi_speaker.model_event_track +msgid "Event Track" +msgstr "Session d'événement" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: event_track_multi_speaker +#: model_terms:ir.ui.view,arch_db:event_track_multi_speaker.view_event_track_speaker_search +msgid "Group By" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__has_message +msgid "Has Message" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__id +msgid "ID" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__message_has_error +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__message_has_sms_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__image +msgid "Image 256" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__function +msgid "Job Position" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker____last_update +msgid "Last Modified on" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__write_date +msgid "Last Updated on" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_main_attachment_id +msgid "Main Attachment" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_ids +msgid "Messages" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: event_track_multi_speaker +#: model_terms:ir.ui.view,arch_db:event_track_multi_speaker.view_event_track_speaker_search +msgid "My Speakers" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__name +msgid "Name" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_calendar_event_id +msgid "Next Activity Calendar Event" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__phone +msgid "Phone" +msgstr "Téléphone" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__activity_user_id +msgid "Responsible User" +msgstr "Responsable" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__message_has_sms_error +msgid "SMS Delivery error" +msgstr "" + +#. module: event_track_multi_speaker +#: model_terms:ir.ui.view,arch_db:event_track_multi_speaker.view_event_track_speaker_form +msgid "Speaker" +msgstr "Intervenant" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track__speaker_ids +#: model_terms:ir.ui.view,arch_db:event_track_multi_speaker.view_event_track_form +msgid "Speakers" +msgstr "Intervenants" + +#. module: event_track_multi_speaker +#. odoo-python +#: code:addons/event_track_multi_speaker/models/event_track_speaker.py:0 +#, python-format +msgid "Speakers should belong to only one event." +msgstr "Un intervenant ne peut appartenir qu'à un seul évènement." + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__status +msgid "Status" +msgstr "Statut" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model,name:event_track_multi_speaker.model_event_track_speaker +#: model_terms:ir.ui.view,arch_db:event_track_multi_speaker.view_event_track_speaker_form +msgid "Track Speaker" +msgstr "Intervenant d'une session" + +#. module: event_track_multi_speaker +#: model:ir.ui.menu,name:event_track_multi_speaker.menu_event_speaker +msgid "Track Speakers" +msgstr "Intervenants des sessions" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__track_ids +#: model_terms:ir.ui.view,arch_db:event_track_multi_speaker.view_event_track_speaker_form +msgid "Tracks" +msgstr "Sessions" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields.selection,name:event_track_multi_speaker.selection__event_track_speaker__status__validated +msgid "Validated" +msgstr "Validé" + +#. module: event_track_multi_speaker +#: model:ir.model.fields.selection,name:event_track_multi_speaker.selection__event_track_speaker__status__waiting +msgid "Waiting" +msgstr "En attente" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,field_description:event_track_multi_speaker.field_event_track_speaker__biography +msgid "Website Partner Full Description" +msgstr "Biographie" + +#. module: event_track_multi_speaker +#: model:ir.model.fields,help:event_track_multi_speaker.field_event_track_speaker__website_message_ids +msgid "Website communication history" +msgstr "" diff --git a/event_track_multi_speaker/models/__init__.py b/event_track_multi_speaker/models/__init__.py new file mode 100644 index 000000000..6378cd1b8 --- /dev/null +++ b/event_track_multi_speaker/models/__init__.py @@ -0,0 +1,2 @@ +from . import event_track +from . import event_track_speaker diff --git a/event_track_multi_speaker/models/event_track.py b/event_track_multi_speaker/models/event_track.py new file mode 100644 index 000000000..e6a41ec2f --- /dev/null +++ b/event_track_multi_speaker/models/event_track.py @@ -0,0 +1,13 @@ +# SPDX-FileCopyrightText: 2024 Coop IT Easy SC +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +from odoo import fields, models + + +class EventTrack(models.Model): + _inherit = "event.track" + + speaker_ids = fields.Many2many( + comodel_name="event.track.speaker", string="Speakers" + ) diff --git a/event_track_multi_speaker/models/event_track_speaker.py b/event_track_multi_speaker/models/event_track_speaker.py new file mode 100644 index 000000000..a0b3e8d22 --- /dev/null +++ b/event_track_multi_speaker/models/event_track_speaker.py @@ -0,0 +1,46 @@ +# SPDX-FileCopyrightText: 2024 Coop IT Easy SC +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +from odoo import _, api, fields, models +from odoo.exceptions import UserError + + +class EventTrackSpeaker(models.Model): + _name = "event.track.speaker" + _description = "Track Speaker" + _inherit = ["mail.thread", "mail.activity.mixin"] + + name = fields.Char(related="partner_id.name") + email = fields.Char(related="partner_id.email") + phone = fields.Char(related="partner_id.phone") + biography = fields.Html(related="partner_id.website_description") + function = fields.Char(related="partner_id.function") + image = fields.Image(related="partner_id.image_256") + partner_id = fields.Many2one("res.partner", string="Contact") + track_ids = fields.Many2many( + comodel_name="event.track", + string="Tracks", + ) + status = fields.Selection( + selection=[ + ("draft", "Draft"), + ("waiting", "Waiting"), + ("validated", "Validated"), + ], + default="draft", + ) + event_id = fields.Many2one( + "event.event", compute="_compute_event", string="Event", store=True + ) + + @api.depends("track_ids.event_id") + def _compute_event(self): + if self.track_ids: + self.event_id = self.track_ids[0].event_id + + @api.constrains("track_ids") + def _check_unique_event(self): + for speaker in self: + if len(speaker.mapped("track_ids").mapped("event_id")) > 1: + raise UserError(_("Speakers should belong to only one event.")) diff --git a/event_track_multi_speaker/readme/CONTRIBUTORS.rst b/event_track_multi_speaker/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..146abeb90 --- /dev/null +++ b/event_track_multi_speaker/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `Coop IT Easy SC `_: + + * Victor Champonnois diff --git a/event_track_multi_speaker/readme/DESCRIPTION.rst b/event_track_multi_speaker/readme/DESCRIPTION.rst new file mode 100644 index 000000000..1dc7f1382 --- /dev/null +++ b/event_track_multi_speaker/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +Allow for several speaker on event tracks diff --git a/event_track_multi_speaker/security/ir.model.access.csv b/event_track_multi_speaker/security/ir.model.access.csv new file mode 100644 index 000000000..46d0e13f6 --- /dev/null +++ b/event_track_multi_speaker/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_event_track_speaker_registration,event.track.speaker.user,event_track_multi_speaker.model_event_track_speaker,event.group_event_registration_desk,1,0,0,0 +access_event_track_speaker_user,event.track.speaker.user,event_track_multi_speaker.model_event_track_speaker,event.group_event_user,1,1,1,1 diff --git a/event_track_multi_speaker/static/description/index.html b/event_track_multi_speaker/static/description/index.html new file mode 100644 index 000000000..30aba97ae --- /dev/null +++ b/event_track_multi_speaker/static/description/index.html @@ -0,0 +1,428 @@ + + + + + +Event Track Multi Speaker + + + +
+

Event Track Multi Speaker

+ + +

Beta License: AGPL-3 OCA/event Translate me on Weblate Try me on Runboat

+

Allow for several speaker on event tracks

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Coop IT Easy SC
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainer:

+

victor-champonnois

+

This module is part of the OCA/event project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/event_track_multi_speaker/views/event_track.xml b/event_track_multi_speaker/views/event_track.xml new file mode 100644 index 000000000..4940ec145 --- /dev/null +++ b/event_track_multi_speaker/views/event_track.xml @@ -0,0 +1,22 @@ + + + + event.track + + + + + + + + + + + + + + 1 + + + + diff --git a/event_track_multi_speaker/views/event_track_speaker.xml b/event_track_multi_speaker/views/event_track_speaker.xml new file mode 100644 index 000000000..9c016e5e1 --- /dev/null +++ b/event_track_multi_speaker/views/event_track_speaker.xml @@ -0,0 +1,83 @@ + + + + + event.track.speaker.tree + event.track.speaker + + + + + + + + + + event.track.speaker.search + event.track.speaker + + + + + + + + + + + + + + event.track.speaker.form + event.track.speaker + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+
+ +
diff --git a/event_track_multi_speaker/views/menuitems.xml b/event_track_multi_speaker/views/menuitems.xml new file mode 100644 index 000000000..4ccb97e37 --- /dev/null +++ b/event_track_multi_speaker/views/menuitems.xml @@ -0,0 +1,16 @@ + + + + Event Speakers + event.track.speaker + tree,form + + + diff --git a/event_track_multi_speaker/views/res_partner.xml b/event_track_multi_speaker/views/res_partner.xml new file mode 100644 index 000000000..d6c068dc6 --- /dev/null +++ b/event_track_multi_speaker/views/res_partner.xml @@ -0,0 +1,11 @@ + + + res.partner + + + + + + + + diff --git a/setup/event_track_multi_speaker/odoo/addons/event_track_multi_speaker b/setup/event_track_multi_speaker/odoo/addons/event_track_multi_speaker new file mode 120000 index 000000000..57b9ef76a --- /dev/null +++ b/setup/event_track_multi_speaker/odoo/addons/event_track_multi_speaker @@ -0,0 +1 @@ +../../../../event_track_multi_speaker \ No newline at end of file diff --git a/setup/event_track_multi_speaker/setup.py b/setup/event_track_multi_speaker/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/event_track_multi_speaker/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)