From 2c0016f2a6b333246d32c73cfc519566786934ee Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Fri, 22 Aug 2014 12:59:16 -0300 Subject: [PATCH] proposals_discussion: normalized score --- controllers/public/proposals_discussion_plugin_public_controller.rb | 6 +++--- lib/proposals_discussion_plugin/proposal.rb | 8 ++++++++ lib/proposals_discussion_plugin/topic.rb | 8 ++++++++ views/content_viewer/_proposal_card.html.erb | 2 +- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/controllers/public/proposals_discussion_plugin_public_controller.rb b/controllers/public/proposals_discussion_plugin_public_controller.rb index 56b7186..992d36b 100644 --- a/controllers/public/proposals_discussion_plugin_public_controller.rb +++ b/controllers/public/proposals_discussion_plugin_public_controller.rb @@ -3,16 +3,16 @@ class ProposalsDiscussionPluginPublicController < ApplicationController needs_profile def load_proposals - holder = profile.articles.find(params[:holder_id]) + @holder = profile.articles.find(params[:holder_id]) page = (params[:page] || 1).to_i set_rand_cookie if page == 1 order = params[:order] - @proposals = order_proposals(holder.proposals.public, order) + @proposals = order_proposals(@holder.proposals.public, order) @proposals = @proposals.page(page).per_page(4) unless @proposals.empty? - render :partial => 'content_viewer/proposals_list_content', :locals => {:proposals => @proposals, :holder => holder, :page => page+1, :order => order} + render :partial => 'content_viewer/proposals_list_content', :locals => {:proposals => @proposals, :holder => @holder, :page => page+1, :order => order} else render :text => '' end diff --git a/lib/proposals_discussion_plugin/proposal.rb b/lib/proposals_discussion_plugin/proposal.rb index 8175a4e..8de8b90 100644 --- a/lib/proposals_discussion_plugin/proposal.rb +++ b/lib/proposals_discussion_plugin/proposal.rb @@ -25,4 +25,12 @@ class ProposalsDiscussionPlugin::Proposal < TinyMceArticle super || created_by == user end + def score + comments_count + end + + def normalized_score(holder) + ((score - holder.min_score)/(holder.max_score - holder.min_score).to_f).round(2) + end + end diff --git a/lib/proposals_discussion_plugin/topic.rb b/lib/proposals_discussion_plugin/topic.rb index 44d8064..6027a9a 100644 --- a/lib/proposals_discussion_plugin/topic.rb +++ b/lib/proposals_discussion_plugin/topic.rb @@ -32,4 +32,12 @@ class ProposalsDiscussionPlugin::Topic < Folder true end + def max_score + @max ||= [1, proposals.maximum(:comments_count)].max + end + + def min_score + @nin ||= proposals.minimum(:comments_count) + end + end diff --git a/views/content_viewer/_proposal_card.html.erb b/views/content_viewer/_proposal_card.html.erb index 4d5bde2..7c7bc00 100644 --- a/views/content_viewer/_proposal_card.html.erb +++ b/views/content_viewer/_proposal_card.html.erb @@ -1,6 +1,6 @@
- <%= proposal_card.comments_count %> + <%= proposal_card.normalized_score(@holder) if proposal_card.published? %>
-- libgit2 0.21.2