2009-01-06 11:49:19 +01:00
|
|
|
# put in here all foodsoft tasks
|
|
|
|
# => :environment loads the environment an gives easy access to the application
|
|
|
|
namespace :foodsoft do
|
2009-02-10 15:07:47 +01:00
|
|
|
desc "Notify users of upcoming tasks"
|
|
|
|
task :notify_upcoming_tasks => :environment do
|
2012-08-27 08:38:43 +02:00
|
|
|
tasks = Task.where(done: false, due_date: 1.day.from_now.to_date)
|
2009-02-10 15:07:47 +01:00
|
|
|
for task in tasks
|
2013-09-30 10:57:54 +02:00
|
|
|
rake_say "Send notifications for #{task.name} to .."
|
2009-02-10 15:07:47 +01:00
|
|
|
for user in task.users
|
2012-08-27 08:38:43 +02:00
|
|
|
begin
|
2015-01-13 18:02:30 +01:00
|
|
|
Mailer.upcoming_tasks(user, task).deliver_now if user.settings.notify['upcoming_tasks'] == 1
|
2012-08-27 08:38:43 +02:00
|
|
|
rescue
|
2013-09-30 10:57:54 +02:00
|
|
|
rake_say "deliver aborted for #{user.email}.."
|
2009-02-10 15:07:47 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2009-03-11 16:58:31 +01:00
|
|
|
|
2009-08-11 18:10:14 +02:00
|
|
|
desc "Notify workgroup of upcoming weekly task"
|
|
|
|
task :notify_users_of_weekly_task => :environment do
|
2017-08-20 06:07:05 +02:00
|
|
|
tasks = Task.where(done: false, due_date: 7.day.from_now.to_date)
|
|
|
|
for task in tasks
|
|
|
|
unless task.enough_users_assigned?
|
|
|
|
workgroup = task.workgroup
|
|
|
|
if workgroup
|
|
|
|
rake_say "Notify workgroup: #{workgroup.name} for task #{task.name}"
|
2009-08-14 13:50:05 +02:00
|
|
|
for user in workgroup.users
|
2017-08-20 06:07:05 +02:00
|
|
|
if user.receive_email?
|
2010-03-20 23:07:55 +01:00
|
|
|
begin
|
2015-01-13 18:02:30 +01:00
|
|
|
Mailer.not_enough_users_assigned(task, user).deliver_now
|
2010-03-20 23:07:55 +01:00
|
|
|
rescue
|
2013-09-30 10:57:54 +02:00
|
|
|
rake_say "deliver aborted for #{user.email}"
|
2010-03-20 23:07:55 +01:00
|
|
|
end
|
2009-08-14 13:50:05 +02:00
|
|
|
end
|
2009-08-11 18:10:14 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2012-11-28 10:13:54 +01:00
|
|
|
|
|
|
|
desc "Create upcoming periodic tasks"
|
|
|
|
task :create_upcoming_periodic_tasks => :environment do
|
|
|
|
for tg in PeriodicTaskGroup.all
|
2017-02-14 11:52:05 +01:00
|
|
|
created_until = tg.create_tasks_for_upfront_days
|
2016-02-24 20:47:09 +01:00
|
|
|
rake_say "created until #{created_until}"
|
2012-11-28 10:13:54 +01:00
|
|
|
end
|
|
|
|
end
|
2010-03-20 23:07:55 +01:00
|
|
|
end
|
2013-09-25 11:57:22 +02:00
|
|
|
|
|
|
|
# Helper
|
2013-09-30 10:57:54 +02:00
|
|
|
def rake_say(message)
|
2013-09-25 11:57:22 +02:00
|
|
|
puts message unless Rake.application.options.silent
|
|
|
|
end
|