Commit 29939fc2821140392c22717cb51c2adb09933866

Authored by João M. M. da Silva
Committed by Paulo Meireles
1 parent 34a1e40f

[Mezuro] Show ranges in metric configuration edition view.

plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb
... ... @@ -33,6 +33,7 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle
33 33 @metric_configuration = find_metric_configuration(metric_configurations, params[:metric_configuration_id].to_i)
34 34 @metric = @metric_configuration.metric
35 35 @reading_group_names_and_ids = reading_group_names_and_ids
  36 + @ranges = Kalibro::Range.ranges_of(@metric_configuration.id)
36 37 end
37 38 =begin
38 39 def new_compound_metric_configuration
... ...
plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb
... ... @@ -4,62 +4,41 @@ class MezuroPluginRangeController < MezuroPluginMyprofileController
4 4  
5 5 def new_range
6 6 @content_id = params[:id]
7   - @metric_name = params[:metric_name]
8   - @range = Kalibro::Range.new
9   - @range_color = "#000000"
  7 + @metric_configuration_id = params[:metric_configuration_id]
10 8 end
11 9  
12 10 def edit_range
13   - @beginning_id = params[:beginning_id]
  11 + @range = Kalibro::Range.new(params[:range])
14 12 @content_id = params[:id]
15   - configuration_name = profile.articles.find(@content_id).name
16   - @metric_name = params[:metric_name]
17   - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_name, @metric_name)
18   - @range = metric_configuration.ranges.find{|range| range.beginning == @beginning_id.to_f || @beginning_id =="-INF" }
19   - @range_color = "#" + @range.color.to_s.gsub(/^ff/, "")
  13 + @metric_configuration_id = params[:metric_configuration_id]
20 14 end
21 15  
22 16 def create_range
23   - @configuration_content = profile.articles.find(params[:id])
  17 + metric_configuration_id = params[:metric_configuration_id].to_i
24 18 @range = Kalibro::Range.new params[:range]
25   - metric_name = params[:metric_name]
26   - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name)
27   - metric_configuration.add_range(@range)
28   - metric_configuration.save
29   - if metric_configuration_has_errors? metric_configuration
  19 + @range.save metric_configuration_id
  20 + if !@range.errors.empty?
30 21 @error = metric_configuration.errors[0].message
31 22 end
32 23 end
33 24  
34 25 def update_range
35   - configuration_content = profile.articles.find(params[:id])
36   - metric_name = params[:metric_name]
37   - beginning_id = params[:beginning_id]
38   - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name)
39   - index = metric_configuration.ranges.index{ |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" }
40   - metric_configuration.ranges[index] = Kalibro::Range.new params[:range]
41   - metric_configuration.save
42   - if metric_configuration_has_errors? metric_configuration
  26 + metric_configuration_id = params[:metric_configuration_id].to_i
  27 + @range = Kalibro::Range.new params[:range]
  28 + @range.save metric_configuration_id
  29 + if !@range.errors.empty?
43 30 @error = metric_configuration.errors[0].message
44 31 end
45 32 end
46 33  
47 34 def remove_range
48   - configuration_content = profile.articles.find(params[:id])
49   - metric_name = params[:metric_name]
50   - beginning_id = params[:beginning_id]
51   - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name)
52   - metric_configuration.ranges.delete_if { |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" }
53   - metric_configuration.save
54   - if metric_configuration_has_errors? metric_configuration
55   - redirect_to_error_page metric_configuration.errors[0].message
  35 + configuration_content_id = params[:id]
  36 + metric_configuration_id = params[:metric_configuration_id]
  37 + Kalibro::Range.new(params[:range]).destroy
  38 + if metric_configuration.metric.compound
  39 + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_compound_metric_configuration?id=#{configuration_content_id}&metric_configuration_id=#{metric_configuration_id}"
56 40 else
57   - formatted_metric_name = metric_name.gsub(/\s/, '+')
58   - if metric_configuration.metric.class == Kalibro::CompoundMetric
59   - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_compound_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}"
60   - else
61   - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}"
62   - end
  41 + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_native_metric_configuration?id=#{configuration_content_id}&metric_configuration_id=#{metric_configuration_id}"
63 42 end
64 43 end
65 44  
... ...
plugins/mezuro/lib/kalibro/range.rb
... ... @@ -30,16 +30,23 @@ class Kalibro::Range < Kalibro::Model
30 30 end
31 31 end
32 32  
33   - def grade=(value)
34   - @grade = value.to_f
  33 + def label
  34 + reading.label
  35 + end
  36 +
  37 + def grade
  38 + reading.grade
  39 + end
  40 +
  41 + def color
  42 + reading.color
35 43 end
36 44  
37   - def mezuro_color
38   - @color.nil? ? "e4ca2d" : @color.gsub(/^ff/, "")
39   - end
40   -
41 45 def self.ranges_of( metric_configuration_id )
42   - request(:ranges_of, {:metric_configuration_id => metric_configuration_id} )[:range].to_a.map { |range| new range }
  46 + response = request(:ranges_of, {:metric_configuration_id => metric_configuration_id} )[:range]
  47 + response = [] if response.nil?
  48 + response = [response] if response.is_a?(Hash)
  49 + response.map { |range| new range }
43 50 end
44 51  
45 52 def save( metric_configuration_id )
... ... @@ -52,4 +59,12 @@ class Kalibro::Range < Kalibro::Model
52 59 end
53 60 end
54 61  
  62 + private
  63 +
  64 + def reading
  65 + @reading ||= Kalibro::Reading.find(reading_id)
  66 + @reading
  67 + end
  68 +
55 69 end
  70 +
... ...
plugins/mezuro/views/mezuro_plugin_metric_configuration/edit_native.html.erb
... ... @@ -34,20 +34,15 @@
34 34 <td></td>
35 35 <td></td>
36 36 </tr>
37   - <%# if (@metric_configuration.ranges!=nil)
38   - # @metric_configuration.ranges.each do |range|
39   - %>
40   - <%= #render :partial => "mezuro_plugin_range/range", :locals => {:range => range, :id => @configuration_content.id,
41   - # :metric_name => @metric.name}
42   - %>
43   - <% #end
44   - # end
45   - %>
  37 + <% @ranges.each do |range| %>
  38 + <%= render :partial => "mezuro_plugin_range/range", :locals => {:range => range, :id => @configuration_content.id,
  39 + :metric_configuration_id => @metric_configuration.id} %>
  40 + <% end %>
46 41 </table>
47 42  
48 43 <br/>
49 44 <% if owner %>
50   - <%= link_to_remote "New Range", :url => {:action =>"new_range", :controller => "mezuro_plugin_range", :id => @configuration_content.id, :metric_name => @metric_configuration.id} %>
  45 + <%= link_to_remote "New Range", :url => {:action =>"new_range", :controller => "mezuro_plugin_range", :id => @configuration_content.id, :metric_configuration_id => @metric_configuration.id} %>
51 46 <% end %>
52 47 <div id="range_form" style="display:none"></div>
53 48  
... ...
plugins/mezuro/views/mezuro_plugin_range/_range_form.html.erb
1 1 <%= hidden_field_tag :id, @content_id %>
2   -<%= hidden_field_tag :metric_name, @metric_name %>
  2 +<%= hidden_field_tag :metric_configuration_id, @metric_configuration_id %>
  3 +
  4 +<%= f.hidden_field :id %>
3 5  
4 6 <table>
5 7 <tr>
6 8 <td>
7   - <%= f.label :label, "(*) Label:" %>
8   - </td>
9   - <td>
10   - <%= f.text_field :label %>
11   - </td>
12   - </tr>
13   - <tr>
14   - <td>
15 9 <%= f.label :beginning, "(*) Beginning:" %>
16 10 </td>
17 11 <td>
... ... @@ -36,14 +30,6 @@
36 30 </tr>
37 31 <tr>
38 32 <td>
39   - <%= f.label :color, "(*) Color:" %>
40   - </td>
41   - <td>
42   - <%= colorpicker_field(:range, :color, :value => @range.mezuro_color) %>Click in the field to change Color
43   - </td>
44   - </tr>
45   - <tr>
46   - <td>
47 33 <%= f.label :comments, "Comments:" %>
48 34 </td>
49 35 <td>
... ...