foodsoft/app/mailers/mailer.rb

95 lines
2.9 KiB
Ruby
Raw Normal View History

2012-08-06 12:00:40 +02:00
# encoding: utf-8
2011-05-11 10:53:18 +02:00
# ActionMailer class that handles all emails for the FoodSoft.
class Mailer < ActionMailer::Base
2012-08-17 19:08:02 +02:00
layout 'email' # Use views/layouts/email.txt.erb
2011-05-11 10:53:18 +02:00
default from: "FoodSoft <#{FoodsoftConfig[:email_sender]}>",
sender: FoodsoftConfig[:email_sender],
errors_to: FoodsoftConfig[:email_sender]
2011-05-11 10:53:18 +02:00
# Sends an email copy of the given internal foodsoft message.
def foodsoft_message(message, recipient)
2012-08-17 19:08:02 +02:00
@message = message
2011-05-11 10:53:18 +02:00
mail subject: "[#{FoodsoftConfig[:name]}] " + message.subject,
2012-08-17 19:08:02 +02:00
to: recipient.email,
from: "#{message.sender.nick} <#{message.sender.email}>"
2011-05-11 10:53:18 +02:00
end
# Sends an email with instructions on how to reset the password.
# Assumes user.setResetPasswordToken has been successfully called already.
def reset_password(foodcoop, user_id)
set_foodcoop_scope(foodcoop)
@user = User.find(user_id)
@link = new_password_url(id: @user.id, token: @user.reset_password_token)
2011-05-11 10:53:18 +02:00
mail :to => @user.email,
:subject => "[#{FoodsoftConfig[:name]}] Neues Passwort für/ New password for #{@user.nick}"
2011-05-11 10:53:18 +02:00
end
# Sends an invite email.
def invite(foodcoop, invite_id)
set_foodcoop_scope(foodcoop)
@invite = Invite.find(invite_id)
@link = accept_invitation_url(token: @invite.token)
2011-05-11 10:53:18 +02:00
mail :to => @invite.email,
:subject => "Einladung in die Foodcoop #{FoodsoftConfig[:name]} - Invitation to the Foodcoop"
2011-05-11 10:53:18 +02:00
end
# Notify user of upcoming task.
def upcoming_tasks(user, task)
@user = user
@task = task
mail :to => user.email,
:subject => "[#{FoodsoftConfig[:name]}] Aufgaben werden fällig!"
2011-05-11 10:53:18 +02:00
end
# Sends order result for specific Ordergroup
def order_result(user, group_order)
@order = group_order.order
@group_order = group_order
mail :to => user.email,
:subject => "[#{FoodsoftConfig[:name]}] Bestellung beendet: #{group_order.order.name}"
2011-05-11 10:53:18 +02:00
end
# Notify user if account balance is less than zero
def negative_balance(user,transaction)
@group = user.ordergroup
@transaction = transaction
mail :to => user.email,
:subject => "[#{FoodsoftConfig[:name]}] Gruppenkonto im Minus"
2011-05-11 10:53:18 +02:00
end
2012-11-10 17:05:43 +01:00
def feedback(foodcoop, user, feedback)
set_foodcoop_scope(foodcoop)
2011-05-11 10:53:18 +02:00
@user = user
@feedback = feedback
2011-05-11 10:53:18 +02:00
mail :to => FoodsoftConfig[:notification]["error_recipients"],
2011-05-11 10:53:18 +02:00
:from => "#{user.nick} <#{user.email}>",
:sender => FoodsoftConfig[:notification]["sender_address"],
:errors_to => FoodsoftConfig[:notification]["sender_address"],
2011-05-11 10:53:18 +02:00
:subject => "[Foodsoft] Feeback von #{user.email}"
end
def not_enough_users_assigned(task, user)
2011-05-11 10:53:18 +02:00
@task = task
@user = user
2011-05-11 10:53:18 +02:00
mail :to => user.email,
:subject => "[#{FoodsoftConfig[:name]}] \"#{task.name}\" braucht noch Leute!"
2011-05-11 10:53:18 +02:00
end
private
def set_foodcoop_scope(foodcoop)
ActionMailer::Base.default_url_options[:foodcoop] = foodcoop
end
2011-05-11 10:53:18 +02:00
end