Commit 69df29be02866545fd4f67e64d5d9a76430aa186

Authored by Leandro Santos
2 parents 350c561d 6ec6987c

Merge branch 'master' of gitlab.com:noosfero-plugins/gamification

lib/gamification_plugin/dashboard_helper.rb
@@ -3,8 +3,12 @@ module GamificationPlugin::DashboardHelper @@ -3,8 +3,12 @@ module GamificationPlugin::DashboardHelper
3 def level_chart(target) 3 def level_chart(target)
4 4
5 content_tag(:div, :class => "level pie-chart", 'data-percent' => @target.gamification_plugin_level_percent) do 5 content_tag(:div, :class => "level pie-chart", 'data-percent' => @target.gamification_plugin_level_percent) do
6 - content_tag :span, @target.level 6 + content_tag :span, @target.level, :class => 'level-value'
7 end 7 end
8 end 8 end
9 9
  10 + def score_point_class(point)
  11 + point.num_points > 0 ? 'positive' : 'negative'
  12 + end
  13 +
10 end 14 end
lib/merit/point_rules.rb
@@ -60,7 +60,8 @@ module Merit @@ -60,7 +60,8 @@ module Merit
60 :profile => lambda {|vote| vote.voteable.profile}, 60 :profile => lambda {|vote| vote.voteable.profile},
61 :value => lambda {|vote| vote.vote}, 61 :value => lambda {|vote| vote.vote},
62 :description => _('Point weight for the author of a voted content'), 62 :description => _('Point weight for the author of a voted content'),
63 - :default_weight => 50 63 + :default_weight => 50,
  64 + :condition => lambda {|vote| vote.voteable.profile.community? }
64 }, 65 },
65 :vote_voteable => { 66 :vote_voteable => {
66 :action => 'vote#create', 67 :action => 'vote#create',
@@ -75,7 +76,6 @@ module Merit @@ -75,7 +76,6 @@ module Merit
75 :action => 'vote#create', 76 :action => 'vote#create',
76 :undo_action => 'vote#destroy', 77 :undo_action => 'vote#destroy',
77 :to => lambda {|vote| vote.voter}, 78 :to => lambda {|vote| vote.voter},
78 - :profile => lambda {|vote| vote.voter},  
79 :value => lambda {|vote| 1}, 79 :value => lambda {|vote| 1},
80 :description => _('Point weight for a voter'), 80 :description => _('Point weight for a voter'),
81 :default_weight => 10 81 :default_weight => 10
public/style.css
@@ -63,11 +63,44 @@ @@ -63,11 +63,44 @@
63 font-size: 10px; 63 font-size: 10px;
64 } 64 }
65 65
66 -.gamification .pie-chart { 66 +.gamification-dashboard .pie-chart {
67 position: relative; 67 position: relative;
68 text-align: center; 68 text-align: center;
69 } 69 }
70 -.gamification .pie-chart canvas { 70 +.gamification-dashboard .pie-chart canvas {
71 position: absolute; 71 position: absolute;
72 left: 0; 72 left: 0;
73 } 73 }
  74 +.gamification-dashboard .pie-chart .level-value {
  75 + font-size: 20px;
  76 + font-weight: bold;
  77 + color: rgb(64, 64, 65);
  78 +}
  79 +.gamification-dashboard .points, .gamification-dashboard .badges {
  80 + margin: 10px 10px 25px 10px;
  81 +}
  82 +.gamification-dashboard .points .level {
  83 + display: inline-block;
  84 + vertical-align: top;
  85 +}
  86 +.gamification-dashboard .points .scores {
  87 + display: inline-block;
  88 + margin-left: 40px;
  89 +}
  90 +.gamification-dashboard .points .level .total {
  91 + text-align: center;
  92 + color: rgb(139, 139, 139);
  93 +}
  94 +.gamification-dashboard .scores .negative {
  95 + color: red;
  96 +}
  97 +.gamification-dashboard .scores .positive {
  98 + color: green;
  99 +}
  100 +.gamification-dashboard .scores .value {
  101 + font-weight: bold;
  102 + width: 30px;
  103 + display: inline-block;
  104 + text-align: right;
  105 + margin-right: 4px;
  106 +}
views/gamification/dashboard.html.erb
1 <%= javascript_include_tag '/plugins/gamification/slick.min.js' %> 1 <%= javascript_include_tag '/plugins/gamification/slick.min.js' %>
  2 +<%= javascript_include_tag 'jquery.timeago.js' %>
2 <%= stylesheet_link_tag '/plugins/gamification/slick.css' %> 3 <%= stylesheet_link_tag '/plugins/gamification/slick.css' %>
3 <%= stylesheet_link_tag '/plugins/gamification/slick-theme.css' %> 4 <%= stylesheet_link_tag '/plugins/gamification/slick-theme.css' %>
4 5
5 <% extend GamificationPlugin::DashboardHelper %> 6 <% extend GamificationPlugin::DashboardHelper %>
6 7
7 -<div class="gamification"> 8 +<div class="gamification gamification-dashboard">
8 <h1><%= _('Gamification Dashboard for %s' % @target.identifier) %></h1> 9 <h1><%= _('Gamification Dashboard for %s' % @target.identifier) %></h1>
9 10
10 - <div>  
11 - <h3> <%= _('Level') %></h3>  
12 - <%= level_chart(@target) %>  
13 - </div>  
14 -  
15 - <div class="scores">  
16 - <h3><%= _('Score') %></h3>  
17 - <% Merit::PointRules::AVAILABLE_RULES.each do |category, setting| %>  
18 - <div class="score <%= category %>">  
19 - <span class="label"><%= _('%s: ' % category) %></span>  
20 - <span class="value"><%= @target.points(:category => category) %></span> 11 + <div class="points">
  12 + <div class="level">
  13 + <h3> <%= _('Level') %></h3>
  14 + <%= level_chart(@target) %>
  15 + <div class="score total">
  16 + <span class="label"><%= _('Score: ') %></span>
  17 + <span class="value"><%= @target.points %></span>
21 </div> 18 </div>
22 - <% end %>  
23 - <div class="score total">  
24 - <span class="label"><%= _('Total: ') %></span>  
25 - <span class="value"><%= @target.points %></span>  
26 </div> 19 </div>
  20 +
  21 + <% unless @target.score_points.empty? %>
  22 + <div class="scores">
  23 + <h3><%= _('Last Score Points') %></h3>
  24 + <% @target.score_points.order('created_at desc').limit(5).each do |point| %>
  25 + <div class="score <%= point.score.category %>">
  26 + <span class="value <%= score_point_class(point) %>"><%= point.num_points %></span>
  27 + <span class="date timeago" title="<%= point.created_at %>"><%= point.created_at %></span>
  28 + </div>
  29 + <% end %>
  30 + </div>
  31 + <% end %>
27 </div> 32 </div>
  33 +
  34 + <% unless environment.gamification_plugin_badges.empty? %>
28 <div class="badges"> 35 <div class="badges">
29 <h3><%= _('Badges') %></h3> 36 <h3><%= _('Badges') %></h3>
30 <ul class="badge-list"> 37 <ul class="badge-list">
@@ -39,6 +46,7 @@ @@ -39,6 +46,7 @@
39 <% end %> 46 <% end %>
40 </ul> 47 </ul>
41 </div> 48 </div>
  49 + <% end %>
42 </div> 50 </div>
43 51
44 <script> 52 <script>
@@ -49,4 +57,5 @@ $(&#39;.gamification .badge-list&#39;).slick({ @@ -49,4 +57,5 @@ $(&#39;.gamification .badge-list&#39;).slick({
49 slidesToShow: 3, 57 slidesToShow: 3,
50 slidesToScroll: 1, 58 slidesToScroll: 1,
51 }); 59 });
  60 +$(".gamification-dashboard .timeago").timeago();
52 </script> 61 </script>