Browse Source

Jan 05: [ADD] Initial Commit 'odoo_drip_email_marketing'

pull/299/head
Shijin V 1 year ago
parent
commit
4cdfa8033a
  1. 46
      odoo_drip_email_marketing/README.rst
  2. 22
      odoo_drip_email_marketing/__init__.py
  3. 56
      odoo_drip_email_marketing/__manifest__.py
  4. 17
      odoo_drip_email_marketing/data/ir_cron_data.xml
  5. 23
      odoo_drip_email_marketing/data/mail_template_data.xml
  6. 7
      odoo_drip_email_marketing/doc/RELEASE_NOTES.md
  7. 26
      odoo_drip_email_marketing/models/__init__.py
  8. 40
      odoo_drip_email_marketing/models/drip_mailing_history.py
  9. 39
      odoo_drip_email_marketing/models/drip_template.py
  10. 82
      odoo_drip_email_marketing/models/mailing_contact.py
  11. 109
      odoo_drip_email_marketing/models/mailing_list.py
  12. 37
      odoo_drip_email_marketing/models/mailing_list_templates.py
  13. 12
      odoo_drip_email_marketing/security/drip_mailing_history_security.xml
  14. 10
      odoo_drip_email_marketing/security/drip_template_security.xml
  15. 4
      odoo_drip_email_marketing/security/ir.model.access.csv
  16. BIN
      odoo_drip_email_marketing/static/description/assets/icons/check.png
  17. BIN
      odoo_drip_email_marketing/static/description/assets/icons/chevron.png
  18. BIN
      odoo_drip_email_marketing/static/description/assets/icons/cogs.png
  19. BIN
      odoo_drip_email_marketing/static/description/assets/icons/consultation.png
  20. BIN
      odoo_drip_email_marketing/static/description/assets/icons/ecom-black.png
  21. BIN
      odoo_drip_email_marketing/static/description/assets/icons/education-black.png
  22. BIN
      odoo_drip_email_marketing/static/description/assets/icons/hotel-black.png
  23. BIN
      odoo_drip_email_marketing/static/description/assets/icons/license.png
  24. BIN
      odoo_drip_email_marketing/static/description/assets/icons/lifebuoy.png
  25. BIN
      odoo_drip_email_marketing/static/description/assets/icons/manufacturing-black.png
  26. BIN
      odoo_drip_email_marketing/static/description/assets/icons/pos-black.png
  27. BIN
      odoo_drip_email_marketing/static/description/assets/icons/puzzle.png
  28. BIN
      odoo_drip_email_marketing/static/description/assets/icons/restaurant-black.png
  29. BIN
      odoo_drip_email_marketing/static/description/assets/icons/service-black.png
  30. BIN
      odoo_drip_email_marketing/static/description/assets/icons/trading-black.png
  31. BIN
      odoo_drip_email_marketing/static/description/assets/icons/training.png
  32. BIN
      odoo_drip_email_marketing/static/description/assets/icons/update.png
  33. BIN
      odoo_drip_email_marketing/static/description/assets/icons/user.png
  34. BIN
      odoo_drip_email_marketing/static/description/assets/icons/wrench.png
  35. BIN
      odoo_drip_email_marketing/static/description/assets/misc/categories.png
  36. BIN
      odoo_drip_email_marketing/static/description/assets/misc/check-box.png
  37. BIN
      odoo_drip_email_marketing/static/description/assets/misc/compass.png
  38. BIN
      odoo_drip_email_marketing/static/description/assets/misc/corporate.png
  39. BIN
      odoo_drip_email_marketing/static/description/assets/misc/customer-support.png
  40. BIN
      odoo_drip_email_marketing/static/description/assets/misc/cybrosys-logo.png
  41. BIN
      odoo_drip_email_marketing/static/description/assets/misc/features.png
  42. BIN
      odoo_drip_email_marketing/static/description/assets/misc/logo.png
  43. BIN
      odoo_drip_email_marketing/static/description/assets/misc/pictures.png
  44. BIN
      odoo_drip_email_marketing/static/description/assets/misc/pie-chart.png
  45. BIN
      odoo_drip_email_marketing/static/description/assets/misc/right-arrow.png
  46. BIN
      odoo_drip_email_marketing/static/description/assets/misc/star.png
  47. BIN
      odoo_drip_email_marketing/static/description/assets/misc/support.png
  48. BIN
      odoo_drip_email_marketing/static/description/assets/misc/whatsapp.png
  49. BIN
      odoo_drip_email_marketing/static/description/assets/modules/1.png
  50. BIN
      odoo_drip_email_marketing/static/description/assets/modules/2.jpg
  51. BIN
      odoo_drip_email_marketing/static/description/assets/modules/3.png
  52. BIN
      odoo_drip_email_marketing/static/description/assets/modules/4.png
  53. BIN
      odoo_drip_email_marketing/static/description/assets/modules/5.png
  54. BIN
      odoo_drip_email_marketing/static/description/assets/modules/6.jpg
  55. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/1.png
  56. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/10.png
  57. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/11.png
  58. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/12.png
  59. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/13.png
  60. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/14.png
  61. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/15.png
  62. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/16.png
  63. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/17.png
  64. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/18.png
  65. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/2.png
  66. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/3.png
  67. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/4.png
  68. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/5.png
  69. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/6.png
  70. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/7.png
  71. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/8.png
  72. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/9.png
  73. BIN
      odoo_drip_email_marketing/static/description/assets/screenshots/hero.gif
  74. BIN
      odoo_drip_email_marketing/static/description/banner.jpg
  75. BIN
      odoo_drip_email_marketing/static/description/icon.png
  76. 661
      odoo_drip_email_marketing/static/description/index.html
  77. 18
      odoo_drip_email_marketing/views/drip_mailing_history_views.xml
  78. 59
      odoo_drip_email_marketing/views/drip_template_views.xml
  79. 23
      odoo_drip_email_marketing/views/mailing_contact_views.xml
  80. 15
      odoo_drip_email_marketing/views/mailing_list_templates_views.xml
  81. 53
      odoo_drip_email_marketing/views/mailing_list_views.xml

46
odoo_drip_email_marketing/README.rst

@ -0,0 +1,46 @@
.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg
:target: https://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
Odoo Drip Email Marketing
=========================
This app lets you send automated email campaigns to your customers and
prospects. It's a great way to save time and effort, and to improve your
customer engagement and sales.
Configuration
=============
* Need to configure an Outgoing Mail Server
Company
-------
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
License
=======
Affero General Public License v3.0 (AGPL v3)
(https://www.gnu.org/licenses/agpl-3.0-standalone.html)
Credits
_______
Developer : (V16) Arjun S, Contact: odoo@cybrosys.com
Contacts
________
* Mail Contact : odoo@cybrosys.com
* Website : http://www.cybrosys.com
Bug Tracker
___________
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported.
Maintainer
__________
.. image:: https://cybrosys.com/images/logo.png
:target: https://cybrosys.com
This module is maintained by Cybrosys Technologies.
For support and more information, please visit `Our Website <https://cybrosys.com/>`__
Further information
___________________
HTML Description: `<static/description/index.html>`__

22
odoo_drip_email_marketing/__init__.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Arjun S(odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
from . import models

56
odoo_drip_email_marketing/__manifest__.py

@ -0,0 +1,56 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Arjun S(odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
{
'name': 'Odoo Drip Email Marketing',
'version': '16.0.1.0.0',
'category': 'Marketing',
'summary': "Odoo Drip Email Marketing is a powerful and easy-to-use Odoo "
"app that can help you automate your email marketing campaigns "
"and improve your bottom line.",
'description': """Odoo Drip Email Marketing is a powerful tool that can help
you automate your email marketing campaigns and reach your
target audience with the right message at the right time.
It's easy to use and affordable, and it's a great way to
improve your customer engagement and sales.""",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': "https://www.cybrosys.com",
'depends': ['mass_mailing'],
'data': [
'security/drip_mailing_history_security.xml',
'security/drip_template_security.xml',
'security/ir.model.access.csv',
'data/ir_cron_data.xml',
'data/mail_template_data.xml',
'views/drip_mailing_history_views.xml',
'views/mailing_contact_views.xml',
'views/drip_template_views.xml',
'views/mailing_list_templates_views.xml',
'views/mailing_list_views.xml',
],
'images': ['static/description/banner.jpg'],
'license': 'AGPL-3',
'installable': True,
'auto_install': False,
'application': False
}

17
odoo_drip_email_marketing/data/ir_cron_data.xml

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Scheduled action of the working of the mass mailing-->
<record id="ir_cron_send_drip_email"
model="ir.cron">
<field name="name">Drip Mass Mailing</field>
<field name="model_id" ref="model_mailing_list"/>
<field name="state">code</field>
<field name="code">model._action_drip_mass_mailing()</field>
<field name="user_id" ref="base.user_root"/>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
</record>
</data>
</odoo>

23
odoo_drip_email_marketing/data/mail_template_data.xml

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Template to send to the customer when subscribing into the mailing list-->
<record id="mail_list_subscription_email_template" model="mail.template">
<field name="name">Mail List Subscription Template</field>
<field name="model_id"
ref="odoo_drip_email_marketing.model_mailing_list"/>
<field name="email_from">"{{object.server_id.smtp_user}}"</field>
<field name="subject">"{{ object.template_id.name }}"</field>
<field name="body_html" type="html">
<t t-out="object.template_id.mail_body"/>
</field>
</record>
<!-- Drip mass mailing template-->
<record id="drip_mass_mail_email_template" model="mail.template">
<field name="name">Drip Mass Mail Template</field>
<field name="model_id"
ref="odoo_drip_email_marketing.model_mailing_list"/>
<field name="email_from">"{{object.server_id.smtp_user}}"</field>
</record>
</data>
</odoo>

7
odoo_drip_email_marketing/doc/RELEASE_NOTES.md

@ -0,0 +1,7 @@
## Module <odoo_drip_email_marketing>
#### 05.01.2024
#### Version 16.0.1.0.0
#### ADD
- Initial Commit for Odoo Drip Email Marketing

26
odoo_drip_email_marketing/models/__init__.py

@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Arjun S(odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
from . import drip_mailing_history
from . import drip_template
from . import mailing_contact
from . import mailing_list
from . import mailing_list_templates

40
odoo_drip_email_marketing/models/drip_mailing_history.py

@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Arjun S(odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
from odoo import fields, models
class DripMailingHistory(models.Model):
"""Creates the model drip.mailing.history"""
_name = 'drip.mailing.history'
_description = 'Drip Mailing History'
name = fields.Char(string="Name", help="Name of the drip")
contact_id = fields.Many2one('mailing.contact', string="Contact",
help="Contact of the mailing")
mailing_id = fields.Many2one('mailing.list', string="Mailing List",
help="Mailing list of mailing")
template_id = fields.Many2one('drip.template', string="Drip Template",
help="Drip Template of the mailing")
send_date = fields.Date(string="Send Date", help="Date of the mailing")
company_id = fields.Many2one('res.company', string="Company",
help="Current company",
default=lambda self: self.env.company)

39
odoo_drip_email_marketing/models/drip_template.py

@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Arjun S(odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
from odoo import fields, models
class DripTemplate(models.Model):
"""Creates the drip.template model"""
_name = 'drip.template'
_description = 'Drip Template'
name = fields.Char(string="Subject", help="Subject of the template",
required=True)
mail_body = fields.Html(string='Mail Body',
help="Mail body to send to the customer")
attachment_ids = fields.Many2many('ir.attachment', string='Attachment',
help='Attachments to be sent along with '
'template')
company_id = fields.Many2one('res.company', string="Company",
help="Current company",
default=lambda self: self.env.company)

82
odoo_drip_email_marketing/models/mailing_contact.py

@ -0,0 +1,82 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Arjun S(odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
from odoo import api, fields, models
class MailingContact(models.Model):
"""Inherits the model mailing.contact"""
_inherit = 'mailing.contact'
name = fields.Char(required=True, string='Name', help="Name of the contact")
email = fields.Char(required=True, string='Email',
help="Email address of the contact")
drip_count = fields.Integer(string="Drip Count",
help="Number of count of drips send",
compute="_compute_drip_count")
@api.model
def create(self, vals_list):
"""
This is the create method of mailing.contact which already exists here
we are supering this create method as to send the email to the contact
created that they are subscribed into this mailing list
"""
res = super().create(vals_list)
mailing_list = self.env['mailing.list'].browse(
self.env.context.get('active_id'))
if mailing_list.mail_contact:
mail_template = self.env.ref(
'odoo_drip_email_marketing.mail_list_subscription_email_template')
attachments = mailing_list.template_id.attachment_ids
attachment_data = [
(6, 0, [attachment.id for attachment in attachments])]
mail_template.send_mail(mailing_list.id, force_send=True,
email_values={
'attachment_ids': attachment_data,
'email_to': res.email
})
return res
def get_drip_history(self):
"""
This is the method get_drip_history which is used to get the history of
the dripped mass mailing of this contact
"""
return {
'type': 'ir.actions.act_window',
'name': 'Drip History',
'view_mode': 'tree,form',
'res_model': 'drip.mailing.history',
'domain': [('contact_id', '=', self.id)],
'context': "{'create': False, 'edit':True}"
}
@api.model
def _compute_drip_count(self):
"""
This is the method _compute_drip_count which is used to compute the
value to the field drip_count
"""
for record in self:
count = record.env['drip.mailing.history'].search_count(
[('contact_id', '=', record.id)])
record.drip_count = count

109
odoo_drip_email_marketing/models/mailing_list.py

@ -0,0 +1,109 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Arjun S(odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
from datetime import timedelta
from odoo import api, fields, models
class MailingList(models.Model):
"""Inherits the model mailing.list"""
_inherit = 'mailing.list'
mail_contact = fields.Boolean(
string="Enable Mail on Subscription",
help="Enable to send the mail to the contact when subscribed")
template_id = fields.Many2one('drip.template', string="Select Template",
help="Template to send to contact "
"when subscribed")
mass_mailing_enable = fields.Boolean(
string="Enable Mass Mailing",
help="Enable Drip Mass Mailing feature")
start_date = fields.Date(string="Start Date", help="Start date to send to")
end_date = fields.Date(string="End Date", help="End date to send to")
server_id = fields.Many2one('ir.mail_server', string="Outgoing Mail Server",
help="Outgoing Mail Server to send to")
template_ids = fields.One2many('mailing.list.templates', 'mailing_id',
string="Drip Templates",
help="Drip Templates to send")
drip_count = fields.Integer(string="Drip Count",
help="Number of count of drips send",
compute="_compute_drip_count")
def _action_drip_mass_mailing(self):
"""
This is the method _action_drip_mass_mailing which is here used to make
the function work of drip mass mailing from the scheduled action
"""
mailing_list_records = self.env['mailing.list'].search([
('mass_mailing_enable', '=', True),
('end_date', '>=', fields.date.today())
])
for record in mailing_list_records:
start_date = fields.Date.from_string(record.start_date)
for template in record.template_ids:
drip_date = start_date + timedelta(template.days_after)
if fields.date.today() == drip_date and record.contact_ids:
mail_template = self.env.ref(
'odoo_drip_email_marketing.drip_mass_mail_email_template')
attachment_data = [(6, 0, [attachment.id for attachment in
template.template_id.attachment_ids])]
recipients = [contact.email for contact in
record.contact_ids.filtered(
lambda rec: not rec.is_blacklisted)]
email_values = {
'subject': template.template_id.name,
'body_html': template.template_id.mail_body,
'email_to': ', '.join(recipients),
'attachment_ids': attachment_data,
}
history_data = [{
'name': template.name,
'contact_id': contact.id,
'mailing_id': record.id,
'template_id': template.template_id.id,
'send_date': fields.Date.today()
} for contact in record.contact_ids.filtered(
lambda rec: not rec.is_blacklisted)]
mail_template.send_mail(record.id,
force_send=True,
email_values=email_values)
self.env['drip.mailing.history'].create(history_data)
def get_drip_history(self):
return {
'type': 'ir.actions.act_window',
'name': 'Drip History',
'view_mode': 'tree,form',
'res_model': 'drip.mailing.history',
'domain': [('mailing_id', '=', self.id)],
'context': "{'create': False, 'edit':True}"
}
@api.model
def _compute_drip_count(self):
"""
This is the method _compute_drip_count which is used to compute the
value to the field drip_count
"""
for record in self:
count = record.env['drip.mailing.history'].search_count(
[('mailing_id', '=', record.id)])
record.drip_count = count

37
odoo_drip_email_marketing/models/mailing_list_templates.py

@ -0,0 +1,37 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Arjun S(odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
from odoo import fields, models
class MailingListTemplates(models.Model):
"""Creates the model mailing.list.templates"""
_name = 'mailing.list.templates'
_description = 'Mailing list templates'
name = fields.Char(string="Name", help="Name of the mailing list template")
days_after = fields.Integer(string="Days After",
help="Number of days after which the "
"template will be send")
template_id = fields.Many2one('drip.template', string="Drip Template",
help="The template to be sent")
mailing_id = fields.Many2one('mailing.list', string="Mailing List",
help="Mailing list")

12
odoo_drip_email_marketing/security/drip_mailing_history_security.xml

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--This is rule to set the multi company rule for the record in model drip mailing history-->
<record id="drip_mailing_history_rule_company" model="ir.rule">
<field name="name">Drip Mailing History Rule Multi Company</field>
<field name="model_id" ref="model_drip_mailing_history"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False),
('company_id', 'in', company_ids)]
</field>
</record>
</odoo>

10
odoo_drip_email_marketing/security/drip_template_security.xml

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--This is rule to set the multi company rule for the record in model drip template-->
<record model="ir.rule" id="drip_template_rule_company">
<field name="name">Drip Template Rule Multi Company</field>
<field name="model_id" ref="model_drip_template"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
</record>
</odoo>

4
odoo_drip_email_marketing/security/ir.model.access.csv

@ -0,0 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_drip_template_user,access.drip.template.user,model_drip_template,base.group_user,1,1,1,1
access_mailing_list_templates_user,access.mailing.list.templates.user,model_mailing_list_templates,base.group_user,1,1,1,1
access_drip_mailing_history_user,access.drip.mailing.history.user,model_drip_mailing_history,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_drip_template_user access.drip.template.user model_drip_template base.group_user 1 1 1 1
3 access_mailing_list_templates_user access.mailing.list.templates.user model_mailing_list_templates base.group_user 1 1 1 1
4 access_drip_mailing_history_user access.drip.mailing.history.user model_drip_mailing_history base.group_user 1 1 1 1

BIN
odoo_drip_email_marketing/static/description/assets/icons/check.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
odoo_drip_email_marketing/static/description/assets/icons/chevron.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

BIN
odoo_drip_email_marketing/static/description/assets/icons/cogs.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
odoo_drip_email_marketing/static/description/assets/icons/consultation.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
odoo_drip_email_marketing/static/description/assets/icons/ecom-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

BIN
odoo_drip_email_marketing/static/description/assets/icons/education-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

BIN
odoo_drip_email_marketing/static/description/assets/icons/hotel-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

BIN
odoo_drip_email_marketing/static/description/assets/icons/license.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
odoo_drip_email_marketing/static/description/assets/icons/lifebuoy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
odoo_drip_email_marketing/static/description/assets/icons/manufacturing-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

BIN
odoo_drip_email_marketing/static/description/assets/icons/pos-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

BIN
odoo_drip_email_marketing/static/description/assets/icons/puzzle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

BIN
odoo_drip_email_marketing/static/description/assets/icons/restaurant-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

BIN
odoo_drip_email_marketing/static/description/assets/icons/service-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

BIN
odoo_drip_email_marketing/static/description/assets/icons/trading-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

BIN
odoo_drip_email_marketing/static/description/assets/icons/training.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

BIN
odoo_drip_email_marketing/static/description/assets/icons/update.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
odoo_drip_email_marketing/static/description/assets/icons/user.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

BIN
odoo_drip_email_marketing/static/description/assets/icons/wrench.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
odoo_drip_email_marketing/static/description/assets/misc/categories.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
odoo_drip_email_marketing/static/description/assets/misc/check-box.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
odoo_drip_email_marketing/static/description/assets/misc/compass.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
odoo_drip_email_marketing/static/description/assets/misc/corporate.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
odoo_drip_email_marketing/static/description/assets/misc/customer-support.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
odoo_drip_email_marketing/static/description/assets/misc/cybrosys-logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
odoo_drip_email_marketing/static/description/assets/misc/features.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

BIN
odoo_drip_email_marketing/static/description/assets/misc/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
odoo_drip_email_marketing/static/description/assets/misc/pictures.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
odoo_drip_email_marketing/static/description/assets/misc/pie-chart.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
odoo_drip_email_marketing/static/description/assets/misc/right-arrow.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

BIN
odoo_drip_email_marketing/static/description/assets/misc/star.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
odoo_drip_email_marketing/static/description/assets/misc/support.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
odoo_drip_email_marketing/static/description/assets/misc/whatsapp.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
odoo_drip_email_marketing/static/description/assets/modules/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
odoo_drip_email_marketing/static/description/assets/modules/2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
odoo_drip_email_marketing/static/description/assets/modules/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
odoo_drip_email_marketing/static/description/assets/modules/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
odoo_drip_email_marketing/static/description/assets/modules/5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
odoo_drip_email_marketing/static/description/assets/modules/6.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/10.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/11.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/12.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/13.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/14.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/15.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/17.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/18.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/9.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
odoo_drip_email_marketing/static/description/assets/screenshots/hero.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

BIN
odoo_drip_email_marketing/static/description/banner.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

BIN
odoo_drip_email_marketing/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

661
odoo_drip_email_marketing/static/description/index.html

@ -0,0 +1,661 @@
<div style="background-color: #714B67; height: 810px; width: 100%; padding: 15px; position: relative;">
<!-- TITLE BAR -->
<div class="d-flex align-items-center justify-content-between"
style="border-bottom: 1px solid #875A7B; padding: 15px; display: flex; justify-content: space-between; align-items: center;">
<img src="assets/misc/cybrosys-logo.png" width="42" height="42"
style="width: 42px; height: 42px;"/>
<div>
<div style="color:#017E84; font-size:14px; font-family:'Montserrat', sans-serif; font-weight:bold; background-color:white; display:inline-block; padding:3px 10px; border-radius:50px"
class="mr-2">
<i class="fa fa-check mr-1"></i>Odoo.sh
</div>
<div style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Community
</div>
<div style="color: #875A7B; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Enterprise
</div>
</div>
</div>
<!-- END OF TITLE BAR -->
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12">
<!-- APP HERO -->
<h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;">
Odoo Drip Email Marketing</h1>
<p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;">
This Module will Helps you to Automate your Email Marketing
Campaign also send Mail to the Contact when Subscribed.</p>
<!-- END OF APP HERO -->
<img src="assets/screenshots/hero.gif" class="img-responsive"
style="width: 100%; margin-left: auto; margin-right: auto;"/>
</div>
</div>
</div>
</div>
<!-- NAVIGATION SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px; margin-top: 300px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/compass.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Explore This Module</h2>
</div>
<div class="row my-4" style="font-family: 'Montserrat', sans-serif;">
<div class="col-sm-12 col-md-6 my-3">
<a href="#overview">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Overview</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">Learn More About This Module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#features">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Features</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View Features of This Module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#screenshots">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Screenshots</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View Screenshots for This Module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36"/>
</div>
</a>
</div>
</div>
<!-- END OF NAVIGATION SECTION -->
<!-- OVERVIEW SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="overview">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/pie-chart.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Overview</h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 py-4">This app can help you automate your email
marketing campaigns and reach your target audience with the right
message at the right time. It's easy to use and affordable, and it's a
great way to improve your customer engagement and sales.
</div>
</div>
<!-- END OF OVERVIEW SECTION -->
<!-- FEATURES SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="features">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/features.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Features</h2>
</div>
<div class="row"
style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 col-md-6">
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Easy to notify the customer when they are subscribed into a Mailing List.</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Easy to setup to send the emails automatically in the certain time interval to automate the email marketing campaign.</span>
</div>
<div class="d-flex align-items-center"
style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2"/>
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Can see the sent mass mails in according to the mailing list and the mailing list contacts</span>
</div>
</div>
</div>
<!-- END OF FEATURES SECTION -->
<!-- SCREENSHOTS SECTION -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;"
id="screenshots">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/pictures.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Screenshots</h2>
</div>
<div class="row">
<div class="col-sm-12">
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
First of all, set the Outgoing Mail Server.
</h3>
<img src="assets/screenshots/1.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
To create a new Drip Template you need to go to the Drip Template option from the Configuration of module
Email Marketing.
</h3>
<img src="assets/screenshots/2.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Click on NEW to create a new Drip Template
</h3>
<img src="assets/screenshots/3.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
From the Drip Template you can set the Subject, Attachments and
the Body for the mail to send.
</h3>
<img src="assets/screenshots/4.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
From the Mailing List you can see the option as Enable automatic
mail on contact subscription in the Drip Mailing Configuration
section enable the option.
</h3>
<img src="assets/screenshots/5.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Select the Outgoing Mail Server to send the mail from.
</h3>
<img src="assets/screenshots/6.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Select the template to send on the contact subscription from the
Select Template option from the section Mail on Subscription
Configuration.
</h3>
<img src="assets/screenshots/7.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Create a new Mailing List Contact for the corresponding Mailing List, provide Contact Name and Email Address
</h3>
<img src="assets/screenshots/8.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Here you can see the mail send correspondingly when the contact is
subscribed into the mailing list.
</h3>
<img src="assets/screenshots/9.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Then enable the option Enable Drip Mass Mailing feature.
</h3>
<img src="assets/screenshots/10.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Select the Start Date from the Drip Mass Mail Configuration section
to start the mass mailing date to start sending the mail from that
date.
</h3>
<img src="assets/screenshots/11.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Select the templates to send from Drip Template and also select
the Days After to send the mail from the Start Date.
</h3>
<img src="assets/screenshots/12.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Here you can see the corresponding email send through the Drip
Mass Mailing.
</h3>
<img src="assets/screenshots/14.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
In the Mailing List you have the option to see the drip history from the
option Drip History as a smart tab in the Mailing List.
</h3>
<img src="assets/screenshots/15.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Here you can see history of the mail sent through the Drip Mass Mailing
feature.
</h3>
<img src="assets/screenshots/16.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Then you have option to see the drip history according to the
Mailing List Contact, in the Mailing List Contact form view in the
smart tab you will have the option as Drip History, click on it.
</h3>
<img src="assets/screenshots/17.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Here you can see the corresponding email send through the Drip
Mass Mailing according to the contact.
</h3>
<img src="assets/screenshots/18.png" class="img-thumbnail">
</div>
</div>
</div>
<!-- END OF SCREENSHOTS SECTION -->
<!-- RELATED PRODUCTS -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/categories.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Related Products</h2>
</div>
<div class="row">
<div class="col-sm-12">
<div id="demo1" class="row carousel slide" data-ride="carousel">
<!-- The slideshow -->
<div class="carousel-inner" style="padding: 30px;">
<div class="carousel-item" style="min-height: 198.656px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/fb_messenger/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/1.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/hubspot_odoo_connector/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/2.jpg">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/mailer_cloud_connector/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/3.png">
</div>
</a>
</div>
</div>
<div class="carousel-item active"
style="min-height: 198.656px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/inventory_report_generator/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/4.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/product_brand_inventory/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/5.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/inventory_turnover_report_analysis/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/6.jpg">
</div>
</a>
</div>
</div>
</div>
<!-- Left and right controls -->
<a class="carousel-control-prev" href="#demo1" data-slide="prev"
style="width:35px; color:#000"> <span
class="carousel-control-prev-icon"><i
class="fa fa-chevron-left"
style="font-size:24px"></i></span>
</a> <a class="carousel-control-next" href="#demo1"
data-slide="next" style="width:35px; color:#000">
<span class="carousel-control-next-icon"><i
class="fa fa-chevron-right"
style="font-size:24px"></i></span></a>
</div>
</div>
</div>
<!-- END OF RELATED PRODUCTS -->
<!-- OUR SERVICES -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/star.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Our Services</h2>
</div>
<div class="container my-5">
<div class="row">
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/cogs.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Customization</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/wrench.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/lifebuoy.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Support</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/user.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Hire Odoo Developer</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #54a0ff !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/puzzle.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Integration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/update.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Migration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/consultation.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Consultancy</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/training.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/license.png" class="img-responsive"
height="48px" width="48px">
</div>
<h6 class="text-center"
style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo Licensing Consultancy</h6>
</div>
</div>
</div>
<!-- END OF OUR SERVICES -->
<!-- OUR INDUSTRIES -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/corporate.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Our Industries</h2>
</div>
<div class="container my-5">
<div class="row">
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/trading-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Trading</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easily Procure And Sell Your Products</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/pos-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
POS</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easy Configuration and Convivial Experience</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/education-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Education</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
A Platform for Educational Management</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/manufacturing-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Manufacturing</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Plan, Track and Schedule Your Operations</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/ecom-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
E-commerce &amp; Website</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Mobile friendly, awe-inspiring product pages</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/service-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Service Management</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Keep track of services and invoice</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/restaurant-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Restaurant</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Run your bar or restaurant methodically</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/hotel-black.png"
class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Hotel Management</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
An all-inclusive hotel management application</p>
</div>
</div>
</div>
</div>
<!-- END OF OUR INDUSTRIES -->
<!-- SUPPORT -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/customer-support.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Support</h2>
</div>
<div class="container mt-5">
<div class="row">
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4 d-flex justify-content-center align-items-center"
style="background-color: #714B67; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="assets/misc/support.png" height="48" width="48"
style="width: 42px; height: 42px;"/>
</div>
<div>
<h4>Need Help?</h4>
<p style="line-height: 100%;">Got questions or need help?
Get in touch.</p>
<a href="mailto:odoo@cybrosys.com">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
odoo@cybrosys.com</p>
</a>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4 d-flex justify-content-center align-items-center"
style="background-color: #2AC44D; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="assets/misc/whatsapp.png" height="52" width="52"
style="width: 52px; height: 52px;"/>
</div>
<div>
<h4>WhatsApp</h4>
<p style="line-height: 100%;">Say hi to us on WhatsApp!</p>
<a href="https://api.whatsapp.com/send?phone=918606827707">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
+91 86068 27707</p>
</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 my-5 d-flex justify-content-center align-items-center">
<img src="assets/misc/logo.png" width="144" height="31"
style="width:144px; height: 31px; margin-top: 40px;"/>
</div>
</div>
</div>
<!-- END OF SUPPORT -->

18
odoo_drip_email_marketing/views/drip_mailing_history_views.xml

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Tree view of the model Drip Mailing History-->
<record id="drip_mailing_history_view_tree" model="ir.ui.view">
<field name="name">drip.mailing.history.view.tree</field>
<field name="model">drip.mailing.history</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="contact_id"/>
<field name="mailing_id"/>
<field name="template_id"/>
<field name="send_date"/>
<field name="company_id"/>
</tree>
</field>
</record>
</odoo>

59
odoo_drip_email_marketing/views/drip_template_views.xml

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Tree view of the model drip template-->
<record id="drip_template_view_tree" model="ir.ui.view">
<field name="name">drip.template.view.tree</field>
<field name="model">drip.template</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
</tree>
</field>
</record>
<!-- Form view of the model drip template-->
<record id="drip_template_view_form" model="ir.ui.view">
<field name="name">drip.template.view.form</field>
<field name="model">drip.template</field>
<field name="arch" type="xml">
<form>
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" class="text-break"
placeholder="e.g. Welcome Template"/>
</h1>
</div>
<group>
<group>
<field name="attachment_ids"
widget="many2many_binary"/>
<field name="company_id"/>
</group>
</group>
<notebook>
<page string="Mail Body" name="mail_body">
<field name="mail_body"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- Action for the drip template -->
<record id="drip_template_action" model="ir.actions.act_window">
<field name="name">Drip Template</field>
<field name="res_model">drip.template</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create your Drip Template!!
</p>
</field>
</record>
<!-- Adding the menu for drip templates in the email marketing configuration -->
<menuitem id="drip_template_menu"
parent="mass_mailing.mass_mailing_configuration"
action="drip_template_action" name="Drip Template"
sequence="2"/>
</odoo>

23
odoo_drip_email_marketing/views/mailing_contact_views.xml

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- This is the inherited form view of the model mailing contact-->
<record id="mailing_contact_view_form" model="ir.ui.view">
<field name="name">
mailing.contact.view.form.inherit.odoo.drip.email.marketing
</field>
<field name="model">mailing.contact</field>
<field name="inherit_id" ref="mass_mailing.mailing_contact_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[hasclass('oe_title')]" position="before">
<div class="oe_button_box" name="button_box">
<button class="oe_stat_button" type="object"
name="get_drip_history"
icon="fa-history">
<field string="Drip History" name="drip_count"
widget="statinfo"/>
</button>
</div>
</xpath>
</field>
</record>
</odoo>

15
odoo_drip_email_marketing/views/mailing_list_templates_views.xml

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Tree view of the model mailing.list.templates-->
<record id="mailing_list_templates_view_tree" model="ir.ui.view">
<field name="name">mailing.list.templates.view.tree</field>
<field name="model">mailing.list.templates</field>
<field name="arch" type="xml">
<tree editable="bottom">
<field name="name"/>
<field name="days_after"/>
<field name="template_id"/>
</tree>
</field>
</record>
</odoo>

53
odoo_drip_email_marketing/views/mailing_list_views.xml

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Inherited view of the mailing list form view-->
<record id="mailing_list_view_form" model="ir.ui.view">
<field name="name">
mailing.list.view.form.inherit.odoo.drip.email.marketing
</field>
<field name="model">mailing.list</field>
<field name="inherit_id" ref="mass_mailing.mailing_list_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@class='oe_button_box']" position="inside">
<button class="oe_stat_button" type="object"
name="get_drip_history"
icon="fa-history">
<field string="Drip History" name="drip_count"
widget="statinfo"/>
</button>
</xpath>
<xpath expr="//sheet" position="inside">
<notebook>
<page string="Drip Mailing Configuration">
<group>
<field name="mail_contact"/>
<field name="mass_mailing_enable"/>
<field name="server_id"
attrs="{'required': ['|', ('mail_contact', '=', True), ('mass_mailing_enable','=',True)]}"/>
</group>
</page>
<page string="Mail on Subscription Configuration"
attrs="{'invisible':[('mail_contact','!=',True)]}">
<group>
<field name="template_id"
attrs="{'required': [('mail_contact', '=', True)]}"/>
</group>
</page>
<page string="Drip Mass Mail Configuration"
attrs="{'invisible':[('mass_mailing_enable','!=',True)]}">
<group>
<group>
<field name="start_date"
attrs="{'required': [('mass_mailing_enable', '=', True)]}"/>
</group>
<group>
<field name="end_date" attrs="{'required': [('mass_mailing_enable', '=', True)]}"/>
</group>
<field name="template_ids"/>
</group>
</page>
</notebook>
</xpath>
</field>
</record>
</odoo>
Loading…
Cancel
Save