Commit 3331bbc7585e87d11ca2f6bd029b968d6df0989e

Authored by Carlos Purificação
1 parent ebd4f04a

Implemented the administrator task notification option

app/models/profile.rb
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 # which by default is the one returned by Environment:default. 3 # which by default is the one returned by Environment:default.
4 class Profile < ActiveRecord::Base 4 class Profile < ActiveRecord::Base
5 5
6 - attr_accessible :name, :identifier, :public_profile, :nickname, :custom_footer, :custom_header, :address, :zip_code, :contact_phone, :image_builder, :description, :closed, :template_id, :environment, :lat, :lng, :is_template, :fields_privacy, :preferred_domain_id, :category_ids, :country, :city, :state, :national_region_code, :email, :contact_email, :redirect_l10n, :notification_time, :redirection_after_login, :email_suggestions, :allow_members_to_invite, :invite_friends_only, :secret 6 + attr_accessible :name, :identifier, :public_profile, :nickname, :custom_footer, :custom_header, :address, :zip_code, :contact_phone, :image_builder, :description, :closed, :template_id, :environment, :lat, :lng, :is_template, :fields_privacy, :preferred_domain_id, :category_ids, :country, :city, :state, :national_region_code, :email, :contact_email, :redirect_l10n, :notification_time, :redirection_after_login, :email_suggestions, :allow_members_to_invite, :invite_friends_only, :secret, :administrator_mail_notification
7 7
8 # use for internationalizable human type names in search facets 8 # use for internationalizable human type names in search facets
9 # reimplement on subclasses 9 # reimplement on subclasses
@@ -178,6 +178,7 @@ class Profile &lt; ActiveRecord::Base @@ -178,6 +178,7 @@ class Profile &lt; ActiveRecord::Base
178 settings_items :description 178 settings_items :description
179 settings_items :fields_privacy, :type => :hash, :default => {} 179 settings_items :fields_privacy, :type => :hash, :default => {}
180 settings_items :email_suggestions, :type => :boolean, :default => false 180 settings_items :email_suggestions, :type => :boolean, :default => false
  181 + settings_items :administrator_mail_notification, :type => :boolean, :default => true
181 182
182 validates_length_of :description, :maximum => 550, :allow_nil => true 183 validates_length_of :description, :maximum => 550, :allow_nil => true
183 184
app/models/task.rb
@@ -57,6 +57,7 @@ class Task &lt; ActiveRecord::Base @@ -57,6 +57,7 @@ class Task &lt; ActiveRecord::Base
57 end 57 end
58 58
59 after_create do |task| 59 after_create do |task|
  60 + binding.pry
60 unless task.status == Task::Status::HIDDEN 61 unless task.status == Task::Status::HIDDEN
61 begin 62 begin
62 task.send(:send_notification, :created) 63 task.send(:send_notification, :created)
@@ -67,7 +68,9 @@ class Task &lt; ActiveRecord::Base @@ -67,7 +68,9 @@ class Task &lt; ActiveRecord::Base
67 begin 68 begin
68 target_msg = task.target_notification_message 69 target_msg = task.target_notification_message
69 if target_msg && task.target && !task.target.notification_emails.empty? 70 if target_msg && task.target && !task.target.notification_emails.empty?
70 - TaskMailer.target_notification(task, target_msg).deliver 71 + if target_profile_accepts_notification?(task)
  72 + TaskMailer.target_notification(task, target_msg).deliver
  73 + end
71 end 74 end
72 rescue NotImplementedError => ex 75 rescue NotImplementedError => ex
73 Rails.logger.info ex.to_s 76 Rails.logger.info ex.to_s
@@ -75,6 +78,18 @@ class Task &lt; ActiveRecord::Base @@ -75,6 +78,18 @@ class Task &lt; ActiveRecord::Base
75 end 78 end
76 end 79 end
77 80
  81 + def target_profile_accepts_notification?(task)
  82 + if target_is_profile?(task)
  83 + return task.target.administrator_mail_notification
  84 + else
  85 + true
  86 + end
  87 + end
  88 +
  89 + def target_is_profile?(task)
  90 + task.target.kind_of? Profile
  91 + end
  92 +
78 # this method finished the task. It calls #perform, which must be overriden 93 # this method finished the task. It calls #perform, which must be overriden
79 # by subclasses. At the end a message (as returned by #finish_message) is 94 # by subclasses. At the end a message (as returned by #finish_message) is
80 # sent to the requestor with #notify_requestor. 95 # sent to the requestor with #notify_requestor.
app/views/profile_editor/_moderation.html.erb
1 <h2><%= _('Moderation options') %></h2> 1 <h2><%= _('Moderation options') %></h2>
2 <% if profile.community? %> 2 <% if profile.community? %>
3 <div style='margin-bottom: 1em'> 3 <div style='margin-bottom: 1em'>
  4 + <h4><%= _('Email Configuration:')%></h4>
  5 + </div>
  6 + <div style='margin-bottom: 0.5em'>
  7 + <%= check_box(:profile_data, :administrator_mail_notification, :style => 'float: left') %>
  8 + <div style='margin-left: 30px'>
  9 + <%= _('Send administrator Email for every task (Default: yes)') %>
  10 + </div>
  11 + </div>
  12 +
  13 + <div style='margin-bottom: 1em'>
4 <h4><%= _('Invitation moderation:')%></h4> 14 <h4><%= _('Invitation moderation:')%></h4>
5 </div> 15 </div>
6 <div style='margin-bottom: 0.5em'> 16 <div style='margin-bottom: 0.5em'>