diff --git a/event_mail/README.rst b/event_mail/README.rst new file mode 100644 index 000000000..95de40863 --- /dev/null +++ b/event_mail/README.rst @@ -0,0 +1,93 @@ +========== +Event Mail +========== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/14.0/event_mail + :alt: OCA/event +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/event-14-0/event-14-0-event_mail + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/199/14.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to define mail settings for events. By default the emails +scheduler has been deactivated. +You can create mail scheduler templates for events and select one by default +in event settings. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module, you need to: + +#. Go to *Events > Configuration > Mail Templates* and create all templates + that you need. +#. Go to *Events > Settings* and select the default template in + "Template Mail Scheduler" field. +#. Go to *Events > Events* and create one. All mails schedulers has been + created. Also you can select other template in "Mail Template Scheduler" + field on "Communication" tab. + +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 smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `__: + + * Sergio Teruel + * David Vidal + * Ernesto Tejeda + +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. + +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_mail/__init__.py b/event_mail/__init__.py new file mode 100644 index 000000000..02179fb04 --- /dev/null +++ b/event_mail/__init__.py @@ -0,0 +1,2 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from . import models diff --git a/event_mail/__manifest__.py b/event_mail/__manifest__.py new file mode 100644 index 000000000..8b39647ad --- /dev/null +++ b/event_mail/__manifest__.py @@ -0,0 +1,20 @@ +# Copyright 2017 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + "name": "Event Mail", + "summary": "Mail settings in events", + "version": "14.0.1.0.0", + "author": "Tecnativa, " "Odoo Community Association (OCA)", + "license": "AGPL-3", + "website": "https://github.com/OCA/event", + "category": "Marketing", + "depends": ["event"], + "data": [ + "security/ir.model.access.csv", + "views/res_config_view.xml", + "views/event_view.xml", + "views/event_mail_view.xml", + ], + "installable": True, +} diff --git a/event_mail/i18n/es.po b/event_mail/i18n/es.po new file mode 100644 index 000000000..cc009ec34 --- /dev/null +++ b/event_mail/i18n/es.po @@ -0,0 +1,261 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * event_mail +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-28 10:06+0200\n" +"PO-Revision-Date: 2019-02-01 14:03+0000\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: Weblate 3.4\n" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.res_config_settings_view_form +msgid "" +"Template Mail Scheduler\n" +" " +msgstr "" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_type:0 +msgid "After each registration" +msgstr "" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_type:0 +msgid "After the event" +msgstr "" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_type:0 +msgid "Before the event" +msgstr "" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_res_company +msgid "Companies" +msgstr "" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_res_config_settings +#, fuzzy +msgid "Config Settings" +msgstr "event.config.settings" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__create_uid +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__create_date +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_unit:0 +msgid "Day(s)" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__display_name +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__display_name +msgid "Display Name" +msgstr "Nombre a mostrar" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__sequence +#, fuzzy +msgid "Display order" +msgstr "Nombre a mostrar" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.view_event_mail_template_form +msgid "Email Schedule" +msgstr "Programación de Correo Electrónico" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__template_id +#, fuzzy +msgid "Email Template" +msgstr "Plantilla de mail" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_event_event +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__event_id +msgid "Event" +msgstr "Evento" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_event_type +msgid "Event Category" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__event_mail_template_id +#: model_terms:ir.ui.view,arch_db:event_mail.view_event_mail_template_form +msgid "Event Mail Template" +msgstr "Plantilla de emails" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_unit:0 +msgid "Hour(s)" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__id +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__id +msgid "ID" +msgstr "ID" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_unit:0 +msgid "Immediately" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__interval_nbr +msgid "Interval" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template____last_update +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template____last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__write_uid +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__write_date +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__write_date +msgid "Last Updated on" +msgstr "Última actualización el" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__mail_registration_ids +#, fuzzy +msgid "Mail Registration" +msgstr "Opciones de correo" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__scheduler_template_ids +msgid "Mail Schedule" +msgstr "Programación de correo" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.view_event_mail_template_form +msgid "Mail Scheduler" +msgstr "Programador de Correo Electrónico" + +#. module: event_mail +#: model:ir.actions.act_window,name:event_mail.act_event_mail_template +msgid "Mail Scheduler Template" +msgstr "Plantilla de programación de correo" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__mail_sent +msgid "Mail Sent on Event" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_res_company__event_mail_template_id +#: model:ir.model.fields,field_description:event_mail.field_res_config_settings__event_mail_template_id +msgid "Mail Template" +msgstr "Plantilla de mail" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_event__event_mail_template_id +msgid "Mail Template Scheduler" +msgstr "Plantilla de programación de correo" + +#. module: event_mail +#: model:ir.ui.menu,name:event_mail.menu_event_mail_template +msgid "Mail Templates" +msgstr "Plantillas de correo" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.res_config_settings_view_form +msgid "Mail options" +msgstr "Opciones de correo" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_unit:0 +msgid "Month(s)" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__name +msgid "Name" +msgstr "Nombre" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__scheduled_date +msgid "Scheduled Sent Mail" +msgstr "" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_event_mail_template +msgid "Scheduling templates for events" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__done +msgid "Sent" +msgstr "" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.res_config_settings_view_form +#, fuzzy +msgid "Template" +msgstr "Plantilla de mail" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.res_config_settings_view_form +msgid "Template Mail Scheduler" +msgstr "Plantilla de programación de correo" + +#. module: event_mail +#: model:ir.model.fields,help:event_mail.field_event_mail_scheduler_template__template_id +msgid "" +"This field contains the template of the mail that will be automatically sent" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__interval_type +msgid "Trigger " +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__interval_unit +msgid "Unit" +msgstr "" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_unit:0 +msgid "Week(s)" +msgstr "" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_event_mail_scheduler_template +msgid "event.mail.scheduler.template" +msgstr "event.mail.scheduler.template" + +#~ msgid "event.mail.template" +#~ msgstr "event.mail.template" diff --git a/event_mail/i18n/event_mail.pot b/event_mail/i18n/event_mail.pot new file mode 100644 index 000000000..d3ea8ea0f --- /dev/null +++ b/event_mail/i18n/event_mail.pot @@ -0,0 +1,223 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * event_mail +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.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_mail +#: model_terms:ir.ui.view,arch_db:event_mail.res_config_settings_view_form +msgid "" +"Template Mail Scheduler\n" +" " +msgstr "" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_res_company +msgid "Companies" +msgstr "" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__create_uid +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__create_uid +msgid "Created by" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__create_date +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__create_date +msgid "Created on" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__display_name +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__display_name +msgid "Display Name" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__sequence +msgid "Display order" +msgstr "" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.view_event_mail_template_form +msgid "Email Schedule" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__template_id +msgid "Email Template" +msgstr "" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_event_event +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__event_id +msgid "Event" +msgstr "" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_event_type +msgid "Event Category" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__event_mail_template_id +#: model_terms:ir.ui.view,arch_db:event_mail.view_event_mail_template_form +msgid "Event Mail Template" +msgstr "" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_event_mail_scheduler_template +msgid "Event mail scheduler template" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__id +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__id +msgid "ID" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__interval_nbr +msgid "Interval" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template____last_update +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template____last_update +msgid "Last Modified on" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__write_uid +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__write_date +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__write_date +msgid "Last Updated on" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__mail_registration_ids +msgid "Mail Registration" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__scheduler_template_ids +msgid "Mail Schedule" +msgstr "" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.view_event_mail_template_form +msgid "Mail Scheduler" +msgstr "" + +#. module: event_mail +#: model:ir.actions.act_window,name:event_mail.act_event_mail_template +msgid "Mail Scheduler Template" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__mail_sent +msgid "Mail Sent on Event" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_res_company__event_mail_template_id +#: model:ir.model.fields,field_description:event_mail.field_res_config_settings__event_mail_template_id +msgid "Mail Template" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_event__event_mail_template_id +msgid "Mail Template Scheduler" +msgstr "" + +#. module: event_mail +#: model:ir.ui.menu,name:event_mail.menu_event_mail_template +msgid "Mail Templates" +msgstr "" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.res_config_settings_view_form +msgid "Mail options" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__name +msgid "Name" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__sms_template_id +msgid "SMS Template" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__scheduled_date +msgid "Scheduled Sent Mail" +msgstr "" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_event_mail_template +msgid "Scheduling templates for events" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__notification_type +msgid "Send" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__done +msgid "Sent" +msgstr "" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.res_config_settings_view_form +msgid "Template" +msgstr "" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.res_config_settings_view_form +msgid "Template Mail Scheduler" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,help:event_mail.field_event_mail_scheduler_template__sms_template_id +msgid "" +"This field contains the template of the SMS that will be automatically sent" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,help:event_mail.field_event_mail_scheduler_template__template_id +msgid "" +"This field contains the template of the mail that will be automatically sent" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__interval_type +msgid "Trigger " +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__interval_unit +msgid "Unit" +msgstr "" diff --git a/event_mail/i18n/fr.po b/event_mail/i18n/fr.po new file mode 100644 index 000000000..97896f0fa --- /dev/null +++ b/event_mail/i18n/fr.po @@ -0,0 +1,260 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * event_mail +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2018-11-06 13:26+0000\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: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.2.2\n" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.res_config_settings_view_form +msgid "" +"Template Mail Scheduler\n" +" " +msgstr "" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_type:0 +msgid "After each registration" +msgstr "" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_type:0 +msgid "After the event" +msgstr "" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_type:0 +msgid "Before the event" +msgstr "" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_res_company +msgid "Companies" +msgstr "" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_res_config_settings +#, fuzzy +msgid "Config Settings" +msgstr "event.config.settings" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__create_uid +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__create_date +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_unit:0 +msgid "Day(s)" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__display_name +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__sequence +#, fuzzy +msgid "Display order" +msgstr "Nom affiché" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.view_event_mail_template_form +msgid "Email Schedule" +msgstr "Planification email" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__template_id +#, fuzzy +msgid "Email Template" +msgstr "Modèle d'email" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_event_event +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__event_id +msgid "Event" +msgstr "Événement" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_event_type +msgid "Event Category" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__event_mail_template_id +#: model_terms:ir.ui.view,arch_db:event_mail.view_event_mail_template_form +msgid "Event Mail Template" +msgstr "Modèle mail événement" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_unit:0 +msgid "Hour(s)" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__id +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__id +msgid "ID" +msgstr "ID" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_unit:0 +msgid "Immediately" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__interval_nbr +msgid "Interval" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template____last_update +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__write_uid +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__write_uid +msgid "Last Updated by" +msgstr "Dernière modification par" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__write_date +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__write_date +msgid "Last Updated on" +msgstr "Dernière modification le" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__mail_registration_ids +#, fuzzy +msgid "Mail Registration" +msgstr "Options e-mail" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__scheduler_template_ids +msgid "Mail Schedule" +msgstr "Planification email" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.view_event_mail_template_form +msgid "Mail Scheduler" +msgstr "Planificateur email" + +#. module: event_mail +#: model:ir.actions.act_window,name:event_mail.act_event_mail_template +msgid "Mail Scheduler Template" +msgstr "Modèle planificateur email" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__mail_sent +msgid "Mail Sent on Event" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_res_company__event_mail_template_id +#: model:ir.model.fields,field_description:event_mail.field_res_config_settings__event_mail_template_id +msgid "Mail Template" +msgstr "Modèle d'email" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_event__event_mail_template_id +msgid "Mail Template Scheduler" +msgstr "Modèle de planificateur mail" + +#. module: event_mail +#: model:ir.ui.menu,name:event_mail.menu_event_mail_template +msgid "Mail Templates" +msgstr "Modèles d'e-mail" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.res_config_settings_view_form +msgid "Mail options" +msgstr "Options e-mail" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_unit:0 +msgid "Month(s)" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_template__name +msgid "Name" +msgstr "Nom" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__scheduled_date +msgid "Scheduled Sent Mail" +msgstr "" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_event_mail_template +msgid "Scheduling templates for events" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__done +msgid "Sent" +msgstr "" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.res_config_settings_view_form +#, fuzzy +msgid "Template" +msgstr "Modèle d'email" + +#. module: event_mail +#: model_terms:ir.ui.view,arch_db:event_mail.res_config_settings_view_form +msgid "Template Mail Scheduler" +msgstr "Modèle de planificateur email" + +#. module: event_mail +#: model:ir.model.fields,help:event_mail.field_event_mail_scheduler_template__template_id +msgid "" +"This field contains the template of the mail that will be automatically sent" +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__interval_type +msgid "Trigger " +msgstr "" + +#. module: event_mail +#: model:ir.model.fields,field_description:event_mail.field_event_mail_scheduler_template__interval_unit +msgid "Unit" +msgstr "" + +#. module: event_mail +#: selection:event.mail.scheduler.template,interval_unit:0 +msgid "Week(s)" +msgstr "" + +#. module: event_mail +#: model:ir.model,name:event_mail.model_event_mail_scheduler_template +msgid "event.mail.scheduler.template" +msgstr "event.mail.scheduler.template" + +#~ msgid "event.mail.template" +#~ msgstr "event.mail.template" diff --git a/event_mail/models/__init__.py b/event_mail/models/__init__.py new file mode 100644 index 000000000..7da2bc915 --- /dev/null +++ b/event_mail/models/__init__.py @@ -0,0 +1,11 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from . import res_company + +# WARNING: Order of imports matters on this module, so don't put res_company +# below the other modules since it will lead to a missing column error when +# the module is initialized for the first time since there are fields with +# default values wich refer to this new res.company field. +from . import event +from . import event_mail +from . import event_type +from . import res_config_settings diff --git a/event_mail/models/event.py b/event_mail/models/event.py new file mode 100644 index 000000000..bac066da1 --- /dev/null +++ b/event_mail/models/event.py @@ -0,0 +1,40 @@ +# Copyright 2017 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import api, fields, models + + +class EventEvent(models.Model): + _inherit = "event.event" + + @api.model + def _default_event_mail_template_id(self): + return self.env.company.event_mail_template_id + + event_mail_template_id = fields.Many2one( + comodel_name="event.mail.template", + string="Mail Template Scheduler", + default=_default_event_mail_template_id, + ) + + @api.depends("event_mail_template_id") + def _compute_event_mail_ids(self): + records = self.filtered("event_mail_template_id") + without_template = self - records + for event in records: + command = [(5, 0)] + [ + ( + 0, + 0, + { + attribute_name: line[attribute_name] + if not isinstance(line[attribute_name], models.BaseModel) + else line[attribute_name].id + for attribute_name in self.env[ + "event.type.mail" + ]._get_event_mail_fields_whitelist() + }, + ) + for line in event.event_mail_template_id.scheduler_template_ids + ] + event.event_mail_ids = command + super(EventEvent, without_template)._compute_event_mail_ids() diff --git a/event_mail/models/event_mail.py b/event_mail/models/event_mail.py new file mode 100644 index 000000000..d9f28e6f2 --- /dev/null +++ b/event_mail/models/event_mail.py @@ -0,0 +1,48 @@ +# Copyright 2017 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import api, fields, models + + +class EventMailSchedulerTemplate(models.Model): + _name = "event.mail.scheduler.template" + _inherit = "event.mail" + _description = "Event mail scheduler template" + + event_id = fields.Many2one(required=False) + event_mail_template_id = fields.Many2one( + comodel_name="event.mail.template", + string="Event Mail Template", + required=True, + ondelete="cascade", + ) + + +class EventMailTemplate(models.Model): + _name = "event.mail.template" + _description = "Scheduling templates for events" + + @api.model + def _default_scheduler_template_ids(self): + return [ + { + "notification_type": "mail", + "interval_unit": "now", + "interval_type": "after_sub", + "template_id": self.env.ref("event.event_subscription").id, + }, + { + "notification_type": "mail", + "interval_nbr": 10, + "interval_unit": "days", + "interval_type": "before_event", + "template_id": self.env.ref("event.event_reminder").id, + }, + ] + + name = fields.Char() + scheduler_template_ids = fields.One2many( + comodel_name="event.mail.scheduler.template", + inverse_name="event_mail_template_id", + string="Mail Schedule", + default=_default_scheduler_template_ids, + ) diff --git a/event_mail/models/event_type.py b/event_mail/models/event_type.py new file mode 100644 index 000000000..90c6795c3 --- /dev/null +++ b/event_mail/models/event_type.py @@ -0,0 +1,33 @@ +# Copyright 2019 Tecnativa - David Vidal +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import models + + +class EventType(models.Model): + _inherit = "event.type" + + def _compute_event_type_mail_ids(self): + event_mail_template_id = self.env.company.event_mail_template_id + for template in self: + if ( + template.use_mail_schedule + and not template.event_type_mail_ids + and event_mail_template_id + ): + template.event_type_mail_ids = [ + ( + 0, + 0, + { + attribute_name: line[attribute_name] + if not isinstance(line[attribute_name], models.BaseModel) + else line[attribute_name].id + for attribute_name in self.env[ + "event.type.mail" + ]._get_event_mail_fields_whitelist() + }, + ) + for line in event_mail_template_id.scheduler_template_ids + ] + else: + template.event_type_mail_ids = [(5, 0)] diff --git a/event_mail/models/res_company.py b/event_mail/models/res_company.py new file mode 100644 index 000000000..4e6b66f76 --- /dev/null +++ b/event_mail/models/res_company.py @@ -0,0 +1,12 @@ +# Copyright 2019 Tecnativa - David Vidal +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import fields, models + + +class ResCompany(models.Model): + _inherit = "res.company" + + event_mail_template_id = fields.Many2one( + comodel_name="event.mail.template", + string="Mail Template", + ) diff --git a/event_mail/models/res_config_settings.py b/event_mail/models/res_config_settings.py new file mode 100644 index 000000000..14d9e3eb0 --- /dev/null +++ b/event_mail/models/res_config_settings.py @@ -0,0 +1,15 @@ +# Copyright 2016 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + event_mail_template_id = fields.Many2one( + related="company_id.event_mail_template_id", + comodel_name="event.mail.template", + string="Mail Template", + readonly=False, + ) diff --git a/event_mail/readme/CONTRIBUTORS.rst b/event_mail/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..0d5da7862 --- /dev/null +++ b/event_mail/readme/CONTRIBUTORS.rst @@ -0,0 +1,5 @@ +* `Tecnativa `__: + + * Sergio Teruel + * David Vidal + * Ernesto Tejeda diff --git a/event_mail/readme/DESCRIPTION.rst b/event_mail/readme/DESCRIPTION.rst new file mode 100644 index 000000000..17412837c --- /dev/null +++ b/event_mail/readme/DESCRIPTION.rst @@ -0,0 +1,4 @@ +This module allows to define mail settings for events. By default the emails +scheduler has been deactivated. +You can create mail scheduler templates for events and select one by default +in event settings. diff --git a/event_mail/readme/USAGE.rst b/event_mail/readme/USAGE.rst new file mode 100644 index 000000000..735b3429c --- /dev/null +++ b/event_mail/readme/USAGE.rst @@ -0,0 +1,9 @@ +To use this module, you need to: + +#. Go to *Events > Configuration > Mail Templates* and create all templates + that you need. +#. Go to *Events > Settings* and select the default template in + "Template Mail Scheduler" field. +#. Go to *Events > Events* and create one. All mails schedulers has been + created. Also you can select other template in "Mail Template Scheduler" + field on "Email Schedule" tab. diff --git a/event_mail/security/ir.model.access.csv b/event_mail/security/ir.model.access.csv new file mode 100644 index 000000000..04ebb0054 --- /dev/null +++ b/event_mail/security/ir.model.access.csv @@ -0,0 +1,5 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_event_mail_template_user,access_event_mail_template_user,event_mail.model_event_mail_template,event.group_event_user,1,0,0,0 +access_event_mail_template_manager,access_event_mail_template_manager,event_mail.model_event_mail_template,event.group_event_manager,1,1,1,1 +event_mail_scheduler_template_user,access_event_mail_scheduler_template_user,event_mail.model_event_mail_scheduler_template,event.group_event_user,1,0,0,0 +event_mail_scheduler_template_manager,access_event_mail_scheduler_template_manager,event_mail.model_event_mail_scheduler_template,event.group_event_manager,1,1,1,1 diff --git a/event_mail/static/description/icon.png b/event_mail/static/description/icon.png new file mode 100644 index 000000000..3a0328b51 Binary files /dev/null and b/event_mail/static/description/icon.png differ diff --git a/event_mail/static/description/index.html b/event_mail/static/description/index.html new file mode 100644 index 000000000..b4e1609b4 --- /dev/null +++ b/event_mail/static/description/index.html @@ -0,0 +1,444 @@ + + + + + + +Event Mail + + + +
+

Event Mail

+ + +

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

+

This module allows to define mail settings for events. By default the emails +scheduler has been deactivated. +You can create mail scheduler templates for events and select one by default +in event settings.

+

Table of contents

+ +
+

Usage

+

To use this module, you need to:

+
    +
  1. Go to Events > Configuration > Mail Templates and create all templates +that you need.
  2. +
  3. Go to Events > Settings and select the default template in +“Template Mail Scheduler” field.
  4. +
  5. Go to Events > Events and create one. All mails schedulers has been +created. Also you can select other template in “Mail Template Scheduler” +field on “Email Schedule” tab.
  6. +
+
+
+

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 smashing it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • Tecnativa:

    +
    +
      +
    • Sergio Teruel
    • +
    • David Vidal
    • +
    • Ernesto Tejeda
    • +
    +
    +
  • +
+
+
+

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.

+

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_mail/tests/__init__.py b/event_mail/tests/__init__.py new file mode 100644 index 000000000..b0057e6bc --- /dev/null +++ b/event_mail/tests/__init__.py @@ -0,0 +1 @@ +from . import test_event_mail diff --git a/event_mail/tests/test_event_mail.py b/event_mail/tests/test_event_mail.py new file mode 100644 index 000000000..6faa68e49 --- /dev/null +++ b/event_mail/tests/test_event_mail.py @@ -0,0 +1,111 @@ +# Copyright 2017 Tecnativa - Sergio Teruel +# Copyright 2020 Studio73 - Pablo Fuentes +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo.tests.common import SavepointCase + + +class EventMailCase(SavepointCase): + @classmethod + def setUpClass(cls): + """Add some defaults to let the test run without an accounts chart.""" + super().setUpClass() + cls.template1 = cls.env["event.mail.template"].create( + {"name": "Template test 01"} + ) + cls.template2 = cls.env["event.mail.template"].create( + { + "name": "Template test 01", + "scheduler_template_ids": [ + ( + 0, + 0, + { + "interval_nbr": 15, + "interval_unit": "days", + "interval_type": "before_event", + "template_id": cls.env.ref("event.event_reminder").id, + }, + ) + ], + } + ) + + def test_event_template_config(self): + # Store default template in event settings + event_config = ( + self.env["res.config.settings"] + .sudo() + .create({"event_mail_template_id": self.template1.id}) + ) + event_config.execute() + config_template_id = self.env.user.company_id.event_mail_template_id + self.assertTrue( + config_template_id, "Event Mail: Template store in default values" + ) + + # Create an event + vals = { + "name": "Event test", + "date_begin": "2017-05-01", + "date_end": "2017-06-01", + "auto_confirm": False, + "event_mail_template_id": self.template1.id, + } + event = self.env["event.event"].create(vals) + self.assertTrue( + event.event_mail_ids, "Event Mail: mails scheduler created for this event" + ) + + # Change template in event + event.event_mail_template_id = self.template2 + self.assertEqual( + len(event.event_mail_ids), 1, "Event Mail: mails scheduler only one" + ) + + def test_event_template_no_config(self): + # Store default template in event settings + event_config = ( + self.env["res.config.settings"] + .sudo() + .create({"event_mail_template_id": False}) + ) + event_config.execute() + config_template_id = self.env.user.company_id.event_mail_template_id + self.assertFalse( + self.env["event.mail.template"].browse(config_template_id).exists(), + "Event Mail: Template are not stored as default values", + ) + + # Create an event + vals = { + "name": "Event test", + "date_begin": "2017-05-01", + "date_end": "2017-06-01", + "auto_confirm": False, + } + event = self.env["event.event"].create(vals) + self.assertEqual( + len(event.event_mail_ids), + 0, + "Event Mail: mails scheduler no created for this event", + ) + + def test_company_event_type(self): + event_config = ( + self.env["res.config.settings"] + .sudo() + .create({"event_mail_template_id": self.template2.id}) + ) + event_config.execute() + event_type = self.env["event.type"].create( + {"name": "Physical", "use_mail_schedule": "False"} + ) + self.assertTrue( + event_type.event_type_mail_ids.exists(), + "Must be 'Mail Schedule'", + ) + self.assertEqual( + len(event_type.event_type_mail_ids), + len(self.env.company.event_mail_template_id.scheduler_template_ids), + "Must be same number of 'Mail Schedule' as in company default template", + ) diff --git a/event_mail/views/event_mail_view.xml b/event_mail/views/event_mail_view.xml new file mode 100644 index 000000000..f58a309fb --- /dev/null +++ b/event_mail/views/event_mail_view.xml @@ -0,0 +1,45 @@ + + + + + event.mail.template.form + event.mail.template + +
+ + + + + + + + + + + + + + + + +
+
+
+ + event.mail.template + Mail Scheduler Template + tree,form + {} + + +
diff --git a/event_mail/views/event_view.xml b/event_mail/views/event_view.xml new file mode 100644 index 000000000..f4332f32d --- /dev/null +++ b/event_mail/views/event_view.xml @@ -0,0 +1,17 @@ + + + + + event.event + + + + + + + + diff --git a/event_mail/views/res_config_view.xml b/event_mail/views/res_config_view.xml new file mode 100644 index 000000000..5f70dc271 --- /dev/null +++ b/event_mail/views/res_config_view.xml @@ -0,0 +1,47 @@ + + + + + res.config.settings + + + +

Mail options

+
+
+
+ Template Mail Scheduler + +
+ Template Mail Scheduler +
+
+
+
+
+
+
+
+
+
+
+
diff --git a/setup/event_mail/odoo/addons/event_mail b/setup/event_mail/odoo/addons/event_mail new file mode 120000 index 000000000..0c9773666 --- /dev/null +++ b/setup/event_mail/odoo/addons/event_mail @@ -0,0 +1 @@ +../../../../event_mail \ No newline at end of file diff --git a/setup/event_mail/setup.py b/setup/event_mail/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/event_mail/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)