Commit 27b7acbcb2ad57c0284ed8cb7b4a0201eec62139
1 parent
930a5a02
Exists in
ratings_minor_fixes
and in
4 other branches
comment_paragraph: add discussion content type
Showing
4 changed files
with
74 additions
and
0 deletions
Show diff stats
plugins/comment_paragraph/lib/comment_paragraph_plugin.rb
... | ... | @@ -59,6 +59,10 @@ class CommentParagraphPlugin < Noosfero::Plugin |
59 | 59 | [CommentParagraphPlugin::API] |
60 | 60 | end |
61 | 61 | |
62 | + def content_types | |
63 | + [CommentParagraphPlugin::Discussion] | |
64 | + end | |
65 | + | |
62 | 66 | end |
63 | 67 | |
64 | 68 | require_dependency 'comment_paragraph_plugin/macros/allow_comment' | ... | ... |
plugins/comment_paragraph/lib/comment_paragraph_plugin/discussion.rb
0 → 100644
... | ... | @@ -0,0 +1,26 @@ |
1 | +class CommentParagraphPlugin::Discussion < Event | |
2 | + | |
3 | + def self.type_name | |
4 | + _('Comments Discussion') | |
5 | + end | |
6 | + | |
7 | + def self.short_description | |
8 | + _('Comments Discussion') | |
9 | + end | |
10 | + | |
11 | + def self.description | |
12 | + _('Article with paragraph comments') | |
13 | + end | |
14 | + | |
15 | + def accept_comments? | |
16 | + current_time = Time.now | |
17 | + super && | |
18 | + (start_date.nil? || current_time >= start_date) && | |
19 | + (end_date.nil? || current_time <= end_date) | |
20 | + end | |
21 | + | |
22 | + def comment_paragraph_plugin_activated? | |
23 | + environment.plugin_enabled?(CommentParagraphPlugin) | |
24 | + end | |
25 | + | |
26 | +end | ... | ... |
... | ... | @@ -0,0 +1,31 @@ |
1 | +require_relative '../test_helper' | |
2 | + | |
3 | +class DiscussionTest < ActiveSupport::TestCase | |
4 | + | |
5 | + def setup | |
6 | + @profile = fast_create(Community) | |
7 | + @discussion = fast_create(TextArticle, :profile_id => profile.id) | |
8 | + @environment = Environment.default | |
9 | + @environment.enable_plugin(CommentParagraphPlugin) | |
10 | + end | |
11 | + | |
12 | + attr_reader :discussion, :environment, :profile | |
13 | + | |
14 | + should 'parse html when save discussion' do | |
15 | + discussion = CommentParagraphPlugin::Discussion.new(profile: profile, name: "discussion", start_date: Time.now, end_date: Time.now + 1.day) | |
16 | + discussion.body = '<ul><li class="custom_class">item1</li><li>item2</li></ul>' | |
17 | + discussion.save! | |
18 | + assert_mark_paragraph discussion.body, 'li', 'item1' | |
19 | + assert_mark_paragraph discussion.body, 'li', 'item2' | |
20 | + end | |
21 | + | |
22 | + should 'not allow comments after end date' do | |
23 | + discussion = CommentParagraphPlugin::Discussion.create!(profile: profile, name: "discussion", start_date: Time.now - 2.days, end_date: Time.now - 1.day) | |
24 | + assert !discussion.accept_comments? | |
25 | + end | |
26 | + | |
27 | + should 'not allow comments before start date' do | |
28 | + discussion = CommentParagraphPlugin::Discussion.create!(profile: profile, name: "discussion", start_date: Time.now + 1.day, end_date: Time.now + 2.days) | |
29 | + assert !discussion.accept_comments? | |
30 | + end | |
31 | +end | ... | ... |
plugins/comment_paragraph/views/cms/comment_paragraph_plugin/_discussion.html.erb
0 → 100644
... | ... | @@ -0,0 +1,13 @@ |
1 | +<%= required_fields_message %> | |
2 | + | |
3 | +<%= render :file => 'shared/tiny_mce' %> | |
4 | + | |
5 | +<div> | |
6 | + <%= required labelled_form_field(_('Title'), text_field(:article, 'name', :size => '64', :maxlength => 150)) %> | |
7 | + | |
8 | + <%= render :partial => 'text_fields' %> | |
9 | + <%= render :partial => 'general_fields' %> | |
10 | + <%= render :partial => 'translatable' %> | |
11 | + <%= date_range_field('article[start_date]', 'article[end_date]', @article.start_date, @article.end_date, {:time => true}, {:id => 'article_start_date'} ) %> | |
12 | + <%= render :partial => 'shared/lead_and_body', :locals => {:tiny_mce => true} %> | |
13 | +</div> | ... | ... |