Defect #2882 » 2882-use-uniq-for-habtm.patch
| app/models/project.rb | ||
|---|---|---|
| 23 | 23 |
has_many :members, :include => :user, :conditions => "#{User.table_name}.status=#{User::STATUS_ACTIVE}"
|
| 24 | 24 |
has_many :users, :through => :members |
| 25 | 25 |
has_many :enabled_modules, :dependent => :delete_all |
| 26 |
has_and_belongs_to_many :trackers, :order => "#{Tracker.table_name}.position"
|
|
| 26 |
has_and_belongs_to_many :trackers, :order => "#{Tracker.table_name}.position", :uniq => true
|
|
| 27 | 27 |
has_many :issues, :dependent => :destroy, :order => "#{Issue.table_name}.created_on DESC", :include => [:status, :tracker]
|
| 28 | 28 |
has_many :issue_changes, :through => :issues, :source => :journals |
| 29 | 29 |
has_many :versions, :dependent => :destroy, :order => "#{Version.table_name}.effective_date DESC, #{Version.table_name}.name DESC"
|
| app/models/tracker.rb | ||
|---|---|---|
| 30 | 30 |
end |
| 31 | 31 |
end |
| 32 | 32 |
|
| 33 |
has_and_belongs_to_many :projects |
|
| 33 |
has_and_belongs_to_many :projects, :uniq => true
|
|
| 34 | 34 |
has_and_belongs_to_many :custom_fields, :class_name => 'IssueCustomField', :join_table => "#{table_name_prefix}custom_fields_trackers#{table_name_suffix}", :association_foreign_key => 'custom_field_id'
|
| 35 | 35 |
acts_as_list |
| 36 | 36 | |
| db/migrate/20090518163007_remove_projects_trackers_unique_index.rb | ||
|---|---|---|
| 1 |
class RemoveProjectsTrackersUniqueIndex < ActiveRecord::Migration |
|
| 2 |
def self.up |
|
| 3 |
remove_index :projects_trackers, :name => :projects_trackers_unique |
|
| 4 |
end |
|
| 5 | ||
| 6 |
def self.down |
|
| 7 |
add_index :projects_trackers, [:project_id, :tracker_id], :name => :projects_trackers_unique, :unique => true |
|
| 8 |
end |
|
| 9 |
end |
|
| test/functional/projects_controller_test.rb | ||
|---|---|---|
| 118 | 118 |
assert_equal 'weblog', project.description |
| 119 | 119 |
assert_equal true, project.is_public? |
| 120 | 120 |
end |
| 121 | ||
| 122 |
def test_post_add_with_trackers |
|
| 123 |
@request.session[:user_id] = 1 |
|
| 124 |
trackers = [Tracker.find_by_name('Bug')]
|
|
| 125 |
post(:add, |
|
| 126 |
:project => {
|
|
| 127 |
:name => "blog", |
|
| 128 |
:description => "weblog", |
|
| 129 |
:identifier => "blog", |
|
| 130 |
:is_public => 1, |
|
| 131 |
:custom_field_values => { '3' => 'Beta' },
|
|
| 132 |
:tracker_ids => trackers.collect(&:id) |
|
| 133 |
}, |
|
| 134 |
:enabled_modules => ["issue_tracking"]) |
|
| 135 |
assert_redirected_to '/projects/blog/settings' |
|
| 136 |
|
|
| 137 |
project = Project.find_by_name('blog')
|
|
| 138 |
assert_equal trackers, project.trackers |
|
| 139 |
end |
|
| 121 | 140 |
|
| 122 | 141 |
def test_post_add_by_non_admin |
| 123 | 142 |
@request.session[:user_id] = 2 |
- « Previous
- 1
- 2
- Next »