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