Commit 2c0016f2a6b333246d32c73cfc519566786934ee
1 parent
e316382e
Exists in
master
and in
11 other branches
proposals_discussion: normalized score
Showing
4 changed files
with
20 additions
and
4 deletions
Show diff stats
controllers/public/proposals_discussion_plugin_public_controller.rb
| @@ -3,16 +3,16 @@ class ProposalsDiscussionPluginPublicController < ApplicationController | @@ -3,16 +3,16 @@ class ProposalsDiscussionPluginPublicController < ApplicationController | ||
| 3 | needs_profile | 3 | needs_profile |
| 4 | 4 | ||
| 5 | def load_proposals | 5 | def load_proposals |
| 6 | - holder = profile.articles.find(params[:holder_id]) | 6 | + @holder = profile.articles.find(params[:holder_id]) |
| 7 | page = (params[:page] || 1).to_i | 7 | page = (params[:page] || 1).to_i |
| 8 | set_rand_cookie if page == 1 | 8 | set_rand_cookie if page == 1 |
| 9 | order = params[:order] | 9 | order = params[:order] |
| 10 | 10 | ||
| 11 | - @proposals = order_proposals(holder.proposals.public, order) | 11 | + @proposals = order_proposals(@holder.proposals.public, order) |
| 12 | @proposals = @proposals.page(page).per_page(4) | 12 | @proposals = @proposals.page(page).per_page(4) |
| 13 | 13 | ||
| 14 | unless @proposals.empty? | 14 | unless @proposals.empty? |
| 15 | - render :partial => 'content_viewer/proposals_list_content', :locals => {:proposals => @proposals, :holder => holder, :page => page+1, :order => order} | 15 | + render :partial => 'content_viewer/proposals_list_content', :locals => {:proposals => @proposals, :holder => @holder, :page => page+1, :order => order} |
| 16 | else | 16 | else |
| 17 | render :text => '' | 17 | render :text => '' |
| 18 | end | 18 | end |
lib/proposals_discussion_plugin/proposal.rb
| @@ -25,4 +25,12 @@ class ProposalsDiscussionPlugin::Proposal < TinyMceArticle | @@ -25,4 +25,12 @@ class ProposalsDiscussionPlugin::Proposal < TinyMceArticle | ||
| 25 | super || created_by == user | 25 | super || created_by == user |
| 26 | end | 26 | end |
| 27 | 27 | ||
| 28 | + def score | ||
| 29 | + comments_count | ||
| 30 | + end | ||
| 31 | + | ||
| 32 | + def normalized_score(holder) | ||
| 33 | + ((score - holder.min_score)/(holder.max_score - holder.min_score).to_f).round(2) | ||
| 34 | + end | ||
| 35 | + | ||
| 28 | end | 36 | end |
lib/proposals_discussion_plugin/topic.rb
| @@ -32,4 +32,12 @@ class ProposalsDiscussionPlugin::Topic < Folder | @@ -32,4 +32,12 @@ class ProposalsDiscussionPlugin::Topic < Folder | ||
| 32 | true | 32 | true |
| 33 | end | 33 | end |
| 34 | 34 | ||
| 35 | + def max_score | ||
| 36 | + @max ||= [1, proposals.maximum(:comments_count)].max | ||
| 37 | + end | ||
| 38 | + | ||
| 39 | + def min_score | ||
| 40 | + @nin ||= proposals.minimum(:comments_count) | ||
| 41 | + end | ||
| 42 | + | ||
| 35 | end | 43 | end |
views/content_viewer/_proposal_card.html.erb
| 1 | <div class="proposal"> | 1 | <div class="proposal"> |
| 2 | <div class="score"> | 2 | <div class="score"> |
| 3 | - <%= proposal_card.comments_count %> | 3 | + <%= proposal_card.normalized_score(@holder) if proposal_card.published? %> |
| 4 | </div> | 4 | </div> |
| 5 | <div class="content"> | 5 | <div class="content"> |
| 6 | <div class="title"> | 6 | <div class="title"> |