From f5e5822945901bef9302315927d1a31ef8dd0ef4 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sun, 2 Nov 2014 20:44:11 +0000 Subject: [PATCH] Adds a 'sorted' scope to Project. git-svn-id: http://svn.redmine.org/redmine/trunk@13541 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/admin_controller.rb | 2 +- app/controllers/projects_controller.rb | 11 ++++++----- app/models/project.rb | 1 + 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index b09b1c4c9..0a89da077 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -32,7 +32,7 @@ class AdminController < ApplicationController def projects @status = params[:status] || 1 - scope = Project.status(@status).order('lft') + scope = Project.status(@status).sorted scope = scope.like(params[:name]) if params[:name].present? @projects = scope.to_a diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 9ab60a403..beb279476 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -40,21 +40,22 @@ class ProjectsController < ApplicationController # Lists visible projects def index + scope = Project.visible.sorted + respond_to do |format| format.html { - scope = Project unless params[:closed] scope = scope.active end - @projects = scope.visible.order('lft').to_a + @projects = scope.to_a } format.api { @offset, @limit = api_offset_and_limit - @project_count = Project.visible.count - @projects = Project.visible.offset(@offset).limit(@limit).order('lft').to_a + @project_count = scope.count + @projects = scope.offset(@offset).limit(@limit).to_a } format.atom { - projects = Project.visible.order('created_on DESC').limit(Setting.feeds_limit.to_i).to_a + projects = scope.reorder(:created_on => :desc).limit(Setting.feeds_limit.to_i).to_a render_feed(projects, :title => "#{Setting.app_title}: #{l(:label_project_latest)}") } end diff --git a/app/models/project.rb b/app/models/project.rb index f29f50f21..27cb4c7a6 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -111,6 +111,7 @@ class Project < ActiveRecord::Base where("LOWER(identifier) LIKE :p OR LOWER(name) LIKE :p", :p => pattern) end } + scope :sorted, lambda {order(:lft)} def initialize(attributes=nil, *args) super -- 2.39.5