diff --git a/groupeurd_newsletter/__openerp__.py b/groupeurd_newsletter/__openerp__.py index f4ec266..945e569 100644 --- a/groupeurd_newsletter/__openerp__.py +++ b/groupeurd_newsletter/__openerp__.py @@ -11,13 +11,16 @@ - Unicité de l'abonné dans chaque liste - Droits d'utilisateur pour limiter accès à uniquement publipostages et listes de diffusion - Retirer droit de suppression d'abonné au profil Responsable Marketing - - Retirer la gestion des nom des abonnés (dans la liste ou dans le formulaire) + - Retirer la gestion des noms des abonnés (dans la liste ou dans le formulaire) - Ajouter un champ "unsubscribed_by_odoo_user" qui sera manipulé pour les désincriptions par interface - Afficher champ create_uid pour savoir provenance des contacts - Ne garder que les modèles de courriel de newsletter dans Publipostages/Modèles de courriel - Modèles de newsletter spécifiques - Lien vers version HTML (format proposé: __HTML_VERSION_URL__) - Placement libre du lien de désinscription (format proposé: __UNSUBSCRIBE_URL__) + - Ajout section "Dernières publications" aux modèles Newsletter URD + - Empêcher pour un publipostage de faire un second clic "Envoyer à tous" si l'envoi de mails est déjà planifié + - Ajouter automatiquement un lien de désinscription s'il n'est pas ajouté manuellement En projet: - Ecraser les propriétés d'un publipostage par les propriétés standard d'un modèle de courriel au moment de la sélection de ce dernier. @@ -31,7 +34,7 @@ # Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml # for the full list 'category': 'Marketing', - 'version': '0.4', + 'version': '0.5', # any module necessary for this one to work correctly 'depends': ['base','mass_mailing','marketing','website_mail'], diff --git a/groupeurd_newsletter/models.py b/groupeurd_newsletter/models.py index 1c7e412..98dd6b4 100644 --- a/groupeurd_newsletter/models.py +++ b/groupeurd_newsletter/models.py @@ -9,6 +9,9 @@ from openerp.osv import osv from openerp import tools from openerp.tools.translate import _ +import logging +_logger = logging.getLogger(__name__) + # Overrides mass mailing Contact for this module purpose class contact(models.Model): _name = "mail.mass_mailing.contact" @@ -70,7 +73,11 @@ class MailMail(osv.Model): has_email_to = emails and emails[0] or False unsubscribe_url = self._get_unsubscribe_url(cr, uid, mail, has_email_to, context=context) if unsubscribe_url: - body = body.replace('__UNSUBSCRIBE_URL__', unsubscribe_url) + if body.count('__UNSUBSCRIBE_URL__') > 0: + body = body.replace('__UNSUBSCRIBE_URL__', unsubscribe_url) + else: + unsubscribe_link = '%s' % (unsubscribe_url, _('Click to unsubscribe')) + body = tools.append_content_to_html(body,unsubscribe_link, plaintext=False, container_tag='p') html_version_url = self._get_html_version_url(cr, uid, mail, has_email_to, context=context) body = body.replace('__HTML_VERSION_URL__', html_version_url) @@ -95,10 +102,13 @@ class TestMassMailing(osv.TransientModel): mass_mailing_id = fields.Many2one('mail.mass_mailing', 'Mailing', required=True, ondelete='cascade') def send_mail_test(self, cr, uid, ids, context=None): + _logger.info('entering new send_mail_test') #Add a 'mass_mailing_test' flag in the context to be able to build correct HTML_VERSION/UNSUBSCRIBE URLs in test mode context['mass_mailing_test'] = True Mail = self.pool['mail.mail'] + + _logger.info('before send_mail_test for loop') for wizard in self.browse(cr, uid, ids, context=context): mailing = wizard.mass_mailing_id test_emails = tools.email_split(wizard.email_to) @@ -117,11 +127,18 @@ class TestMassMailing(osv.TransientModel): mail_mail_obj = Mail.browse(cr, uid, Mail.create(cr, uid, mail_values, context=context), context=context) unsubscribe_url = Mail._get_unsubscribe_url(cr, uid, mail_mail_obj, test_mail, context=context) html_version_url = Mail._get_html_version_url(cr, uid, mail_mail_obj, test_mail, context=context) - body = mailing.body_html.replace('__UNSUBSCRIBE_URL__', unsubscribe_url) + if unsubscribe_url: + if mailing.body_html.count('__UNSUBSCRIBE_URL__') > 0: + body = mailing.body_html.replace('__UNSUBSCRIBE_URL__', unsubscribe_url) + else: + unsubscribe_link = '%s' % (unsubscribe_url, _('Click to unsubscribe')) + body = tools.append_content_to_html(mailing.body_html,unsubscribe_link, plaintext=False, container_tag='p') body = mailing.body_html.replace('__HTML_VERSION_URL__', html_version_url) Mail.write(cr, uid, mail_mail_obj.id, {'body_html': mailing.body_html}, context=context) mail_ids.append(mail_mail_obj.id) + _logger.info('just before new send_mail_test Mail.send') Mail.send(cr, uid, mail_ids, context=context) + _logger.info('just after new send_mail_test Mail.send') self.pool['mail.mass_mailing'].write(cr, uid, [mailing.id], {'state': 'test'}, context=context) return True diff --git a/groupeurd_newsletter/newsletter-fr-template.xml b/groupeurd_newsletter/newsletter-fr-template.xml index 988f07c..b67eaff 100644 --- a/groupeurd_newsletter/newsletter-fr-template.xml +++ b/groupeurd_newsletter/newsletter-fr-template.xml @@ -207,6 +207,91 @@ + +
+ + + + +
+ + + + + + + + + + + + + + + + + + +
 
separateur.png

+
DERNIÈRES  PUBLICATIONS  DU  GROUPE URD

+
+
+
+ + +
+ + + + +
+ + + + + + + + + + + + + +
+
+
+

+
+ + + + + + + + + + + + +
Forced Migration Review, « Resettlement »

+
Ce + numéro de la revue des migrations forcées s’intéresse aux modalités et + aux enjeux de la réinstallation, à la façon dont celle-ci est gérée, + aussi bien financièrement qu’humainement. Les articles présentent + différentes études de cas, des exemples de réinstallation positifs et + d’autres plus négatifs. Des retours en arrière historiques montrent par + exemple la réinstallation des réfugiés hongrois en 1956. Des articles + généraux clôturent la revue. En + savoir plus
+
o
+

+

+
+
+
+
@@ -342,6 +427,8 @@
+ + + + +
+
+ + Publi FR +
+
+ + + + + +
+ + + + + + + + + + + + + +
+
+
+

+
+ + + + + + + + + + + + +
Forced Migration Review, « Resettlement »

+
Ce + numéro de la revue des migrations forcées s’intéresse aux modalités et + aux enjeux de la réinstallation, à la façon dont celle-ci est gérée, + aussi bien financièrement qu’humainement. Les articles présentent + différentes études de cas, des exemples de réinstallation positifs et + d’autres plus négatifs. Des retours en arrière historiques montrent par + exemple la réinstallation des réfugiés hongrois en 1956. Des articles + généraux clôturent la revue. En + savoir plus
+
o
+

+

+
+
+ +
+
+
diff --git a/groupeurd_newsletter/views.xml b/groupeurd_newsletter/views.xml index 01a0fbf..13912af 100644 --- a/groupeurd_newsletter/views.xml +++ b/groupeurd_newsletter/views.xml @@ -23,6 +23,23 @@ + + + mail.mass_mailing.form + mail.mass_mailing + + + + + + \ No newline at end of file