[Git][noosfero/noosfero][master] 2 commits: organization_ratings: add intial_page option

Daniela Feitosa gitlab at mg.gitlab.com
Wed May 25 10:57:01 BRT 2016


Daniela Feitosa pushed to branch master at Noosfero / noosfero


Commits:
b08287d1 by Marcos Ronaldo at 2016-05-24T14:47:03-03:00
organization_ratings: add intial_page option

- - - - -
44cc52bc by Daniela Feitosa at 2016-05-25T13:56:45+00:00
Merge branch 'organization_ratings_config' into 'master'

organization_ratings: add intial_page option

Creates an option in organization_ratings plugin to config how many ratings will appear on the initial page of every ratings block. After clicking on "view more" option, the "per_page" option will be used normally to paginate all the ratings. 
Also, this merge request fixes a commented test for pagination config validation.

See merge request !940
- - - - -


6 changed files:

- + plugins/organization_ratings/db/migrate/20160523193515_add_initial_page_to_organization_ratings_config.rb
- plugins/organization_ratings/lib/organization_ratings_block.rb
- plugins/organization_ratings/lib/organization_ratings_config.rb
- plugins/organization_ratings/test/unit/organization_rating_config_test.rb
- plugins/organization_ratings/views/blocks/organization_ratings.html.erb
- plugins/organization_ratings/views/organization_ratings_plugin_admin/index.html.erb


Changes:

=====================================
plugins/organization_ratings/db/migrate/20160523193515_add_initial_page_to_organization_ratings_config.rb
=====================================
--- /dev/null
+++ b/plugins/organization_ratings/db/migrate/20160523193515_add_initial_page_to_organization_ratings_config.rb
@@ -0,0 +1,9 @@
+class AddInitialPageToOrganizationRatingsConfig < ActiveRecord::Migration
+  def up
+    add_column :organization_ratings_configs, :ratings_on_initial_page, :integer, :default => 3
+  end
+
+  def down
+    remove_column :organization_ratings_configs, :ratings_on_initial_page
+  end
+end


=====================================
plugins/organization_ratings/lib/organization_ratings_block.rb
=====================================
--- a/plugins/organization_ratings/lib/organization_ratings_block.rb
+++ b/plugins/organization_ratings/lib/organization_ratings_block.rb
@@ -13,6 +13,10 @@ class OrganizationRatingsBlock < Block
     env_organization_ratings_config.per_page
   end
 
+  def ratings_on_initial_page
+    env_organization_ratings_config.ratings_on_initial_page
+  end
+
   def cacheable?
     false
   end


=====================================
plugins/organization_ratings/lib/organization_ratings_config.rb
=====================================
--- a/plugins/organization_ratings/lib/organization_ratings_config.rb
+++ b/plugins/organization_ratings/lib/organization_ratings_config.rb
@@ -4,6 +4,7 @@ class OrganizationRatingsConfig < ApplicationRecord
 
   attr_accessible :cooldown, :default_rating, :order, :per_page
   attr_accessible :vote_once, :are_moderated, :environment_id
+  attr_accessible :ratings_on_initial_page
 
   ORDER_OPTIONS = {recent: _('More Recent'), best: _('Best Ratings')}
 


=====================================
plugins/organization_ratings/test/unit/organization_rating_config_test.rb
=====================================
--- a/plugins/organization_ratings/test/unit/organization_rating_config_test.rb
+++ b/plugins/organization_ratings/test/unit/organization_rating_config_test.rb
@@ -29,15 +29,29 @@ class OrganizationRatingConfigTest < ActiveSupport::TestCase
     assert_equal "must be greater than or equal to 0", @organization_ratings_config.errors[:cooldown].first
   end
 
-  # test "communities ratings per page validation" do
-  #   environment = Environment.new :communities_ratings_per_page => 4
-  #   environment.valid?
+  test "communities ratings per page validation" do
+    @organization_ratings_config.per_page = 4
 
-  #   assert_equal "must be greater than or equal to 5", environment.errors[:communities_ratings_per_page].first
+    refute @organization_ratings_config.valid?
 
-  #   environment.communities_ratings_per_page = 21
-  #   environment.valid?
+    assert_equal "must be greater than or equal to 5", @organization_ratings_config.errors[:per_page].first
 
-  #   assert_equal "must be less than or equal to 20", environment.errors[:communities_ratings_per_page].first
-  # end
+    @organization_ratings_config.per_page = 21
+    refute @organization_ratings_config.valid?
+
+    assert_equal "must be less than or equal to 20", @organization_ratings_config.errors[:per_page].first
+  end
+
+  should "ratings block use initial_page config" do
+    @organization_ratings_config.ratings_on_initial_page = 4
+    @organization_ratings_config.save!
+    block = OrganizationRatingsBlock.new
+    assert_equal block.ratings_on_initial_page, 4
+  end
+
+  should "ratings block show 3 ratings on initial page by default" do
+    @organization_ratings_config.save!
+    block = OrganizationRatingsBlock.new
+    assert_equal block.ratings_on_initial_page, 3
+  end
 end


=====================================
plugins/organization_ratings/views/blocks/organization_ratings.html.erb
=====================================
--- a/plugins/organization_ratings/views/blocks/organization_ratings.html.erb
+++ b/plugins/organization_ratings/views/blocks/organization_ratings.html.erb
@@ -7,7 +7,7 @@
   <% else %>
     <div class="ratings-list">
       <% block.get_ratings(block.owner.id).each_with_index do |r, index| %>
-        <% break if index >= block.limit_number_of_ratings %>
+        <% break if index >= block.ratings_on_initial_page %>
         <%= render :partial => "shared/user_rating_container", :locals => {:user_rate => r} %>
       <% end %>
 


=====================================
plugins/organization_ratings/views/organization_ratings_plugin_admin/index.html.erb
=====================================
--- a/plugins/organization_ratings/views/organization_ratings_plugin_admin/index.html.erb
+++ b/plugins/organization_ratings/views/organization_ratings_plugin_admin/index.html.erb
@@ -43,6 +43,12 @@
           <%= c.select :per_page, 5..20 %>
           </td>
       </tr>
+      <tr>
+        <td><%= _('Ratings amount on initial page') %></td>
+        <td>
+          <%= c.select :ratings_on_initial_page, 1..10 %>
+          </td>
+      </tr>
     </table>
     <div>
       <%= button_bar do %>



View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/768d68bffca5743f2e10f691315140d7e1786cd8...44cc52bc85929c7821a0e9a74331e33b6e30ccde
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20160525/4d446816/attachment-0001.html>


More information about the Noosfero-dev mailing list