Commit cfc3355bab7192578976365488ea17efce32d957
Committed by
Antonio Terceiro
1 parent
9c287ade
Exists in
master
and in
23 other branches
The author_name should be defined by user instead of generated automatically.
(ActionItem1732)
Showing
7 changed files
with
47 additions
and
7 deletions
Show diff stats
app/helpers/content_viewer_helper.rb
| @@ -21,7 +21,7 @@ module ContentViewerHelper | @@ -21,7 +21,7 @@ module ContentViewerHelper | ||
| 21 | title = content_tag('h1', link_to(article.name, article.url), :class => 'title') | 21 | title = content_tag('h1', link_to(article.name, article.url), :class => 'title') |
| 22 | end | 22 | end |
| 23 | comments = args[:no_comments] ? '' : (("- %s") % link_to_comments(article)) | 23 | comments = args[:no_comments] ? '' : (("- %s") % link_to_comments(article)) |
| 24 | - title << content_tag('span', _("%s, by %s %s") % [show_date(article.published_at), link_to(article.author.name, article.author.url), comments], :class => 'created-at') | 24 | + title << content_tag('span', _("%s, by %s %s") % [show_date(article.published_at), link_to(article.author_name, article.author.url), comments], :class => 'created-at') |
| 25 | end | 25 | end |
| 26 | title | 26 | title |
| 27 | end | 27 | end |
app/models/article.rb
| @@ -25,6 +25,7 @@ class Article < ActiveRecord::Base | @@ -25,6 +25,7 @@ class Article < ActiveRecord::Base | ||
| 25 | acts_as_having_settings :field => :setting | 25 | acts_as_having_settings :field => :setting |
| 26 | 26 | ||
| 27 | settings_items :display_hits, :type => :boolean, :default => true | 27 | settings_items :display_hits, :type => :boolean, :default => true |
| 28 | + settings_items :author_name, :type => :string, :default => "" | ||
| 28 | 29 | ||
| 29 | belongs_to :reference_article, :class_name => "Article", :foreign_key => 'reference_article_id' | 30 | belongs_to :reference_article, :class_name => "Article", :foreign_key => 'reference_article_id' |
| 30 | 31 | ||
| @@ -450,6 +451,10 @@ class Article < ActiveRecord::Base | @@ -450,6 +451,10 @@ class Article < ActiveRecord::Base | ||
| 450 | end | 451 | end |
| 451 | end | 452 | end |
| 452 | 453 | ||
| 454 | + def author_name | ||
| 455 | + setting[:author_name].blank? ? author.name : setting[:author_name] | ||
| 456 | + end | ||
| 457 | + | ||
| 453 | alias :active_record_cache_key :cache_key | 458 | alias :active_record_cache_key :cache_key |
| 454 | def cache_key(params = {}, the_profile = nil) | 459 | def cache_key(params = {}, the_profile = nil) |
| 455 | active_record_cache_key + | 460 | active_record_cache_key + |
app/models/suggest_article.rb
| @@ -29,6 +29,7 @@ class SuggestArticle < Task | @@ -29,6 +29,7 @@ class SuggestArticle < Task | ||
| 29 | TinyMceArticle.create!( | 29 | TinyMceArticle.create!( |
| 30 | :profile => target, | 30 | :profile => target, |
| 31 | :name => article_name, | 31 | :name => article_name, |
| 32 | + :author_name => name, | ||
| 32 | :body => article_body, | 33 | :body => article_body, |
| 33 | :abstract => article_abstract, | 34 | :abstract => article_abstract, |
| 34 | :parent_id => article_parent_id, | 35 | :parent_id => article_parent_id, |
app/views/tasks/_suggest_article.rhtml
| @@ -4,9 +4,9 @@ | @@ -4,9 +4,9 @@ | ||
| 4 | 4 | ||
| 5 | <% form_for('task', task, :url => { :action => 'close', :id => task.id}) do |f| %> | 5 | <% form_for('task', task, :url => { :action => 'close', :id => task.id}) do |f| %> |
| 6 | 6 | ||
| 7 | - <p><%= label_tag(_("Sent by: %s") % task.name) %> </p> | ||
| 8 | - <p><%= label_tag(_("Email: %s") % task.email) %> </p> | ||
| 9 | 7 | ||
| 8 | + <%= labelled_form_field(_("Sent by: "), f.text_field(:name)) %> | ||
| 9 | + <p><%= label_tag(_("Email: %s") % task.email) %> </p> | ||
| 10 | <%= required labelled_form_field(_('Title'), f.text_field(:article_name, :size => 50)) %> | 10 | <%= required labelled_form_field(_('Title'), f.text_field(:article_name, :size => 50)) %> |
| 11 | <%= labelled_form_field(_('Source'), f.text_field(:source_name)) %> | 11 | <%= labelled_form_field(_('Source'), f.text_field(:source_name)) %> |
| 12 | <%= labelled_form_field(_("Source URL"), f.text_field(:source)) %> | 12 | <%= labelled_form_field(_("Source URL"), f.text_field(:source)) %> |
test/functional/tasks_controller_test.rb
| @@ -255,11 +255,22 @@ class TasksControllerTest < Test::Unit::TestCase | @@ -255,11 +255,22 @@ class TasksControllerTest < Test::Unit::TestCase | ||
| 255 | c.affiliate(profile, Profile::Roles.all_roles(profile.environment.id)) | 255 | c.affiliate(profile, Profile::Roles.all_roles(profile.environment.id)) |
| 256 | @controller.stubs(:profile).returns(c) | 256 | @controller.stubs(:profile).returns(c) |
| 257 | SuggestArticle.skip_captcha! | 257 | SuggestArticle.skip_captcha! |
| 258 | - t = SuggestArticle.create!(:article_name => 'test name', :article_body => 'test body', :name => 'some name', :email => 'test@localhost.com', :target => c) | ||
| 259 | - | ||
| 260 | - post :close, :decision => 'finish', :id => t.id, :task => {:article_name => 'new name', :article_body => 'new body'} | ||
| 261 | - assert_equal 'new name', TinyMceArticle.find(:first).name | 258 | + t = SuggestArticle.new |
| 259 | + t.article_name = 'test name' | ||
| 260 | + t.article_body = 'test body' | ||
| 261 | + t.name = 'some name' | ||
| 262 | + t.source = 'http://test.com' | ||
| 263 | + t.source_name = 'some source name' | ||
| 264 | + t.email = 'test@localhost.com' | ||
| 265 | + t.target = c | ||
| 266 | + t.save! | ||
| 267 | + | ||
| 268 | + post :close, :decision => 'finish', :id => t.id, :task => {:article_name => 'new article name', :article_body => 'new body', :source => 'http://www.noosfero.com', :source_name => 'new source', :name => 'new name'} | ||
| 269 | + assert_equal 'new article name', TinyMceArticle.find(:first).name | ||
| 270 | + assert_equal 'new name', TinyMceArticle.find(:first).author_name | ||
| 262 | assert_equal 'new body', TinyMceArticle.find(:first).body | 271 | assert_equal 'new body', TinyMceArticle.find(:first).body |
| 272 | + assert_equal 'http://www.noosfero.com', TinyMceArticle.find(:first).source | ||
| 273 | + assert_equal 'new source', TinyMceArticle.find(:first).source_name | ||
| 263 | end | 274 | end |
| 264 | 275 | ||
| 265 | end | 276 | end |
test/unit/article_test.rb
| @@ -1399,4 +1399,18 @@ class ArticleTest < Test::Unit::TestCase | @@ -1399,4 +1399,18 @@ class ArticleTest < Test::Unit::TestCase | ||
| 1399 | assert a.possible_translations.include?('pt') | 1399 | assert a.possible_translations.include?('pt') |
| 1400 | end | 1400 | end |
| 1401 | 1401 | ||
| 1402 | + should 'have the author_name method defined' do | ||
| 1403 | + assert Article.method_defined?('author_name') | ||
| 1404 | + end | ||
| 1405 | + | ||
| 1406 | + should "the author_name returns the name od the article's author" do | ||
| 1407 | + author = mock() | ||
| 1408 | + author.expects(:name).returns('author name') | ||
| 1409 | + a = Article.new | ||
| 1410 | + a.expects(:author).returns(author) | ||
| 1411 | + assert_equal 'author name', a.author_name | ||
| 1412 | + a.author_name = 'some name' | ||
| 1413 | + assert_equal 'some name', a.author_name | ||
| 1414 | + end | ||
| 1415 | + | ||
| 1402 | end | 1416 | end |
test/unit/suggest_article_test.rb
| @@ -131,4 +131,13 @@ class SuggestArticleTest < ActiveSupport::TestCase | @@ -131,4 +131,13 @@ class SuggestArticleTest < ActiveSupport::TestCase | ||
| 131 | task.save | 131 | task.save |
| 132 | end | 132 | end |
| 133 | 133 | ||
| 134 | + should 'fill name into author_name created article' do | ||
| 135 | + t = build(SuggestArticle, :target => @profile) | ||
| 136 | + t.name = 'some name' | ||
| 137 | + t.perform | ||
| 138 | + | ||
| 139 | + article = TinyMceArticle.last | ||
| 140 | + assert_equal 'some name', article.author_name | ||
| 141 | + end | ||
| 142 | + | ||
| 134 | end | 143 | end |