From 29939fc2821140392c22717cb51c2adb09933866 Mon Sep 17 00:00:00 2001 From: João M. M. da Silva Date: Thu, 24 Jan 2013 15:35:11 -0200 Subject: [PATCH] [Mezuro] Show ranges in metric configuration edition view. --- plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb | 1 + plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb | 53 ++++++++++++++++------------------------------------- plugins/mezuro/lib/kalibro/range.rb | 29 ++++++++++++++++++++++------- plugins/mezuro/views/mezuro_plugin_metric_configuration/edit_native.html.erb | 15 +++++---------- plugins/mezuro/views/mezuro_plugin_range/_range_form.html.erb | 20 +++----------------- 5 files changed, 47 insertions(+), 71 deletions(-) diff --git a/plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb b/plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb index c30556b..e9f5863 100644 --- a/plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb +++ b/plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb @@ -33,6 +33,7 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle @metric_configuration = find_metric_configuration(metric_configurations, params[:metric_configuration_id].to_i) @metric = @metric_configuration.metric @reading_group_names_and_ids = reading_group_names_and_ids + @ranges = Kalibro::Range.ranges_of(@metric_configuration.id) end =begin def new_compound_metric_configuration diff --git a/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb b/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb index c8baf15..a07b095 100644 --- a/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb +++ b/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb @@ -4,62 +4,41 @@ class MezuroPluginRangeController < MezuroPluginMyprofileController def new_range @content_id = params[:id] - @metric_name = params[:metric_name] - @range = Kalibro::Range.new - @range_color = "#000000" + @metric_configuration_id = params[:metric_configuration_id] end def edit_range - @beginning_id = params[:beginning_id] + @range = Kalibro::Range.new(params[:range]) @content_id = params[:id] - configuration_name = profile.articles.find(@content_id).name - @metric_name = params[:metric_name] - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_name, @metric_name) - @range = metric_configuration.ranges.find{|range| range.beginning == @beginning_id.to_f || @beginning_id =="-INF" } - @range_color = "#" + @range.color.to_s.gsub(/^ff/, "") + @metric_configuration_id = params[:metric_configuration_id] end def create_range - @configuration_content = profile.articles.find(params[:id]) + metric_configuration_id = params[:metric_configuration_id].to_i @range = Kalibro::Range.new params[:range] - metric_name = params[:metric_name] - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name) - metric_configuration.add_range(@range) - metric_configuration.save - if metric_configuration_has_errors? metric_configuration + @range.save metric_configuration_id + if !@range.errors.empty? @error = metric_configuration.errors[0].message end end def update_range - configuration_content = profile.articles.find(params[:id]) - metric_name = params[:metric_name] - beginning_id = params[:beginning_id] - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name) - index = metric_configuration.ranges.index{ |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" } - metric_configuration.ranges[index] = Kalibro::Range.new params[:range] - metric_configuration.save - if metric_configuration_has_errors? metric_configuration + metric_configuration_id = params[:metric_configuration_id].to_i + @range = Kalibro::Range.new params[:range] + @range.save metric_configuration_id + if !@range.errors.empty? @error = metric_configuration.errors[0].message end end def remove_range - configuration_content = profile.articles.find(params[:id]) - metric_name = params[:metric_name] - beginning_id = params[:beginning_id] - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name) - metric_configuration.ranges.delete_if { |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" } - metric_configuration.save - if metric_configuration_has_errors? metric_configuration - redirect_to_error_page metric_configuration.errors[0].message + configuration_content_id = params[:id] + metric_configuration_id = params[:metric_configuration_id] + Kalibro::Range.new(params[:range]).destroy + if metric_configuration.metric.compound + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_compound_metric_configuration?id=#{configuration_content_id}&metric_configuration_id=#{metric_configuration_id}" else - formatted_metric_name = metric_name.gsub(/\s/, '+') - if metric_configuration.metric.class == Kalibro::CompoundMetric - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_compound_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}" - else - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}" - end + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_native_metric_configuration?id=#{configuration_content_id}&metric_configuration_id=#{metric_configuration_id}" end end diff --git a/plugins/mezuro/lib/kalibro/range.rb b/plugins/mezuro/lib/kalibro/range.rb index 4933bf4..75804d2 100644 --- a/plugins/mezuro/lib/kalibro/range.rb +++ b/plugins/mezuro/lib/kalibro/range.rb @@ -30,16 +30,23 @@ class Kalibro::Range < Kalibro::Model end end - def grade=(value) - @grade = value.to_f + def label + reading.label + end + + def grade + reading.grade + end + + def color + reading.color end - def mezuro_color - @color.nil? ? "e4ca2d" : @color.gsub(/^ff/, "") - end - def self.ranges_of( metric_configuration_id ) - request(:ranges_of, {:metric_configuration_id => metric_configuration_id} )[:range].to_a.map { |range| new range } + response = request(:ranges_of, {:metric_configuration_id => metric_configuration_id} )[:range] + response = [] if response.nil? + response = [response] if response.is_a?(Hash) + response.map { |range| new range } end def save( metric_configuration_id ) @@ -52,4 +59,12 @@ class Kalibro::Range < Kalibro::Model end end + private + + def reading + @reading ||= Kalibro::Reading.find(reading_id) + @reading + end + end + diff --git a/plugins/mezuro/views/mezuro_plugin_metric_configuration/edit_native.html.erb b/plugins/mezuro/views/mezuro_plugin_metric_configuration/edit_native.html.erb index 2bd4fdb..afe117e 100644 --- a/plugins/mezuro/views/mezuro_plugin_metric_configuration/edit_native.html.erb +++ b/plugins/mezuro/views/mezuro_plugin_metric_configuration/edit_native.html.erb @@ -34,20 +34,15 @@ - <%# if (@metric_configuration.ranges!=nil) - # @metric_configuration.ranges.each do |range| - %> - <%= #render :partial => "mezuro_plugin_range/range", :locals => {:range => range, :id => @configuration_content.id, - # :metric_name => @metric.name} - %> - <% #end - # end - %> + <% @ranges.each do |range| %> + <%= render :partial => "mezuro_plugin_range/range", :locals => {:range => range, :id => @configuration_content.id, + :metric_configuration_id => @metric_configuration.id} %> + <% end %>
<% if owner %> - <%= link_to_remote "New Range", :url => {:action =>"new_range", :controller => "mezuro_plugin_range", :id => @configuration_content.id, :metric_name => @metric_configuration.id} %> + <%= link_to_remote "New Range", :url => {:action =>"new_range", :controller => "mezuro_plugin_range", :id => @configuration_content.id, :metric_configuration_id => @metric_configuration.id} %> <% end %> diff --git a/plugins/mezuro/views/mezuro_plugin_range/_range_form.html.erb b/plugins/mezuro/views/mezuro_plugin_range/_range_form.html.erb index b064e02..df22651 100644 --- a/plugins/mezuro/views/mezuro_plugin_range/_range_form.html.erb +++ b/plugins/mezuro/views/mezuro_plugin_range/_range_form.html.erb @@ -1,17 +1,11 @@ <%= hidden_field_tag :id, @content_id %> -<%= hidden_field_tag :metric_name, @metric_name %> +<%= hidden_field_tag :metric_configuration_id, @metric_configuration_id %> + +<%= f.hidden_field :id %> - - - - - - - -
- <%= f.label :label, "(*) Label:" %> - - <%= f.text_field :label %> -
<%= f.label :beginning, "(*) Beginning:" %> @@ -36,14 +30,6 @@
- <%= f.label :color, "(*) Color:" %> - - <%= colorpicker_field(:range, :color, :value => @range.mezuro_color) %>Click in the field to change Color -
<%= f.label :comments, "Comments:" %> -- libgit2 0.21.2