Skip to content

Commit

Permalink
Refactor: Remove Middle Man and use the KanbanPanes directly.
Browse files Browse the repository at this point in the history
  • Loading branch information
edavis10 committed Apr 7, 2010
1 parent 6d55d86 commit b08a3f7
Show file tree
Hide file tree
Showing 8 changed files with 75 additions and 89 deletions.
72 changes: 19 additions & 53 deletions app/models/kanban.rb
@@ -1,4 +1,6 @@
class Kanban
attr_reader :incoming_pane, :backlog_pane, :quick_pane, :canceled_pane, :finished_pane, :active_pane, :testing_pane

attr_accessor :incoming_issues
attr_accessor :quick_issues
attr_accessor :backlog_issues
Expand All @@ -10,6 +12,16 @@ class Kanban
attr_accessor :settings
attr_accessor :users

def initialize
@incoming_pane = KanbanPane::IncomingPane.new
@backlog_pane = KanbanPane::BacklogPane.new
@quick_pane = KanbanPane::QuickPane.new
@canceled_pane = KanbanPane::CanceledPane.new
@finished_pane = KanbanPane::FinishedPane.new
@active_pane = KanbanPane::ActivePane.new
@testing_pane = KanbanPane::TestingPane.new
end

def self.non_kanban_issues_panes
["incoming","backlog", "quick","finished","canceled"]
end
Expand All @@ -30,37 +42,17 @@ def self.find
kanban = Kanban.new
kanban.settings = Setting.plugin_redmine_kanban
kanban.users = kanban.get_users
kanban.incoming_issues = kanban.get_incoming_issues
kanban.quick_issues = kanban.get_quick_issues
kanban.backlog_issues = kanban.get_backlog_issues(kanban.quick_issues.to_a.flatten.collect(&:id))
kanban.incoming_issues = kanban.incoming_pane.get_issues
kanban.quick_issues = kanban.quick_pane.get_issues
kanban.backlog_issues = kanban.backlog_pane.get_issues(:exclude_ids => kanban.quick_issue_ids)
kanban.selected_issues = KanbanIssue.find_selected
kanban.active_issues = kanban.get_active
kanban.testing_issues = kanban.get_testing
kanban.finished_issues = kanban.get_finished_issues
kanban.canceled_issues = kanban.get_canceled_issues
kanban.active_issues = kanban.active_pane.get_issues(:users => kanban.users)
kanban.testing_issues = kanban.testing_pane.get_issues(:users => kanban.users)
kanban.finished_issues = kanban.finished_pane.get_issues
kanban.canceled_issues = kanban.canceled_pane.get_issues
kanban
end

def get_incoming_issues
get_issues_for_pane(:incoming)
end

def get_backlog_issues(exclude_ids=[])
get_issues_for_pane(:backlog, :exclude_ids => exclude_ids)
end

def get_quick_issues
get_issues_for_pane(:quick)
end

def get_finished_issues
get_issues_for_pane(:finished)
end

def get_canceled_issues
get_issues_for_pane(:canceled)
end

def get_users
role = Role.find_by_id(@settings["staff_role"])
@users = role.members.collect(&:user).uniq.compact.sort if role
Expand All @@ -69,14 +61,6 @@ def get_users
@users << UnknownUser.instance
@users
end

def get_active
KanbanPane::ActivePane.new.get_issues(:users => @users)
end

def get_testing
KanbanPane::TestingPane.new.get_issues(:users => @users)
end

def quick_issue_ids
return @quick_issues.collect {|ary| ary[1] }.flatten.collect(&:id)
Expand Down Expand Up @@ -177,22 +161,4 @@ def group_by_priority_position(issues)
a[0].position <=> b[0].position
}
end

def get_issues_for_pane(pane, options = {})
case pane
when :finished
KanbanPane::FinishedPane.new.get_issues(options)
when :canceled
KanbanPane::CanceledPane.new.get_issues(options)
when :quick
KanbanPane::QuickPane.new.get_issues(options)
when :backlog
KanbanPane::BacklogPane.new.get_issues(options)
when :incoming
KanbanPane::IncomingPane.new.get_issues(options)
else
return [[]]
end

end
end
2 changes: 1 addition & 1 deletion test/test_helper.rb
Expand Up @@ -357,7 +357,7 @@ def self.should_allow_state_change_from(starting_state, options = {:to => nil, :

def self.should_not_raise_an_exception_if_the_settings_are_missing(&block)
should "not raise an exception if the settings are missing" do
@kanban = Kanban.new
Setting.plugin_redmine_kanban = {}

assert_nothing_thrown do
block.call
Expand Down
11 changes: 11 additions & 0 deletions test/unit/kanban_pane/backlog_pane_test.rb
@@ -0,0 +1,11 @@
require File.dirname(__FILE__) + '/../../test_helper'

class KanbanPane::BacklogPaneTest < ActiveSupport::TestCase

context "#get_issues" do
should_not_raise_an_exception_if_the_settings_are_missing do
KanbanPane::BacklogPane.new.get_issues
end
end

end
11 changes: 11 additions & 0 deletions test/unit/kanban_pane/canceled_pane_test.rb
@@ -0,0 +1,11 @@
require File.dirname(__FILE__) + '/../../test_helper'

class KanbanPane::CanceledPaneTest < ActiveSupport::TestCase

context "#get_issues" do
should_not_raise_an_exception_if_the_settings_are_missing do
KanbanPane::CanceledPane.new.get_issues
end
end

end
11 changes: 11 additions & 0 deletions test/unit/kanban_pane/finished_pane_test.rb
@@ -0,0 +1,11 @@
require File.dirname(__FILE__) + '/../../test_helper'

class KanbanPane::FinishedPaneTest < ActiveSupport::TestCase

context "#get_issues" do
should_not_raise_an_exception_if_the_settings_are_missing do
KanbanPane::FinishedPane.new.get_issues
end
end

end
11 changes: 11 additions & 0 deletions test/unit/kanban_pane/incoming_pane_test.rb
@@ -0,0 +1,11 @@
require File.dirname(__FILE__) + '/../../test_helper'

class KanbanPane::IncomingPaneTest < ActiveSupport::TestCase

context "#get_issues" do
should_not_raise_an_exception_if_the_settings_are_missing do
KanbanPane::IncomingPane.new.get_issues
end
end

end
11 changes: 11 additions & 0 deletions test/unit/kanban_pane/quick_pane_test.rb
@@ -0,0 +1,11 @@
require File.dirname(__FILE__) + '/../../test_helper'

class KanbanPane::QuickPaneTest < ActiveSupport::TestCase

context "#get_issues" do
should_not_raise_an_exception_if_the_settings_are_missing do
KanbanPane::QuickPane.new.get_issues
end
end

end
35 changes: 0 additions & 35 deletions test/unit/kanban_test.rb
Expand Up @@ -360,39 +360,4 @@ def shared_setup
end
end

context "#get_incoming_issues" do
should_not_raise_an_exception_if_the_settings_are_missing do
@kanban = Kanban.new
@kanban.get_incoming_issues
end
end

context "#get_backlog_issues" do
should_not_raise_an_exception_if_the_settings_are_missing do
@kanban = Kanban.new
@kanban.get_backlog_issues
end
end

context "#get_quick_issues" do
should_not_raise_an_exception_if_the_settings_are_missing do
@kanban = Kanban.new
@kanban.get_quick_issues
end
end

context "#get_finished_issues" do
should_not_raise_an_exception_if_the_settings_are_missing do
@kanban = Kanban.new
@kanban.get_finished_issues
end
end

context "#get_canceled_issues" do
should_not_raise_an_exception_if_the_settings_are_missing do
@kanban = Kanban.new
@kanban.get_canceled_issues
end
end

end

0 comments on commit b08a3f7

Please sign in to comment.