From: Jean-Philippe Lang Date: Sat, 21 Nov 2009 12:00:49 +0000 (+0000) Subject: Changes misleading scopes on Enumeration. X-Git-Tag: 0.9.0~179 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=d8c5549168f3fe7e9f2b1633e70928178665773a;p=redmine.git Changes misleading scopes on Enumeration. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3083 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/helpers/timelog_helper.rb b/app/helpers/timelog_helper.rb index e1136fc4f..cd2bcf685 100644 --- a/app/helpers/timelog_helper.rb +++ b/app/helpers/timelog_helper.rb @@ -38,7 +38,7 @@ module TimelogHelper def activity_collection_for_select_options(time_entry=nil, project=nil) project ||= @project if project.nil? - activities = TimeEntryActivity.active + activities = TimeEntryActivity.shared.active else activities = project.activities end diff --git a/app/models/enumeration.rb b/app/models/enumeration.rb index f219a4c7c..4836229b1 100644 --- a/app/models/enumeration.rb +++ b/app/models/enumeration.rb @@ -16,6 +16,8 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. class Enumeration < ActiveRecord::Base + default_scope :order => "#{Enumeration.table_name}.position ASC" + belongs_to :project acts_as_list :scope => 'type = \'#{type}\'' @@ -58,14 +60,8 @@ class Enumeration < ActiveRecord::Base end # End backwards compatiblity named_scopes - named_scope :all, :order => 'position', :conditions => { :project_id => nil } - - named_scope :active, lambda { - { - :conditions => {:active => true, :project_id => nil}, - :order => 'position' - } - } + named_scope :shared, :conditions => { :project_id => nil } + named_scope :active, :conditions => { :active => true } def self.default # Creates a fake default scope so Enumeration.default will check diff --git a/app/models/project.rb b/app/models/project.rb index 410cb2154..8829f04ad 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -21,11 +21,7 @@ class Project < ActiveRecord::Base STATUS_ARCHIVED = 9 # Specific overidden Activities - has_many :time_entry_activities do - def active - find(:all, :conditions => {:active => true}) - end - end + has_many :time_entry_activities has_many :members, :include => [:user, :roles], :conditions => "#{User.table_name}.type='User' AND #{User.table_name}.status=#{User::STATUS_ACTIVE}" has_many :member_principals, :class_name => 'Member', :include => :principal, @@ -572,7 +568,7 @@ class Project < ActiveRecord::Base overridden_activity_ids = self.time_entry_activities.active.collect(&:parent_id) if overridden_activity_ids.empty? - return TimeEntryActivity.active + return TimeEntryActivity.shared.active else return system_activities_and_project_overrides end @@ -584,7 +580,7 @@ class Project < ActiveRecord::Base overridden_activity_ids = self.time_entry_activities.collect(&:parent_id) if overridden_activity_ids.empty? - return TimeEntryActivity.all + return TimeEntryActivity.shared else return system_activities_and_project_overrides(true) end @@ -593,12 +589,12 @@ class Project < ActiveRecord::Base # Returns the systemwide active activities merged with the project specific overrides def system_activities_and_project_overrides(include_inactive=false) if include_inactive - return TimeEntryActivity.all. + return TimeEntryActivity.shared. find(:all, :conditions => ["id NOT IN (?)", self.time_entry_activities.collect(&:parent_id)]) + self.time_entry_activities else - return TimeEntryActivity.active. + return TimeEntryActivity.shared.active. find(:all, :conditions => ["id NOT IN (?)", self.time_entry_activities.active.collect(&:parent_id)]) + self.time_entry_activities.active diff --git a/app/views/enumerations/list.rhtml b/app/views/enumerations/list.rhtml index 13e1b6bb8..0c45d9a32 100644 --- a/app/views/enumerations/list.rhtml +++ b/app/views/enumerations/list.rhtml @@ -3,7 +3,7 @@ <% Enumeration.get_subclasses.each do |klass| %>

<%= l(klass::OptionName) %>

-<% enumerations = klass.all %> +<% enumerations = klass.shared %> <% if enumerations.any? %>