parent
ecb4f16ec5
commit
d5f77d338b
7 changed files with 50 additions and 2 deletions
31
vedia.rb
31
vedia.rb
|
|
@ -268,6 +268,7 @@ post '/admin/votes/:id' do
|
|||
if (@vote.state == 'open' or @vote.state == 'closed') and new_expiry > Time.now
|
||||
puts "change"
|
||||
@vote.expire_on = new_expiry
|
||||
@vote.reminders = 0
|
||||
@vote.state = 'open'
|
||||
@vote.save
|
||||
end
|
||||
|
|
@ -589,7 +590,7 @@ def close_expired_votes
|
|||
mail = Mail.new
|
||||
mail.from = settings.admin_email
|
||||
mail.to = user.email
|
||||
mail.subject = _("Results of the vote: %{t}") % { t: vote.title }
|
||||
mail.subject = _("Results of the vote '%{t}'") % { t: vote.title }
|
||||
template = ERB.new(File.read("views/votes_close_email.erb"))
|
||||
mail.body = template.result(binding)
|
||||
mail.deliver
|
||||
|
|
@ -597,6 +598,34 @@ def close_expired_votes
|
|||
end
|
||||
end
|
||||
|
||||
def send_reminders
|
||||
Vote.where(state: 'open').each do |vote|
|
||||
settings.reminders.slice(vote.reminders..settings.reminders.length-1).each do |reminder|
|
||||
minutes_to_expiry = ( vote.expire_on - Time.now.utc ) / 60
|
||||
if minutes_to_expiry < reminder[:timeout] / 60
|
||||
User.all.each do |user|
|
||||
if not vote.ratings.collect { |rating| rating.user }.include?(user)
|
||||
puts "#{Time.now.utc} Sending reminder #{reminder[:template]} for '#{vote.title}' to #{user.email}..."
|
||||
mail = Mail.new
|
||||
mail.from = settings.admin_email
|
||||
mail.to = user.email
|
||||
if minutes_to_expiry < 60
|
||||
mail.subject = _("%{m} minutes left to vote on '%{t}'") % { m: minutes_to_expiry.round, t: vote.title }
|
||||
else
|
||||
mail.subject = _("%{h} hours left to vote on '%{t}'") % { h: (minutes_to_expiry / 60).round, t: vote.title }
|
||||
end
|
||||
template = ERB.new(File.read("views/votes_reminder_email.erb"))
|
||||
mail.body = template.result(binding)
|
||||
mail.deliver
|
||||
end
|
||||
end
|
||||
vote.reminders = vote.reminders + 1
|
||||
vote.save
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
helpers do
|
||||
def current_user
|
||||
if session[:user_id]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue