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,6 +33,7 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle
33 @metric_configuration = find_metric_configuration(metric_configurations, params[:metric_configuration_id].to_i) 33 @metric_configuration = find_metric_configuration(metric_configurations, params[:metric_configuration_id].to_i)
34 @metric = @metric_configuration.metric 34 @metric = @metric_configuration.metric
35 @reading_group_names_and_ids = reading_group_names_and_ids 35 @reading_group_names_and_ids = reading_group_names_and_ids
  36 + @ranges = Kalibro::Range.ranges_of(@metric_configuration.id)
36 end 37 end
37 =begin 38 =begin
38 def new_compound_metric_configuration 39 def new_compound_metric_configuration
plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb
@@ -4,62 +4,41 @@ class MezuroPluginRangeController < MezuroPluginMyprofileController @@ -4,62 +4,41 @@ class MezuroPluginRangeController < MezuroPluginMyprofileController
4 4
5 def new_range 5 def new_range
6 @content_id = params[:id] 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 end 8 end
11 9
12 def edit_range 10 def edit_range
13 - @beginning_id = params[:beginning_id] 11 + @range = Kalibro::Range.new(params[:range])
14 @content_id = params[:id] 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 end 14 end
21 15
22 def create_range 16 def create_range
23 - @configuration_content = profile.articles.find(params[:id]) 17 + metric_configuration_id = params[:metric_configuration_id].to_i
24 @range = Kalibro::Range.new params[:range] 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 @error = metric_configuration.errors[0].message 21 @error = metric_configuration.errors[0].message
31 end 22 end
32 end 23 end
33 24
34 def update_range 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 @error = metric_configuration.errors[0].message 30 @error = metric_configuration.errors[0].message
44 end 31 end
45 end 32 end
46 33
47 def remove_range 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 else 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 end 42 end
64 end 43 end
65 44
plugins/mezuro/lib/kalibro/range.rb
@@ -30,16 +30,23 @@ class Kalibro::Range < Kalibro::Model @@ -30,16 +30,23 @@ class Kalibro::Range < Kalibro::Model
30 end 30 end
31 end 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 end 43 end
36 44
37 - def mezuro_color  
38 - @color.nil? ? "e4ca2d" : @color.gsub(/^ff/, "")  
39 - end  
40 -  
41 def self.ranges_of( metric_configuration_id ) 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 end 50 end
44 51
45 def save( metric_configuration_id ) 52 def save( metric_configuration_id )
@@ -52,4 +59,12 @@ class Kalibro::Range < Kalibro::Model @@ -52,4 +59,12 @@ class Kalibro::Range < Kalibro::Model
52 end 59 end
53 end 60 end
54 61
  62 + private
  63 +
  64 + def reading
  65 + @reading ||= Kalibro::Reading.find(reading_id)
  66 + @reading
  67 + end
  68 +
55 end 69 end
  70 +
plugins/mezuro/views/mezuro_plugin_metric_configuration/edit_native.html.erb
@@ -34,20 +34,15 @@ @@ -34,20 +34,15 @@
34 <td></td> 34 <td></td>
35 <td></td> 35 <td></td>
36 </tr> 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 </table> 41 </table>
47 42
48 <br/> 43 <br/>
49 <% if owner %> 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 <% end %> 46 <% end %>
52 <div id="range_form" style="display:none"></div> 47 <div id="range_form" style="display:none"></div>
53 48
plugins/mezuro/views/mezuro_plugin_range/_range_form.html.erb
1 <%= hidden_field_tag :id, @content_id %> 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 <table> 6 <table>
5 <tr> 7 <tr>
6 <td> 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 <%= f.label :beginning, "(*) Beginning:" %> 9 <%= f.label :beginning, "(*) Beginning:" %>
16 </td> 10 </td>
17 <td> 11 <td>
@@ -36,14 +30,6 @@ @@ -36,14 +30,6 @@
36 </tr> 30 </tr>
37 <tr> 31 <tr>
38 <td> 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 <%= f.label :comments, "Comments:" %> 33 <%= f.label :comments, "Comments:" %>
48 </td> 34 </td>
49 <td> 35 <td>