Applying patch suggested by Reinier Balt and fixing the test

This commit is contained in:
waltercruz 2008-10-28 17:44:49 -02:00
parent 0b57b23b2d
commit 6d212cc21a
3 changed files with 15 additions and 14 deletions

View file

@ -188,16 +188,7 @@ class ProjectsController < ApplicationController
def actionize
@state = params['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
@projects = current_user.projects.actionize(current_user.id, :state => @state) if @state
@contexts = current_user.contexts
init_not_done_counts(['project'])
end

View file

@ -51,8 +51,18 @@ class User < ActiveRecord::Base
self.update_positions(projects.map{ |p| p.id })
return projects
end
def actionize(proj,scope_conditions = {})
self.update_positions(proj.map{ |p| p.id })
def actionize(user_id, scope_conditions = {})
@state = scope_conditions[:state]
query_state = ''
query_state = 'AND project.state = "' + @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 = ? AND NOT todo.state='completed' " +
query_state +
" GROUP BY project.id ORDER by p_count DESC",user_id])
self.update_positions(projects.map{ |p| p.id })
projects = find(:all, :conditions => scope_conditions)
return projects
end

View file

@ -224,8 +224,8 @@ class ProjectsControllerTest < TodoContainerControllerTestBase
u = users(:admin_user)
post :actionize, :state => "active", :format => 'js'
assert_equal 1, projects(:gardenclean).position
assert_equal 2, projects(:moremoney).position
assert_equal 3, projects(:timemachine).position
assert_equal 2, projects(:timemachine).position
assert_equal 3, projects(:moremoney).position
end
def test_alphabetize_sorts_active_projects_alphabetically