Commit b07fd53aab1bd75e8a95ec376a2bfffea8920215
1 parent
436bdb44
Exists in
staging
and in
1 other branch
adding discussion block
Showing
6 changed files
with
121 additions
and
1 deletions
Show diff stats
plugins/comment_paragraph/lib/comment_paragraph_plugin.rb
... | ... | @@ -47,7 +47,8 @@ class CommentParagraphPlugin < Noosfero::Plugin |
47 | 47 | def article_extra_toolbar_buttons(article) |
48 | 48 | user = context.send :user |
49 | 49 | return [] if !article.comment_paragraph_plugin_enabled? || !article.allow_edit?(user) || article.kind_of?(CommentParagraphPlugin::Discussion) |
50 | - { | |
50 | + buttons = [ | |
51 | + { | |
51 | 52 | :title => article.comment_paragraph_plugin_activated? ? _('Deactivate Comments') : _('Activate Comments'), |
52 | 53 | :url => {:controller => 'comment_paragraph_plugin_myprofile', :profile => article.profile.identifier, :action => 'toggle_activation', :id => article.id}, |
53 | 54 | :icon => :toggle_comment_paragraph |
... | ... | @@ -65,6 +66,12 @@ class CommentParagraphPlugin < Noosfero::Plugin |
65 | 66 | [CommentParagraphPlugin::API] |
66 | 67 | end |
67 | 68 | |
69 | + def self.extra_blocks | |
70 | + { | |
71 | + CommentParagraphPlugin::DiscussionBlock => {:position => ['1','2','3'] } | |
72 | + } | |
73 | + end | |
74 | + | |
68 | 75 | def content_types |
69 | 76 | [CommentParagraphPlugin::Discussion] |
70 | 77 | end | ... | ... |
plugins/comment_paragraph/lib/comment_paragraph_plugin/discussion_block.rb
0 → 100644
... | ... | @@ -0,0 +1,50 @@ |
1 | +class CommentParagraphPlugin::DiscussionBlock < Block | |
2 | + | |
3 | + settings_items :presentation_mode, :type => String, :default => 'title_only' | |
4 | + settings_items :total_items, :type => Integer, :default => 5 | |
5 | + settings_items :show_blog_picture, :type => :boolean, :default => false | |
6 | + settings_items :discussion_status, :type => Integer | |
7 | + | |
8 | + attr_accessible :presentation_mode, :total_items, :show_blog_picture, :discussion_status | |
9 | + | |
10 | + VALID_CONTENT = ['CommentParagraphPlugin::Discussion'] | |
11 | + | |
12 | + def self.description | |
13 | + c_('Discussion Articles') | |
14 | + end | |
15 | + | |
16 | + def help | |
17 | + _("This block displays all profile's article discussion") | |
18 | + end | |
19 | + | |
20 | + def discussions | |
21 | +# start_date = nil | |
22 | +# end_date = nil | |
23 | +# case self.discussion_status.to_s | |
24 | +# when '0' | |
25 | +# start_date > Time.now | |
26 | +# when '2' | |
27 | +# end_date < Time.now | |
28 | +# else | |
29 | +# start_date < Time.now && end_date > Time.now | |
30 | +# end | |
31 | + holder.articles.where(type: VALID_CONTENT).order('created_at DESC').limit(self.total_items) | |
32 | + end | |
33 | + | |
34 | + def holder | |
35 | + return nil if self.box.nil? || self.box.owner.nil? | |
36 | + if self.box.owner.kind_of?(Environment) | |
37 | + return nil if self.box.owner.portal_community.nil? | |
38 | + self.box.owner.portal_community | |
39 | + else | |
40 | + self.box.owner | |
41 | + end | |
42 | + end | |
43 | + | |
44 | + include DatesHelper | |
45 | + | |
46 | + def mode?(attr) | |
47 | + attr == self.presentation_mode | |
48 | + end | |
49 | + | |
50 | +end | ... | ... |
plugins/comment_paragraph/views/blocks/discussion.html.erb
0 → 100644
... | ... | @@ -0,0 +1,33 @@ |
1 | +<div id="discussion-block"> | |
2 | + <% children = block.discussions %> | |
3 | + <div class="discussion"> | |
4 | + <%= block_title(block.title.blank? ? c_("Discussions") : block.title, block.subtitle ) %> | |
5 | + </div> | |
6 | + <% if block.mode?('title_only') %> | |
7 | + <div class="discussion-title"> | |
8 | + <ul> | |
9 | + <% children.each do |item| %> | |
10 | + <li> <%= link_to(h(item.title), item.url)%></li> | |
11 | + <% end %> | |
12 | + </ul> | |
13 | + </div> | |
14 | + <% elsif block.mode?('title_and_abstract') %> | |
15 | + <div class="discussion-abstract"> | |
16 | + <% children.each do |item| %> | |
17 | + <h2><%= link_to(item.title,item.url, :class => 'post-title')%></h2> | |
18 | + <span class="post-date"><%= show_date(item.published_at, true)%></span> | |
19 | + <div class="headline"><%=item.lead%></div> | |
20 | + <p class="highlighted-news-read-more"><%= link_to(_('Read more'), item.url) %></p> | |
21 | + <% end %> | |
22 | + </div> | |
23 | + <% else %> | |
24 | + <div class="discussion-full"> | |
25 | + <% children.each do |item| %> | |
26 | + <h2><%= link_to(item.title,item.url, :class => 'post-title')%></h2> | |
27 | + <span class="post-date"><%= show_date(item.published_at, true)%></span> | |
28 | + <div class="headline"><%=item.body%></div> | |
29 | + <p class="highlighted-news-read-more"><%= link_to(_('Read more'), item.url) %></p> | |
30 | + <% end %> | |
31 | + </div> | |
32 | + <% end %> | |
33 | +</div> | ... | ... |
plugins/comment_paragraph/views/box_organizer/comment_paragraph_plugin/_discussion_block.html.erb
0 → 100644
... | ... | @@ -0,0 +1,28 @@ |
1 | +<%= | |
2 | +labelled_form_field(_('Choose which blog should be displayed'), | |
3 | + select_tag( | |
4 | + 'block[discussion_status]', | |
5 | + options_for_select([[_('Not Openned Discussions'), 0],[_('Available Discussions'), 1], [_('Closed Discussions'),2]], @block.discussion_status) | |
6 | + ) | |
7 | +) | |
8 | +%> | |
9 | +<%= | |
10 | +labelled_form_field(_('Choose how the content should be displayed'), | |
11 | + select_tag( | |
12 | + 'block[presentation_mode]', | |
13 | + options_for_select( | |
14 | + { | |
15 | + _("Title only") => "title_only", | |
16 | + _("Title and abstract") => "title_and_abstract", | |
17 | + _("Full content") => "full_content" | |
18 | + }, | |
19 | + @block.presentation_mode | |
20 | + ) | |
21 | + ) | |
22 | +) | |
23 | +%> | |
24 | +<%= labelled_form_field(_('Choose how many items will be displayed'), | |
25 | + text_field_tag('block[total_items]', | |
26 | + @block.total_items, :size => 3, :maxlength => 5) | |
27 | + ) | |
28 | +%> | ... | ... |