diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index bf84e44d..ed2128de 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -186,6 +186,13 @@ class ProjectsController < ApplicationController init_not_done_counts(['project']) end + def actionize + @state = params['state'] + @projects = current_user.projects.actionize(:state => @state) if @state + @contexts = current_user.contexts + init_not_done_counts(['project']) + end + protected def render_projects_html diff --git a/app/models/user.rb b/app/models/user.rb index bf84bbd3..4b1f41e7 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -51,6 +51,12 @@ class User < ActiveRecord::Base self.update_positions(projects.map{ |p| p.id }) return projects end + def actionize(scope_conditions = {}) + projects = find(:all, :conditions => scope_conditions) + projects.sort!{ |x,y| y.todos.count(:state == 'active') <=> x.todos.count(:state == 'active') } + self.update_positions(projects.map{ |p| p.id }) + return projects + end end has_many :active_projects, :class_name => 'Project', diff --git a/app/views/projects/_project_state_group.rhtml b/app/views/projects/_project_state_group.rhtml index 6fe6ef21..c4a0f0b1 100644 --- a/app/views/projects/_project_state_group.rhtml +++ b/app/views/projects/_project_state_group.rhtml @@ -11,9 +11,21 @@ end end %> + +