Signed-off-by: Benjamin <benjamin.lan-sun-luk@supinfo.com>
---
 app/models/user_mailer.rb                          |   10 +++++
 .../user_mailer/no_activity_recorded.html.erb      |    6 +++
 config/environment.rb                              |    5 ++-
 config/initializers/schedules.rb                   |   37 ++++++++++++++++++++
 4 files changed, 57 insertions(+), 1 deletions(-)
 create mode 100644 app/views/user_mailer/no_activity_recorded.html.erb
 create mode 100644 config/initializers/schedules.rb

diff --git a/app/models/user_mailer.rb b/app/models/user_mailer.rb
index 73308af..8d60671 100644
--- a/app/models/user_mailer.rb
+++ b/app/models/user_mailer.rb
@@ -7,4 +7,14 @@ class UserMailer < ActionMailer::Base
     subject     "Your password"
     body        :user => user, :new_password => new_password
   end
+  
+  # Send an e-mail to an user an notify him that no-activity has been detected
+  # for some backlog items.
+  #
+  def no_activity_recorded(user, backlog_items)
+    recipients user.email
+    from        "no_reply@projxp.org" # TODO Email must be edit
+    subject     "No activity has been detected"
+    body        :user => user, :backlog_items => backlog_items
+  end
 end
diff --git a/app/views/user_mailer/no_activity_recorded.html.erb b/app/views/user_mailer/no_activity_recorded.html.erb
new file mode 100644
index 0000000..e4acd3c
--- /dev/null
+++ b/app/views/user_mailer/no_activity_recorded.html.erb
@@ -0,0 +1,6 @@
+Dear <%= @user.display_name %>,
+
+No activities was detected on this backlogs:
+<% @backlog_items.each do |backlog_item|%>
+<%= backlog_item.user_story.title %>
+<% end %>
diff --git a/config/environment.rb b/config/environment.rb
index af8a593..1687102 100644
--- a/config/environment.rb
+++ b/config/environment.rb
@@ -72,6 +72,9 @@ Rails::Initializer.run do |config|
 
   # Make Active Record use UTC-base instead of local time
   # config.active_record.default_timezone = :utc
+  
+  # Gems
+  config.gem 'openwferu-scheduler', :lib => 'openwfe/util/scheduler'
 end
 
 ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
@@ -82,7 +85,7 @@ ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
 
 # Mail configuration.
 # Please complete the config file are locate at /config/mailer.yml
-#
+#
 require "smtp_tls"
 
 mailer_config = File.open("#{RAILS_ROOT}/config/mailer.yml")
diff --git a/config/initializers/schedules.rb b/config/initializers/schedules.rb
new file mode 100644
index 0000000..287756c
--- /dev/null
+++ b/config/initializers/schedules.rb
@@ -0,0 +1,37 @@
+require 'fastthread'
+require 'openwfe/util/scheduler'
+include OpenWFE
+
+# Initialize a threads array
+threads = []
+
+threads << Thread.new do
+  scheduler = Scheduler.new
+  scheduler.start
+  
+  # Do this everyday at 10:00 am
+  scheduler.schedule('0 8 * * *') do
+    
+    user_no_activity_on_backlog_items = {}
+    BacklogItem.find_all_by_state(BacklogItem::STATE_ASSIGNED).each do |backlog_item|
+      backlog_item.tasks.each do |task|
+        if task.created_at.to_date < Date.yesterday
+          backlog_item_owner = backlog_item.owner
+          user_no_activity_on_backlog_items[backlog_item_owner] ||= []
+          user_no_activity_on_backlog_items[backlog_item_owner] << backlog_item
+        end
+      end
+    end
+    
+    # Send the e-mail
+    user_no_activity_on_backlog_items.each do |owner, backlog_items|
+      UserMailer.deliver_no_activity_recorded(owner, backlog_items)
+    end
+    
+  end
+  
+  scheduler.join
+end
+
+# Run all threads
+threads.each { |thread| thread.run }
\ No newline at end of file
--
1.5.2.4