@@ -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