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,6 +59,10 @@ class CommentParagraphPlugin < Noosfero::Plugin | ||
59 | [CommentParagraphPlugin::API] | 59 | [CommentParagraphPlugin::API] |
60 | end | 60 | end |
61 | 61 | ||
62 | + def content_types | ||
63 | + [CommentParagraphPlugin::Discussion] | ||
64 | + end | ||
65 | + | ||
62 | end | 66 | end |
63 | 67 | ||
64 | require_dependency 'comment_paragraph_plugin/macros/allow_comment' | 68 | require_dependency 'comment_paragraph_plugin/macros/allow_comment' |
plugins/comment_paragraph/lib/comment_paragraph_plugin/discussion.rb
0 → 100644
@@ -0,0 +1,26 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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> |