]> source.dussan.org Git - redmine.git/commitdiff
Include subprojects versions on calendar and gantt (#1116).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 27 Apr 2008 08:20:53 +0000 (08:20 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 27 Apr 2008 08:20:53 +0000 (08:20 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1364 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/projects_controller.rb
app/models/project.rb
app/views/common/_calendar.rhtml
app/views/projects/gantt.rhtml

index 8bdcea8d716d8d6846ae047d71c6440110a4ccf2..b71ec1ecd57343d800de1e0490e07ef9d4f12ebd 100644 (file)
@@ -341,8 +341,9 @@ class ProjectsController < ApplicationController
                            :include => [:tracker, :status, :assigned_to, :priority, :project], 
                            :conditions => ["((start_date BETWEEN ? AND ?) OR (due_date BETWEEN ? AND ?)) AND #{Issue.table_name}.tracker_id IN (#{@selected_tracker_ids.join(',')})", @calendar.startdt, @calendar.enddt, @calendar.startdt, @calendar.enddt]
                            ) unless @selected_tracker_ids.empty?
+      events += Version.find(:all, :include => :project,
+                                   :conditions => ["effective_date BETWEEN ? AND ?", @calendar.startdt, @calendar.enddt])
     end
-    events += @project.versions.find(:all, :conditions => ["effective_date BETWEEN ? AND ?", @calendar.startdt, @calendar.enddt])
     @calendar.events = events
     
     render :layout => false if request.xhr?
@@ -386,8 +387,9 @@ class ProjectsController < ApplicationController
                            :include => [:tracker, :status, :assigned_to, :priority, :project], 
                            :conditions => ["(((start_date>=? and start_date<=?) or (due_date>=? and due_date<=?) or (start_date<? and due_date>?)) and start_date is not null and due_date is not null and #{Issue.table_name}.tracker_id in (#{@selected_tracker_ids.join(',')}))", @date_from, @date_to, @date_from, @date_to, @date_from, @date_to]
                            ) unless @selected_tracker_ids.empty?
+      @events += Version.find(:all, :include => :project,
+                                    :conditions => ["effective_date BETWEEN ? AND ?", @date_from, @date_to])
     end
-    @events += @project.versions.find(:all, :conditions => ["effective_date BETWEEN ? AND ?", @date_from, @date_to])
     @events.sort! {|x,y| x.start_date <=> y.start_date }
     
     if params[:format]=='pdf'
index eaa33c96931d2698e0d30a5ad5d2e397aa3de194..964469649c000231e17fea74434ca169b6c041b2 100644 (file)
@@ -75,12 +75,14 @@ class Project < ActiveRecord::Base
     conditions = nil
     if include_subprojects && !active_children.empty?
       ids = [id] + active_children.collect {|c| c.id}
-      conditions = ["#{Issue.table_name}.project_id IN (#{ids.join(',')})"]
+      conditions = ["#{Project.table_name}.id IN (#{ids.join(',')})"]
     end
-    conditions ||= ["#{Issue.table_name}.project_id = ?", id]
+    conditions ||= ["#{Project.table_name}.id = ?", id]
     # Quick and dirty fix for Rails 2 compatibility
     Issue.send(:with_scope, :find => { :conditions => conditions }) do 
-      yield
+      Version.send(:with_scope, :find => { :conditions => conditions }) do
+        yield
+      end
     end 
   end
 
index 7534a122362c324f43103a99862cf09565d6c4f1..1095cd501235216116692448c89d2dbff28b0c1b 100644 (file)
@@ -19,12 +19,15 @@ while day <= calendar.enddt %>
       elsif day == i.due_date
                image_tag('arrow_to.png') 
       end %>
-  <%= h("#{i.project.name} -") unless @project && @project == i.project %>
+  <%= h("#{i.project} -") unless @project && @project == i.project %>
   <%= link_to_issue i %>: <%= h(truncate(i.subject, 30)) %>
   <span class="tip"><%= render_issue_tooltip i %></span>
   </div>
   <% else %>
-  <%= link_to_version i, :class => "icon icon-package" %>
+  <span class="icon icon-package">  
+    <%= h("#{i.project} -") unless @project && @project == i.project %>
+    <%= link_to_version i%>
+  </span>
   <% end %>
 <% end %>
 </td>
index 05bd4b9bce97e0febd2ae4913b97067e1433b099..d941d2777997e7a63b580af250bf1cdb8712b836 100644 (file)
@@ -70,10 +70,13 @@ top = headers_height + 8
 @events.each do |i| %>
     <div style="position: absolute;line-height:1.2em;height:16px;top:<%= top %>px;left:4px;overflow:hidden;"><small>    
     <% if i.is_a? Issue %>
-       <%= h("#{i.project.name} -") unless @project && @project == i.project %>
+       <%= h("#{i.project} -") unless @project && @project == i.project %>
        <%= link_to_issue i %>: <%=h i.subject %>
        <% else %>
-       <%= link_to_version i, :class => "icon icon-package" %>
+               <span class="icon icon-package">
+               <%= h("#{i.project} -") unless @project && @project == i.project %>
+               <%= link_to_version i %>
+               </span>
        <% end %>       
        </small></div>
     <% top = top + 20
@@ -197,7 +200,8 @@ top = headers_height + 10
     %>
     <div style="top:<%= top %>px;left:<%= i_left %>px;width:15px;" class="task milestone">&nbsp;</div>
        <div style="top:<%= top %>px;left:<%= i_left + 12 %>px;background:#fff;" class="task">
-       <strong><%= i.name %></strong>
+               <%= h("#{i.project} -") unless @project && @project == i.project %>
+               <strong><%=h i %></strong>
        </div>
 <% end %>
        <% top = top + 20