Skip to content

Commit

Permalink
Merge pull request #277 from ernestotejeda/11.0-mig-mass_mailing_partner
Browse files Browse the repository at this point in the history
11.0 mig mass_mailing_partner
  • Loading branch information
pedrobaeza committed Jun 20, 2018
2 parents aaa3cb5 + ac6bb81 commit bab34b4
Show file tree
Hide file tree
Showing 100 changed files with 12,864 additions and 0 deletions.
104 changes: 104 additions & 0 deletions mass_mailing_partner/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
===============================
Link partners with mass-mailing
===============================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! 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_partner
: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_partner
: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 links mass-mailing contacts with partners.

Features
~~~~~~~~

* When creating or saving a mass-mailing contact, partners are matched through
email, linking matched partner, or creating a new one if no match and the
maling list partner mandatory field is checked.
* Mailing contacts smart button in partner form.
* Mass mailing stats smart button in partner form.
* Filter and group by partner in mail statistics tree view

**Table of contents**

.. contents::
:local:

Configuration
=============

At first install, all existing mass mailing contacts are matched against
partners. And also mass mailing statistics are matched using model and res_id.

Usage
=====

In partner view, there is a new action called "Add to mailing list". This
action open a pop-up to select a mailing list. Selected partners will be added
as mailing list contacts.

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_partner%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.

Credits
=======

Authors
~~~~~~~

* Tecnativa

Contributors
~~~~~~~~~~~~

* `Tecnativa <https://www.tecnativa.com>`_:

* Pedro M. Baeza
* Rafael Blasco
* Antonio Espinosa
* Javier Iniesta
* Jairo Llopis
* David Vidal
* Ernesto Tejeda

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

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

This module is part of the `OCA/social <https://github.com/OCA/social/tree/11.0/mass_mailing_partner>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
8 changes: 8 additions & 0 deletions mass_mailing_partner/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Copyright 2015 Pedro M. Baeza <pedro.baeza@tecnativa.com>
# Copyright 2015 Antonio Espinosa <antonio.espinosa@tecnativa.com>
# Copyright 2015 Javier Iniesta <javieria@antiun.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from . import models
from . import wizard
from .hooks import post_init_hook
26 changes: 26 additions & 0 deletions mass_mailing_partner/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Copyright 2015 Pedro M. Baeza <pedro.baeza@tecnativa.com>
# Copyright 2015-2016 Antonio Espinosa <antonio.espinosa@tecnativa.com>
# Copyright 2015 Javier Iniesta <javieria@antiun.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

{
"name": "Link partners with mass-mailing",
"version": "11.0.1.0.0",
"author": "Tecnativa, "
"Odoo Community Association (OCA)",
"website": "https://github.com/OCA/social",
"license": "AGPL-3",
"category": "Marketing",
"depends": [
'mass_mailing',
],
"post_init_hook": "post_init_hook",
'data': [
'views/mail_mail_statistics_view.xml',
'views/mail_mass_mailing_contact_view.xml',
'views/mail_mass_mailing_view.xml',
'views/res_partner_view.xml',
'wizard/partner_mail_list_wizard.xml'
],
"installable": True,
}
36 changes: 36 additions & 0 deletions mass_mailing_partner/hooks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Copyright 2015 Pedro M. Baeza <pedro.baeza@tecnativa.com>
# Copyright 2015 Antonio Espinosa <antonio.espinosa@tecnativa.com>
# Copyright 2015 Javier Iniesta <javieria@antiun.com>
# Copyright 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

import logging
from odoo import api, SUPERUSER_ID

_logger = logging.getLogger(__name__)


def post_init_hook(cr, registry):
with api.Environment.manage():
env = api.Environment(cr, SUPERUSER_ID, {})
# ACTION 1: Match existing contacts
contact_model = env['mail.mass_mailing.contact']
partner_model = env['res.partner']
contacts = contact_model.search([('email', '!=', False)])
_logger.info('Trying to match %d contacts to partner by email',
len(contacts))
for contact in contacts:
partners = partner_model.search([
('email', '=ilike', contact.email)
], limit=1)
if partners:
contact.write({'partner_id': partners.id})
# ACTION 2: Match existing statistics
stat_model = env['mail.mail.statistics']
stats = stat_model.search([
('model', '!=', False),
('res_id', '!=', False),
])
_logger.info('Trying to link %d mass mailing statistics to partner',
len(stats))
stats.partner_link()
163 changes: 163 additions & 0 deletions mass_mailing_partner/i18n/am.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mass_mailing_partner
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-12-01 02:19+0000\n"
"PO-Revision-Date: 2017-12-01 02:19+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Amharic (https://www.transifex.com/oca/teams/23907/am/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: am\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. module: mass_mailing_partner
#: model:ir.ui.view,arch_db:mass_mailing_partner.partner_mail_list_wizard_form
msgid "Add contacts to mailing list"
msgstr ""

#. module: mass_mailing_partner
#: model:ir.actions.act_window,name:mass_mailing_partner.action_partner_mail_list
msgid "Add to mailing list"
msgstr ""

#. module: mass_mailing_partner
#: model:ir.ui.view,arch_db:mass_mailing_partner.partner_mail_list_wizard_form
msgid "Cancel"
msgstr ""

#. module: mass_mailing_partner
#: model:ir.model,name:mass_mailing_partner.model_partner_mail_list_wizard
#: model:ir.ui.view,arch_db:mass_mailing_partner.partner_mail_list_wizard_form
msgid "Create contact mailing list"
msgstr ""

#. module: mass_mailing_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_partner_mail_list_wizard_create_uid
msgid "Created by"
msgstr "Creado por"

#. module: mass_mailing_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_partner_mail_list_wizard_create_date
msgid "Created on"
msgstr "Creado en"

#. module: mass_mailing_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_partner_mail_list_wizard_display_name
msgid "Display Name"
msgstr ""

#. module: mass_mailing_partner
#: model:ir.model,name:mass_mailing_partner.model_mail_mail_statistics
msgid "Email Statistics"
msgstr ""

#. module: mass_mailing_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_partner_mail_list_wizard_id
msgid "ID"
msgstr "ID"

#. module: mass_mailing_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_partner_mail_list_wizard___last_update
msgid "Last Modified on"
msgstr ""

#. module: mass_mailing_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_partner_mail_list_wizard_write_uid
msgid "Last Updated by"
msgstr "Última actualización por"

#. module: mass_mailing_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_partner_mail_list_wizard_write_date
msgid "Last Updated on"
msgstr "Última actualización en"

#. module: mass_mailing_partner
#: model:ir.model,name:mass_mailing_partner.model_mail_mass_mailing_list
#: model:ir.model.fields,field_description:mass_mailing_partner.field_partner_mail_list_wizard_mail_list_id
#: model:ir.ui.view,arch_db:mass_mailing_partner.view_res_partner_filter
msgid "Mailing List"
msgstr ""

#. module: mass_mailing_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_res_partner_mass_mailing_contacts_count
#: model:ir.model.fields,field_description:mass_mailing_partner.field_res_users_mass_mailing_contacts_count
msgid "Mailing list number"
msgstr ""

#. module: mass_mailing_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_res_partner_mass_mailing_contact_ids
#: model:ir.model.fields,field_description:mass_mailing_partner.field_res_users_mass_mailing_contact_ids
#: model:ir.ui.view,arch_db:mass_mailing_partner.view_partner_form
msgid "Mailing lists"
msgstr ""

#. module: mass_mailing_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_mail_mass_mailing_list_partner_mandatory
msgid "Mandatory Partner"
msgstr ""

#. module: mass_mailing_partner
#: model:ir.model,name:mass_mailing_partner.model_mail_mass_mailing_contact
msgid "Mass Mailing Contact"
msgstr ""

#. module: mass_mailing_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_res_partner_mass_mailing_stats
#: model:ir.model.fields,field_description:mass_mailing_partner.field_res_users_mass_mailing_stats
#: model:ir.ui.view,arch_db:mass_mailing_partner.view_partner_form
msgid "Mass mailing stats"
msgstr ""

#. module: mass_mailing_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_res_partner_mass_mailing_stats_count
#: model:ir.model.fields,field_description:mass_mailing_partner.field_res_users_mass_mailing_stats_count
msgid "Mass mailing stats number"
msgstr ""

#. module: mass_mailing_partner
#: model:ir.model,name:mass_mailing_partner.model_res_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_mail_mail_statistics_partner_id
#: model:ir.model.fields,field_description:mass_mailing_partner.field_mail_mass_mailing_contact_partner_id
#: model:ir.ui.view,arch_db:mass_mailing_partner.view_mail_mail_statistics_search
#: model:ir.ui.view,arch_db:mass_mailing_partner.view_mail_mass_mailing_contact_search
msgid "Partner"
msgstr "ተባባሪ"

#. module: mass_mailing_partner
#: code:addons/mass_mailing_partner/wizard/partner_mail_list_wizard.py:26
#, python-format
msgid "Partner '%s' has no email."
msgstr ""

#. module: mass_mailing_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_mail_mass_mailing_list_partner_category
msgid "Partner Tag"
msgstr ""

#. module: mass_mailing_partner
#: code:addons/mass_mailing_partner/models/mail_mass_mailing_contact.py:19
#: sql_constraint:mail.mass_mailing.contact:0
#, python-format
msgid "Partner already exists in this mailing list."
msgstr ""

#. module: mass_mailing_partner
#: model:ir.model.fields,field_description:mass_mailing_partner.field_partner_mail_list_wizard_partner_ids
msgid "Partner ids"
msgstr ""

#. module: mass_mailing_partner
#: code:addons/mass_mailing_partner/models/res_partner.py:36
#, python-format
msgid ""
"This partner '%s' is subscribed to one or more mailing lists. Email must be "
"assigned."
msgstr ""
Loading

0 comments on commit bab34b4

Please sign in to comment.