[Git][noosfero/noosfero][stable-2.5] Merge branch 'newsletter-mailing-link' into 'master'

Rodrigo Souto gitlab at mg.gitlab.com
Mon Sep 24 09:42:43 BRT 2018


Rodrigo Souto pushed to branch stable-2.5 at Noosfero / noosfero


Commits:
a0100301 by Rodrigo Souto at 2018-09-24T12:42:38Z
Merge branch 'newsletter-mailing-link' into 'master'

Newsletter mailing link

See merge request noosfero/noosfero!1614

(cherry picked from commit 35d29105592f273727a5a4f79c4fdca3f2665d81)

0c0da6a8 newsletter-plugins: dont display mailing public link on newsletter view
- - - - -


6 changed files:

- plugins/newsletter/features/newsletter_plugin.feature
- plugins/newsletter/lib/newsletter_plugin.rb
- plugins/newsletter/lib/newsletter_plugin/moderate_newsletter.rb
- plugins/newsletter/lib/newsletter_plugin/newsletter.rb
- plugins/newsletter/test/unit/newsletter_plugin_newsletter_mailing_test.rb
- plugins/newsletter/test/unit/newsletter_plugin_test.rb


Changes:

=====================================
plugins/newsletter/features/newsletter_plugin.feature
=====================================
@@ -22,8 +22,8 @@ Feature: newsletter plugin
     When I go to the environment control panel
     And I follow "Plugins"
     And I follow "Configuration"
-    And I follow "Save and visualize"
-    Then I should see "If you can't view this email, click here"
+    When I follow "Save and visualize"
+    Then I should see "cancel your subscription here"
     And I should not see "Newsletter settings"
 
   @selenium


=====================================
plugins/newsletter/lib/newsletter_plugin.rb
=====================================
@@ -28,7 +28,7 @@ class NewsletterPlugin < Noosfero::Plugin
           mailing = NewsletterPlugin::NewsletterMailing.create!(
             :source => newsletter,
             :subject => newsletter.subject,
-            :body => newsletter.body,
+            :body => newsletter.body(mailing: true),
             :person => newsletter.person,
             :locale => newsletter.environment.default_locale,
           )


=====================================
plugins/newsletter/lib/newsletter_plugin/moderate_newsletter.rb
=====================================
@@ -12,7 +12,7 @@ class NewsletterPlugin::ModerateNewsletter < Task
     mailing = NewsletterPlugin::NewsletterMailing.create!(
       :source => newsletter,
       :subject => newsletter.subject,
-      :body => newsletter.body(:post_ids => self.post_ids.reject{|id| id.to_i.zero?}),
+      :body => newsletter.body(mailing: true, :post_ids => self.post_ids.reject{|id| id.to_i.zero?}),
       :person => newsletter.person,
       :locale => newsletter.environment.default_locale,
     )


=====================================
plugins/newsletter/lib/newsletter_plugin/newsletter.rb
=====================================
@@ -122,6 +122,10 @@ class NewsletterPlugin::Newsletter < ApplicationRecord
     content_tag(:p, (_("If you can't view this email, %s.") % link_to(_('click here'), '{mailing_url}')).html_safe, :id => 'newsletter-public-link').html_safe
   end
 
+  def public_view_link
+    content_tag(:div, message_to_public_link, :style => CSS['newsletter-public-link'])
+  end
+
   def message_to_unsubscribe
     content_tag(:div, _("This is an automatically generated email, please do not reply. If you do not wish to receive future newsletter emails, %s.").html_safe % link_to(_("cancel your subscription here"), self.unsubscribe_url, :style => CSS['public-link']), :style => CSS['newsletter-unsubscribe'], :id => 'newsletter-unsubscribe').html_safe
   end
@@ -139,7 +143,8 @@ class NewsletterPlugin::Newsletter < ApplicationRecord
   end
 
   def body(data = {})
-    content_tag(:div, content_tag(:div, message_to_public_link, :style => CSS['newsletter-public-link']).html_safe+content_tag(:table,(self.image.nil? ? '' : content_tag(:tr, content_tag(:th, tag(:img, :src => "#{self.environment.top_url}#{self.image.public_filename}", :style => CSS['header-image']),:colspan => 2),:style => CSS['newsletter-header'])).html_safe+self.posts(data).map do |post|
+    mailing_link = data[:mailing] ? public_view_link : ''
+      content_tag(:div, mailing_link.html_safe+content_tag(:table,(self.image.nil? ? '' : content_tag(:tr, content_tag(:th, tag(:img, :src => "#{self.environment.top_url}#{self.image.public_filename}", :style => CSS['header-image']),:colspan => 2),:style => CSS['newsletter-header'])).html_safe+self.posts(data).map do |post|
         if post.image
           post_with_image(post)
         else


=====================================
plugins/newsletter/test/unit/newsletter_plugin_newsletter_mailing_test.rb
=====================================
@@ -25,7 +25,7 @@ class NewsletterPluginNewsletterMailingTest < ActiveSupport::TestCase
     mailing = NewsletterPlugin::NewsletterMailing.create!(
       :source => newsletter,
       :subject => newsletter.subject,
-      :body => newsletter.body,
+      :body => newsletter.body(mailing: true),
       :person => newsletter.person,
       :locale => environment.default_locale,
     )
@@ -44,7 +44,7 @@ class NewsletterPluginNewsletterMailingTest < ActiveSupport::TestCase
     mailing = NewsletterPlugin::NewsletterMailing.create!(
       :source => newsletter,
       :subject => newsletter.subject,
-      :body => newsletter.body,
+      :body => newsletter.body(mailing: true),
       :person => newsletter.person,
       :locale => newsletter.environment.default_locale,
     )
@@ -62,7 +62,7 @@ class NewsletterPluginNewsletterMailingTest < ActiveSupport::TestCase
     mailing = NewsletterPlugin::NewsletterMailing.create!(
       :source => newsletter,
       :subject => newsletter.subject,
-      :body => newsletter.body,
+      :body => newsletter.body(mailing: true),
       :person => newsletter.person,
       :locale => newsletter.environment.default_locale,
     )
@@ -79,7 +79,7 @@ class NewsletterPluginNewsletterMailingTest < ActiveSupport::TestCase
     mailing = NewsletterPlugin::NewsletterMailing.create!(
       :source => newsletter,
       :subject => newsletter.subject,
-      :body => newsletter.body,
+      :body => newsletter.body(mailing: true),
       :person => newsletter.person,
       :locale => newsletter.environment.default_locale,
     )


=====================================
plugins/newsletter/test/unit/newsletter_plugin_test.rb
=====================================
@@ -110,4 +110,24 @@ class NewsletterPluginTest < ActiveSupport::TestCase
     end
   end
 
+  should 'not include mailing public view link on newsletter body' do
+    newsletter = NewsletterPlugin::Newsletter.create!(
+      :environment => fast_create(Environment),
+      :enabled => true,
+      :subject => 'newsletter test',
+      :person => fast_create(Person))
+
+    assert_no_match /\{mailing_url\}/, newsletter.body(mailing: false)
+  end
+
+  should 'include mailing public view link on mailing body' do
+    newsletter = NewsletterPlugin::Newsletter.create!(
+      :environment => fast_create(Environment),
+      :enabled => true,
+      :subject => 'newsletter test',
+      :person => fast_create(Person))
+
+    assert_match /\{mailing_url\}/, newsletter.body(mailing: true)
+  end
+
 end



View it on GitLab: https://gitlab.com/noosfero/noosfero/commit/a010030109296a1263075ce1b1ec35f0c2e700b0

-- 
View it on GitLab: https://gitlab.com/noosfero/noosfero/commit/a010030109296a1263075ce1b1ec35f0c2e700b0
You're receiving this email because of your account on gitlab.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20180924/06ab1261/attachment-0001.html>


More information about the Noosfero-dev mailing list