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 3 def level_chart(target)
4 4  
5 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 7 end
8 8 end
9 9  
  10 + def score_point_class(point)
  11 + point.num_points > 0 ? 'positive' : 'negative'
  12 + end
  13 +
10 14 end
... ...
lib/merit/point_rules.rb
... ... @@ -60,7 +60,8 @@ module Merit
60 60 :profile => lambda {|vote| vote.voteable.profile},
61 61 :value => lambda {|vote| vote.vote},
62 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 66 :vote_voteable => {
66 67 :action => 'vote#create',
... ... @@ -75,7 +76,6 @@ module Merit
75 76 :action => 'vote#create',
76 77 :undo_action => 'vote#destroy',
77 78 :to => lambda {|vote| vote.voter},
78   - :profile => lambda {|vote| vote.voter},
79 79 :value => lambda {|vote| 1},
80 80 :description => _('Point weight for a voter'),
81 81 :default_weight => 10
... ...
public/style.css
... ... @@ -63,11 +63,44 @@
63 63 font-size: 10px;
64 64 }
65 65  
66   -.gamification .pie-chart {
  66 +.gamification-dashboard .pie-chart {
67 67 position: relative;
68 68 text-align: center;
69 69 }
70   -.gamification .pie-chart canvas {
  70 +.gamification-dashboard .pie-chart canvas {
71 71 position: absolute;
72 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 1 <%= javascript_include_tag '/plugins/gamification/slick.min.js' %>
  2 +<%= javascript_include_tag 'jquery.timeago.js' %>
2 3 <%= stylesheet_link_tag '/plugins/gamification/slick.css' %>
3 4 <%= stylesheet_link_tag '/plugins/gamification/slick-theme.css' %>
4 5  
5 6 <% extend GamificationPlugin::DashboardHelper %>
6 7  
7   -<div class="gamification">
  8 +<div class="gamification gamification-dashboard">
8 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 18 </div>
22   - <% end %>
23   - <div class="score total">
24   - <span class="label"><%= _('Total: ') %></span>
25   - <span class="value"><%= @target.points %></span>
26 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 32 </div>
  33 +
  34 + <% unless environment.gamification_plugin_badges.empty? %>
28 35 <div class="badges">
29 36 <h3><%= _('Badges') %></h3>
30 37 <ul class="badge-list">
... ... @@ -39,6 +46,7 @@
39 46 <% end %>
40 47 </ul>
41 48 </div>
  49 + <% end %>
42 50 </div>
43 51  
44 52 <script>
... ... @@ -49,4 +57,5 @@ $(&#39;.gamification .badge-list&#39;).slick({
49 57 slidesToShow: 3,
50 58 slidesToScroll: 1,
51 59 });
  60 +$(".gamification-dashboard .timeago").timeago();
52 61 </script>
... ...