Skip to content

Commit

Permalink
Refactor similar conditions to a utility method.
Browse files Browse the repository at this point in the history
  • Loading branch information
edavis10 committed Mar 24, 2010
1 parent cd0cd9e commit 0813b48
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions app/models/stuff_to_do.rb
Expand Up @@ -54,19 +54,19 @@ def self.available(user, filter = { })
user = filter[:user]
issues = Issue.find(:all,
:include => :status,
:conditions => ["assigned_to_id = ? AND #{IssueStatus.table_name}.is_closed = ?",user.id, false ],
:conditions => conditions_for_available(:user, user.id),
:order => 'created_on DESC')
elsif filter[:status]
status = filter[:status]
issues = Issue.find(:all,
:include => :status,
:conditions => ["#{IssueStatus.table_name}.id = (?) AND #{IssueStatus.table_name}.is_closed = ?", status.id, false ],
:conditions => conditions_for_available(:status, status.id),
:order => 'created_on DESC')
elsif filter[:priority]
priority = filter[:priority]
issues = Issue.find(:all,
:include => [:status, :priority],
:conditions => ["#{Enumeration.table_name}.id = (?) AND #{IssueStatus.table_name}.is_closed = ?", priority.id, false ],
:conditions => conditions_for_available(:priority, priority.id),
:order => 'created_on DESC')
elsif filter[:projects]
# TODO: remove 'issues' naming
Expand Down Expand Up @@ -204,4 +204,15 @@ def self.active_and_visible_projects
def self.use_setting
USE.index(Setting.plugin_stuff_to_do_plugin['use_as_stuff_to_do'])
end

def self.conditions_for_available(filter_by, record_id)
case filter_by
when :user
["assigned_to_id = ? AND #{IssueStatus.table_name}.is_closed = ?", record_id, false ]
when :status
["#{IssueStatus.table_name}.id = (?) AND #{IssueStatus.table_name}.is_closed = ?", record_id, false ]
when :priority
["#{Enumeration.table_name}.id = (?) AND #{IssueStatus.table_name}.is_closed = ?", record_id, false ]
end
end
end

0 comments on commit 0813b48

Please sign in to comment.