]> nos-oignons.net Git - gestion-adh.git/commitdiff
Modification du traitement des adresses postales pour les rendre optionnelles
authorLunar <lunar@anargeek.net>
Wed, 6 Sep 2017 11:05:54 +0000 (13:05 +0200)
committerLunar <lunar@anargeek.net>
Wed, 6 Sep 2017 18:08:49 +0000 (20:08 +0200)
Comme discuté sur au sein du Conseil d'Administration, les adresses postales
sont maintenant optionelles dans la base des membres. Elles ne seront
simplement pas mentionnées dans le mail de relance ou sur les reçus.

features/send-membership-reminders.feature
features/step_definitions/emails.rb
features/step_definitions/members.rb
features/support/fixtures.rb
lib/nos_oignons/receipt.rb
lib/nos_oignons/reminder.rb

index a7921bc09362dfe74f840d39112ffba509efb25c..47cabf5226371a642be5034444f32c3796293ceb 100644 (file)
@@ -83,3 +83,13 @@ Fonctionnalité: prévenir les membres qu'il faut renouveler leur cotisation
     Et avec Moly qui doit renouveler sa cotisation d'ici 30 jours
     Lorsque j'exécute send-membership-reminders
     Alors des emails doivent avoir été envoyés à Jane, Fatima, Fred et Moly
+
+  Scénario: Envoi de l'appel avec une adresse postale
+    Soit une base avec Sophie ayant une adresse postale et qui doit renouveler sa cotisation d'ici 30 jours
+    Lorsque j'exécute send-membership-reminders
+    Alors l'appel pour la cotisation doit demander confirmation de l'adresse postale
+
+  Scénario: Envoi de l'appel sans adresse postale
+    Soit une base avec Sylvain qui n'a pas d'adresse postale et qui doit renouveler sa cotisation d'ici 30 jours
+    Lorsque j'exécute send-membership-reminders
+    Alors l'appel pour la cotisation ne doit pas parler de l'adresse postale
index e5e4fab7577aedd0369dcf2b188c3b9ef2671fb2..9452d384e3c0eb87a3c1b31f1ee736b6f8e6beb3 100644 (file)
@@ -62,3 +62,15 @@ Then /^il doit contenir les adresses emails de Jane et Fred$/ do
   expect(Mail::TestMailer.deliveries.first.body).to include('fred@example.org')
 end
 
+Then /^l'appel pour la cotisation doit demander confirmation de l'adresse postale$/ do
+  mail = Mail::TestMailer.deliveries.first
+  expect(mail.body).to include("vérifier que l'adresse postale")
+  expect(mail.body).to include(@last_member['address'])
+end
+
+
+Then /^l'appel pour la cotisation ne doit pas parler de l'adresse postale$/ do
+  mail = Mail::TestMailer.deliveries.first
+  expect(mail.body).to_not include("vérifier que l'adresse postale")
+end
+
index 0ec5ae1278589a909c16993a387af0857df536fd..d3d9b7c5864c1a7966280c8b655bc8047946e4dd 100644 (file)
@@ -22,18 +22,26 @@ def init_db
   ENV['NOS_OIGNONS_BOARD_WIKI_PATH'] = expand_path('.')
 end
 
-def create_new_member(name, joined_on, paid_on)
-  @last_member = { 'name' => name,
-                   'address' => "At #{name}",
-                   'email' => "#{name.downcase}@example.org",
-                   'joined_on' => joined_on,
-                   'membership_fee_paid_on' => paid_on
-         }
+def new_member_data(name, joined_on, paid_on)
+  { 'name' => name,
+    'address' => "At #{name}",
+    'email' => "#{name.downcase}@example.org",
+    'joined_on' => joined_on,
+    'membership_fee_paid_on' => paid_on
+  }
+end
+
+def add_member(member_data)
+  @last_member = member_data
   init_db unless @member_db_path
   file = member_filename_for_id(new_id)
   File.write file, render_member_file(@last_member)
 end
 
+def create_new_member(*args)
+  add_member(new_member_data(*args))
+end
+
 Given /une base de membres vide$/ do
   init_db
 end
@@ -74,12 +82,18 @@ Given /^une base avec uniquement (\w+), membre (\w+)$/ do |name, member_id|
   expect(Dir.glob("#{@member_db_path}/[0-9]*").size).to eq(1)
 end
 
-
-Given /^(?:une base )?avec (\w+) qui doit renouveler sa cotisation d'ici (\d+) jours$/ do |name, days_before_anniversary|
+Given /^(?:une base )?avec (\w+) (ayant une adresse postale et |qui n'a pas d'adresse postale et )?qui doit renouveler sa cotisation d'ici (\d+) jours$/ do |name, address_status, days_before_anniversary|
   now = Time.now
   paid_on = Time.new(now.year - 1, now.month, now.day).to_date + days_before_anniversary.to_i
   joined_on = paid_on
-  create_new_member(name, joined_on, paid_on)
+  member_data = new_member_data(name, joined_on, paid_on)
+  case address_status
+  when /ayant/
+    member_data['address'] = "At #{name}'s"
+  when /qui n'a pas/
+    member_data.delete('address')
+  end
+  add_member(member_data)
 end
 
 Given /^une nouvelle adhésion de (\w+)$/ do |name|
@@ -92,7 +106,6 @@ Given /^une nouvelle adhésion de (\w+) qui a payé sa cotisation il y a (\d+) j
   create_new_member(name, joined_on, joined_on)
 end
 
-
 Given /^elle avait déjà reçu des appels l'année précédente$/ do
   Timecop.travel(Time.now.to_date - 375) do
     NosOignons::ReminderDb.instance.record(OpenStruct.new(@last_member))
index 42d46ee21a7c33dfbf0df359ca7faf4960f37afd..0d01e20ee739f0864710569674a611a27bc66904 100644 (file)
@@ -35,10 +35,6 @@ BASE_MEMBERS = YAML.load(<<END_OF_YAML)
     Il vient de `whois cogent.fr`.
 000002:
   name: Sylvain Dufier
-  address: |
-    ORANGE FRANCE
-    13, rue de Javel
-    75015 Paris
   email: sylvain.dufier@orange-ftgroup.com
   joined_on: 2013-05-20
   membership_fee_paid_on: 2013-05-29
@@ -72,8 +68,10 @@ END_OF_YAML
 MEMBER_FILE_TEMPLATE = <<'END_OF_TEMPLATE'
 ---
 name: <%= name %>
+<% unless address.nil? %>
 address: |
 <%= address.gsub(/^/, '  ').rstrip %>
+<% end %>
 email: <%= email %>
 joined_on: <%= joined_on %>
 membership_fee_paid_on: <%= membership_fee_paid_on %>
index 81971c7d1222e2d2eff345a33d5597d2ad1011a7..c42333fa6d32556a9f32b741225434e89578ae2f 100644 (file)
@@ -61,7 +61,7 @@ module NosOignons
         end
       end
       pdf.bounding_box([WINDOW_LEFT - pdf.bounds.absolute_left, pdf.bounds.absolute_top - WINDOW_TOP], :width => WINDOW_WIDTH, :height => WINDOW_BOTTOM - WINDOW_TOP) do
-        pdf.text member.name + "\n" + member.address, :valign => :bottom
+        pdf.text member.name + "\n" + (member.address || ''), :valign => :bottom
       end
     end
 
index a923e6b2bcedcddce21f2bc15e2e91872b29cc76..e6d9234aeee676405ca95ea143cf2a14a42077bd 100644 (file)
@@ -38,6 +38,7 @@ module NosOignons
             comment faire, écrivez au conseil d'administration. Répondre à cet email
             devrait faire l'affaire.
 
+            <% unless member.address.nil? %>
             Au passage, est-ce que vous pourriez vérifier que l'adresse postale est
             toujours bonne ? Voici celle que nous avons retenu :
 
@@ -45,6 +46,7 @@ module NosOignons
 
             Si ce n'est plus le cas, c'est chouette de le signaler.
 
+            <% end %>
             Au plaisir de continuer l'aventure de Nos oignons avec vous,
             -- 
             Le robot du conseil d'administration