diff options
author | elijah <elijah@riseup.net> | 2015-05-28 01:44:24 -0700 |
---|---|---|
committer | elijah <elijah@riseup.net> | 2015-05-28 01:44:24 -0700 |
commit | fc1cffcacfa0e885c481e9d993f7c541673912c8 (patch) | |
tree | 88b5f3d25232396bccc017cdc09d61ed31f8df9b |
initial commit.
-rw-r--r-- | README.md | 27 | ||||
-rw-r--r-- | app/controllers/version_reports_controller.rb | 21 | ||||
-rw-r--r-- | app/helpers/version_reports_helper.rb | 12 | ||||
-rw-r--r-- | app/views/hooks/_view_report_link.html.erb | 1 | ||||
-rw-r--r-- | app/views/version_reports/_issue_row.html.erb | 14 | ||||
-rw-r--r-- | app/views/version_reports/_main_issue_row.html.erb | 28 | ||||
-rw-r--r-- | app/views/version_reports/_project_row.html.erb | 5 | ||||
-rw-r--r-- | app/views/version_reports/show.html.erb | 9 | ||||
-rw-r--r-- | config/routes.rb | 4 | ||||
-rw-r--r-- | init.rb | 11 | ||||
-rw-r--r-- | lib/version_report/hooks.rb | 5 |
11 files changed, 137 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..18b4509 --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +This is a Redmine plugin that adds a link "Time Tracking Report" to target +version page. This link will bring up a detailed report of how time was spent +for this target version. + +The assumption is that the issues which are directly associated with the +target version represent general categories of work activities that need to be +reported on. + +Unlike the normal list of issues for a target version, time spent from other +projects in included, as well as all sub-tasks. + +Installation: + + cd redmin/plugins + git clone https://leap.se/git/version_report + +Configuration: + +You grant the permission 'view reports' to a user in order to be able to view the report. + +License: + +The same as Redmine (GNU GENERAL PUBLIC LICENSE Version 2) + +Copyright: + +2015 (c) LEAP Encryption Access Project
\ No newline at end of file diff --git a/app/controllers/version_reports_controller.rb b/app/controllers/version_reports_controller.rb new file mode 100644 index 0000000..fb7ac6c --- /dev/null +++ b/app/controllers/version_reports_controller.rb @@ -0,0 +1,21 @@ +class VersionReportsController < ApplicationController + unloadable + + menu_item :roadmap + model_object Version + before_filter :find_model_object, :only => [:show] + before_filter :alias_model_object + before_filter :find_project_from_association, :only => [:show] + before_filter :authorize + + def show + @issues = @version.fixed_issues + end + + private + + def alias_model_object + @version = @version_report + end + +end diff --git a/app/helpers/version_reports_helper.rb b/app/helpers/version_reports_helper.rb new file mode 100644 index 0000000..2e0ee8d --- /dev/null +++ b/app/helpers/version_reports_helper.rb @@ -0,0 +1,12 @@ +module VersionReportsHelper + + def display_issue(issue, *options) + text = issue.subject + text = text.sub(/\!\!\w*/,'') + if options.include? :tracker + text = "#{issue.tracker} ##{issue.id} " + text + end + link_to text, issue_path(issue) + end + +end diff --git a/app/views/hooks/_view_report_link.html.erb b/app/views/hooks/_view_report_link.html.erb new file mode 100644 index 0000000..fdd59c9 --- /dev/null +++ b/app/views/hooks/_view_report_link.html.erb @@ -0,0 +1 @@ +<br><br><%= link_to 'Time Tracking Report', version_report_path %>
\ No newline at end of file diff --git a/app/views/version_reports/_issue_row.html.erb b/app/views/version_reports/_issue_row.html.erb new file mode 100644 index 0000000..3ff7020 --- /dev/null +++ b/app/views/version_reports/_issue_row.html.erb @@ -0,0 +1,14 @@ +<tr> + <td> + <%= (" " * 4 * indent).html_safe %> + <%= display_issue(issue, :tracker) %> + </td> + <td> + <%= l_hours(issue.total_spent_hours) %> + </td> +</tr> +<%- if issue.children.any? -%> +<%- issue.children.each do |child| -%> +<%= render :partial => 'issue_row', :locals => {:issue => child, :indent => indent+1} %> +<%- end -%> +<%- end -%> diff --git a/app/views/version_reports/_main_issue_row.html.erb b/app/views/version_reports/_main_issue_row.html.erb new file mode 100644 index 0000000..32518e9 --- /dev/null +++ b/app/views/version_reports/_main_issue_row.html.erb @@ -0,0 +1,28 @@ +<tr><td> </td></tr> +<tr> + <td> + <h1><%= display_issue(issue) %></h1> + </td> + <td> + <%= l_hours(issue.total_spent_hours) %> + </td> +</tr> +<tr> + <td colspan="2"> + From <%= issue.start_date %> to <%= issue.due_date %>. + <div class="wiki"> + <%= textilizable issue, :description %> + </div> + </td> +</tr> + +<%- project = nil -%> +<%- if issue.children.any? -%> +<%- issue.children.sort{|a,b| a.project.name <=> b.project.name}.each do |child| -%> +<%- if child.project.name != project -%> +<%- project = child.project.name -%> +<%= render :partial => 'project_row', :locals => {:project => child.project} %> +<%- end -%> +<%= render :partial => 'issue_row', :locals => {:issue => child, :indent => 1} %> +<%- end -%> +<%- end -%> diff --git a/app/views/version_reports/_project_row.html.erb b/app/views/version_reports/_project_row.html.erb new file mode 100644 index 0000000..ac0acd2 --- /dev/null +++ b/app/views/version_reports/_project_row.html.erb @@ -0,0 +1,5 @@ +<tr> + <td colspan="2"> + <b><%= project.name %></b> + </td> +</tr> diff --git a/app/views/version_reports/show.html.erb b/app/views/version_reports/show.html.erb new file mode 100644 index 0000000..09c2b20 --- /dev/null +++ b/app/views/version_reports/show.html.erb @@ -0,0 +1,9 @@ +<% html_title @version.name %> + +<table> +<% if @issues.present? %> + <%- @issues.each do |issue| -%> + <%= render :partial => 'main_issue_row', :locals => {:issue => issue} %> + <% end %> +<% end %> +</table>
\ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb new file mode 100644 index 0000000..213e700 --- /dev/null +++ b/config/routes.rb @@ -0,0 +1,4 @@ +# Plugin's routes +# See: http://guides.rubyonrails.org/routing.html + +resources :version_reports
\ No newline at end of file @@ -0,0 +1,11 @@ +require_dependency 'version_report/hooks' + +Redmine::Plugin.register :version_report do + name 'Version Report plugin' + author 'LEAP' + description 'Show detailed reports for target versions' + version '0.0.1' + url 'https://leap.se/git/version_report' + + permission :view_reports, :version_reports => :show +end diff --git a/lib/version_report/hooks.rb b/lib/version_report/hooks.rb new file mode 100644 index 0000000..d0d2776 --- /dev/null +++ b/lib/version_report/hooks.rb @@ -0,0 +1,5 @@ +module VersionReport + class Hooks < Redmine::Hook::ViewListener + render_on :view_versions_show_contextual, :partial => 'hooks/view_report_link' + end +end
\ No newline at end of file |