Commit e462d1d4539195c5003c97807515bbb042659215
Committed by
Macartur Sousa
1 parent
e339c23d
Exists in
elasticsearch_api
organization_ratings: add intial_page option
Showing
6 changed files
with
43 additions
and
9 deletions
Show diff stats
plugins/organization_ratings/db/migrate/20160523193515_add_initial_page_to_organization_ratings_config.rb
0 → 100644
| @@ -0,0 +1,9 @@ | @@ -0,0 +1,9 @@ | ||
| 1 | +class AddInitialPageToOrganizationRatingsConfig < ActiveRecord::Migration | ||
| 2 | + def up | ||
| 3 | + add_column :organization_ratings_configs, :ratings_on_initial_page, :integer, :default => 3 | ||
| 4 | + end | ||
| 5 | + | ||
| 6 | + def down | ||
| 7 | + remove_column :organization_ratings_configs, :ratings_on_initial_page | ||
| 8 | + end | ||
| 9 | +end |
plugins/organization_ratings/lib/organization_ratings_block.rb
| @@ -13,6 +13,10 @@ class OrganizationRatingsBlock < Block | @@ -13,6 +13,10 @@ class OrganizationRatingsBlock < Block | ||
| 13 | env_organization_ratings_config.per_page | 13 | env_organization_ratings_config.per_page |
| 14 | end | 14 | end |
| 15 | 15 | ||
| 16 | + def ratings_on_initial_page | ||
| 17 | + env_organization_ratings_config.ratings_on_initial_page | ||
| 18 | + end | ||
| 19 | + | ||
| 16 | def cacheable? | 20 | def cacheable? |
| 17 | false | 21 | false |
| 18 | end | 22 | end |
plugins/organization_ratings/lib/organization_ratings_config.rb
| @@ -4,6 +4,7 @@ class OrganizationRatingsConfig < ApplicationRecord | @@ -4,6 +4,7 @@ class OrganizationRatingsConfig < ApplicationRecord | ||
| 4 | 4 | ||
| 5 | attr_accessible :cooldown, :default_rating, :order, :per_page | 5 | attr_accessible :cooldown, :default_rating, :order, :per_page |
| 6 | attr_accessible :vote_once, :are_moderated, :environment_id | 6 | attr_accessible :vote_once, :are_moderated, :environment_id |
| 7 | + attr_accessible :ratings_on_initial_page | ||
| 7 | 8 | ||
| 8 | ORDER_OPTIONS = {recent: _('More Recent'), best: _('Best Ratings')} | 9 | ORDER_OPTIONS = {recent: _('More Recent'), best: _('Best Ratings')} |
| 9 | 10 |
plugins/organization_ratings/test/unit/organization_rating_config_test.rb
| @@ -29,15 +29,29 @@ class OrganizationRatingConfigTest < ActiveSupport::TestCase | @@ -29,15 +29,29 @@ class OrganizationRatingConfigTest < ActiveSupport::TestCase | ||
| 29 | assert_equal "must be greater than or equal to 0", @organization_ratings_config.errors[:cooldown].first | 29 | assert_equal "must be greater than or equal to 0", @organization_ratings_config.errors[:cooldown].first |
| 30 | end | 30 | end |
| 31 | 31 | ||
| 32 | - # test "communities ratings per page validation" do | ||
| 33 | - # environment = Environment.new :communities_ratings_per_page => 4 | ||
| 34 | - # environment.valid? | 32 | + test "communities ratings per page validation" do |
| 33 | + @organization_ratings_config.per_page = 4 | ||
| 35 | 34 | ||
| 36 | - # assert_equal "must be greater than or equal to 5", environment.errors[:communities_ratings_per_page].first | 35 | + refute @organization_ratings_config.valid? |
| 37 | 36 | ||
| 38 | - # environment.communities_ratings_per_page = 21 | ||
| 39 | - # environment.valid? | 37 | + assert_equal "must be greater than or equal to 5", @organization_ratings_config.errors[:per_page].first |
| 40 | 38 | ||
| 41 | - # assert_equal "must be less than or equal to 20", environment.errors[:communities_ratings_per_page].first | ||
| 42 | - # end | 39 | + @organization_ratings_config.per_page = 21 |
| 40 | + refute @organization_ratings_config.valid? | ||
| 41 | + | ||
| 42 | + assert_equal "must be less than or equal to 20", @organization_ratings_config.errors[:per_page].first | ||
| 43 | + end | ||
| 44 | + | ||
| 45 | + should "ratings block use initial_page config" do | ||
| 46 | + @organization_ratings_config.ratings_on_initial_page = 4 | ||
| 47 | + @organization_ratings_config.save! | ||
| 48 | + block = OrganizationRatingsBlock.new | ||
| 49 | + assert_equal block.ratings_on_initial_page, 4 | ||
| 50 | + end | ||
| 51 | + | ||
| 52 | + should "ratings block show 3 ratings on initial page by default" do | ||
| 53 | + @organization_ratings_config.save! | ||
| 54 | + block = OrganizationRatingsBlock.new | ||
| 55 | + assert_equal block.ratings_on_initial_page, 3 | ||
| 56 | + end | ||
| 43 | end | 57 | end |
plugins/organization_ratings/views/blocks/organization_ratings.html.erb
| @@ -7,7 +7,7 @@ | @@ -7,7 +7,7 @@ | ||
| 7 | <% else %> | 7 | <% else %> |
| 8 | <div class="ratings-list"> | 8 | <div class="ratings-list"> |
| 9 | <% block.get_ratings(block.owner.id).each_with_index do |r, index| %> | 9 | <% block.get_ratings(block.owner.id).each_with_index do |r, index| %> |
| 10 | - <% break if index >= block.limit_number_of_ratings %> | 10 | + <% break if index >= block.ratings_on_initial_page %> |
| 11 | <%= render :partial => "shared/user_rating_container", :locals => {:user_rate => r} %> | 11 | <%= render :partial => "shared/user_rating_container", :locals => {:user_rate => r} %> |
| 12 | <% end %> | 12 | <% end %> |
| 13 | 13 |
plugins/organization_ratings/views/organization_ratings_plugin_admin/index.html.erb
| @@ -43,6 +43,12 @@ | @@ -43,6 +43,12 @@ | ||
| 43 | <%= c.select :per_page, 5..20 %> | 43 | <%= c.select :per_page, 5..20 %> |
| 44 | </td> | 44 | </td> |
| 45 | </tr> | 45 | </tr> |
| 46 | + <tr> | ||
| 47 | + <td><%= _('Ratings amount on initial page') %></td> | ||
| 48 | + <td> | ||
| 49 | + <%= c.select :ratings_on_initial_page, 1..10 %> | ||
| 50 | + </td> | ||
| 51 | + </tr> | ||
| 46 | </table> | 52 | </table> |
| 47 | <div> | 53 | <div> |
| 48 | <%= button_bar do %> | 54 | <%= button_bar do %> |