From 0b57b23b2d1aec73003773152f38725d23fdb743 Mon Sep 17 00:00:00 2001 From: waltercruz Date: Tue, 28 Oct 2008 16:40:28 -0200 Subject: [PATCH] html fixes and sort by number of todos logic --- app/controllers/projects_controller.rb | 11 ++++++++++- app/models/user.rb | 5 ++--- app/views/projects/_project_state_group.rhtml | 6 +++--- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index ed2128de..cab0bd10 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -188,7 +188,16 @@ class ProjectsController < ApplicationController def actionize @state = params['state'] - @projects = current_user.projects.actionize(:state => @state) if @state + query_state = '' + query_state = 'AND project.state = "' + params['state'] +'" 'if @state + projects = Project.find_by_sql([ + "SELECT project.id, count(todo.id) as p_count " + + "FROM projects as project " + + "LEFT OUTER JOIN todos as todo ON todo.project_id = project.id "+ + "WHERE project.user_id = ? " + + query_state + + " GROUP BY project.id ORDER by p_count DESC",current_user.id]) + @projects = current_user.projects.actionize(projects,:state => @state) if @state @contexts = current_user.contexts init_not_done_counts(['project']) end diff --git a/app/models/user.rb b/app/models/user.rb index 4b1f41e7..59e3cdbc 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -51,10 +51,9 @@ class User < ActiveRecord::Base self.update_positions(projects.map{ |p| p.id }) return projects end - def actionize(scope_conditions = {}) + def actionize(proj,scope_conditions = {}) + self.update_positions(proj.map{ |p| p.id }) 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 diff --git a/app/views/projects/_project_state_group.rhtml b/app/views/projects/_project_state_group.rhtml index e5393399..32693f0f 100644 --- a/app/views/projects/_project_state_group.rhtml +++ b/app/views/projects/_project_state_group.rhtml @@ -1,8 +1,8 @@
>

<%= project_state_group.length %><%= state.titlecase %> Projects

-