Commit 5666ddf2289c3d6a1529d3ce661514d7e82c6324
Committed by
Paulo Meireles
Exists in
master
and in
29 other branches
[Mezuro] Merge branch 'metric_history' of gitorious.org:+mezuro/noosfero/mezuro into metric_history
Conflicts: plugins/mezuro/public/javascripts/project_content.js
Showing
9 changed files
with
100 additions
and
32 deletions
Show diff stats
plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb
... | ... | @@ -136,6 +136,14 @@ class MezuroPluginProfileController < ProfileController |
136 | 136 | redirect_to "/#{profile.identifier}/#{configuration_name.downcase.gsub(/\s/, '-')}" |
137 | 137 | end |
138 | 138 | |
139 | + def module_metrics_history | |
140 | + metric_name = params[:metric_name] | |
141 | + content = profile.articles.find(params[:id]) | |
142 | + module_history = content.result_history(params[:module_name]) | |
143 | + date_history = module_history.collect { |x| x.date } | |
144 | + metric_history = module_history.collect { |x| (x.metric_results.select { |y| y.metric.name.delete("() ") == metric_name })[0] } | |
145 | + render :partial => 'content_viewer/metric_history', :locals => {:metric_history => metric_history, :date_history => date_history } | |
146 | + end | |
139 | 147 | private |
140 | 148 | |
141 | 149 | def new_metric_configuration_instance |
... | ... | @@ -166,5 +174,5 @@ class MezuroPluginProfileController < ProfileController |
166 | 174 | range.comments = params[:range][:comments] |
167 | 175 | range |
168 | 176 | end |
169 | -end | |
170 | 177 | |
178 | +end | ... | ... |
plugins/mezuro/lib/kalibro/client/module_result_client.rb
1 | 1 | class Kalibro::Client::ModuleResultClient |
2 | 2 | |
3 | - # TODO test this | |
4 | - def self.module_result(project_content, module_name) | |
5 | - project_result = project_content.project_result | |
6 | - new.module_result(project_result.project.name, module_name, project_result.date) | |
7 | - end | |
8 | - | |
9 | 3 | def initialize |
10 | 4 | @port = Kalibro::Client::Port.new('ModuleResult') |
11 | 5 | end |
... | ... | @@ -23,4 +17,11 @@ class Kalibro::Client::ModuleResultClient |
23 | 17 | Kalibro::Entities::Entity.new.to_entity_array(value, Kalibro::Entities::ModuleResult) |
24 | 18 | end |
25 | 19 | |
26 | -end | |
27 | 20 | \ No newline at end of file |
21 | + private | |
22 | + | |
23 | + def date_with_milliseconds(date) | |
24 | + milliseconds = "." + (date.sec_fraction * 60 * 60 * 24 * 1000).to_s | |
25 | + date.to_s[0..18] + milliseconds + date.to_s[19..-1] | |
26 | + end | |
27 | + | |
28 | +end | ... | ... |
plugins/mezuro/lib/mezuro_plugin/project_content.rb
... | ... | @@ -35,7 +35,16 @@ class MezuroPlugin::ProjectContent < Article |
35 | 35 | end |
36 | 36 | |
37 | 37 | def module_result(module_name) |
38 | - @module_client ||= Kalibro::Client::ModuleResultClient.module_result(self, module_name) | |
38 | + module_name = project.name if module_name.nil? | |
39 | + @module_client ||= module_result_client.module_result(project.name, module_name, project_result.date) | |
40 | + end | |
41 | + | |
42 | + def result_history(module_name) | |
43 | + @result_history ||= module_result_client.result_history(project.name, module_name) | |
44 | + end | |
45 | + | |
46 | + def module_result_client | |
47 | + @module_result_client ||= Kalibro::Client::ModuleResultClient.new | |
39 | 48 | end |
40 | 49 | |
41 | 50 | after_save :send_project_to_service | ... | ... |
plugins/mezuro/public/javascripts/project_content.js
1 | 1 | var processingTree = false; |
2 | +var metricName; | |
2 | 3 | jQuery(function (){ |
3 | 4 | jQuery('.source-tree-link').live("click", reloadModule); |
4 | 5 | jQuery('[data-show]').live("click", toggle_mezuro); |
5 | - jQuery('#project_history_date').live("submit", reloadProjectWithDate); | |
6 | + jQuery('[show-metric-history]').live("click", display_metric_history); | |
6 | 7 | showLoadingProcess(true); |
7 | 8 | showProjectContent(); |
8 | 9 | }); |
... | ... | @@ -11,6 +12,18 @@ function showProjectContent() { |
11 | 12 | callAction('project_state', {}, showProjectContentFor); |
12 | 13 | } |
13 | 14 | |
15 | +function display_metric_history() { | |
16 | + var module_name = jQuery(this).attr('data-module-name'); | |
17 | + var metric_name = jQuery(this).attr('data-metric-name'); | |
18 | + metricName = metric_name; | |
19 | + callAction('module_metrics_history', {module_name: module_name, metric_name: metric_name}, show_metrics); | |
20 | + return false; | |
21 | +} | |
22 | + | |
23 | +function show_metrics(content) { | |
24 | + jQuery('#historical-' + metricName).html(content); | |
25 | +} | |
26 | + | |
14 | 27 | function toggle_mezuro(){ |
15 | 28 | var element = jQuery(this).attr('data-show'); |
16 | 29 | jQuery(element).toggle(); | ... | ... |
plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb
... | ... | @@ -68,7 +68,10 @@ class MezuroPluginProfileControllerTest < ActionController::TestCase |
68 | 68 | |
69 | 69 | should 'get module result' do |
70 | 70 | create_project_content |
71 | - Kalibro::Client::ModuleResultClient.expects(:module_result).with(@content, @name).returns(@module_result) | |
71 | + module_result_client = mock | |
72 | + Kalibro::Client::ProjectResultClient.expects(:last_result).with(@name).returns(@project_result) | |
73 | + Kalibro::Client::ModuleResultClient.expects(:new).returns(module_result_client) | |
74 | + module_result_client.expects(:module_result).with(@name, @name, @project_result.date).returns(@module_result) | |
72 | 75 | get :module_result, :profile => @profile.identifier, :id => @content.id, :module_name => @name |
73 | 76 | assert_response 200 |
74 | 77 | assert_select('h5', 'Metric results for: Qt-Calculator (APPLICATION)') | ... | ... |
plugins/mezuro/test/unit/kalibro/client/module_result_client_test.rb
... | ... | @@ -26,5 +26,4 @@ class ModuleResultClientTest < ActiveSupport::TestCase |
26 | 26 | @port.expects(:request).with(:get_result_history, request_body).returns(response) |
27 | 27 | assert_equal [@result], @client.result_history('Qt-Calculator', 'main') |
28 | 28 | end |
29 | - | |
30 | -end | |
31 | 29 | \ No newline at end of file |
30 | +end | ... | ... |
plugins/mezuro/test/unit/mezuro_plugin/project_content_test.rb
... | ... | @@ -46,17 +46,35 @@ class ProjectContentTest < ActiveSupport::TestCase |
46 | 46 | should 'get module result from service' do |
47 | 47 | module_name = 'My module name' |
48 | 48 | module_result = mock |
49 | - Kalibro::Client::ModuleResultClient.expects(:module_result).with(@content, module_name). | |
49 | + module_result_client = mock | |
50 | + project_result = mock | |
51 | + @content.expects(:project_result).returns(project_result) | |
52 | + project_result.expects(:date).returns('12/04/2012') | |
53 | + @content.expects(:module_result_client).returns(module_result_client) | |
54 | + module_result_client.expects(:module_result).with(@project.name, module_name, '12/04/2012'). | |
50 | 55 | returns(module_result) |
51 | 56 | assert_equal module_result, @content.module_result(module_name) |
52 | 57 | end |
53 | 58 | |
54 | - should 'get module result root when project name is give' do | |
59 | + should 'get module result root when nil is given' do | |
55 | 60 | module_result = mock |
56 | - Kalibro::Client::ModuleResultClient.expects(:module_result).with(@content, @project.name). | |
61 | + module_result_client = mock | |
62 | + project_result = mock | |
63 | + @content.expects(:project_result).returns(project_result) | |
64 | + project_result.expects(:date).returns('12/04/2012') | |
65 | + @content.expects(:module_result_client).returns(module_result_client) | |
66 | + module_result_client.expects(:module_result).with(@project.name, @project.name, '12/04/2012'). | |
57 | 67 | returns(module_result) |
58 | - assert_equal module_result, @content.module_result(@project.name) | |
59 | - end | |
68 | + assert_equal module_result, @content.module_result(nil) | |
69 | + end | |
70 | + | |
71 | + should 'get result history' do | |
72 | + module_name = 'Qt-Calculator' | |
73 | + module_result_client = mock | |
74 | + @content.expects(:module_result_client).returns(module_result_client) | |
75 | + module_result_client.expects(:result_history).with(@project.name, module_name) | |
76 | + @content.result_history(module_name) | |
77 | + end | |
60 | 78 | |
61 | 79 | should 'send project to service after saving' do |
62 | 80 | @content.expects :send_project_to_service | ... | ... |
plugins/mezuro/views/content_viewer/_metric_history.rhtml
0 → 100644
... | ... | @@ -0,0 +1,14 @@ |
1 | +<table width="100%"> | |
2 | + <tr> | |
3 | + <% date_history.each do |date| %> | |
4 | + <td> <b> <%= date %> </b> </td> | |
5 | + <% end %> | |
6 | + </tr> | |
7 | + <tr> | |
8 | + <% metric_history.each do |metric_result| %> | |
9 | + <td> | |
10 | + <%= MezuroPlugin::Helpers::ContentViewerHelper.format_grade(metric_result.value) %> | |
11 | + </td> | |
12 | + <% end %> | |
13 | + </tr> | |
14 | + </table> | ... | ... |
plugins/mezuro/views/content_viewer/_module_result.rhtml
... | ... | @@ -17,21 +17,24 @@ |
17 | 17 | <tbody> |
18 | 18 | <% module_result.metric_results.each do |metric_result| %> |
19 | 19 | <% range = metric_result.range %> |
20 | - <tr> | |
21 | - <td><a href="#" data-show=".<%= metric_result.metric.name.delete("() ")%>"><%= metric_result.metric.name %></a></td> | |
22 | - <td><%= "%.02f" % metric_result.value %></td> | |
23 | - <td><%= metric_result.weight %></td> | |
24 | - <% if range.nil? %> | |
25 | - <td></td> | |
26 | - <% else %> | |
20 | + <% if !range.nil? %> | |
21 | + <tr> | |
22 | + <td><a href="#" data-show=".<%= metric_result.metric.name.delete("() ")%>"><%= metric_result.metric.name %></a></td> | |
23 | + <td><%= MezuroPlugin::Helpers::ContentViewerHelper.format_grade(metric_result.value) %></td> | |
24 | + <td><%= metric_result.weight %></td> | |
27 | 25 | <td style="background-color: #<%= range.color[2..-1] %>"><%= range.label %></td> |
28 | - <% end %> | |
29 | - </tr> | |
30 | - <tr class="<%= metric_result.metric.name.delete("() ")%>" style="display: none;"> | |
31 | - <td colspan="4" align="right"> | |
32 | - <%= range.nil? or range.comments.nil? ? 'comment empty' : range.comments %> | |
33 | - </td> | |
34 | - </tr> | |
26 | + </tr> | |
27 | + <tr class="<%= metric_result.metric.name.delete("() ")%>" style="display: none;"> | |
28 | + <td colspan="4"> | |
29 | + <div id='historical-<%= metric_result.metric.name.delete("() ") %>'> | |
30 | + <a href="#" show-metric-history="<%= metric_result.metric.name.delete("() ") %>" data-module-name="<%= the_module.name %>" data-metric-name="<%= metric_result.metric.name.delete("() ") %>"> <p style="text-indent: 3em;"> Draw Historical Graphic </p> </a> | |
31 | + </div> | |
32 | + </td> | |
33 | + <td colspan="3" align="right"> | |
34 | + <%= range.comments.nil? ? '' : range.comments %> | |
35 | + </td> | |
36 | + </tr> | |
37 | + <% end %> | |
35 | 38 | <% end %> |
36 | 39 | </tbody> |
37 | 40 | <tfoot> | ... | ... |