##// END OF EJS Templates
Overdue versions (date reached and open issues > 0) are now always displayed on the roadmap....
Jean-Philippe Lang -
r601:3c8e7c79b639
parent child
Show More
@@ -443,8 +443,8 class ProjectsController < ApplicationController
443 def roadmap
443 def roadmap
444 @trackers = Tracker.find(:all, :conditions => ["is_in_roadmap=?", true], :order => 'position')
444 @trackers = Tracker.find(:all, :conditions => ["is_in_roadmap=?", true], :order => 'position')
445 retrieve_selected_tracker_ids(@trackers)
445 retrieve_selected_tracker_ids(@trackers)
446 conditions = ("1" == params[:completed] ? nil : [ "#{Version.table_name}.effective_date > ? OR #{Version.table_name}.effective_date IS NULL", Date.today])
446 @versions = @project.versions.sort
447 @versions = @project.versions.find(:all, :conditions => conditions).sort
447 @versions = @versions.select {|v| !v.completed? } unless params[:completed]
448 end
448 end
449
449
450 def activity
450 def activity
@@ -34,8 +34,22 class Version < ActiveRecord::Base
34 effective_date
34 effective_date
35 end
35 end
36
36
37 # Returns true if the version is completed: due date reached and no open issues
37 def completed?
38 def completed?
38 effective_date && effective_date <= Date.today
39 effective_date && (effective_date <= Date.today) && (open_issues_count == 0)
40 end
41
42 # Returns true if the version is overdue: due date reached and some open issues
43 def overdue?
44 effective_date && (effective_date < Date.today) && (open_issues_count > 0)
45 end
46
47 def open_issues_count
48 @open_issues_count ||= Issue.count(:all, :conditions => ["fixed_version_id = ? AND is_closed = ?", self.id, false], :include => :status)
49 end
50
51 def closed_issues_count
52 @closed_issues_count ||= Issue.count(:all, :conditions => ["fixed_version_id = ? AND is_closed = ?", self.id, true], :include => :status)
39 end
53 end
40
54
41 def wiki_page
55 def wiki_page
@@ -18,6 +18,8
18 <a name="<%= version.name %>"><h3 class="icon22 icon22-package"><%= version.name %></h3></a>
18 <a name="<%= version.name %>"><h3 class="icon22 icon22-package"><%= version.name %></h3></a>
19 <% if version.completed? %>
19 <% if version.completed? %>
20 <p><%= format_date(version.effective_date) %></p>
20 <p><%= format_date(version.effective_date) %></p>
21 <% elsif version.overdue? %>
22 <p><strong><%= l(:label_roadmap_overdue, distance_of_time_in_words(Time.now, version.effective_date)) %> (<%= format_date(version.effective_date) %>)</strong></p>
21 <% elsif version.effective_date %>
23 <% elsif version.effective_date %>
22 <p><strong><%=l(:label_roadmap_due_in)%> <%= distance_of_time_in_words Time.now, version.effective_date %> (<%= format_date(version.effective_date) %>)</strong></p>
24 <p><strong><%=l(:label_roadmap_due_in)%> <%= distance_of_time_in_words Time.now, version.effective_date %> (<%= format_date(version.effective_date) %>)</strong></p>
23 <% end %>
25 <% end %>
@@ -339,6 +339,7 label_sort_lower: Премести по-долу
339 label_sort_lowest: Премести най-долу
339 label_sort_lowest: Премести най-долу
340 label_roadmap: Пътна карта
340 label_roadmap: Пътна карта
341 label_roadmap_due_in: Излиза след
341 label_roadmap_due_in: Излиза след
342 label_roadmap_overdue: %s late
342 label_roadmap_no_issues: Няма задачи за тази версия
343 label_roadmap_no_issues: Няма задачи за тази версия
343 label_search: Търсене
344 label_search: Търсене
344 label_result: %d резултат
345 label_result: %d резултат
@@ -339,6 +339,7 label_sort_lower: eins tiefer
339 label_sort_lowest: Ende
339 label_sort_lowest: Ende
340 label_roadmap: Roadmap
340 label_roadmap: Roadmap
341 label_roadmap_due_in: Fällig in
341 label_roadmap_due_in: Fällig in
342 label_roadmap_overdue: %s late
342 label_roadmap_no_issues: Keine Tickets für diese Version
343 label_roadmap_no_issues: Keine Tickets für diese Version
343 label_search: Suche
344 label_search: Suche
344 label_result: %d Resultat
345 label_result: %d Resultat
@@ -339,6 +339,7 label_sort_lower: Move down
339 label_sort_lowest: Move to bottom
339 label_sort_lowest: Move to bottom
340 label_roadmap: Roadmap
340 label_roadmap: Roadmap
341 label_roadmap_due_in: Due in
341 label_roadmap_due_in: Due in
342 label_roadmap_overdue: %s late
342 label_roadmap_no_issues: No issues for this version
343 label_roadmap_no_issues: No issues for this version
343 label_search: Search
344 label_search: Search
344 label_result: %d result
345 label_result: %d result
@@ -339,6 +339,7 label_sort_lower: Bajar
339 label_sort_lowest: Último
339 label_sort_lowest: Último
340 label_roadmap: Roadmap
340 label_roadmap: Roadmap
341 label_roadmap_due_in: Due in
341 label_roadmap_due_in: Due in
342 label_roadmap_overdue: %s late
342 label_roadmap_no_issues: No issues for this version
343 label_roadmap_no_issues: No issues for this version
343 label_search: Búsqueda
344 label_search: Búsqueda
344 label_result: %d resultado
345 label_result: %d resultado
@@ -339,6 +339,7 label_sort_lower: Descendre
339 label_sort_lowest: Descendre en dernier
339 label_sort_lowest: Descendre en dernier
340 label_roadmap: Roadmap
340 label_roadmap: Roadmap
341 label_roadmap_due_in: Echéance dans
341 label_roadmap_due_in: Echéance dans
342 label_roadmap_overdue: En retard de %s
342 label_roadmap_no_issues: Aucune demande pour cette version
343 label_roadmap_no_issues: Aucune demande pour cette version
343 label_search: Recherche
344 label_search: Recherche
344 label_result: %d résultat
345 label_result: %d résultat
@@ -339,6 +339,7 label_sort_lower: Giù
339 label_sort_lowest: Sposta in fondo
339 label_sort_lowest: Sposta in fondo
340 label_roadmap: Roadmap
340 label_roadmap: Roadmap
341 label_roadmap_due_in: Da ultimare in
341 label_roadmap_due_in: Da ultimare in
342 label_roadmap_overdue: %s late
342 label_roadmap_no_issues: Nessun contesto per questa versione
343 label_roadmap_no_issues: Nessun contesto per questa versione
343 label_search: Ricerca
344 label_search: Ricerca
344 label_result: %d risultato
345 label_result: %d risultato
@@ -340,6 +340,7 label_sort_lower: 下へ
340 label_sort_lowest: 一番下へ
340 label_sort_lowest: 一番下へ
341 label_roadmap: ロードマップ
341 label_roadmap: ロードマップ
342 label_roadmap_due_in: 期日まで
342 label_roadmap_due_in: 期日まで
343 label_roadmap_overdue: %s late
343 label_roadmap_no_issues: このバージョンに向けての問題はありません
344 label_roadmap_no_issues: このバージョンに向けての問題はありません
344 label_search: 検索
345 label_search: 検索
345 label_result: %d件の結果
346 label_result: %d件の結果
@@ -339,6 +339,7 label_sort_lower: Verplaats naar beneden
339 label_sort_lowest: Verplaats naar eind
339 label_sort_lowest: Verplaats naar eind
340 label_roadmap: Roadmap
340 label_roadmap: Roadmap
341 label_roadmap_due_in: Due in
341 label_roadmap_due_in: Due in
342 label_roadmap_overdue: %s late
342 label_roadmap_no_issues: Geen issues voor deze versie
343 label_roadmap_no_issues: Geen issues voor deze versie
343 label_search: Zoeken
344 label_search: Zoeken
344 label_result: %d resultaat
345 label_result: %d resultaat
@@ -339,6 +339,7 label_sort_lower: Mover para baixo
339 label_sort_lowest: Mover para o fim
339 label_sort_lowest: Mover para o fim
340 label_roadmap: Roadmap
340 label_roadmap: Roadmap
341 label_roadmap_due_in: Due in
341 label_roadmap_due_in: Due in
342 label_roadmap_overdue: %s late
342 label_roadmap_no_issues: Sem tarefas para essa versao
343 label_roadmap_no_issues: Sem tarefas para essa versao
343 label_search: Busca
344 label_search: Busca
344 label_result: %d resultado
345 label_result: %d resultado
@@ -339,6 +339,7 label_sort_lower: Mover para baixo
339 label_sort_lowest: Mover para o fim
339 label_sort_lowest: Mover para o fim
340 label_roadmap: Roadmap
340 label_roadmap: Roadmap
341 label_roadmap_due_in: Termina em
341 label_roadmap_due_in: Termina em
342 label_roadmap_overdue: %s late
342 label_roadmap_no_issues: Sem tarefas para essa versão
343 label_roadmap_no_issues: Sem tarefas para essa versão
343 label_search: Busca
344 label_search: Busca
344 label_result: %d resultado
345 label_result: %d resultado
@@ -339,6 +339,7 label_sort_lower: Flytta ner
339 label_sort_lowest: Flytta till botten
339 label_sort_lowest: Flytta till botten
340 label_roadmap: Roadmap
340 label_roadmap: Roadmap
341 label_roadmap_due_in: Färdig om
341 label_roadmap_due_in: Färdig om
342 label_roadmap_overdue: %s late
342 label_roadmap_no_issues: Inga brister för denna version
343 label_roadmap_no_issues: Inga brister för denna version
343 label_search: Sök
344 label_search: Sök
344 label_result: %d resultat
345 label_result: %d resultat
@@ -342,6 +342,7 label_sort_lower: 下移
342 label_sort_lowest: 置底
342 label_sort_lowest: 置底
343 label_roadmap: 路线图
343 label_roadmap: 路线图
344 label_roadmap_due_in: Due in
344 label_roadmap_due_in: Due in
345 label_roadmap_overdue: %s late
345 label_roadmap_no_issues: 该版本没有任务
346 label_roadmap_no_issues: 该版本没有任务
346 label_search: 查找
347 label_search: 查找
347 label_result: %d 个结果
348 label_result: %d 个结果
General Comments 0
You need to be logged in to leave comments. Login now