Commit 4d520921f9aa09ae28badadd5661e0d5107dcb11
Committed by
Daniela Feitosa
1 parent
794934ff
Exists in
master
and in
22 other branches
Redefining tasks status named_scopes
Showing
3 changed files
with
42 additions
and
2 deletions
Show diff stats
app/controllers/my_profile/tasks_controller.rb
| ... | ... | @@ -9,7 +9,7 @@ class TasksController < MyProfileController |
| 9 | 9 | end |
| 10 | 10 | |
| 11 | 11 | def processed |
| 12 | - @tasks = Task.to(profile).finished.sort_by(&:created_at) | |
| 12 | + @tasks = Task.to(profile).closed.sort_by(&:created_at) | |
| 13 | 13 | end |
| 14 | 14 | |
| 15 | 15 | VALID_DECISIONS = [ 'finish', 'cancel', 'skip' ] | ... | ... |
app/models/task.rb
| ... | ... | @@ -267,7 +267,10 @@ class Task < ActiveRecord::Base |
| 267 | 267 | end |
| 268 | 268 | |
| 269 | 269 | named_scope :pending, :conditions => { :status => Task::Status::ACTIVE } |
| 270 | - named_scope :finished, :conditions => { :status => [Task::Status::CANCELLED, Task::Status::FINISHED] } | |
| 270 | + named_scope :hidden, :conditions => { :status => Task::Status::HIDDEN } | |
| 271 | + named_scope :finished, :conditions => { :status => Task::Status::FINISHED } | |
| 272 | + named_scope :canceled, :conditions => { :status => Task::Status::CANCELLED } | |
| 273 | + named_scope :closed, :conditions => { :status => [Task::Status::CANCELLED, Task::Status::FINISHED] } | |
| 271 | 274 | named_scope :opened, :conditions => { :status => [Task::Status::ACTIVE, Task::Status::HIDDEN] } |
| 272 | 275 | named_scope :of, lambda { |type| conditions = type ? "type LIKE '#{type}'" : "1=1"; {:conditions => [conditions]} } |
| 273 | 276 | named_scope :order_by, lambda { |attribute, ord| {:order => "#{attribute} #{ord}"} } | ... | ... |
test/unit/task_test.rb
| ... | ... | @@ -335,6 +335,43 @@ class TaskTest < ActiveSupport::TestCase |
| 335 | 335 | assert_equal [t4,t3,t2,t1], Task.order_by('status', 'asc') |
| 336 | 336 | end |
| 337 | 337 | |
| 338 | + should 'retrieve tasks by status' do | |
| 339 | + pending = fast_create(Task, :status => Task::Status::ACTIVE) | |
| 340 | + hidden = fast_create(Task, :status => Task::Status::HIDDEN) | |
| 341 | + finished = fast_create(Task, :status => Task::Status::FINISHED) | |
| 342 | + canceled = fast_create(Task, :status => Task::Status::CANCELLED) | |
| 343 | + | |
| 344 | + assert_includes Task.pending, pending | |
| 345 | + assert_not_includes Task.pending, hidden | |
| 346 | + assert_not_includes Task.pending, finished | |
| 347 | + assert_not_includes Task.pending, canceled | |
| 348 | + | |
| 349 | + assert_not_includes Task.hidden, pending | |
| 350 | + assert_includes Task.hidden, hidden | |
| 351 | + assert_not_includes Task.hidden, finished | |
| 352 | + assert_not_includes Task.hidden, canceled | |
| 353 | + | |
| 354 | + assert_not_includes Task.finished, pending | |
| 355 | + assert_not_includes Task.finished, hidden | |
| 356 | + assert_includes Task.finished, finished | |
| 357 | + assert_not_includes Task.finished, canceled | |
| 358 | + | |
| 359 | + assert_not_includes Task.canceled, pending | |
| 360 | + assert_not_includes Task.canceled, hidden | |
| 361 | + assert_not_includes Task.canceled, finished | |
| 362 | + assert_includes Task.canceled, canceled | |
| 363 | + | |
| 364 | + assert_includes Task.opened, pending | |
| 365 | + assert_includes Task.opened, hidden | |
| 366 | + assert_not_includes Task.opened, finished | |
| 367 | + assert_not_includes Task.opened, canceled | |
| 368 | + | |
| 369 | + assert_not_includes Task.closed, pending | |
| 370 | + assert_not_includes Task.closed, hidden | |
| 371 | + assert_includes Task.closed, finished | |
| 372 | + assert_includes Task.closed, canceled | |
| 373 | + end | |
| 374 | + | |
| 338 | 375 | protected |
| 339 | 376 | |
| 340 | 377 | def sample_user | ... | ... |