├── app ├── helpers │ └── version_burndown_charts_helper.rb ├── views │ └── version_burndown_charts │ │ └── index.html.erb └── controllers │ └── version_burndown_charts_controller.rb ├── .DS_Store ├── config ├── .DS_Store └── locales │ ├── ja.yml │ ├── no.yml │ ├── es.yml │ └── en.yml ├── assets └── stylesheets │ └── version_burndown_charts.css ├── test ├── test_helper.rb └── functional │ └── version_burndown_controller_test.rb ├── init.rb └── README.rdoc /app/helpers/version_burndown_charts_helper.rb: -------------------------------------------------------------------------------- 1 | module VersionBurndownChartsHelper 2 | end 3 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daipresents/redmine_version_burndown_charts/HEAD/.DS_Store -------------------------------------------------------------------------------- /config/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daipresents/redmine_version_burndown_charts/HEAD/config/.DS_Store -------------------------------------------------------------------------------- /assets/stylesheets/version_burndown_charts.css: -------------------------------------------------------------------------------- 1 | .selected { 2 | font-weight: bold; 3 | font-style: italic; 4 | } 5 | 6 | dd{ 7 | margin-left:1em; 8 | } -------------------------------------------------------------------------------- /test/test_helper.rb: -------------------------------------------------------------------------------- 1 | # Load the normal Rails helper 2 | require File.expand_path(File.dirname(__FILE__) + '/../../../../test/test_helper') 3 | 4 | # Ensure that we are using the temporary fixture path 5 | Engines::Testing.set_fixture_path 6 | -------------------------------------------------------------------------------- /test/functional/version_burndown_controller_test.rb: -------------------------------------------------------------------------------- 1 | require File.dirname(__FILE__) + '/../test_helper' 2 | 3 | class VersionBurndownControllerTest < ActionController::TestCase 4 | # Replace this with your real tests. 5 | def test_truth 6 | assert true 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /init.rb: -------------------------------------------------------------------------------- 1 | require 'redmine' 2 | 3 | Redmine::Plugin.register :redmine_version_burndown do 4 | name 'Redmine Version Burndown Charts plugin' 5 | author 'Dai Fujihara' 6 | description 'Version Burndown Charts Plugin is graphical chart plugin for Scrum.' 7 | author_url 'http://daipresents.com/weblog/fujihalab/' 8 | url 'http://daipresents.com/weblog/fujihalab/archives/2010/02/redmine-version-burndown-charts-plugin-release.php ' 9 | 10 | requires_redmine :version_or_higher => '0.9.0' 11 | version '0.0.5' 12 | 13 | project_module :version_burndown_charts do 14 | permission :version_burndown_charts_view, :version_burndown_charts => :index 15 | end 16 | 17 | menu :project_menu, :version_burndown_charts, { :controller => 'version_burndown_charts', :action => 'index' }, 18 | :caption => :version_burndown_charts, :after => :activity, :param => :project_id 19 | end 20 | -------------------------------------------------------------------------------- /config/locales/ja.yml: -------------------------------------------------------------------------------- 1 | ja: 2 | version_burndown_charts: "バーンダウンチャート" 3 | version_burndown_charts_view: "バーンダウンチャートの表示" 4 | 5 | version_burndown_charts_xlegend: "Date" 6 | version_burndown_charts_ylegend: "Hour" 7 | version_burndown_charts_perfect_line: "理想ライン" 8 | version_burndown_charts_upper_line: "上限ライン" 9 | version_burndown_charts_lower_line: "下限ライン" 10 | version_burndown_charts_estimated_line: "予想ライン" 11 | version_burndown_charts_peformance_line: "実績ライン" 12 | version_burndown_charts_spent_line: "詳細実績ライン" 13 | 14 | version_burndown_charts_versions: "バージョン" 15 | version_burndown_charts_versions_name: "バージョン名" 16 | version_burndown_charts_versions_open: "進行中" 17 | version_burndown_charts_versions_locked: "ロック中" 18 | version_burndown_charts_versions_closed: "完了" 19 | version_burndown_charts_version_info: "バージョン情報" 20 | 21 | version_burndown_charts_estimated_hours: "予想:{{estimated_hours}}h" 22 | version_burndown_charts_spent_hours: "経過時間:{{spent_hours}}h" 23 | 24 | version_burndown_charts_issues_count: "チケット数:{{issues_count}}" 25 | version_burndown_charts_open_issues_count: "未完了:{{open_issues_count}}" 26 | version_burndown_charts_closed_issues_count: "完了:{{closed_issues_count}}" 27 | 28 | version_burndown_charts_start_date: "開始日:{{start_date}}" 29 | version_burndown_charts_due_date: "期日:{{due_date}}" 30 | version_burndown_charts_sprint_range: "スプリント期間:{{sprint_range}}日" 31 | 32 | version_burndown_charts_project_nod_found: "プロジェクトが存在しません。プロジェクトID:{{project_id}}" 33 | version_burndown_charts_version_not_found: "プロジェクトにバージョンが存在しません。" 34 | version_burndown_charts_no_version_with_due_date: "期限が設定されたバージョンが存在しません。" 35 | version_burndown_charts_version_due_date_not_found: "バージョンに期日が設定されていません。バージョン名:{{version_name}}" 36 | version_burndown_charts_version_start_date_invalid: "バージョンの期日よりあとに開始日が設定されています。バージョン名:{{version_name}}" 37 | version_burndown_charts_issues_not_found: "バージョンにチケットが存在しないか、開始日・予定工数がチケットに設定されていません。バージョン名:{{version_name}}" 38 | version_burndown_charts_issues_start_date_or_estimated_date_not_found: "バージョン内のチケットに開始日、または予定工数が設定されていません。バージョン名:{{version_name}}" 39 | -------------------------------------------------------------------------------- /config/locales/no.yml: -------------------------------------------------------------------------------- 1 | "no": 2 | version_burndown_charts: "Version Burndown Charts" 3 | version_burndown_charts_view: "Vis Version Burndown Charts" 4 | 5 | version_burndown_charts_xlegend: "Dato" 6 | version_burndown_charts_ylegend: "Time" 7 | version_burndown_charts_perfect_line: "Perfekt linje" 8 | version_burndown_charts_estimated_line: "Estimert linje" 9 | version_burndown_charts_peformance_line: "Ytelseslinje" 10 | 11 | version_burndown_charts_versions: "Versjon" 12 | version_burndown_charts_versions_name: "Versjonsnavn" 13 | version_burndown_charts_versions_open: "Apen" 14 | version_burndown_charts_versions_locked: "Last" 15 | version_burndown_charts_versions_closed: "Lukket" 16 | version_burndown_charts_version_info: "Versjonsinformasjon" 17 | version_burndown_charts_estimated_hours: "Estimert tid:{{estimated_hours}}h" 18 | version_burndown_charts_spent_hours: "Tid brukt:{{spent_hours}}t" 19 | version_burndown_charts_spent_hours: "Timer brukt:{{spent_hours}}" 20 | 21 | version_burndown_charts_issues_count: "Alle saker:{{issues_count}}" 22 | version_burndown_charts_open_issues_count: "Apne saker:{{open_issues_count}}" 23 | version_burndown_charts_closed_issues_count: "Lukka saker:{{closed_issues_count}}" 24 | 25 | version_burndown_charts_start_date: "Start:{{start_date}}" 26 | version_burndown_charts_due_date: "Frist:{{due_date}}" 27 | version_burndown_charts_sprint_range: "Lengde pa sprint:{{sprint_range}}dager" 28 | 29 | version_burndown_charts_project_nod_found: "Fant ikke prosjekt. prosjekt-id:{{project_id}}" 30 | version_burndown_charts_version_not_found: "Fant ikke versjonen i prosjektet." 31 | version_burndown_charts_no_version_with_due_date: "No version with due date." 32 | version_burndown_charts_version_due_date_not_found: "Det er ikke satt frist for versjonen. versjonsnavn:{{version_name}}" 33 | version_burndown_charts_version_start_date_invalid: "Startdato er satt senere enn fristen. versjonsnavn:{{version_name}}" 34 | version_burndown_charts_issues_not_found: "Fant ikke saken i versjonen, eller det er ikke satt startdato eller estimert timetall for saken. versjonsnavn:{{version_name}}" 35 | version_burndown_charts_issues_start_date_or_estimated_date_not_found: "Det er ikke satt startdato eller estimert timetall for saken i versjonen. versjonsnavn:{{version_name}}" 36 | -------------------------------------------------------------------------------- /config/locales/es.yml: -------------------------------------------------------------------------------- 1 | es: 2 | version_burndown_charts: "Burndown" 3 | version_burndown_charts_view: "Ver gráfica de 'Burndown'" 4 | 5 | version_burndown_charts_xlegend: "Fecha" 6 | version_burndown_charts_ylegend: "Horas" 7 | version_burndown_charts_perfect_line: "Línea ideal" 8 | version_burndown_charts_upper_line: "Línea superior" 9 | version_burndown_charts_lower_line: "Línea inferior" 10 | version_burndown_charts_estimated_line: "Estimación" 11 | version_burndown_charts_peformance_line: "Restante" 12 | 13 | version_burndown_charts_versions: "Versión" 14 | version_burndown_charts_versions_name: "Versión" 15 | version_burndown_charts_versions_open: "Abiertas" 16 | version_burndown_charts_versions_locked: "Bloqueadas" 17 | version_burndown_charts_versions_closed: "Cerradas" 18 | version_burndown_charts_version_info: "Información" 19 | version_burndown_charts_estimated_hours: "Tiempo estimado: {{estimated_hours}} h" 20 | version_burndown_charts_spent_hours: "Tiempo invertido: {{spent_hours}} h" 21 | 22 | version_burndown_charts_issues_count: "Peticiones: {{issues_count}}" 23 | version_burndown_charts_open_issues_count: "Abiertas: {{open_issues_count}}" 24 | version_burndown_charts_closed_issues_count: "Cerradas: {{closed_issues_count}}" 25 | 26 | version_burndown_charts_start_date: "Fecha de inicio: {{start_date}}" 27 | version_burndown_charts_due_date: "Fecha de fin: {{due_date}}" 28 | version_burndown_charts_sprint_range: "Duración: {{sprint_range}} días" 29 | 30 | version_burndown_charts_project_nod_found: "Proyecto no encontrado. project id:{{project_id}}" 31 | version_burndown_charts_version_not_found: "Versión no encontrada en el proyecto." 32 | version_burndown_charts_no_version_with_due_date: "No hay versiones con fecha asignada." 33 | version_burndown_charts_version_due_date_not_found: "La versión no tiene fecha asignada. version name:{{version_name}}" 34 | version_burndown_charts_version_start_date_invalid: "La fecha de inicio de la versión es posterior a la de fin. version name:{{version_name}}" 35 | version_burndown_charts_issues_not_found: "No se encontraron peticiones en la versión. version name:{{version_name}}" 36 | version_burndown_charts_issues_start_date_or_estimated_date_not_found: "Las peticiones de la versión no tienen horas estimadas o fecha de inicio. version name:{{version_name}}" 37 | -------------------------------------------------------------------------------- /README.rdoc: -------------------------------------------------------------------------------- 1 | = redmine_version_burndown 2 | ja: 3 | * このプラグインは、バージョンに存在するチケットの予定工数と作業実績からバーンダウンチャートを作成します。 4 | 5 | en: 6 | * Version Burndown Charts Plugin create burndown chart graph for scrum from ticket's estimated hours and %Done in target version. 7 | 8 | == Details 9 | ja: 10 | * バーンダウンチャートの開始日は、バージョン内にあるチケットの中で、最も早い開始日となります。 11 | * 実績の線は、チケットの完了日時(ジャーナルファイル)と、そのチケットの予定工数と進捗を使って計算しています。 12 | 13 | en: 14 | * The start date of the burndown chart is assumed to be earliest start date in the ticket in the version. 15 | * The line of performanse is calculated by the completion date of the ticket (by journal file) and the ticket's estimated hours and %Done. 16 | 17 | == Plugin Installation 18 | * Download open_flash_chart 2.1.1. 19 | * Unpack and move into vendor/plugins. 20 | * Rename the plugin directory to open_flash_chart. 21 | If you want to get from Github, please use following command. 22 | cd ${RAILS_ROOT} 23 | ./script/plugin install git://github.com/pullmonkey/open_flash_chart.git 24 | * Copy files from open_flash_chart/assets/* to RAILS_ROOT/public 25 | * Download Version Burndown Charts. 26 | * Unpack and move into RAILS_ROOT/vendor/plugins. 27 | * Rename the plugin directory to redmine_version_burndown_charts 28 | * If you want to get from GIthub, please use following command. 29 | cd ${RAILS_ROOT} 30 | git clone git://github.com/daipresents/redmine_version_burndown_charts.git vendor/plugins/redmine_version_burndown_chart 31 | * Restart Redmine. 32 | * Login and configure the plugin (Administration > Roles and permissions > Permissions report) 33 | * Configure the project (Project > Settings > Modules). 34 | * Create version and set due date. 35 | * Create ticket and set start date, estimated hours. 36 | * Logged ticket status... 37 | * Click to version burndown charts menu. 38 | 39 | == Note 40 | === 0.1.0 41 | * I tested this plugin Redmine 1.1.2 + MySQL5.1. 42 | * Adjust Perfect Line straight. 43 | * Added Upper and Lower line. 44 | * Modified caluculation logic that only use child issue's value. 45 | * Modified meaning of done. This plugin use "% Done" value. 46 | 47 | 0.1.0 feature made by asura(https://github.com/asura). Thank you! 48 | 49 | === 0.0.6 50 | * I tested this plugin Redmine 1.0.5 + MySQL5.1. 51 | * Added feature: Perfect Line 52 | 53 | === 0.0.5 54 | * I tested this plugin Redmine 0.9.2 + MySQL5.1. 55 | 56 | == License 57 | This plugin is licensed under GNU General Public License version 3. 58 | 59 | -------------------------------------------------------------------------------- /config/locales/en.yml: -------------------------------------------------------------------------------- 1 | en: 2 | version_burndown_charts: "Version Burndown Charts" 3 | version_burndown_charts_view: "View Version Burndown Charts" 4 | 5 | version_burndown_charts_xlegend: "Date" 6 | version_burndown_charts_ylegend: "Hour" 7 | version_burndown_charts_perfect_line: "Perfect Line" 8 | version_burndown_charts_upper_line: "Upper Line" 9 | version_burndown_charts_lower_line: "Lower Line" 10 | version_burndown_charts_estimated_line: "Estimated Line" 11 | version_burndown_charts_peformance_line: "Peformance Line" 12 | 13 | version_burndown_charts_versions: "Version" 14 | version_burndown_charts_versions_name: "Version Name" 15 | version_burndown_charts_versions_open: "Open" 16 | version_burndown_charts_versions_locked: "Locked" 17 | version_burndown_charts_versions_closed: "Closed" 18 | version_burndown_charts_version_info: "Version Information" 19 | version_burndown_charts_estimated_hours: "Estimated time:{{estimated_hours}}h" 20 | version_burndown_charts_spent_hours: "Spent time:{{spent_hours}}h" 21 | version_burndown_charts_spent_hours: "Spent hours:{{spent_hours}}h" 22 | 23 | version_burndown_charts_issues_count: "All Issues:{{issues_count}}" 24 | version_burndown_charts_open_issues_count: "Open Issues:{{open_issues_count}}" 25 | version_burndown_charts_closed_issues_count: "Closed Issues:{{closed_issues_count}}" 26 | 27 | version_burndown_charts_start_date: "Start Date:{{start_date}}" 28 | version_burndown_charts_due_date: "Due Date:{{due_date}}" 29 | version_burndown_charts_sprint_range: "Sprint Span:{{sprint_range}}days" 30 | 31 | version_burndown_charts_project_nod_found: "Project not found. project id:{{project_id}}" 32 | version_burndown_charts_version_not_found: "Version not found in project." 33 | version_burndown_charts_no_version_with_due_date: "No version with due date." 34 | version_burndown_charts_version_due_date_not_found: "Version due date is not set to the version. version name:{{version_name}}" 35 | version_burndown_charts_version_start_date_invalid: "Version start date is late than version due date. version name:{{version_name}}" 36 | version_burndown_charts_issues_not_found: "Ticket not found in version, or start date or estimated hours is not set to the ticket. version name:{{version_name}}" 37 | version_burndown_charts_issues_start_date_or_estimated_date_not_found: "The start date or estimated hours is not set to the ticket in the version. version name:{{version_name}}" 38 | -------------------------------------------------------------------------------- /app/views/version_burndown_charts/index.html.erb: -------------------------------------------------------------------------------- 1 | <% html_title "#{@version.name} - " + l(:version_burndown_charts) -%> 2 | <% content_for :header_tags do %> 3 | <%= javascript_include_tag '/plugin_assets/open_flash_chart/javascripts/swfobject.js' %> 4 | <%= stylesheet_link_tag 'version_burndown_charts', :plugin => 'redmine_version_burndown_charts' %> 5 | <% end %> 6 | 7 | <% unless flash[:error] -%> 8 | <%= @graph %> 9 | <% end -%> 10 | 11 | <% content_for :sidebar do -%> 12 |