From 63420bb0c78992c884745ef5b668b87cdebafb07 Mon Sep 17 00:00:00 2001 From: Fabio Teixeira Date: Sun, 16 Aug 2015 13:42:30 -0300 Subject: [PATCH] Crate a block that displays the community average rating --- plugins/communities_ratings/lib/average_rating_block.rb | 30 ++++++++++++++++++++++++++++++ plugins/communities_ratings/lib/communities_ratings_plugin.rb | 5 +++-- plugins/communities_ratings/style.css | 6 +++++- plugins/communities_ratings/views/blocks/display_community_average_rating.html.erb | 25 +++++++++++++++++++++++++ plugins/communities_ratings/views/hotspots/display_community_average_rating.html.erb | 25 ------------------------- 5 files changed, 63 insertions(+), 28 deletions(-) create mode 100644 plugins/communities_ratings/lib/average_rating_block.rb create mode 100644 plugins/communities_ratings/views/blocks/display_community_average_rating.html.erb delete mode 100644 plugins/communities_ratings/views/hotspots/display_community_average_rating.html.erb diff --git a/plugins/communities_ratings/lib/average_rating_block.rb b/plugins/communities_ratings/lib/average_rating_block.rb new file mode 100644 index 0000000..e6f889b --- /dev/null +++ b/plugins/communities_ratings/lib/average_rating_block.rb @@ -0,0 +1,30 @@ +class AverageRatingBlock < Block + include RatingsHelper + + def self.description + _('Community Average Rating') + end + + def help + _('This block displays the community average rating.') + end + + def content(args = {}) + profile_identifier = self.owner.identifier + average_rating = CommunityRating.average_rating self.owner.id + + proc do + render( + :file => 'blocks/display_community_average_rating', + :locals => { + :profile_identifier => profile_identifier, + :average_rating => average_rating + } + ) + end + end + + def cacheable? + false + end +end diff --git a/plugins/communities_ratings/lib/communities_ratings_plugin.rb b/plugins/communities_ratings/lib/communities_ratings_plugin.rb index eb618a2..fea28d2 100644 --- a/plugins/communities_ratings/lib/communities_ratings_plugin.rb +++ b/plugins/communities_ratings/lib/communities_ratings_plugin.rb @@ -33,7 +33,7 @@ class CommunitiesRatingsPlugin < Noosfero::Plugin average_rating = CommunityRating.average_rating community.id Proc::new { - render :file => 'hotspots/display_community_average_rating', + render :file => 'blocks/display_community_average_rating', :locals => { :profile_identifier => community.identifier, :average_rating => average_rating @@ -44,7 +44,8 @@ class CommunitiesRatingsPlugin < Noosfero::Plugin def self.extra_blocks { - CommunitiesRatingsBlock => { :type => [Community], :position => ['1']} + CommunitiesRatingsBlock => {:type => [Community], :position => ['1']}, + AverageRatingBlock => {:type => [Community]} } end diff --git a/plugins/communities_ratings/style.css b/plugins/communities_ratings/style.css index 565d2b5..a6d5dba 100644 --- a/plugins/communities_ratings/style.css +++ b/plugins/communities_ratings/style.css @@ -193,4 +193,8 @@ .task_information .comment { padding-left: 60px; -} \ No newline at end of file +} + +.average-rating-block { + height: 55px; +} diff --git a/plugins/communities_ratings/views/blocks/display_community_average_rating.html.erb b/plugins/communities_ratings/views/blocks/display_community_average_rating.html.erb new file mode 100644 index 0000000..d0dc51e --- /dev/null +++ b/plugins/communities_ratings/views/blocks/display_community_average_rating.html.erb @@ -0,0 +1,25 @@ +
+ <% if average_rating %> +
+ <%= _("Rating: ") %> +
+ +
+ <% (1..5).each do |star_number| %> + <% if star_number <= average_rating %> +
+ <% else %> +
+ <% end %> + <% end %> +
+ <% else %> +
+ <%= _("Be the first to rate!") %> +
+ <% end %> + +
+ <%= link_to _('Rate this community'), url_for(:controller => 'communities_ratings_plugin_profile', :action => 'new_rating', :profile=>profile_identifier) %> +
+
\ No newline at end of file diff --git a/plugins/communities_ratings/views/hotspots/display_community_average_rating.html.erb b/plugins/communities_ratings/views/hotspots/display_community_average_rating.html.erb deleted file mode 100644 index d0dc51e..0000000 --- a/plugins/communities_ratings/views/hotspots/display_community_average_rating.html.erb +++ /dev/null @@ -1,25 +0,0 @@ -
- <% if average_rating %> -
- <%= _("Rating: ") %> -
- -
- <% (1..5).each do |star_number| %> - <% if star_number <= average_rating %> -
- <% else %> -
- <% end %> - <% end %> -
- <% else %> -
- <%= _("Be the first to rate!") %> -
- <% end %> - -
- <%= link_to _('Rate this community'), url_for(:controller => 'communities_ratings_plugin_profile', :action => 'new_rating', :profile=>profile_identifier) %> -
-
\ No newline at end of file -- libgit2 0.21.2