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 5025f95..a3ec40a 100644
--- a/plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb
+++ b/plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb
@@ -15,13 +15,13 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle
end
def create_native
+ configuration_content = profile.articles.find(params[:id])
metric_configuration = Kalibro::MetricConfiguration.create(params[:metric_configuration])
if metric_configuration_has_errors? metric_configuration
redirect_to_error_page metric_configuration.errors[0].message
else
- id = params[:id]
- redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_native?id=#{id}&metric_configuration_id=#{metric_configuration.id}"
+ redirect_to(metric_configuration_url(configuration_content))
end
end
@@ -42,7 +42,7 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle
if metric_configuration_has_errors? metric_configuration
redirect_to_error_page metric_configuration.errors[0].message
else
- redirect_to "/#{profile.identifier}/#{@configuration_content.slug}"
+ redirect_to @configuration_content.view_url
end
end
@@ -54,7 +54,7 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle
if metric_configuration_has_errors? metric_configuration
redirect_to_error_page metric_configuration.errors[0].message
else
- redirect_to "/#{profile.identifier}/#{configuration_content.slug}"
+ redirect_to configuration_content.view_url
end
end
@@ -68,13 +68,13 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle
end
def create_compound
+ configuration_content = profile.articles.find(params[:id])
metric_configuration = Kalibro::MetricConfiguration.create(params[:metric_configuration])
if metric_configuration_has_errors? metric_configuration
redirect_to_error_page metric_configuration.errors[0].message
else
- id = params[:id]
- redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_compound?id=#{id}&metric_configuration_id=#{metric_configuration.id}"
+ redirect_to(metric_configuration_url(configuration_content))
end
end
@@ -105,4 +105,14 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle
def configuration_content_has_errors?
not @configuration_content.errors[:base].nil?
end
+
+ def metric_configuration_url configuration_content
+ url = configuration_content.view_url
+ url[:controller] = controller_name
+ url[:id] = configuration_content.id
+ url[:metric_configuration_id] = params[:metric_configuration][:id].to_i
+ url[:action] = (params[:metric_configuration][:metric][:compound] ? "edit_compound" : "edit_native")
+ url
+ end
end
+
diff --git a/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb b/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb
index 2f6e983..7c6d9eb 100644
--- a/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb
+++ b/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb
@@ -6,6 +6,8 @@ class MezuroPluginRangeController < MezuroPluginMyprofileController
@content_id = params[:id].to_i
@metric_configuration_id = params[:metric_configuration_id].to_i
@reading_labels_and_ids = reading_labels_and_ids
+ @reading_group_id = params[:reading_group_id].to_i
+ @compound = params[:compound]
end
def edit
@@ -18,6 +20,8 @@ class MezuroPluginRangeController < MezuroPluginMyprofileController
def create
metric_configuration_id = params[:metric_configuration_id].to_i
+ @reading_group_id = params[:reading_group_id].to_i
+ @compound = params[:compound]
@range = Kalibro::Range.new params[:range]
@range.save metric_configuration_id
if !@range.errors.empty?
@@ -35,19 +39,23 @@ class MezuroPluginRangeController < MezuroPluginMyprofileController
end
def remove
- configuration_content_id = params[:id].to_i
- metric_configuration_id = params[:metric_configuration_id].to_i
- compound = params[:compound]
+ configuration_content = profile.articles.find(params[:id])
+
Kalibro::Range.new({:id => params[:range_id].to_i}).destroy
- if compound
- redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_compound?id=#{configuration_content_id}&metric_configuration_id=#{metric_configuration_id}"
- else
- redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/metric_configuration/edit_native?id=#{configuration_content_id}&metric_configuration_id=#{metric_configuration_id}"
- end
+ redirect_to(metric_configuration_url(configuration_content))
end
private
+ def metric_configuration_url configuration_content
+ url = configuration_content.view_url
+ url[:controller] = "mezuro_plugin_metric_configuration"
+ url[:id] = configuration_content.id
+ url[:metric_configuration_id] = params[:metric_configuration_id].to_i
+ url[:action] = (params[:compound] ? "edit_compound" : "edit_native")
+ url
+ end
+
def reading_labels_and_ids
array = Kalibro::Reading.readings_of(params[:reading_group_id].to_i).map { |reading| [reading.label, reading.id] }
array.sort { |x,y| x.first.downcase <=> y.first.downcase }
diff --git a/plugins/mezuro/controllers/myprofile/mezuro_plugin_reading_controller.rb b/plugins/mezuro/controllers/myprofile/mezuro_plugin_reading_controller.rb
index 02c3253..8c8d361 100644
--- a/plugins/mezuro/controllers/myprofile/mezuro_plugin_reading_controller.rb
+++ b/plugins/mezuro/controllers/myprofile/mezuro_plugin_reading_controller.rb
@@ -11,11 +11,10 @@ class MezuroPluginReadingController < MezuroPluginMyprofileController
def create
reading_group_content = profile.articles.find(params[:id])
-
reading = Kalibro::Reading.new params[:reading]
if( reading.save(reading_group_content.reading_group_id) )
- redirect_to "/#{profile.identifier}/#{reading_group_content.name.downcase.gsub(/\s/, '-').gsub(/[^0-9A-Za-z\-]/, '')}"
+ redirect_to reading_group_content.view_url
else
redirect_to_error_page reading.errors[0].message
end
@@ -35,7 +34,7 @@ class MezuroPluginReadingController < MezuroPluginMyprofileController
reading = Kalibro::Reading.new params[:reading]
if( reading.save(reading_group_content.reading_group_id) )
- redirect_to "/profile/#{profile.identifier}/plugin/mezuro/reading/show/#{reading_group_content.id}?reading_id=#{reading.id}"
+ redirect_to reading_group_content.view_url
else
redirect_to_error_page reading.errors[0].message
end
@@ -46,7 +45,7 @@ class MezuroPluginReadingController < MezuroPluginMyprofileController
reading = Kalibro::Reading.find params[:reading_id]
reading.destroy
if( reading.errors.empty? )
- redirect_to "/#{profile.identifier}/#{reading_group_content.name.downcase.gsub(/\s/, '-')}"
+ redirect_to reading_group_content.view_url
else
redirect_to_error_page reading.errors[0].message
end
diff --git a/plugins/mezuro/controllers/profile/mezuro_plugin_repository_controller.rb b/plugins/mezuro/controllers/profile/mezuro_plugin_repository_controller.rb
index b94de3b..9fa12b5 100644
--- a/plugins/mezuro/controllers/profile/mezuro_plugin_repository_controller.rb
+++ b/plugins/mezuro/controllers/profile/mezuro_plugin_repository_controller.rb
@@ -25,7 +25,7 @@ class MezuroPluginRepositoryController < MezuroPluginProfileController
if( repository.errors.empty? )
repository.process
- redirect_to "/profile/#{profile.identifier}/plugin/mezuro/repository/show/#{project_content.id}?repository_id=#{repository.id}"
+ redirect_to(repository_url(project_content))
else
redirect_to_error_page repository.errors[0].message
end
@@ -56,7 +56,7 @@ class MezuroPluginRepositoryController < MezuroPluginProfileController
if( repository.errors.empty? )
repository.process
- redirect_to "/profile/#{profile.identifier}/plugin/mezuro/repository/show/#{project_content.id}?repository_id=#{repository.id}"
+ redirect_to(repository_url(project_content))
else
redirect_to_error_page repository.errors[0].message
end
@@ -76,10 +76,19 @@ class MezuroPluginRepositoryController < MezuroPluginProfileController
repository = project_content.repositories.select{ |repository| repository.id.to_s == params[:repository_id] }.first
repository.destroy
if( repository.errors.empty? )
- redirect_to "/#{profile.identifier}/#{project_content.name.downcase.gsub(/\s/, '-')}"
+ redirect_to project_content.view_url
else
redirect_to_error_page repository.errors[0].message
end
end
+ def repository_url project_content
+ url = project_content.view_url
+ url[:controller] = controller_name
+ url[:id] = project_content.id
+ url[:repository_id] = params[:repository_id].to_i
+ url[:action] = "show"
+ url
+ end
+
end
diff --git a/plugins/mezuro/test/functional/myprofile/mezuro_plugin_metric_configuration_controller_test.rb b/plugins/mezuro/test/functional/myprofile/mezuro_plugin_metric_configuration_controller_test.rb
index b4c471c..b7dc3a7 100644
--- a/plugins/mezuro/test/functional/myprofile/mezuro_plugin_metric_configuration_controller_test.rb
+++ b/plugins/mezuro/test/functional/myprofile/mezuro_plugin_metric_configuration_controller_test.rb
@@ -117,14 +117,14 @@ class MezuroPluginMetricConfigurationControllerTest < ActionController::TestCase
@native_metric_configuration.expects(:update_attributes).returns(true) #FIXME need .with(some_hash), should it mock the request?.
get :update, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration => @native_metric_configuration_hash
assert_equal @configuration_content, assigns(:configuration_content)
- assert_response 302
+ assert_response :redirect
end
should 'remove' do
Kalibro::MetricConfiguration.expects(:new).with({:id => @native_metric_configuration.id}).returns(@native_metric_configuration)
@native_metric_configuration.expects(:destroy).returns()
get :remove, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration_id => @native_metric_configuration.id
- assert_response 302
+ assert_response :redirect
end
end
diff --git a/plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb b/plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb
index 9da7fb8..ba68a7e 100644
--- a/plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb
+++ b/plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb
@@ -34,11 +34,13 @@ class MezuroPluginRangeControllerTest < ActionController::TestCase
should 'set correct attributes to create a new range' do
Kalibro::Reading.expects(:readings_of).with(@metric_configuration.reading_group_id).returns([@reading])
- get :new, :profile => @profile.identifier, :id => @content.id, :metric_configuration_id => @metric_configuration.id, :reading_group_id => @metric_configuration.reading_group_id
+ get :new, :profile => @profile.identifier, :id => @content.id, :metric_configuration_id => @metric_configuration.id, :reading_group_id => @metric_configuration.reading_group_id, :compound => @metric_configuration.metric.compound
assert_equal @content.id, assigns(:content_id)
assert_equal @metric_configuration.id, assigns(:metric_configuration_id)
assert_equal [[@reading.label,@reading.id]], assigns(:reading_labels_and_ids)
- assert_response 200
+ assert_equal @metric_configuration.reading_group_id, assigns(:reading_group_id)
+ assert_equal @metric_configuration.metric.compound, assigns(:compound)
+ assert_response :success
end
should 'set correct attributes to edit a range' do
@@ -49,7 +51,7 @@ class MezuroPluginRangeControllerTest < ActionController::TestCase
assert_equal @metric_configuration.id, assigns(:metric_configuration_id)
assert_equal [[@reading.label,@reading.id]], assigns(:reading_labels_and_ids)
assert_equal @range, assigns(:range)
- assert_response 200
+ assert_response :success
end
should 'test create instance range' do
@@ -57,9 +59,11 @@ class MezuroPluginRangeControllerTest < ActionController::TestCase
:metric_configuration_id => @metric_configuration.id,
:range => @created_range.to_hash}).returns(:range_id => @range.id)
Kalibro::Reading.expects(:find).with(@created_range.reading_id).returns(@reading)
- get :create, :profile => @profile.identifier, :range => @created_range_hash, :metric_configuration_id => @metric_configuration.id
+ get :create, :profile => @profile.identifier, :range => @created_range_hash, :metric_configuration_id => @metric_configuration.id, :reading_group_id => @metric_configuration.reading_group_id, :compound => @metric_configuration.metric.compound
assert_equal @range.id, assigns(:range).id
- assert_response 200
+ assert_equal @metric_configuration.reading_group_id, assigns(:reading_group_id)
+ assert_equal @metric_configuration.metric.compound, assigns(:compound)
+ assert_response :success
end
should 'test update range' do
@@ -68,13 +72,13 @@ class MezuroPluginRangeControllerTest < ActionController::TestCase
:range => @range.to_hash}).returns(:range_id => @range.id)
get :update, :profile => @profile.identifier, :range => @range_hash, :metric_configuration_id => @metric_configuration.id
assert_equal @range.id, assigns(:range).id
- assert_response 200
+ assert_response :success
end
should 'test remove range in native metric configuration' do
Kalibro::Range.expects(:new).with({:id => @range.id}).returns(@range)
@range.expects(:destroy).with().returns()
get :remove, :profile => @profile.identifier, :id => @content.id, :metric_configuration_id => @metric_configuration.id, :range_id => @range.id, :compound => false
- assert_response 302
+ assert_response :redirect
end
end
diff --git a/plugins/mezuro/test/functional/profile/mezuro_plugin_module_result_controller_test.rb b/plugins/mezuro/test/functional/profile/mezuro_plugin_module_result_controller_test.rb
index 8cbe65c..6ef3bba 100644
--- a/plugins/mezuro/test/functional/profile/mezuro_plugin_module_result_controller_test.rb
+++ b/plugins/mezuro/test/functional/profile/mezuro_plugin_module_result_controller_test.rb
@@ -32,7 +32,7 @@ class MezuroPluginModuleResultControllerTest < ActionController::TestCase
get :module_result, :profile => @profile.identifier, :module_result_id => @module_result_hash[:id]
assert_equal @module_result_hash[:grade].to_f, assigns(:module_result).grade
assert_equal @metric_result_hash[:value].to_f, assigns(:metric_results).first.value
- assert_response 200
+ assert_response :success
#TODO assert_select('h5', 'Metric results for: Qt-Calculator (APPLICATION)')
end
@@ -42,7 +42,7 @@ class MezuroPluginModuleResultControllerTest < ActionController::TestCase
returns({:date_metric_result => @date_metric_result_hash})
get :metric_result_history, :profile => @profile.identifier, :module_result_id => @module_result_hash[:id], :metric_name => metric_name
assert_equal DateTime.parse(@date_metric_result_hash[:date]), assigns(:history).first.date
- assert_response 200
+ assert_response :success
#TODO assert_select
end
@@ -51,7 +51,7 @@ class MezuroPluginModuleResultControllerTest < ActionController::TestCase
returns({:date_module_result => @date_module_result_hash})
get :module_result_history, :profile => @profile.identifier, :module_result_id => @module_result_hash[:id]
assert_equal DateTime.parse(@date_module_result_hash[:date]), assigns(:history).first.date
- assert_response 200
+ assert_response :success
#TODO assert_select
end
diff --git a/plugins/mezuro/test/functional/profile/mezuro_plugin_processing_controller_test.rb b/plugins/mezuro/test/functional/profile/mezuro_plugin_processing_controller_test.rb
index 9daea82..0fb8c96 100644
--- a/plugins/mezuro/test/functional/profile/mezuro_plugin_processing_controller_test.rb
+++ b/plugins/mezuro/test/functional/profile/mezuro_plugin_processing_controller_test.rb
@@ -21,14 +21,14 @@ class MezuroPluginProcessingControllerTest < ActionController::TestCase
should 'render last processing state' do
Kalibro::Processing.expects(:processing_of).with(@repository_id).returns(@processing)
get :state, :profile => @profile.identifier, :repository_id => @repository_id
- assert_response 200
+ assert_response :success
assert_equal @processing.state, @response.body
end
should 'render a processing state in a specific date' do
Kalibro::Processing.expects(:processing_with_date_of).with(@repository_id, @processing.date).returns(@processing)
get :state, :profile => @profile.identifier, :repository_id => @repository_id, :date => @processing.date
- assert_response 200
+ assert_response :success
assert_equal @processing.state, @response.body
end
@@ -36,7 +36,7 @@ class MezuroPluginProcessingControllerTest < ActionController::TestCase
Kalibro::Processing.expects(:request).with(:has_ready_processing, {:repository_id => @repository_id}).returns({:exists => false})
Kalibro::Processing.expects(:request).with(:last_processing, :repository_id => @repository_id).returns({:processing => @processing_with_error_hash})
get :processing, :profile => @profile.identifier, :repository_id => @repository_id
- assert_response 200
+ assert_response :success
assert_equal @processing_with_error_hash[:state], assigns(:processing).state
#TODO How to assert from view? assert_select('h3', 'ERROR')
end
@@ -45,7 +45,7 @@ class MezuroPluginProcessingControllerTest < ActionController::TestCase
Kalibro::Processing.expects(:request).with(:has_ready_processing, {:repository_id => @repository_id}).returns({:exists => true})
Kalibro::Processing.expects(:request).with(:last_ready_processing, {:repository_id => @repository_id}).returns({:processing => @processing_hash})
get :processing, :profile => @profile.identifier, :repository_id => @repository_id
- assert_response 200
+ assert_response :success
assert_select('h4', 'Last Result')
end
@@ -53,7 +53,7 @@ class MezuroPluginProcessingControllerTest < ActionController::TestCase
Kalibro::Processing.expects(:request).with(:has_processing_after, {:repository_id => @repository_id, :date => @processing.date}).returns({:exists => true})
Kalibro::Processing.expects(:request).with(:first_processing_after, :repository_id => @repository_id, :date => @processing.date).returns({:processing => @processing_hash})
get :processing, :profile => @profile.identifier, :repository_id => @repository_id, :date => @processing.date
- assert_response 200
+ assert_response :success
assert_select('h4', 'Last Result')
end
diff --git a/plugins/mezuro/test/functional/profile/mezuro_plugin_repository_controller_test.rb b/plugins/mezuro/test/functional/profile/mezuro_plugin_repository_controller_test.rb
index d265094..bb4e4a0 100644
--- a/plugins/mezuro/test/functional/profile/mezuro_plugin_repository_controller_test.rb
+++ b/plugins/mezuro/test/functional/profile/mezuro_plugin_repository_controller_test.rb
@@ -103,6 +103,7 @@ class MezuroPluginRepositoryControllerTest < ActionController::TestCase
assert_equal @configuration.name, assigns(:configuration_name)
assert_equal @content.profile.identifier, assigns(:data_profile)
assert_equal @content.id, assigns(:data_content)
+ assert_response :success
end
should 'destroy a repository' do
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 fefd1a0..176e45d 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
@@ -42,7 +42,7 @@
<% if owner %>
- <%= link_to_remote "New Range", :url => {:action =>"new", :controller => "mezuro_plugin_range", :id => @configuration_content.id, :metric_configuration_id => @metric_configuration.id, :reading_group_id => @metric_configuration.reading_group_id} %>
+ <%= link_to_remote "New Range", :url => {:action =>"new", :controller => "mezuro_plugin_range", :id => @configuration_content.id, :metric_configuration_id => @metric_configuration.id, :reading_group_id => @metric_configuration.reading_group_id, :compound => @metric_configuration.metric.compound} %>
<% end %>