Commit af3fa5536cc390cbcea7a22c1d7bc6a2af110737
1 parent
8dcceb60
Exists in
master
and in
1 other branch
Manage gamification point categories throught admin
Showing
3 changed files
with
92 additions
and
0 deletions
Show diff stats
controllers/admin/gamification_plugin_points_controller.rb
0 → 100644
| ... | ... | @@ -0,0 +1,43 @@ |
| 1 | +class GamificationPluginPointsController < PluginAdminController | |
| 2 | + | |
| 3 | + def index | |
| 4 | + @categories = GamificationPlugin::PointsCategorization.grouped_profiles | |
| 5 | + end | |
| 6 | + | |
| 7 | + def create | |
| 8 | + if params[:identifier].blank? | |
| 9 | + profile_id = nil | |
| 10 | + else | |
| 11 | + profile = Profile.where identifier: params[:identifier] | |
| 12 | + profile = profile.first | |
| 13 | + if profile.nil? | |
| 14 | + flash[:notice] = _("Can't find a profile with the given identifier") | |
| 15 | + redirect_to action: :index | |
| 16 | + return | |
| 17 | + end | |
| 18 | + profile_id = profile.id | |
| 19 | + end | |
| 20 | + | |
| 21 | + GamificationPlugin::PointsType.all.each do |pType| | |
| 22 | + GamificationPlugin::PointsCategorization.create point_type_id: pType.id, profile_id: profile_id, weight: 0 | |
| 23 | + end | |
| 24 | + | |
| 25 | + redirect_to action: :edit, id: profile_id | |
| 26 | + end | |
| 27 | + | |
| 28 | + def edit | |
| 29 | + unless params[:gamification_plugin_points_categorizations].blank? | |
| 30 | + params[:gamification_plugin_points_categorizations].each do |id, category| | |
| 31 | + GamificationPlugin::PointsCategorization.where(id: id).update_all(weight: category[:weight]) | |
| 32 | + end | |
| 33 | + redirect_to action: :index | |
| 34 | + end | |
| 35 | + @profile = Profile.find params[:id] unless params[:id].nil? | |
| 36 | + @categories = GamificationPlugin::PointsCategorization.where(profile_id: params[:id]) | |
| 37 | + end | |
| 38 | + | |
| 39 | + def destroy | |
| 40 | + GamificationPlugin::PointsCategorization.where(profile_id: params[:id]).destroy_all | |
| 41 | + redirect_to action: :index | |
| 42 | + end | |
| 43 | +end | ... | ... |
| ... | ... | @@ -0,0 +1,21 @@ |
| 1 | +<h1><%= _('Gamification Settings: Point Rules')%></h1> | |
| 2 | + | |
| 3 | +<% title = profile.nil? ? _('general pontuation rules') : _('pontuation rules for %{name}') % {name: profile.name} %> | |
| 4 | +<h3><%= title %></h3> | |
| 5 | +<%= form_tag({action: :edit}, class: 'gamification_plugin_admin_points') do %> | |
| 6 | + <div class="point-rules"> | |
| 7 | + <% @categories.each do |category| %> | |
| 8 | + <%= fields_for "gamification_plugin_points_categorizations[]", category do |c| %> | |
| 9 | + <% desc = _(category.point_type.description) || category.point_type.name %> | |
| 10 | + <%= labelled_form_field(desc, c.text_field(:weight, :value => category.weight)) %> | |
| 11 | + <% end %> | |
| 12 | + <% end %> | |
| 13 | + </div> | |
| 14 | + | |
| 15 | + <% button_bar do %> | |
| 16 | + <%= submit_button(:save, c_('Save'), :cancel => {:action => 'index'}) %> | |
| 17 | + <% end %> | |
| 18 | + | |
| 19 | +<% end %> | |
| 20 | + | |
| 21 | + | ... | ... |
| ... | ... | @@ -0,0 +1,28 @@ |
| 1 | +<h1><%= _('Gamification Plugin: Listing Points by profile') %></h1> | |
| 2 | + | |
| 3 | +<div class=error><%= flash[:notice] %></div> | |
| 4 | +<table> | |
| 5 | + <tr> | |
| 6 | + <th>Comunidade</th> | |
| 7 | + <th></th> | |
| 8 | + <th></th> | |
| 9 | + </tr> | |
| 10 | + | |
| 11 | +<% @categories.each do |category| %> | |
| 12 | + <tr> | |
| 13 | + <td><%= category.profile.nil? ? _('General Pontuation') : category.profile.name %></td> | |
| 14 | + <td><%= link_to 'Edit', {action: :edit, id: category.profile_id} %></td> | |
| 15 | + <td><%= button_without_text :delete, _('Remove'), {:action => :destroy, :id => category.profile_id}, :method => :post, :confirm => _('Are you sure?') %></td> | |
| 16 | + </tr> | |
| 17 | +<% end %> | |
| 18 | +</table> | |
| 19 | + | |
| 20 | +<br /> | |
| 21 | + | |
| 22 | +<%= form_tag({action: :create}, class: "gamification_plugin_activate_profile") do %> | |
| 23 | + <%= labelled_form_field(_('Activate pontuation rules for: '), text_field_tag(:identifier, nil,placeholder: _("Profile"), size: 40)) %> | |
| 24 | + <%= submit_button 'forward', _('submit') %> | |
| 25 | +<% end %> | |
| 26 | + | |
| 27 | +<%= link_to 'Back', :controller => 'gamification_plugin_admin', :action => :index %> | |
| 28 | + | ... | ... |