Home > redmine_project_burndown_callbacks

redmine_project_burndown_callbacks

Redmine_project_burndown_callbacks is a project mainly written in Ruby, it's free.

= Project Burndown Callbacks for Redmine

==Installation From the rails root of your redmine app installation script/plugin install [email protected]:expectedbehavior/redmine_project_burndown_callbacks.git rake db:migrate_plugins

==Configuration and Usage Save a copy of RAILS_ROOT/vendor/plugins/redmine_project_burndown_callbacks/config/initializers/project_burndown.rb.example to RAILS_ROOT/config/initializers directory and name it projectburndown.rb. Edit the copied file to have the correct API_TOKEN string. That information can be found on your profile page in PB. Also edit it to have the correct SUBDOMAIN string.

Restart your Redmine app server.

There should now be a “Project Burndown Project” custom field in the settings for your projects. Into this you should enter the project id of the PB Project you want to push information to from this Redmine Project. The project id should be visible in the url for the project page on project burndown. It will look something like {https://yoursubdomain.projectburndown.com/projects/20043}[https://yoursubdomain.projectburndown.com/projects/20043]. The 20043 part is the number we're after. Leave it blank if you don't want to push time entries and issues to PB for this Redmine project.

There should also be a “Project Burndown User” custom field in the settings for your users. Into this you should enter the user id of users whose time entries you want to push to PB. This information can also be gathered from the profile pages by looking at the urls of the users for your account.

After entering the project id and saving your settings, you're good to go.

Any new issues or time entries you create or update will get pushed to PB.

==Synching existing information Synching will not work if you haven't gone through the configuration steps.

If you want to control which projects are pushed: script/console production p = Project.find_by_name("foo") p.issues.each{|i| i.push_to_project_burndown} p.time_entries.each{|t| t.push_to_project_burndown}

If you want to push everything: script/console production Issue.sync_with_project_burndown TimeEntry.sync_with_project_burndown

==Caveats If you use custom issue statuses, poke around for these lines. You will have to change them to use the statuses you utilize. It will be in RAILS_ROOT/vendor/plugins/redmine_project_burndown_callbacks/lib/redmine_project_burndown_callbacks/issue_patch.rb return self.class::PB_FINISHED if ["Closed"].include?(status) return self.class::PB_STARTED if ["In Progress", "Resolved", "Feedback", "Rejected"].include?(status)

==TODO There are only gonna happen if we get lots of requests, because it's kind of time-consuming:

  • Make configuration more dynamic and web-enabled
  • Make synching a button on projects
  • Better handling of trying to destroy things that don't exist at PB - currently I just rescue nil, which is pretty bad.
  • Better handling of general errors in syncing with PB. Right now if something goes wrong, you'll get 500s in redmine.