Commit 4a932d4a508321561b2163d32cf41458e1368a96
1 parent
47e76e0b
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
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? |