Commit cfc3355bab7192578976365488ea17efce32d957
Committed by
Antonio Terceiro
1 parent
9c287ade
Exists in
master
and in
29 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 |