]> source.dussan.org Git - redmine.git/commitdiff
Replaces repository_enable named scope on Project with a more generic one: has_module.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 13 Sep 2008 10:37:23 +0000 (10:37 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 13 Sep 2008 10:37:23 +0000 (10:37 +0000)
The new named scope uses raw sql condition to avoid enabled_modules association loading.

git-svn-id: http://redmine.rubyforge.org/svn/branches/nbc@1805 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/sys_controller.rb
app/models/project.rb

index b6ad83d04bf7f46a75c73d4aea9ec4454e380f89..395683886d4c919de375d4eb5109435126af5d59 100644 (file)
@@ -24,7 +24,7 @@ class SysController < ActionController::Base
   
   # Returns the projects list, with their repositories
   def projects_with_repository_enabled
-    Project.repository_enabled(:all, :include => :repository, :order => 'identifier')
+    Project.has_module(:repository).find(:all, :include => :repository, :order => 'identifier')
   end
 
   # Registers a repository for the given project identifier
index a51c08681662ec4821f5d6148acef84e8fb194dd..e40af9967f99673c49b310a835bbff166671dba5 100644 (file)
@@ -63,7 +63,7 @@ class Project < ActiveRecord::Base
   
   before_destroy :delete_all_members
 
-  named_scope :repository_enabled, { :include => :enabled_modules, :conditions => ["#{EnabledModule.table_name}.name=?", 'repository'] }
+  named_scope :has_module, lambda { |mod| { :conditions => ["#{Project.table_name}.id IN (SELECT em.project_id FROM #{EnabledModule.table_name} em WHERE em.name=?)", mod.to_s] } }
   
   def identifier=(identifier)
     super unless identifier_frozen?