Commit 4a932d4a508321561b2163d32cf41458e1368a96

Authored by Victor Costa
1 parent 47e76e0b

Refactor list of processed tasks

Showing 1 changed file with 18 additions and 8 deletions   Show diff stats
app/controllers/my_profile/tasks_controller.rb
@@ -21,7 +21,7 @@ class TasksController < MyProfileController @@ -21,7 +21,7 @@ class TasksController < MyProfileController
21 end 21 end
22 22
23 def processed 23 def processed
24 - @tasks = Task.to(profile).without_spam.closed.includes(:requestor, :closed_by).order('tasks.created_at DESC') 24 + @tasks = Task.to(profile).without_spam.closed.order('tasks.created_at DESC')
25 @filter = params[:filter] || {} 25 @filter = params[:filter] || {}
26 @tasks = filter_tasks(@filter, @tasks) 26 @tasks = filter_tasks(@filter, @tasks)
27 @tasks = @tasks.paginate(:per_page => Task.per_page, :page => params[:page]) 27 @tasks = @tasks.paginate(:per_page => Task.per_page, :page => params[:page])
@@ -95,20 +95,30 @@ class TasksController < MyProfileController @@ -95,20 +95,30 @@ class TasksController < MyProfileController
95 95
96 protected 96 protected
97 97
98 - def filter_tasks(filter, tasks)  
99 - filter[:created_from] = Date.parse(filter[:created_from]) unless filter[:created_from].blank?  
100 - filter[:created_until] = Date.parse(filter[:created_until]) unless filter[:created_until].blank? 98 + def filter_by_closed_date(filter, tasks)
101 filter[:closed_from] = Date.parse(filter[:closed_from]) unless filter[:closed_from].blank? 99 filter[:closed_from] = Date.parse(filter[:closed_from]) unless filter[:closed_from].blank?
102 filter[:closed_until] = Date.parse(filter[:closed_until]) unless filter[:closed_until].blank? 100 filter[:closed_until] = Date.parse(filter[:closed_until]) unless filter[:closed_until].blank?
103 101
104 - tasks = tasks.of(filter[:type].presence)  
105 - tasks = tasks.where(:status => filter[:status]) unless filter[:status].blank? 102 + tasks = tasks.where('tasks.end_date >= ?', filter[:closed_from].beginning_of_day) unless filter[:closed_from].blank?
  103 + tasks = tasks.where('tasks.end_date <= ?', filter[:closed_until].end_of_day) unless filter[:closed_until].blank?
  104 + tasks
  105 + end
  106 +
  107 + def filter_by_creation_date(filter, tasks)
  108 + filter[:created_from] = Date.parse(filter[:created_from]) unless filter[:created_from].blank?
  109 + filter[:created_until] = Date.parse(filter[:created_until]) unless filter[:created_until].blank?
106 110
107 tasks = tasks.where('tasks.created_at >= ?', filter[:created_from].beginning_of_day) unless filter[:created_from].blank? 111 tasks = tasks.where('tasks.created_at >= ?', filter[:created_from].beginning_of_day) unless filter[:created_from].blank?
108 tasks = tasks.where('tasks.created_at <= ?', filter[:created_until].end_of_day) unless filter[:created_until].blank? 112 tasks = tasks.where('tasks.created_at <= ?', filter[:created_until].end_of_day) unless filter[:created_until].blank?
  113 + tasks
  114 + end
109 115
110 - tasks = tasks.where('tasks.end_date >= ?', filter[:closed_from].beginning_of_day) unless filter[:closed_from].blank?  
111 - tasks = tasks.where('tasks.end_date <= ?', filter[:closed_until].end_of_day) unless filter[:closed_until].blank? 116 + def filter_tasks(filter, tasks)
  117 + tasks = tasks.includes(:requestor, :closed_by)
  118 + tasks = tasks.of(filter[:type].presence)
  119 + tasks = tasks.where(:status => filter[:status]) unless filter[:status].blank?
  120 + tasks = filter_by_creation_date(filter, tasks)
  121 + tasks = filter_by_closed_date(filter, tasks)
112 122
113 tasks = tasks.like('profiles.name', filter[:requestor]) unless filter[:requestor].blank? 123 tasks = tasks.like('profiles.name', filter[:requestor]) unless filter[:requestor].blank?
114 tasks = tasks.like('closed_bies_tasks.name', filter[:closed_by]) unless filter[:closed_by].blank? 124 tasks = tasks.like('closed_bies_tasks.name', filter[:closed_by]) unless filter[:closed_by].blank?