Commit 4d71499b5cbe0e86a8ab42f0f62cdf9f84fe0470

Authored by João M. M. da Silva + Alessandro Palmeira + Diego Araújo
Committed by João M. M. da Silva
2 parents 7e9e630f b5c3370f

[Mezuro] Merge branch 'validations' into mezuro-dev

Conflicts:
	plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb
	plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb
plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb
@@ -31,7 +31,9 @@ class MezuroPluginMyprofileController < ProfileController @@ -31,7 +31,9 @@ class MezuroPluginMyprofileController < ProfileController
31 def new_compound_metric_configuration 31 def new_compound_metric_configuration
32 @configuration_content = profile.articles.find(params[:id]) 32 @configuration_content = profile.articles.find(params[:id])
33 @metric_configurations = @configuration_content.metric_configurations 33 @metric_configurations = @configuration_content.metric_configurations
34 - look_for_configuration_content_errors 34 + if configuration_content_has_errors?
  35 + redirect_to_error_page @configuration_content.errors[:base]
  36 + end
35 end 37 end
36 38
37 def edit_metric_configuration 39 def edit_metric_configuration
@@ -50,8 +52,13 @@ class MezuroPluginMyprofileController < ProfileController @@ -50,8 +52,13 @@ class MezuroPluginMyprofileController < ProfileController
50 def create_metric_configuration 52 def create_metric_configuration
51 id = params[:id] 53 id = params[:id]
52 metric_name = params[:metric_configuration][:metric][:name] 54 metric_name = params[:metric_configuration][:metric][:name]
53 - (Kalibro::MetricConfiguration.new(params[:metric_configuration])).save  
54 - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_metric_configuration?id=#{id}&metric_name=#{metric_name.gsub(/\s/, '+')}" 55 + metric_configuration = Kalibro::MetricConfiguration.new(params[:metric_configuration])
  56 + metric_configuration.save
  57 + if metric_configuration_has_errors? metric_configuration
  58 + redirect_to_error_page metric_configuration.errors[0].message
  59 + else
  60 + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_metric_configuration?id=#{id}&metric_name=#{metric_name.gsub(/\s/, '+')}"
  61 + end
55 end 62 end
56 63
57 def create_compound_metric_configuration 64 def create_compound_metric_configuration
@@ -59,8 +66,11 @@ class MezuroPluginMyprofileController < ProfileController @@ -59,8 +66,11 @@ class MezuroPluginMyprofileController < ProfileController
59 metric_name = params[:metric_configuration][:metric][:name] 66 metric_name = params[:metric_configuration][:metric][:name]
60 metric_configuration = Kalibro::MetricConfiguration.new(params[:metric_configuration]) 67 metric_configuration = Kalibro::MetricConfiguration.new(params[:metric_configuration])
61 metric_configuration.save 68 metric_configuration.save
62 - look_for_model_error metric_configuration  
63 - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_compound_metric_configuration?id=#{id}&metric_name=#{metric_name.gsub(/\s/, '+')}" 69 + if metric_configuration_has_errors? metric_configuration
  70 + redirect_to_error_page metric_configuration.errors[0].message
  71 + else
  72 + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_compound_metric_configuration?id=#{id}&metric_name=#{metric_name.gsub(/\s/, '+')}"
  73 + end
64 end 74 end
65 75
66 def update_metric_configuration 76 def update_metric_configuration
@@ -68,8 +78,11 @@ class MezuroPluginMyprofileController < ProfileController @@ -68,8 +78,11 @@ class MezuroPluginMyprofileController < ProfileController
68 metric_name = params[:metric_configuration][:metric][:name] 78 metric_name = params[:metric_configuration][:metric][:name]
69 metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name) 79 metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name)
70 metric_configuration.update_attributes params[:metric_configuration] 80 metric_configuration.update_attributes params[:metric_configuration]
71 - look_for_model_error metric_configuration  
72 - redirect_to "/#{profile.identifier}/#{@configuration_content.slug}" 81 + if metric_configuration_has_errors? metric_configuration
  82 + redirect_to_error_page metric_configuration.errors[0].message
  83 + else
  84 + redirect_to "/#{profile.identifier}/#{@configuration_content.slug}"
  85 + end
73 end 86 end
74 87
75 def update_compound_metric_configuration 88 def update_compound_metric_configuration
@@ -77,8 +90,11 @@ class MezuroPluginMyprofileController < ProfileController @@ -77,8 +90,11 @@ class MezuroPluginMyprofileController < ProfileController
77 metric_name = params[:metric_configuration][:metric][:name] 90 metric_name = params[:metric_configuration][:metric][:name]
78 metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name) 91 metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name)
79 metric_configuration.update_attributes params[:metric_configuration] 92 metric_configuration.update_attributes params[:metric_configuration]
80 - look_for_model_error metric_configuration  
81 - redirect_to "/#{profile.identifier}/#{@configuration_content.slug}" 93 + if metric_configuration_has_errors? metric_configuration
  94 + redirect_to_error_page metric_configuration.errors[0].message
  95 + else
  96 + redirect_to "/#{profile.identifier}/#{@configuration_content.slug}"
  97 + end
82 end 98 end
83 99
84 def remove_metric_configuration 100 def remove_metric_configuration
@@ -86,8 +102,11 @@ class MezuroPluginMyprofileController < ProfileController @@ -86,8 +102,11 @@ class MezuroPluginMyprofileController < ProfileController
86 metric_name = params[:metric_name] 102 metric_name = params[:metric_name]
87 metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name) 103 metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name)
88 metric_configuration.destroy 104 metric_configuration.destroy
89 - look_for_model_error metric_configuration  
90 - redirect_to "/#{profile.identifier}/#{configuration_content.slug}" 105 + if metric_configuration_has_errors? metric_configuration
  106 + redirect_to_error_page metric_configuration.errors[0].message
  107 + else
  108 + redirect_to "/#{profile.identifier}/#{configuration_content.slug}"
  109 + end
91 end 110 end
92 111
93 def new_range 112 def new_range
@@ -111,7 +130,9 @@ class MezuroPluginMyprofileController < ProfileController @@ -111,7 +130,9 @@ class MezuroPluginMyprofileController < ProfileController
111 metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name) 130 metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name)
112 metric_configuration.add_range(@range) 131 metric_configuration.add_range(@range)
113 metric_configuration.save 132 metric_configuration.save
114 - look_for_model_error metric_configuration 133 + if metric_configuration_has_errors? metric_configuration
  134 + redirect_to_error_page metric_configuration.errors[0].message
  135 + end
115 end 136 end
116 137
117 def update_range 138 def update_range
@@ -122,7 +143,9 @@ class MezuroPluginMyprofileController < ProfileController @@ -122,7 +143,9 @@ class MezuroPluginMyprofileController < ProfileController
122 index = metric_configuration.ranges.index{ |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" } 143 index = metric_configuration.ranges.index{ |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" }
123 metric_configuration.ranges[index] = Kalibro::Range.new params[:range] 144 metric_configuration.ranges[index] = Kalibro::Range.new params[:range]
124 metric_configuration.save 145 metric_configuration.save
125 - look_for_model_error metric_configuration 146 + if metric_configuration_has_errors? metric_configuration
  147 + redirect_to_error_page metric_configuration.errors[0].message
  148 + end
126 end 149 end
127 150
128 def remove_range 151 def remove_range
@@ -132,27 +155,32 @@ class MezuroPluginMyprofileController < ProfileController @@ -132,27 +155,32 @@ class MezuroPluginMyprofileController < ProfileController
132 metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name) 155 metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name)
133 metric_configuration.ranges.delete_if { |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" } 156 metric_configuration.ranges.delete_if { |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" }
134 metric_configuration.save 157 metric_configuration.save
135 -  
136 - formatted_metric_name = metric_name.gsub(/\s/, '+')  
137 - if metric_configuration.metric.class == Kalibro::CompoundMetric  
138 - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_compound_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}" 158 + if metric_configuration_has_errors? metric_configuration
  159 + redirect_to_error_page metric_configuration.errors[0].message
139 else 160 else
140 - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}" 161 + formatted_metric_name = metric_name.gsub(/\s/, '+')
  162 + if metric_configuration.metric.class == Kalibro::CompoundMetric
  163 + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_compound_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}"
  164 + else
  165 + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}"
  166 + end
141 end 167 end
142 end 168 end
143 169
144 private 170 private
145 171
146 def redirect_to_error_page(message) 172 def redirect_to_error_page(message)
  173 + message = URI.escape(CGI.escape(message),'.')
147 redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/error_page?message=#{message}" 174 redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/error_page?message=#{message}"
148 end 175 end
149 176
150 - def look_for_configuration_content_errors  
151 - redirect_to_error_page(@configuration_content.errors[:base]) if not @configuration_content.errors[:base].nil? 177 +
  178 + def configuration_content_has_errors?
  179 + not @configuration_content.errors[:base].nil?
152 end 180 end
153 181
154 - def look_for_model_error(model)  
155 - redirect_to_error_page(model.errors[0].message) if not model.errors.empty? 182 + def metric_configuration_has_errors? metric_configuration
  183 + not metric_configuration.errors.empty?
156 end 184 end
157 185
158 end 186 end
plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb
@@ -9,7 +9,7 @@ class MezuroPluginProfileController < ProfileController @@ -9,7 +9,7 @@ class MezuroPluginProfileController < ProfileController
9 def project_state 9 def project_state
10 @content = profile.articles.find(params[:id]) 10 @content = profile.articles.find(params[:id])
11 project = @content.project 11 project = @content.project
12 - if project_content_errors? 12 + if project_content_has_errors?
13 redirect_to_error_page(@content.errors[:base]) 13 redirect_to_error_page(@content.errors[:base])
14 else 14 else
15 state = project.kalibro_error.nil? ? project.state : "ERROR" 15 state = project.kalibro_error.nil? ? project.state : "ERROR"
@@ -20,7 +20,7 @@ class MezuroPluginProfileController < ProfileController @@ -20,7 +20,7 @@ class MezuroPluginProfileController < ProfileController
20 def project_error 20 def project_error
21 @content = profile.articles.find(params[:id]) 21 @content = profile.articles.find(params[:id])
22 @project = @content.project 22 @project = @content.project
23 - if project_content_errors? 23 + if project_content_has_errors?
24 redirect_to_error_page(@content.errors[:base]) 24 redirect_to_error_page(@content.errors[:base])
25 else 25 else
26 render :partial => 'content_viewer/project_error' 26 render :partial => 'content_viewer/project_error'
@@ -31,7 +31,7 @@ class MezuroPluginProfileController < ProfileController @@ -31,7 +31,7 @@ class MezuroPluginProfileController < ProfileController
31 @content = profile.articles.find(params[:id]) 31 @content = profile.articles.find(params[:id])
32 date = params[:date] 32 date = params[:date]
33 @project_result = date.nil? ? @content.project_result : @content.project_result_with_date(date) 33 @project_result = date.nil? ? @content.project_result : @content.project_result_with_date(date)
34 - if project_content_errors? 34 + if project_content_has_errors?
35 redirect_to_error_page(@content.errors[:base]) 35 redirect_to_error_page(@content.errors[:base])
36 else 36 else
37 render :partial => 'content_viewer/project_result' 37 render :partial => 'content_viewer/project_result'
@@ -41,7 +41,7 @@ class MezuroPluginProfileController < ProfileController @@ -41,7 +41,7 @@ class MezuroPluginProfileController < ProfileController
41 def module_result 41 def module_result
42 @content = profile.articles.find(params[:id]) 42 @content = profile.articles.find(params[:id])
43 @module_result = @content.module_result(params) 43 @module_result = @content.module_result(params)
44 - if project_content_errors? 44 + if project_content_has_errors?
45 redirect_to_error_page(@content.errors[:base]) 45 redirect_to_error_page(@content.errors[:base])
46 else 46 else
47 render :partial => 'content_viewer/module_result' 47 render :partial => 'content_viewer/module_result'
@@ -53,7 +53,7 @@ class MezuroPluginProfileController < ProfileController @@ -53,7 +53,7 @@ class MezuroPluginProfileController < ProfileController
53 date = params[:date] 53 date = params[:date]
54 project_result = date.nil? ? @content.project_result : @content.project_result_with_date(date) 54 project_result = date.nil? ? @content.project_result : @content.project_result_with_date(date)
55 @project_name = @content.project.name if not @content.project.nil? 55 @project_name = @content.project.name if not @content.project.nil?
56 - if project_content_errors? 56 + if project_content_has_errors?
57 redirect_to_error_page(@content.errors[:base]) 57 redirect_to_error_page(@content.errors[:base])
58 else 58 else
59 @source_tree = project_result.node_of(params[:module_name]) 59 @source_tree = project_result.node_of(params[:module_name])
@@ -65,7 +65,7 @@ class MezuroPluginProfileController < ProfileController @@ -65,7 +65,7 @@ class MezuroPluginProfileController < ProfileController
65 metric_name = params[:metric_name] 65 metric_name = params[:metric_name]
66 @content = profile.articles.find(params[:id]) 66 @content = profile.articles.find(params[:id])
67 module_history = @content.result_history(params[:module_name]) 67 module_history = @content.result_history(params[:module_name])
68 - if project_content_errors? 68 + if project_content_has_errors?
69 redirect_to_error_page(@content.errors[:base]) 69 redirect_to_error_page(@content.errors[:base])
70 else 70 else
71 @score_history = filtering_metric_history(metric_name, module_history) 71 @score_history = filtering_metric_history(metric_name, module_history)
@@ -76,7 +76,7 @@ class MezuroPluginProfileController < ProfileController @@ -76,7 +76,7 @@ class MezuroPluginProfileController < ProfileController
76 def module_grade_history 76 def module_grade_history
77 @content = profile.articles.find(params[:id]) 77 @content = profile.articles.find(params[:id])
78 modules_results = @content.result_history(params[:module_name]) 78 modules_results = @content.result_history(params[:module_name])
79 - if project_content_errors? 79 + if project_content_has_errors?
80 redirect_to_error_page(@content.errors[:base]) 80 redirect_to_error_page(@content.errors[:base])
81 else 81 else
82 @score_history = modules_results.collect { |module_result| module_result.grade } 82 @score_history = modules_results.collect { |module_result| module_result.grade }
@@ -104,7 +104,7 @@ class MezuroPluginProfileController < ProfileController @@ -104,7 +104,7 @@ class MezuroPluginProfileController < ProfileController
104 redirect_to "/profile/#{profile.identifier}/plugin/mezuro/error_page?message=#{message}" 104 redirect_to "/profile/#{profile.identifier}/plugin/mezuro/error_page?message=#{message}"
105 end 105 end
106 106
107 - def project_content_errors? 107 + def project_content_has_errors?
108 not @content.errors[:base].nil? 108 not @content.errors[:base].nil?
109 end 109 end
110 end 110 end
plugins/mezuro/public/javascripts/validations.js
@@ -3,7 +3,9 @@ jQuery(function (){ @@ -3,7 +3,9 @@ jQuery(function (){
3 jQuery('#metric_configuration_submit').live("click", validate_metric_configuration); 3 jQuery('#metric_configuration_submit').live("click", validate_metric_configuration);
4 }); 4 });
5 5
6 - 6 +function validate_code(code){
  7 + return true;
  8 +}
7 9
8 function validate_metric_configuration(){ 10 function validate_metric_configuration(){
9 var code = jQuery('#metric_configuration_code').val(); 11 var code = jQuery('#metric_configuration_code').val();