diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 1a2f96d..d435fc7 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -120,7 +120,8 @@ class IssuesController < ApplicationController format.html { render :template => 'issues/show.rhtml' } format.xml { render :layout => false } format.atom { render :action => 'changes', :layout => false, :content_type => 'application/atom+xml' } - format.pdf { send_data(issue_to_pdf(@issue), :type => 'application/pdf', :filename => "#{@project.identifier}-#{@issue.id}.pdf") } + format.pdf { send_data(issue_to_pdf(@issue), :type => 'application/pdf', :filename => "#{@project.identifier}-#{@issue.id}.pdf", + :disposition => 'inline') } end end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index b6ffba5..fd9193c 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -41,11 +41,13 @@ class ProjectsController < ApplicationController include CustomFieldsHelper helper :issues helper IssuesHelper + include IssuesHelper helper :queries include QueriesHelper helper :repositories include RepositoriesHelper include ProjectsHelper + include Redmine::Export::PDF # Lists visible projects def index @@ -310,6 +312,14 @@ class ProjectsController < ApplicationController end end @versions.reject! {|version| !project_ids.include?(version.project_id) && @issues_by_version[version].blank?} + + respond_to do |format| + format.html { render :template => 'projects/roadmap.rhtml' } + format.pdf { send_data(versions_to_pdf(@versions, @issues_by_version), + :type => 'application/pdf', + :filename => "#{@project.identifier}-roadmap.pdf", + :disposition => 'inline') } + end end def activity diff --git a/app/controllers/versions_controller.rb b/app/controllers/versions_controller.rb index 05c9743..2b2e867 100644 --- a/app/controllers/versions_controller.rb +++ b/app/controllers/versions_controller.rb @@ -25,8 +25,16 @@ class VersionsController < ApplicationController helper :custom_fields helper :projects + helper :issues + include IssuesHelper + include Redmine::Export::PDF def show + respond_to do |format| + format.html { render :template => 'versions/show.rhtml' } + format.pdf { send_data(version_to_pdf(@version), :type => 'application/pdf', :filename => "#{@project.identifier}-#{@version.id}.pdf", + :disposition => 'inline') } + end end def new diff --git a/app/helpers/versions_helper.rb b/app/helpers/versions_helper.rb index 0fcc640..ab98f38 100644 --- a/app/helpers/versions_helper.rb +++ b/app/helpers/versions_helper.rb @@ -16,6 +16,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. module VersionsHelper + include IssuesHelper STATUS_BY_CRITERIAS = %w(category tracker priority author assigned_to) diff --git a/app/models/issue.rb b/app/models/issue.rb index 263cae1..4b5bd87 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -66,6 +66,8 @@ class Issue < ActiveRecord::Base named_scope :with_limit, lambda { |limit| { :limit => limit} } named_scope :on_active_project, :include => [:status, :project, :tracker], :conditions => ["#{Project.table_name}.status=#{Project::STATUS_ACTIVE}"] + named_scope :for_roadmap, :include => [:status, :project, :tracker], + :order => "#{Tracker.table_name}.position, #{Issue.table_name}.id" before_create :default_assign before_save :reschedule_following_issues, :close_duplicates, :update_done_ratio_from_issue_status diff --git a/app/views/projects/roadmap.rhtml b/app/views/projects/roadmap.rhtml index 100282a..55d8623 100644 --- a/app/views/projects/roadmap.rhtml +++ b/app/views/projects/roadmap.rhtml @@ -25,6 +25,11 @@ <%= call_hook :view_projects_roadmap_version_bottom, :version => version %> <% end %> + +<% other_formats_links do |f| %> + <%= f.link_to 'PDF' %> +<% end %> + <% end %> <% content_for :sidebar do %> diff --git a/app/views/versions/show.rhtml b/app/views/versions/show.rhtml index 18bc6bc..fbfa27f 100644 --- a/app/views/versions/show.rhtml +++ b/app/views/versions/show.rhtml @@ -32,9 +32,7 @@ <%= render :partial => 'versions/overview', :locals => {:version => @version} %> <%= render(:partial => "wiki/content", :locals => {:content => @version.wiki_page.content}) if @version.wiki_page %> -<% issues = @version.fixed_issues.find(:all, - :include => [:status, :tracker, :priority], - :order => "#{Tracker.table_name}.position, #{Issue.table_name}.id") %> +<% issues = @version.fixed_issues.for_roadmap %> <% if issues.size > 0 %>