Add administrative mail method
This commit is contained in:
parent
b2f4e064fc
commit
5791ffba79
5 changed files with 73 additions and 2 deletions
|
|
@ -4,6 +4,23 @@ class Notifier < ActionMailer::Base
|
||||||
|
|
||||||
ATTACHMENT = File.read("#{Rails.root}/public/images/diaspora_white_on_grey.png")
|
ATTACHMENT = File.read("#{Rails.root}/public/images/diaspora_white_on_grey.png")
|
||||||
|
|
||||||
|
def self.admin(string, recipients, opts = {})
|
||||||
|
mails = []
|
||||||
|
recipients.each do |rec|
|
||||||
|
mail = single_admin(string, rec)
|
||||||
|
mails << mail
|
||||||
|
mail.deliver
|
||||||
|
end
|
||||||
|
mails
|
||||||
|
end
|
||||||
|
def single_admin(string, recipient)
|
||||||
|
@recipient = recipient
|
||||||
|
@string = string.html_safe
|
||||||
|
attachments.inline['diaspora_white_on_grey.png'] = ATTACHMENT
|
||||||
|
mail(:to => @recipient.email,
|
||||||
|
:subject => I18n.t('notifier.single_admin.subject'), :host => APP_CONFIG[:terse_pod_url])
|
||||||
|
end
|
||||||
|
|
||||||
def new_request(recipient_id, sender_id)
|
def new_request(recipient_id, sender_id)
|
||||||
@receiver = User.find_by_id(recipient_id)
|
@receiver = User.find_by_id(recipient_id)
|
||||||
@sender = Person.find_by_id(sender_id)
|
@sender = Person.find_by_id(sender_id)
|
||||||
|
|
|
||||||
8
app/views/notifier/single_admin.html.haml
Normal file
8
app/views/notifier/single_admin.html.haml
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
%p
|
||||||
|
= t('notifier.hello', :name => @recipient.username)
|
||||||
|
%p
|
||||||
|
= @string
|
||||||
|
|
||||||
|
%br
|
||||||
|
= t('notifier.thanks')
|
||||||
|
= t('notifier.single_admin.admin')
|
||||||
6
app/views/notifier/single_admin.text.haml
Normal file
6
app/views/notifier/single_admin.text.haml
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
= t('notifier.hello', :name => @recipient.username)
|
||||||
|
|
||||||
|
= @string
|
||||||
|
|
||||||
|
= t('notifier.thanks')
|
||||||
|
= t('notifier.single_admin.admin')
|
||||||
|
|
@ -367,7 +367,11 @@ en:
|
||||||
notifier:
|
notifier:
|
||||||
hello: "Hello %{name}!"
|
hello: "Hello %{name}!"
|
||||||
love: "love,"
|
love: "love,"
|
||||||
|
thanks: "Thanks,"
|
||||||
diaspora: "the diaspora email robot"
|
diaspora: "the diaspora email robot"
|
||||||
|
single_admin:
|
||||||
|
subject: "A message from your Diaspora administrator:"
|
||||||
|
admin: "Your Diaspora administrator"
|
||||||
new_request:
|
new_request:
|
||||||
subject: "new Diaspora* contact request from %{from}"
|
subject: "new Diaspora* contact request from %{from}"
|
||||||
just_sent_you: "just sent you a contact request on Diaspora*"
|
just_sent_you: "just sent you a contact request on Diaspora*"
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,46 @@ describe Notifier do
|
||||||
let!(:user) {make_user}
|
let!(:user) {make_user}
|
||||||
let!(:aspect) {user.aspects.create(:name => "science")}
|
let!(:aspect) {user.aspects.create(:name => "science")}
|
||||||
let!(:person) {Factory.create :person}
|
let!(:person) {Factory.create :person}
|
||||||
let!(:request_mail) {Notifier.new_request(user.id, person.id)}
|
|
||||||
let!(:request_accepted_mail) {Notifier.request_accepted(user.id, person.id, aspect.id)}
|
|
||||||
|
|
||||||
|
before do
|
||||||
|
Notifier.deliveries = []
|
||||||
|
end
|
||||||
|
describe '.administrative' do
|
||||||
|
it 'mails a user' do
|
||||||
|
mails = Notifier.admin("Welcome to bureaucracy!", [user])
|
||||||
|
mails.length.should == 1
|
||||||
|
mail = Notifier.deliveries.first
|
||||||
|
mail.to.should == [user.email]
|
||||||
|
mail.body.encoded.should match /Welcome to bureaucracy!/
|
||||||
|
mail.body.encoded.should match /#{user.username}/
|
||||||
|
end
|
||||||
|
it 'mails a bunch of users' do
|
||||||
|
users = []
|
||||||
|
5.times do
|
||||||
|
users << make_user
|
||||||
|
end
|
||||||
|
Notifier.admin("Welcome to bureaucracy!", users)
|
||||||
|
mails = Notifier.deliveries
|
||||||
|
mails.length.should == 5
|
||||||
|
mails.each{|mail|
|
||||||
|
this_user = users.detect{|u| mail.to == [u.email]}
|
||||||
|
mail.body.encoded.should match /Welcome to bureaucracy!/
|
||||||
|
mail.body.encoded.should match /#{this_user.username}/
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#single_admin' do
|
||||||
|
it 'mails a user' do
|
||||||
|
mail = Notifier.single_admin("Welcome to bureaucracy!", user)
|
||||||
|
mail.to.should == [user.email]
|
||||||
|
mail.body.encoded.should match /Welcome to bureaucracy!/
|
||||||
|
mail.body.encoded.should match /#{user.username}/
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "#new_request" do
|
describe "#new_request" do
|
||||||
|
let!(:request_mail) {Notifier.new_request(user.id, person.id)}
|
||||||
it 'goes to the right person' do
|
it 'goes to the right person' do
|
||||||
request_mail.to.should == [user.email]
|
request_mail.to.should == [user.email]
|
||||||
end
|
end
|
||||||
|
|
@ -30,6 +65,7 @@ describe Notifier do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#request_accpeted" do
|
describe "#request_accpeted" do
|
||||||
|
let!(:request_accepted_mail) {Notifier.request_accepted(user.id, person.id, aspect.id)}
|
||||||
it 'goes to the right person' do
|
it 'goes to the right person' do
|
||||||
request_accepted_mail.to.should == [user.email]
|
request_accepted_mail.to.should == [user.email]
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue