Feature #2182 » version_completion.patch
| app/models/version.rb (copie de travail) | ||
|---|---|---|
| 55 | 55 | 
    elsif open_issues_count == 0  | 
| 56 | 56 | 
    100  | 
| 57 | 57 | 
    else  | 
| 58 | 
          (closed_issues_count * 100 + Issue.sum('done_ratio', :include => 'status', :conditions => ["fixed_version_id = ? AND is_closed = ?", id, false]).to_f) / fixed_issues.count
   | 
|
| 58 | 
          issues_progress(false) + issues_progress(true)
   | 
|
| 59 | 59 | 
    end  | 
| 60 | 60 | 
    end  | 
| 61 | 61 | 
     | 
| ... | ... | |
| 63 | 63 | 
    if fixed_issues.count == 0  | 
| 64 | 64 | 
    0  | 
| 65 | 65 | 
    else  | 
| 66 | 
          closed_issues_count * 100.0 / fixed_issues.count
   | 
|
| 66 | 
          issues_progress(false)
   | 
|
| 67 | 67 | 
    end  | 
| 68 | 68 | 
    end  | 
| 69 | 69 | 
     | 
| ... | ... | |
| 103 | 103 | 
    def check_integrity  | 
| 104 | 104 | 
    raise "Can't delete version" if self.fixed_issues.find(:first)  | 
| 105 | 105 | 
    end  | 
| 106 | 
     | 
|
| 107 | 
    def estimated_average  | 
|
| 108 | 
    if @estimated_average.nil?  | 
|
| 109 | 
    average = Issue.average(:estimated_hours,  | 
|
| 110 | 
    :conditions => ["fixed_version_id = ?", id]).to_f  | 
|
| 111 | 
    if average == 0  | 
|
| 112 | 
    average = 1  | 
|
| 113 | 
    end  | 
|
| 114 | 
    @estimated_average = average  | 
|
| 115 | 
    end  | 
|
| 116 | 
    @estimated_average  | 
|
| 117 | 
    end  | 
|
| 118 | 
     | 
|
| 119 | 
    def issues_progress(open)  | 
|
| 120 | 
    progress = 0  | 
|
| 121 | 
    if fixed_issues.count > 0  | 
|
| 122 | 
    ratio = open ? 'done_ratio' : 100  | 
|
| 123 | 
          done = Issue.sum("COALESCE(estimated_hours, #{estimated_average}) * #{ratio}",
   | 
|
| 124 | 
    :include => :status,  | 
|
| 125 | 
    :conditions => ["fixed_version_id = ? AND is_closed = ?", id, !open]).to_f  | 
|
| 126 | 
     | 
|
| 127 | 
    progress = done / (estimated_average * fixed_issues.count)  | 
|
| 128 | 
    end  | 
|
| 129 | 
    progress  | 
|
| 130 | 
    end  | 
|
| 106 | 131 | 
    end  |