Browse Source

[IMP] mass_mailing_welcome_mail: More logical workflow

- Allow user to customize template.
- Only react when someone subscribes from the website. Not when creating a contact from the backend.
- Proper usage of context values.
- Full instructions.
pull/374/head
Jairo Llopis 6 years ago
parent
commit
fc857fbed1
No known key found for this signature in database GPG Key ID: 59564BF1E22F314F
  1. 80
      mass_mailing_newsletter_welcome_mail/README.rst
  2. 2
      mass_mailing_newsletter_welcome_mail/__init__.py
  3. 6
      mass_mailing_newsletter_welcome_mail/__manifest__.py
  4. 1
      mass_mailing_newsletter_welcome_mail/controllers/__init__.py
  5. 31
      mass_mailing_newsletter_welcome_mail/controllers/main.py
  6. 32
      mass_mailing_newsletter_welcome_mail/data/base_automation_data.xml
  7. 21
      mass_mailing_newsletter_welcome_mail/data/mail_template.xml
  8. 40
      mass_mailing_newsletter_welcome_mail/i18n/es.po
  9. 29
      mass_mailing_newsletter_welcome_mail/i18n/mass_mailing_welcome_mail.pot
  10. 1
      mass_mailing_newsletter_welcome_mail/models/__init__.py
  11. 16
      mass_mailing_newsletter_welcome_mail/models/mail_mass_mailing_list.py
  12. 23
      mass_mailing_newsletter_welcome_mail/readme/CONFIGURE.rst
  13. 1
      mass_mailing_newsletter_welcome_mail/readme/CONTRIBUTORS.rst
  14. 1
      mass_mailing_newsletter_welcome_mail/readme/ROADMAP.rst
  15. 7
      mass_mailing_newsletter_welcome_mail/readme/USAGE.rst
  16. 470
      mass_mailing_newsletter_welcome_mail/static/description/index.html
  17. 20
      mass_mailing_newsletter_welcome_mail/views/mail_mass_mailing_list.xml

80
mass_mailing_newsletter_welcome_mail/README.rst

@ -1,10 +1,33 @@
=============================================
Welcome mail for new suscribers on newsletter
=============================================
This module was written to extend the functionality of the website popup newsletter subscription form
to support sending to new subscribers an automatic welcome email and allow
you to customize it.
===============================
Welcome mail to new subscribers
===============================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! 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%2Fsocial-lightgray.png?logo=github
:target: https://github.com/OCA/social/tree/11.0/mass_mailing_newsletter_welcome_mail
:alt: OCA/social
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/social-11-0/social-11-0-mass_mailing_newsletter_welcome_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/205/11.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
This module was written to extend the functionality of the website popup
newsletter subscription form to support sending to new subscribers an
automatic welcome email and allow you to customize it.
**Table of contents**
@ -16,14 +39,42 @@ Configuration
To configure this module, you need to:
#. Go to **Settings > Technical > Automation > Automated actions > Welcome mail to newsletter subscribers** and edit anything there.
#. Go to *Email Marketing > Contacts > Mailing Lists*.
#. Edit or create one.
#. Set a *Welcome mail template* to enable this module's special behavior when
somebody subscribes to this mailing list. You can use one shipped with
this module, called *Welcome mail to newsletter subscribers*,
as a starting point.
#. You can also customize this template as you prefer.
To be used, you also must make sure a subscription snippet for this list exists
somewhere in your website:
#. Go to your website.
#. Navigate to a page where you want to include the subscription widget.
#. *Edit* the webpage.
#. Drag and drop any *Structure* or *Features* block you like.
#. Drag and drop the *Inner content > Newsletter* block inside it.
#. Choose the same mailing list you configured above.
Of course, outgoing mail must be properly configured in your instance, or
emails will never be sent.
Usage
=====
After you have followed the configuration instructions:
Quicker way to just change the email template (something that most likely you
will want to do):
#. Enter as an anonymous user (you can use a browser private window for that).
#. Navigate to the page where the newsletter subscription snippet is found.
#. Enter your email.
#. Hit *Subscribe*.
#. Check your inbox, you have new mail!
#. Go to **Settings > Technical > Email > Templates**
#. Edit the template called **Welcome mail - Newsletter**.
Known issues / Roadmap
======================
* Add tests.
Bug Tracker
===========
@ -31,7 +82,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/social/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 <https://github.com/OCA/social/issues/new?body=module:%20mass_mailing_welcome_mail%0Aversion:%2011.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
`feedback <https://github.com/OCA/social/issues/new?body=module:%20mass_mailing_newsletter_welcome_mail%0Aversion:%2011.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
@ -50,6 +101,7 @@ Contributors
* `Tecnativa <https://www.tecnativa.com>`__:
* Cristina Martin R.
* Jairo Llopis
Maintainers
~~~~~~~~~~~
@ -64,6 +116,6 @@ 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/website <https://github.com/OCA/social/tree/11.0/mass_mailing_welcome_mail>`_ project on GitHub.
This module is part of the `OCA/social <https://github.com/OCA/social/tree/11.0/mass_mailing_newsletter_welcome_mail>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

2
mass_mailing_newsletter_welcome_mail/__init__.py

@ -0,0 +1,2 @@
from . import controllers
from . import models

6
mass_mailing_newsletter_welcome_mail/__manifest__.py

@ -10,11 +10,11 @@
'version': '11.0.1.0.0',
'website': 'https://github.com/OCA/social',
'depends': [
'mass_mailing',
'base_automation',
'website_mass_mailing',
],
'data': [
"data/base_automation_data.xml",
"data/mail_template.xml",
"views/mail_mass_mailing_list.xml",
],
'application': False,
'installable': True,

1
mass_mailing_newsletter_welcome_mail/controllers/__init__.py

@ -0,0 +1 @@
from . import main

31
mass_mailing_newsletter_welcome_mail/controllers/main.py

@ -0,0 +1,31 @@
# Copyright 2019 Tecnativa - Jairo Llopis
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo.http import request, route
from odoo.addons.website_mass_mailing.controllers import main
class MassMailController(main.MassMailController):
@route()
def subscribe(self, list_id, email, **post):
"""Send welcome email to subscribers."""
result = super().subscribe(list_id, email, **post)
list_ = request.env["mail.mass_mailing.list"] \
.sudo().browse(int(list_id))
template = list_.welcome_mail_template_id
if not template:
return result
# Welcome new subscribers
contact = request.env["mail.mass_mailing.contact"].sudo().search([
('list_ids', 'in', list_.ids),
('email', '=', email),
("opt_out", "=", False),
], limit=1)
template.with_context(list_name=list_.name).send_mail(
contact.id,
# Must send now to use context
force_send=True,
# If we cannot notify, the visitor shouldn't be bothered
raise_exception=False,
)
return result

32
mass_mailing_newsletter_welcome_mail/data/base_automation_data.xml

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<data>
<record id="email_template" model="mail.template">
<field name="name">Welcome mail to newsletter subscribers</field>
<field name="model_id" ref="mass_mailing.model_mail_mass_mailing_contact"/>
<field name="use_default_to" eval="True"/>
<field name="lang">${object.env.context.get("lang")}</field>
<field name="subject">Welcome to the mailing list ${object.list_id.name}</field>
<field name="body_html" type="html">
<div>Dear <b>${object.name}</b>,
<br/>
<h3>Thanks for signing up for our newsletter!</h3>
<p>Regards,</p>
</div>
</field>
</record>
</data>
<data>
<record id="automated_action" model="base.automation">
<field name="name">Send Welcome Mail to new subscribers on Newsletter</field>
<field name="model_id" ref="mass_mailing.model_mail_mass_mailing_contact"/>
<field name="state">email</field>
<field name="trigger">on_create</field>
<field name="active" eval="True"/>
<field name="template_id" ref="email_template"/>
<field name="filter_domain" eval="[['list_ids', '=', ref('mass_mailing.mass_mail_list_1')]]"/>
</record>
</data>
</odoo>

21
mass_mailing_newsletter_welcome_mail/data/mail_template.xml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2019 Tecnativa - Jairo Llopis
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<data noupdate="1">
<record id="mail_template_welcome" model="mail.template">
<field name="name">Welcome mail to newsletter subscribers</field>
<field name="model_id" ref="mass_mailing.model_mail_mass_mailing_contact"/>
<field name="use_default_to" eval="True"/>
<field name="lang">${ctx.get("lang")}</field>
<field name="subject">Welcome to the mailing list ${ctx.get("list_name")}</field>
<field name="body_html" type="html">
<div>Dear <b>${object.name or object.email}</b>,
<br/>
<h3>Thanks for signing up for our newsletter!</h3>
<p>Regards,</p>
</div>
</field>
</record>
</data>

40
mass_mailing_newsletter_welcome_mail/i18n/es.po

@ -0,0 +1,40 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mass_mailing_newsletter_welcome_mail
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-02 11:06+0000\n"
"PO-Revision-Date: 2019-05-02 12:08+0100\n"
"Language-Team: \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.1\n"
"Last-Translator: Jairo Llopis <yajo.sk8@gmail.com>\n"
"Language: es_ES\n"
#. module: mass_mailing_newsletter_welcome_mail
#: model:mail.template,body_html:mass_mailing_newsletter_welcome_mail.email_template
msgid ""
"<div>Dear <b>${object.name or object.email}</b>,\n"
" <br/>\n"
" <h3>Thanks for signing up for our newsletter!</h3>\n"
" <p>Regards,</p>\n"
" </div>\n"
" "
msgstr ""
"<div>Estimado/a <b>${object.name or object.email}</b>,\n"
" <br/>\n"
" <h3>¡Gracias por suscribirse a nuestro boletín!</h3>\n"
" <p>Saludos,</p>\n"
" </div>\n"
" "
#. module: mass_mailing_newsletter_welcome_mail
#: model:mail.template,subject:mass_mailing_newsletter_welcome_mail.email_template
msgid "Welcome to the mailing list ${ctx.get(\"list_name\")}"
msgstr "Bienvenido/a a la lista de correo ${ctx.get(\"list_name\")}"

29
mass_mailing_newsletter_welcome_mail/i18n/mass_mailing_welcome_mail.pot

@ -1,11 +1,13 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mass_mailing_welcome_mail
# * mass_mailing_newsletter_welcome_mail
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-02 11:06+0000\n"
"PO-Revision-Date: 2019-05-02 11:06+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -13,18 +15,17 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: mass_mailing_welcome_mail
#: model:mail.template,body_html:mass_mailing_welcome_mail.email_template
msgid "<div>Dear <b>${object.name}</b>,
<br/>
<h3>Thanks for signing up for our newsletter!</h3>
<p>Regards,</p>
</div>\n"
" "
#. module: mass_mailing_newsletter_welcome_mail
#: model:mail.template,body_html:mass_mailing_newsletter_welcome_mail.email_template
msgid "<div>Dear <b>${object.name or object.email}</b>,\n"
" <br/>\n"
" <h3>Thanks for signing up for our newsletter!</h3>\n"
" <p>Regards,</p>\n"
" </div>\n"
" "
msgstr ""
#. module: mass_mailing_welcome_mail
#: model:base.automation,name:mass_mailing_welcome_mail.automated_action
#: model:ir.actions.server,name:mass_mailing_welcome_mail.automated_action
msgid "Send Welcome Mail to new subscribers"
#. module: mass_mailing_newsletter_welcome_mail
#: model:mail.template,subject:mass_mailing_newsletter_welcome_mail.email_template
msgid "Welcome to the mailing list ${ctx.get(\"list_name\")}"
msgstr ""

1
mass_mailing_newsletter_welcome_mail/models/__init__.py

@ -0,0 +1 @@
from . import mail_mass_mailing_list

16
mass_mailing_newsletter_welcome_mail/models/mail_mass_mailing_list.py

@ -0,0 +1,16 @@
# Copyright 2019 Tecnativa - Jairo Llopis
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import fields, models
class MailMassMailingList(models.Model):
_inherit = 'mail.mass_mailing.list'
welcome_mail_template_id = fields.Many2one(
string="Welcome mail template",
comodel_name='mail.template',
ondelete='set null',
help="Mail template to be sent when a contact is subscribed from "
"the website."
)

23
mass_mailing_newsletter_welcome_mail/readme/CONFIGURE.rst

@ -1,9 +1,22 @@
To configure this module, you need to:
#. Go to **Settings > Technical > Automation > Automated actions > Welcome mail to New subscribers in Nesletter Mailing List** and edit anything there.
#. Go to *Email Marketing > Contacts > Mailing Lists*.
#. Edit or create one.
#. Set a *Welcome mail template* to enable this module's special behavior when
somebody subscribes to this mailing list. You can use one shipped with
this module, called *Welcome mail to newsletter subscribers*,
as a starting point.
#. You can also customize this template as you prefer.
Quicker way to just change the email template (something that most likely you
will want to do):
To be used, you also must make sure a subscription snippet for this list exists
somewhere in your website:
#. Go to **Settings > Technical > Email > Templates**
#. Edit the template called **Welcome mail - Newsletter Mailing List**.
#. Go to your website.
#. Navigate to a page where you want to include the subscription widget.
#. *Edit* the webpage.
#. Drag and drop any *Structure* or *Features* block you like.
#. Drag and drop the *Inner content > Newsletter* block inside it.
#. Choose the same mailing list you configured above.
Of course, outgoing mail must be properly configured in your instance, or
emails will never be sent.

1
mass_mailing_newsletter_welcome_mail/readme/CONTRIBUTORS.rst

@ -2,3 +2,4 @@
* `Tecnativa <https://www.tecnativa.com>`__:
* Cristina Martin R.
* Jairo Llopis

1
mass_mailing_newsletter_welcome_mail/readme/ROADMAP.rst

@ -0,0 +1 @@
* Add tests.

7
mass_mailing_newsletter_welcome_mail/readme/USAGE.rst

@ -0,0 +1,7 @@
After you have followed the configuration instructions:
#. Enter as an anonymous user (you can use a browser private window for that).
#. Navigate to the page where the newsletter subscription snippet is found.
#. Enter your email.
#. Hit *Subscribe*.
#. Check your inbox, you have new mail!

470
mass_mailing_newsletter_welcome_mail/static/description/index.html

@ -0,0 +1,470 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.14: http://docutils.sourceforge.net/" />
<title>Welcome mail to new subscribers</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="welcome-mail-to-new-subscribers">
<h1 class="title">Welcome mail to new subscribers</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/social/tree/11.0/mass_mailing_newsletter_welcome_mail"><img alt="OCA/social" src="https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/social-11-0/social-11-0-mass_mailing_newsletter_welcome_mail"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/205/11.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>This module was written to extend the functionality of the website popup
newsletter subscription form to support sending to new subscribers an
automatic welcome email and allow you to customize it.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#configuration" id="id1">Configuration</a></li>
<li><a class="reference internal" href="#usage" id="id2">Usage</a></li>
<li><a class="reference internal" href="#known-issues-roadmap" id="id3">Known issues / Roadmap</a></li>
<li><a class="reference internal" href="#bug-tracker" id="id4">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id5">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id6">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id7">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="id8">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="configuration">
<h1><a class="toc-backref" href="#id1">Configuration</a></h1>
<p>To configure this module, you need to:</p>
<ol class="arabic simple">
<li>Go to <em>Email Marketing &gt; Contacts &gt; Mailing Lists</em>.</li>
<li>Edit or create one.</li>
<li>Set a <em>Welcome mail template</em> to enable this module’s special behavior when
somebody subscribes to this mailing list. You can use one shipped with
this module, called <em>Welcome mail to newsletter subscribers</em>,
as a starting point.</li>
<li>You can also customize this template as you prefer.</li>
</ol>
<p>To be used, you also must make sure a subscription snippet for this list exists
somewhere in your website:</p>
<ol class="arabic simple">
<li>Go to your website.</li>
<li>Navigate to a page where you want to include the subscription widget.</li>
<li><em>Edit</em> the webpage.</li>
<li>Drag and drop any <em>Structure</em> or <em>Features</em> block you like.</li>
<li>Drag and drop the <em>Inner content &gt; Newsletter</em> block inside it.</li>
<li>Choose the same mailing list you configured above.</li>
</ol>
<p>Of course, outgoing mail must be properly configured in your instance, or
emails will never be sent.</p>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#id2">Usage</a></h1>
<p>After you have followed the configuration instructions:</p>
<ol class="arabic simple">
<li>Enter as an anonymous user (you can use a browser private window for that).</li>
<li>Navigate to the page where the newsletter subscription snippet is found.</li>
<li>Enter your email.</li>
<li>Hit <em>Subscribe</em>.</li>
<li>Check your inbox, you have new mail!</li>
</ol>
</div>
<div class="section" id="known-issues-roadmap">
<h1><a class="toc-backref" href="#id3">Known issues / Roadmap</a></h1>
<ul class="simple">
<li>Add tests.</li>
</ul>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#id4">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/social/issues">GitHub Issues</a>.
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
<a class="reference external" href="https://github.com/OCA/social/issues/new?body=module:%20mass_mailing_newsletter_welcome_mail%0Aversion:%2011.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#id5">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#id6">Authors</a></h2>
<ul class="simple">
<li>Tecnativa</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#id7">Contributors</a></h2>
<ul class="simple">
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
<li>Cristina Martin R.</li>
<li>Jairo Llopis</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#id8">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<p>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.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/social/tree/11.0/mass_mailing_newsletter_welcome_mail">OCA/social</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

20
mass_mailing_newsletter_welcome_mail/views/mail_mass_mailing_list.xml

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2019 Tecnativa - Jairo Llopis
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<data>
<record id="list_form" model="ir.ui.view">
<field name="name">Add welcome mail template field</field>
<field name="model">mail.mass_mailing.list</field>
<field name="inherit_id" ref="mass_mailing.view_mail_mass_mailing_list_form" />
<field name="arch" type="xml">
<div class="oe_title" position="after">
<group>
<field name="welcome_mail_template_id"/>
</group>
</div>
</field>
</record>
</data>
Loading…
Cancel
Save