OSDN Git Service

better rendering time for projects/calendar
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 18 Mar 2007 10:17:59 +0000 (10:17 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 18 Mar 2007 10:17:59 +0000 (10:17 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@343 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/projects_controller.rb
app/views/projects/calendar.rhtml

index f02a0e1..8feb5f5 100644 (file)
@@ -519,7 +519,12 @@ class ProjectsController < ApplicationController
     # finish on sunday
     @date_to = @date_to + (7-@date_to.cwday)  
       
-    @issues = @project.issues.find(:all, :include => [:tracker, :status, :assigned_to, :priority], :conditions => ["((start_date>=? and start_date<=?) or (due_date>=? and due_date<=?))", @date_from, @date_to, @date_from, @date_to])
+    @issues = @project.issues.find(:all, :include => [:tracker, :status, :assigned_to, :priority], 
+                                         :conditions => ["((start_date>=? and start_date<=?) or (due_date>=? and due_date<=?))", @date_from, @date_to, @date_from, @date_to])
+
+    @ending_issues_by_days = @issues.group_by {|issue| issue.due_date}
+    @starting_issues_by_days = @issues.group_by {|issue| issue.start_date}
+     
     render :layout => false if request.xhr?
   end  
 
index 154c561..8db92a9 100644 (file)
@@ -43,9 +43,7 @@ while day <= @date_to
        <% end %>       
        <td valign="top" class="<%= day.month==@month ? "even" : "odd" %>" style="width:14%; <%= Date.today == day ? 'background:#FDFED0;' : '' %>">
        <p class="textright"><%= day==Date.today ? "<b>#{day.day}</b>" : day.day %></p> 
-       <% day_issues = []
-       @issues.each { |i| day_issues << i if i.start_date == day or i.due_date == day } 
-       day_issues.each do |i| %>
+       <% ((@ending_issues_by_days[day] || []) + (@starting_issues_by_days[day] || [])).uniq.each do |i| %>
            <div class="tooltip">
                <%= if day == i.start_date and day == i.due_date
                    image_tag('arrow_bw.png')