Commit 8f28228dfcaa8f166f5b7e0e0fe71bfd205acd98

Authored by Rodrigo Souto
1 parent 8e5fdb7f

[work-assignment] Removing author from database

app/controllers/my_profile/cms_controller.rb
... ... @@ -123,7 +123,6 @@ class CmsController < MyProfileController
123 123 end
124 124  
125 125 @article.profile = profile
126   - @article.author = user
127 126 @article.last_changed_by = user
128 127  
129 128 translations if @article.translatable?
... ... @@ -161,7 +160,7 @@ class CmsController < MyProfileController
161 160 end
162 161 if request.post? && params[:uploaded_files]
163 162 params[:uploaded_files].each do |file|
164   - @uploaded_files << UploadedFile.create(:uploaded_data => file, :profile => profile, :parent => @parent, :author => user) unless file == ''
  163 + @uploaded_files << UploadedFile.create(:uploaded_data => file, :profile => profile, :parent => @parent, :last_changed_by => user) unless file == ''
165 164 end
166 165 @errors = @uploaded_files.select { |f| f.errors.any? }
167 166 if @errors.any?
... ...
app/models/approve_article.rb
... ... @@ -48,7 +48,7 @@ class ApproveArticle &lt; Task
48 48 end
49 49  
50 50 def perform
51   - article.copy!(:name => name, :abstract => abstract, :body => body, :profile => target, :reference_article => article, :parent => article_parent, :highlighted => highlighted, :source => article.source, :author => article.author)
  51 + article.copy!(:name => name, :abstract => abstract, :body => body, :profile => target, :reference_article => article, :parent => article_parent, :highlighted => highlighted, :source => article.source, :last_changed_by_id => article.author)
52 52 end
53 53  
54 54 def title
... ...
app/models/article.rb
... ... @@ -502,7 +502,6 @@ class Article &lt; ActiveRecord::Base
502 502 :slug,
503 503 :updated_at,
504 504 :created_at,
505   - :last_changed_by_id,
506 505 :version,
507 506 :lock_version,
508 507 :type,
... ... @@ -545,7 +544,12 @@ class Article &lt; ActiveRecord::Base
545 544 end
546 545  
547 546 def author
548   - versions.empty? ? last_changed_by : versions.first.last_changed_by
  547 + if versions.empty?
  548 + last_changed_by
  549 + else
  550 + author_id = versions.first.last_changed_by_id
  551 + Person.exists?(author_id) ? Person.find(author_id) : nil
  552 + end
549 553 end
550 554  
551 555 def author_name
... ...
app/models/person.rb
... ... @@ -54,8 +54,6 @@ class Person &lt; Profile
54 54  
55 55 has_many :scraps_sent, :class_name => 'Scrap', :foreign_key => :sender_id, :dependent => :destroy
56 56  
57   - has_many :creations, :class_name => 'Article', :foreign_key => :author_id
58   -
59 57 named_scope :more_popular,
60 58 :select => "#{Profile.qualified_column_names}, count(friend_id) as total",
61 59 :group => Profile.qualified_column_names,
... ...
plugins/work_assignment/lib/work_assignment_plugin/work_assignment.rb
... ... @@ -3,9 +3,9 @@ class WorkAssignmentPlugin::WorkAssignment &lt; Folder
3 3 after_save do |work_assignment|
4 4 work_assignment.children.select {|child| child.kind_of?(UploadedFile)}.each do |submission|
5 5 author_folder = work_assignment.find_or_create_author_folder(submission.author)
6   - submission.name = versioned_name(submission, author_folder) if !(submission.name =~ /\(V[0-9]*\)/)
  6 + submission.name = versioned_name(submission, author_folder)
7 7 submission.parent = author_folder
8   - submission.save!
  8 + submission.save(false)
9 9 end
10 10 end
11 11  
... ... @@ -24,7 +24,9 @@ class WorkAssignmentPlugin::WorkAssignment &lt; Folder
24 24 end
25 25  
26 26 def self.versioned_name(submission, folder)
27   - "(V#{folder.children.count + 1}) #{submission.name}"
  27 + return submission.name if submission.name =~ /\(V[0-9]*\)/
  28 + count = folder.children.include?(submission) ? folder.children.count : folder.children.count + 1
  29 + "(V#{count}) #{submission.name}"
28 30 end
29 31  
30 32 def accept_comments?
... ...
plugins/work_assignment/test/unit/work_assingment_plugin/work_assignment_test.rb
... ... @@ -13,8 +13,8 @@ class WorkAssignmentTest &lt; ActiveSupport::TestCase
13 13 end
14 14  
15 15 should 'return versioned name' do
16   - folder = fast_create(Folder)
17 16 profile = fast_create(Profile)
  17 + folder = fast_create(Folder, :profile_id => profile)
18 18 a1 = Article.create!(:name => "Article 1", :profile => profile)
19 19 a2 = Article.create!(:name => "Article 2", :profile => profile)
20 20 a3 = Article.create!(:name => "Article 3", :profile => profile)
... ... @@ -35,7 +35,7 @@ class WorkAssignmentTest &lt; ActiveSupport::TestCase
35 35 organization = fast_create(Organization)
36 36 author = fast_create(Person)
37 37 work_assignment = WorkAssignmentPlugin::WorkAssignment.create!(:name => 'Sample Work Assignment', :profile => organization)
38   - submission = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => organization, :parent => work_assignment, :author => author)
  38 + submission = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => organization, :parent => work_assignment, :last_changed_by => author)
39 39  
40 40 author_folder = work_assignment.find_or_create_author_folder(author)
41 41 assert author_folder, submission.parent
... ...
plugins/work_assignment/test/unit/work_assingment_plugin_test.rb
... ... @@ -3,7 +3,7 @@ require &#39;test_helper&#39;
3 3 class WorkAssignmentPluginTest < ActiveSupport::TestCase
4 4 should 'verify if a content is a work_assignment submission' do
5 5 organization = fast_create(Organization)
6   - content = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => organization)
  6 + content = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => organization, :last_changed_by => fast_create(Person))
7 7 assert !WorkAssignmentPlugin.is_submission?(content)
8 8  
9 9 work_assignment = WorkAssignmentPlugin::WorkAssignment.create!(:name => 'Work Assignment', :profile => organization)
... ... @@ -32,8 +32,7 @@ class WorkAssignmentPluginTest &lt; ActiveSupport::TestCase
32 32 submission = create_submission
33 33 assert !WorkAssignmentPlugin.can_download_submission?(person, submission)
34 34  
35   - submission.author = person
36   - submission.save!
  35 + submission = create_submission(person)
37 36 assert WorkAssignmentPlugin.can_download_submission?(person, submission)
38 37 end
39 38  
... ... @@ -48,10 +47,10 @@ class WorkAssignmentPluginTest &lt; ActiveSupport::TestCase
48 47  
49 48 private
50 49  
51   - def create_submission
  50 + def create_submission(author=nil)
52 51 organization = fast_create(Organization)
53 52 work_assignment = WorkAssignmentPlugin::WorkAssignment.create!(:name => 'Work Assignment', :profile => organization)
54 53 author_folder = work_assignment.find_or_create_author_folder(fast_create(Person))
55   - UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => organization, :parent => author_folder)
  54 + UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => organization, :parent => author_folder, :last_changed_by => author)
56 55 end
57 56 end
... ...
test/functional/cms_controller_test.rb
... ... @@ -1125,7 +1125,7 @@ class CmsControllerTest &lt; ActionController::TestCase
1125 1125 should 'not allow user edit article if he is owner but has no publish permission' do
1126 1126 c = Community.create!(:name => 'test_comm', :identifier => 'test_comm')
1127 1127 u = create_user_with_permission('test_user', 'bogus_permission', c)
1128   - a = c.articles.create!(:name => 'test_article', :author => u)
  1128 + a = c.articles.create!(:name => 'test_article', :last_changed_by => u)
1129 1129 login_as :test_user
1130 1130  
1131 1131 get :edit, :profile => c.identifier, :id => a.id
... ... @@ -1136,7 +1136,7 @@ class CmsControllerTest &lt; ActionController::TestCase
1136 1136 should 'allow user edit article if he is owner and has publish permission' do
1137 1137 c = Community.create!(:name => 'test_comm', :identifier => 'test_comm')
1138 1138 u = create_user_with_permission('test_user', 'publish_content', c)
1139   - a = c.articles.create!(:name => 'test_article', :author => u)
  1139 + a = c.articles.create!(:name => 'test_article', :last_changed_by => u)
1140 1140 login_as :test_user
1141 1141 @controller.stubs(:user).returns(u)
1142 1142  
... ...
test/functional/content_viewer_controller_test.rb
... ... @@ -850,7 +850,7 @@ end
850 850 c = Community.create!(:name => 'test_com')
851 851 u = create_user_with_permission('test_user', 'publish_content', c)
852 852 login_as u.identifier
853   - a = c.articles.create!(:name => 'test-article', :author => u, :published => false)
  853 + a = c.articles.create!(:name => 'test-article', :last_changed_by => u, :published => false)
854 854  
855 855 get :view_page, :profile => c.identifier, :page => a.explode_path
856 856  
... ...
test/unit/approve_article_test.rb
... ... @@ -210,9 +210,7 @@ class ApproveArticleTest &lt; ActiveSupport::TestCase
210 210 end
211 211  
212 212 should 'use author from original article on published' do
213   - article.author = profile
214   - article.save!
215   -
  213 + article.class.any_instance.stubs(:author).returns(profile)
216 214 a = ApproveArticle.create!(:name => 'test name', :article => article, :target => community, :requestor => profile)
217 215 a.finish
218 216  
... ... @@ -220,8 +218,7 @@ class ApproveArticleTest &lt; ActiveSupport::TestCase
220 218 end
221 219  
222 220 should 'use original article author even if article is destroyed' do
223   - article.author = profile
224   - article.save!
  221 + article.class.any_instance.stubs(:author).returns(profile)
225 222 a = ApproveArticle.create!(:article => article, :target => community, :requestor => profile)
226 223 a.finish
227 224  
... ...
test/unit/forum_helper_test.rb
... ... @@ -29,16 +29,16 @@ class ForumHelperTest &lt; ActiveSupport::TestCase
29 29 end
30 30  
31 31 should 'list posts with different classes' do
32   - forum.children << older_post = TextileArticle.create!(:name => 'First post', :profile => profile, :parent => forum, :published => false, :author => profile)
  32 + forum.children << older_post = TextileArticle.create!(:name => 'First post', :profile => profile, :parent => forum, :published => false, :last_changed_by => profile)
33 33 one_month_later = Time.now + 1.month
34 34 Time.stubs(:now).returns(one_month_later)
35   - forum.children << newer_post = TextileArticle.create!(:name => 'Second post', :profile => profile, :parent => forum, :published => true, :author => profile)
  35 + forum.children << newer_post = TextileArticle.create!(:name => 'Second post', :profile => profile, :parent => forum, :published => true, :last_changed_by => profile)
36 36 assert_match /forum-post position-1 first odd-post.*forum-post position-2 last not-published even-post/, list_forum_posts(forum.posts)
37 37 end
38 38  
39 39 should 'return post update if it has no comments' do
40 40 author = create_user('forum test author').person
41   - some_post = TextileArticle.create!(:name => 'First post', :profile => profile, :parent => forum, :published => true, :author => author)
  41 + some_post = TextileArticle.create!(:name => 'First post', :profile => profile, :parent => forum, :published => true, :last_changed_by => author)
42 42 assert some_post.comments.empty?
43 43 out = last_topic_update(some_post)
44 44 assert_match some_post.updated_at.to_s, out
... ...
test/unit/person_test.rb
... ... @@ -1262,15 +1262,4 @@ class PersonTest &lt; ActiveSupport::TestCase
1262 1262  
1263 1263 assert person.has_permission?('bli', Profile.new)
1264 1264 end
1265   -
1266   - should 'have creations' do
1267   - person = create_user('some-user').person
1268   - a1 = fast_create(Article, :author_id => person.id)
1269   - a2 = fast_create(Article, :author_id => person.id)
1270   - a3 = fast_create(Article)
1271   -
1272   - assert_includes person.creations, a1
1273   - assert_includes person.creations, a2
1274   - assert_not_includes person.creations, a3
1275   - end
1276 1265 end
... ...