diff --git a/event_registration_mass_mailing/README.rst b/event_registration_mass_mailing/README.rst new file mode 100644 index 000000000..36163ac85 --- /dev/null +++ b/event_registration_mass_mailing/README.rst @@ -0,0 +1,109 @@ +================================================= +Put event registrations emails into mailing lists +================================================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:4aff60ca5a2119d82d035c769558fb49fcd8aa27ad644a70ee489f76dd87b38a + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/17.0/event_registration_mass_mailing + :alt: OCA/event +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/event-17-0/event-17-0-event_registration_mass_mailing + :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=17.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to add event registrations to mailing lists from +their tree view. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module you need to: + +1. Go to an event attendees tree view and select the ones you want to + put into the mailing list. +2. Click on *Action > Add to mailing list* and a wizard will pop up. +3. Choose the mailing lists you want to put the registrations into. +4. A new contact will be created for each one of the attendees if the + mail address wasn't in the list already. + +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 +------- + +* Tecnativa + +Contributors +------------ + +- Javier Iniesta +- `Tecnativa `__: + + - Vicent Cubells + - David Vidal + +- Eduardo López (`Moduon `__) +- `Heliconia Solutions Pvt. Ltd. `__ + + - Bhavesh Heliconia + +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-rafaelbn| image:: https://github.com/rafaelbn.png?size=40px + :target: https://github.com/rafaelbn + :alt: rafaelbn +.. |maintainer-edlopen| image:: https://github.com/edlopen.png?size=40px + :target: https://github.com/edlopen + :alt: edlopen + +Current `maintainers `__: + +|maintainer-rafaelbn| |maintainer-edlopen| + +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_registration_mass_mailing/__init__.py b/event_registration_mass_mailing/__init__.py new file mode 100644 index 000000000..40272379f --- /dev/null +++ b/event_registration_mass_mailing/__init__.py @@ -0,0 +1 @@ +from . import wizard diff --git a/event_registration_mass_mailing/__manifest__.py b/event_registration_mass_mailing/__manifest__.py new file mode 100644 index 000000000..2c320f697 --- /dev/null +++ b/event_registration_mass_mailing/__manifest__.py @@ -0,0 +1,21 @@ +# Copyright 2016 Antiun Ingenieria S.L. - Javier Iniesta +# Copyright 2017 Tecnativa - Vicent Cubells +# Copyright 2020 Tecnativa - David Vidal +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Put event registrations emails into mailing lists", + "category": "Marketing", + "version": "17.0.1.0.0", + "depends": ["event", "mass_mailing"], + "data": [ + "security/ir.model.access.csv", + "views/event_registration.xml", + "wizard/event_registration_mail_list_wizard.xml", + ], + "author": "Tecnativa, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/event", + "maintainers": ["rafaelbn", "edlopen"], + "license": "AGPL-3", + "installable": True, + "auto_install": False, +} diff --git a/event_registration_mass_mailing/i18n/es.po b/event_registration_mass_mailing/i18n/es.po new file mode 100644 index 000000000..725ab230f --- /dev/null +++ b/event_registration_mass_mailing/i18n/es.po @@ -0,0 +1,120 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * event_registration_mass_mailing +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-07-14 13:24+0000\n" +"PO-Revision-Date: 2020-07-14 15:25+0200\n" +"Last-Translator: Marta Vázquez Rodríguez \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Poedit 2.2.4\n" + +#. module: event_registration_mass_mailing +#: model:ir.actions.act_window,name:event_registration_mass_mailing.action_event_registration_mail_list +msgid "Add to mailing list" +msgstr "Añadir a lista de correos" + +#. module: event_registration_mass_mailing +#: model:ir.model,name:event_registration_mass_mailing.model_event_registration_mail_list_wizard +#: model_terms:ir.ui.view,arch_db:event_registration_mass_mailing.event_registration_mail_list_wizard_form +msgid "Create contact mailing list" +msgstr "Crear contactos de lista de correo" + +#. module: event_registration_mass_mailing +#: model_terms:ir.ui.view,arch_db:event_registration_mass_mailing.event_registration_mail_list_wizard_form +msgid "Create contacts" +msgstr "Crear contactos" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__display_name +msgid "Display Name" +msgstr "Nombre a mostrar" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__event_registrations +msgid "Event Registrations" +msgstr "Registros a eventos" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__id +msgid "ID" +msgstr "ID" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard____last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__mail_list +msgid "Mailing list" +msgstr "Lista de correo" + +#~ msgid "Mass mailing to partners" +#~ msgstr "Envío masivo a empresas" + +#~ msgid "Attendee" +#~ msgstr "Asistente" + +#~ msgid "Available for mass mailing" +#~ msgstr "Disponible para envío masivo de correo" + +#~ msgid "Event registrations" +#~ msgstr "Registros" + +#~ msgid "" +#~ "If opt-out is checked, this contact has refused to receive emails for " +#~ "mass mailing and marketing campaign." +#~ msgstr "" +#~ "Si 'No acepta mensajes' está marcado, este contacto ha rehusado recibir " +#~ "correos electrónicos de envíos masivos y campañas de marketing." + +#~ msgid "Mass Mailing" +#~ msgstr "Envío masivo" + +#~ msgid "Opt-Out" +#~ msgstr "No acepta recibir emails" + +#~ msgid "" +#~ "Registrations that did not ask not to be included in mass mailing " +#~ "campaigns and has an e-mail set." +#~ msgstr "" +#~ "Registros que no solicitaron no ser incluidos en campañas de envío masivo " +#~ "de correos y tienen establecido un correo electrónico." + +#~ msgid "Cancel" +#~ msgstr "Cancelar" + +#~ msgid "Event Registration" +#~ msgstr "Registro" + +#~ msgid "New" +#~ msgstr "Nuevo" diff --git a/event_registration_mass_mailing/i18n/event_registration_mass_mailing.pot b/event_registration_mass_mailing/i18n/event_registration_mass_mailing.pot new file mode 100644 index 000000000..35d1f5dee --- /dev/null +++ b/event_registration_mass_mailing/i18n/event_registration_mass_mailing.pot @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * event_registration_mass_mailing +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \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_registration_mass_mailing +#: model:ir.actions.act_window,name:event_registration_mass_mailing.action_event_registration_mail_list +msgid "Add to mailing list" +msgstr "" + +#. module: event_registration_mass_mailing +#: model:ir.model,name:event_registration_mass_mailing.model_event_registration_mail_list_wizard +#: model_terms:ir.ui.view,arch_db:event_registration_mass_mailing.event_registration_mail_list_wizard_form +msgid "Create contact mailing list" +msgstr "" + +#. module: event_registration_mass_mailing +#: model_terms:ir.ui.view,arch_db:event_registration_mass_mailing.event_registration_mail_list_wizard_form +msgid "Create contacts" +msgstr "" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__create_uid +msgid "Created by" +msgstr "" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__create_date +msgid "Created on" +msgstr "" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__display_name +msgid "Display Name" +msgstr "" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__event_registrations +msgid "Event Registrations" +msgstr "" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__id +msgid "ID" +msgstr "" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard____last_update +msgid "Last Modified on" +msgstr "" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__write_date +msgid "Last Updated on" +msgstr "" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__mail_list +msgid "Mailing list" +msgstr "" diff --git a/event_registration_mass_mailing/i18n/fr.po b/event_registration_mass_mailing/i18n/fr.po new file mode 100644 index 000000000..12e09804a --- /dev/null +++ b/event_registration_mass_mailing/i18n/fr.po @@ -0,0 +1,111 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * event_registration_mass_mailing +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-07-14 13:24+0000\n" +"PO-Revision-Date: 2020-07-14 15:26+0200\n" +"Last-Translator: William Olhasque \n" +"Language-Team: none\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Poedit 2.2.4\n" + +#. module: event_registration_mass_mailing +#: model:ir.actions.act_window,name:event_registration_mass_mailing.action_event_registration_mail_list +msgid "Add to mailing list" +msgstr "Ajouter la liste de distribution" + +#. module: event_registration_mass_mailing +#: model:ir.model,name:event_registration_mass_mailing.model_event_registration_mail_list_wizard +#: model_terms:ir.ui.view,arch_db:event_registration_mass_mailing.event_registration_mail_list_wizard_form +msgid "Create contact mailing list" +msgstr "Créer une liste de distribution" + +#. module: event_registration_mass_mailing +#: model_terms:ir.ui.view,arch_db:event_registration_mass_mailing.event_registration_mail_list_wizard_form +msgid "Create contacts" +msgstr "Créer des contacts" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__event_registrations +msgid "Event Registrations" +msgstr "Inscription à l'événement" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__id +msgid "ID" +msgstr "ID" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__write_uid +msgid "Last Updated by" +msgstr "Dernière modification par" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__write_date +msgid "Last Updated on" +msgstr "Dernière modification le" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__mail_list +msgid "Mailing list" +msgstr "Liste de distribution" + +#~ msgid "Mass mailing to partners" +#~ msgstr "E-mailing de masse aux partenaires" + +#~ msgid "Attendee" +#~ msgstr "Participant" + +#~ msgid "Available for mass mailing" +#~ msgstr "Disponible pour distribution de masse" + +#~ msgid "Event registrations" +#~ msgstr "Inscriptions à l'événement" + +#~ msgid "" +#~ "If opt-out is checked, this contact has refused to receive emails for " +#~ "mass mailing and marketing campaign." +#~ msgstr "" +#~ "Si l'option retrait (opt-out) est cochée, le contact a refusé de recevoir " +#~ "des e-mails pour les campagnes marketing et mailing." + +#~ msgid "Mass Mailing" +#~ msgstr "E-mailing de masse" + +#~ msgid "Opt-Out" +#~ msgstr "Option de retrait (opt-out)" + +#~ msgid "" +#~ "Registrations that did not ask not to be included in mass mailing " +#~ "campaigns and has an e-mail set." +#~ msgstr "" +#~ "Inscriptions qui n'ont pas refusé de faire partie des campagnes d'e-" +#~ "mailing de masse et un e-mail est défini." diff --git a/event_registration_mass_mailing/i18n/it.po b/event_registration_mass_mailing/i18n/it.po new file mode 100644 index 000000000..7382be925 --- /dev/null +++ b/event_registration_mass_mailing/i18n/it.po @@ -0,0 +1,78 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * event_registration_mass_mailing +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-12-07 16:35+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: event_registration_mass_mailing +#: model:ir.actions.act_window,name:event_registration_mass_mailing.action_event_registration_mail_list +msgid "Add to mailing list" +msgstr "Aggiungi alla mailing list" + +#. module: event_registration_mass_mailing +#: model:ir.model,name:event_registration_mass_mailing.model_event_registration_mail_list_wizard +#: model_terms:ir.ui.view,arch_db:event_registration_mass_mailing.event_registration_mail_list_wizard_form +msgid "Create contact mailing list" +msgstr "Crea mailing list contatto" + +#. module: event_registration_mass_mailing +#: model_terms:ir.ui.view,arch_db:event_registration_mass_mailing.event_registration_mail_list_wizard_form +msgid "Create contacts" +msgstr "Crea contatti" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__event_registrations +msgid "Event Registrations" +msgstr "Registrazioni evento" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__id +msgid "ID" +msgstr "ID" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: event_registration_mass_mailing +#: model:ir.model.fields,field_description:event_registration_mass_mailing.field_event_registration_mail_list_wizard__mail_list +msgid "Mailing list" +msgstr "Mailing list" diff --git a/event_registration_mass_mailing/pyproject.toml b/event_registration_mass_mailing/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/event_registration_mass_mailing/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/event_registration_mass_mailing/readme/CONTRIBUTORS.md b/event_registration_mass_mailing/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..ddd95a31e --- /dev/null +++ b/event_registration_mass_mailing/readme/CONTRIBUTORS.md @@ -0,0 +1,7 @@ +- Javier Iniesta \<\> +- [Tecnativa](https://www.tecnativa.com): + - Vicent Cubells \<\> + - David Vidal \<\> +- Eduardo López ([Moduon](https://www.moduon.es/)) +- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io) + - Bhavesh Heliconia diff --git a/event_registration_mass_mailing/readme/DESCRIPTION.md b/event_registration_mass_mailing/readme/DESCRIPTION.md new file mode 100644 index 000000000..61eb2241c --- /dev/null +++ b/event_registration_mass_mailing/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module allows to add event registrations to mailing lists from +their tree view. diff --git a/event_registration_mass_mailing/readme/USAGE.md b/event_registration_mass_mailing/readme/USAGE.md new file mode 100644 index 000000000..388de2023 --- /dev/null +++ b/event_registration_mass_mailing/readme/USAGE.md @@ -0,0 +1,8 @@ +To use this module you need to: + +1. Go to an event attendees tree view and select the ones you want to + put into the mailing list. +2. Click on *Action \> Add to mailing list* and a wizard will pop up. +3. Choose the mailing lists you want to put the registrations into. +4. A new contact will be created for each one of the attendees if the + mail address wasn't in the list already. diff --git a/event_registration_mass_mailing/security/ir.model.access.csv b/event_registration_mass_mailing/security/ir.model.access.csv new file mode 100644 index 000000000..8a9d78390 --- /dev/null +++ b/event_registration_mass_mailing/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_event_registration_mail_list_wizard_mass_mailing_user,event.registration.mail.list.wizard.mass_mailing_user,model_event_registration_mail_list_wizard,mass_mailing.group_mass_mailing_user,1,1,1,1 diff --git a/event_registration_mass_mailing/static/description/icon.png b/event_registration_mass_mailing/static/description/icon.png new file mode 100644 index 000000000..3a0328b51 Binary files /dev/null and b/event_registration_mass_mailing/static/description/icon.png differ diff --git a/event_registration_mass_mailing/static/description/index.html b/event_registration_mass_mailing/static/description/index.html new file mode 100644 index 000000000..b00353566 --- /dev/null +++ b/event_registration_mass_mailing/static/description/index.html @@ -0,0 +1,449 @@ + + + + + +Put event registrations emails into mailing lists + + + +
+

Put event registrations emails into mailing lists

+ + +

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

+

This module allows to add event registrations to mailing lists from +their tree view.

+

Table of contents

+ +
+

Usage

+

To use this module you need to:

+
    +
  1. Go to an event attendees tree view and select the ones you want to +put into the mailing list.
  2. +
  3. Click on Action > Add to mailing list and a wizard will pop up.
  4. +
  5. Choose the mailing lists you want to put the registrations into.
  6. +
  7. A new contact will be created for each one of the attendees if the +mail address wasn’t in the list already.
  8. +
+
+
+

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

+
    +
  • Tecnativa
  • +
+
+
+

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 maintainers:

+

rafaelbn edlopen

+

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_registration_mass_mailing/tests/__init__.py b/event_registration_mass_mailing/tests/__init__.py new file mode 100644 index 000000000..d7e7a5bf1 --- /dev/null +++ b/event_registration_mass_mailing/tests/__init__.py @@ -0,0 +1 @@ +from . import test_event_registration_mail_list_wizard diff --git a/event_registration_mass_mailing/tests/test_event_registration_mail_list_wizard.py b/event_registration_mass_mailing/tests/test_event_registration_mail_list_wizard.py new file mode 100644 index 000000000..ed92178fb --- /dev/null +++ b/event_registration_mass_mailing/tests/test_event_registration_mail_list_wizard.py @@ -0,0 +1,52 @@ +# Copyright 2016 Antiun Ingenieria S.L. - Javier Iniesta +# Copyright 2020 Tecnativa - David Vidal +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import Command, fields + +from odoo.addons.base.tests.common import BaseCommon + + +class TestEventRegistrationMailListWizard(BaseCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.mass_mailing_obj = cls.env["mailing.mailing"] + cls.mail_list = cls.env["mailing.list"].create({"name": "Test 01"}) + cls.contact = cls.env["mailing.contact"].create( + { + "name": "Test Contact 01", + "email": "email01@test.com", + "list_ids": [Command.set([cls.mail_list.id])], + } + ) + cls.event = cls.env["event.event"].create( + { + "name": "Test event", + "date_begin": fields.Datetime.now(), + "date_end": fields.Datetime.now(), + "seats_max": "5", + } + ) + cls.registration_01 = cls.env["event.registration"].create( + { + "name": "Test Registration 01", + "email": "email01@test.com", + "event_id": cls.event.id, + } + ) + cls.registration_02 = cls.env["event.registration"].create( + { + "name": "Test Registration 02", + "email": "email02@test.com", + "event_id": cls.event.id, + } + ) + + def test_add_to_mail_list(self): + wizard = self.env["event.registration.mail.list.wizard"].create( + {"mail_list": self.mail_list.id} + ) + wizard.with_context( + **{"active_ids": [self.registration_01.id, self.registration_02.id]} + ).add_to_mail_list() + self.assertEqual(len(self.mail_list.contact_ids), 2) diff --git a/event_registration_mass_mailing/views/event_registration.xml b/event_registration_mass_mailing/views/event_registration.xml new file mode 100644 index 000000000..2e235dcf3 --- /dev/null +++ b/event_registration_mass_mailing/views/event_registration.xml @@ -0,0 +1,11 @@ + + + + Add to mailing list + event.registration.mail.list.wizard + + form + list + new + + diff --git a/event_registration_mass_mailing/wizard/__init__.py b/event_registration_mass_mailing/wizard/__init__.py new file mode 100644 index 000000000..76815f307 --- /dev/null +++ b/event_registration_mass_mailing/wizard/__init__.py @@ -0,0 +1 @@ +from . import event_registration_mail_list_wizard diff --git a/event_registration_mass_mailing/wizard/event_registration_mail_list_wizard.py b/event_registration_mass_mailing/wizard/event_registration_mail_list_wizard.py new file mode 100644 index 000000000..617515a43 --- /dev/null +++ b/event_registration_mass_mailing/wizard/event_registration_mail_list_wizard.py @@ -0,0 +1,26 @@ +# Copyright 2016 Antiun Ingenieria S.L. - Javier Iniesta +# Copyright 2020 Tecnativa - David Vidal +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import Command, fields, models + + +class EventRegistrationMailListWizard(models.TransientModel): + _name = "event.registration.mail.list.wizard" + _description = "Create contact mailing list" + + mail_list = fields.Many2one(comodel_name="mailing.list", string="Mailing list") + event_registrations = fields.Many2many( + comodel_name="event.registration", + relation="mail_list_wizard_event_registration", + ) + + def add_to_mail_list(self): + registrations = self.env["event.registration"].search( + [ + ("id", "in", self.env.context.get("active_ids", [])), + ("email", "not in", self.mail_list.contact_ids.mapped("email")), + ] + ) + self.mail_list.contact_ids = [ + Command.create({"email": r.email, "name": r.name}) for r in registrations + ] diff --git a/event_registration_mass_mailing/wizard/event_registration_mail_list_wizard.xml b/event_registration_mass_mailing/wizard/event_registration_mail_list_wizard.xml new file mode 100644 index 000000000..e537175fd --- /dev/null +++ b/event_registration_mass_mailing/wizard/event_registration_mail_list_wizard.xml @@ -0,0 +1,23 @@ + + + + + event.registration.mail.list.wizard + +
+ + + + +
+
+
+ +