@@ -443,8 +443,8 class ProjectsController < ApplicationController | |||
|
443 | 443 | def roadmap |
|
444 | 444 | @trackers = Tracker.find(:all, :conditions => ["is_in_roadmap=?", true], :order => 'position') |
|
445 | 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]) | |
|
447 | @versions = @project.versions.find(:all, :conditions => conditions).sort | |
|
446 | @versions = @project.versions.sort | |
|
447 | @versions = @versions.select {|v| !v.completed? } unless params[:completed] | |
|
448 | 448 | end |
|
449 | 449 | |
|
450 | 450 | def activity |
@@ -34,8 +34,22 class Version < ActiveRecord::Base | |||
|
34 | 34 | effective_date |
|
35 | 35 | end |
|
36 | 36 | |
|
37 | # Returns true if the version is completed: due date reached and no open issues | |
|
37 | 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 | 53 | end |
|
40 | 54 | |
|
41 | 55 | def wiki_page |
@@ -18,6 +18,8 | |||
|
18 | 18 | <a name="<%= version.name %>"><h3 class="icon22 icon22-package"><%= version.name %></h3></a> |
|
19 | 19 | <% if version.completed? %> |
|
20 | 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 | 23 | <% elsif version.effective_date %> |
|
22 | 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 | 25 | <% end %> |
@@ -339,6 +339,7 label_sort_lower: Премести по-долу | |||
|
339 | 339 | label_sort_lowest: Премести най-долу |
|
340 | 340 | label_roadmap: Пътна карта |
|
341 | 341 | label_roadmap_due_in: Излиза след |
|
342 | label_roadmap_overdue: %s late | |
|
342 | 343 | label_roadmap_no_issues: Няма задачи за тази версия |
|
343 | 344 | label_search: Търсене |
|
344 | 345 | label_result: %d резултат |
@@ -339,6 +339,7 label_sort_lower: eins tiefer | |||
|
339 | 339 | label_sort_lowest: Ende |
|
340 | 340 | label_roadmap: Roadmap |
|
341 | 341 | label_roadmap_due_in: Fällig in |
|
342 | label_roadmap_overdue: %s late | |
|
342 | 343 | label_roadmap_no_issues: Keine Tickets für diese Version |
|
343 | 344 | label_search: Suche |
|
344 | 345 | label_result: %d Resultat |
@@ -339,6 +339,7 label_sort_lower: Move down | |||
|
339 | 339 | label_sort_lowest: Move to bottom |
|
340 | 340 | label_roadmap: Roadmap |
|
341 | 341 | label_roadmap_due_in: Due in |
|
342 | label_roadmap_overdue: %s late | |
|
342 | 343 | label_roadmap_no_issues: No issues for this version |
|
343 | 344 | label_search: Search |
|
344 | 345 | label_result: %d result |
@@ -339,6 +339,7 label_sort_lower: Bajar | |||
|
339 | 339 | label_sort_lowest: Último |
|
340 | 340 | label_roadmap: Roadmap |
|
341 | 341 | label_roadmap_due_in: Due in |
|
342 | label_roadmap_overdue: %s late | |
|
342 | 343 | label_roadmap_no_issues: No issues for this version |
|
343 | 344 | label_search: Búsqueda |
|
344 | 345 | label_result: %d resultado |
@@ -339,6 +339,7 label_sort_lower: Descendre | |||
|
339 | 339 | label_sort_lowest: Descendre en dernier |
|
340 | 340 | label_roadmap: Roadmap |
|
341 | 341 | label_roadmap_due_in: Echéance dans |
|
342 | label_roadmap_overdue: En retard de %s | |
|
342 | 343 | label_roadmap_no_issues: Aucune demande pour cette version |
|
343 | 344 | label_search: Recherche |
|
344 | 345 | label_result: %d résultat |
@@ -339,6 +339,7 label_sort_lower: Giù | |||
|
339 | 339 | label_sort_lowest: Sposta in fondo |
|
340 | 340 | label_roadmap: Roadmap |
|
341 | 341 | label_roadmap_due_in: Da ultimare in |
|
342 | label_roadmap_overdue: %s late | |
|
342 | 343 | label_roadmap_no_issues: Nessun contesto per questa versione |
|
343 | 344 | label_search: Ricerca |
|
344 | 345 | label_result: %d risultato |
@@ -340,6 +340,7 label_sort_lower: 下へ | |||
|
340 | 340 | label_sort_lowest: 一番下へ |
|
341 | 341 | label_roadmap: ロードマップ |
|
342 | 342 | label_roadmap_due_in: 期日まで |
|
343 | label_roadmap_overdue: %s late | |
|
343 | 344 | label_roadmap_no_issues: このバージョンに向けての問題はありません |
|
344 | 345 | label_search: 検索 |
|
345 | 346 | label_result: %d件の結果 |
@@ -339,6 +339,7 label_sort_lower: Verplaats naar beneden | |||
|
339 | 339 | label_sort_lowest: Verplaats naar eind |
|
340 | 340 | label_roadmap: Roadmap |
|
341 | 341 | label_roadmap_due_in: Due in |
|
342 | label_roadmap_overdue: %s late | |
|
342 | 343 | label_roadmap_no_issues: Geen issues voor deze versie |
|
343 | 344 | label_search: Zoeken |
|
344 | 345 | label_result: %d resultaat |
@@ -339,6 +339,7 label_sort_lower: Mover para baixo | |||
|
339 | 339 | label_sort_lowest: Mover para o fim |
|
340 | 340 | label_roadmap: Roadmap |
|
341 | 341 | label_roadmap_due_in: Due in |
|
342 | label_roadmap_overdue: %s late | |
|
342 | 343 | label_roadmap_no_issues: Sem tarefas para essa versao |
|
343 | 344 | label_search: Busca |
|
344 | 345 | label_result: %d resultado |
@@ -339,6 +339,7 label_sort_lower: Mover para baixo | |||
|
339 | 339 | label_sort_lowest: Mover para o fim |
|
340 | 340 | label_roadmap: Roadmap |
|
341 | 341 | label_roadmap_due_in: Termina em |
|
342 | label_roadmap_overdue: %s late | |
|
342 | 343 | label_roadmap_no_issues: Sem tarefas para essa versão |
|
343 | 344 | label_search: Busca |
|
344 | 345 | label_result: %d resultado |
@@ -339,6 +339,7 label_sort_lower: Flytta ner | |||
|
339 | 339 | label_sort_lowest: Flytta till botten |
|
340 | 340 | label_roadmap: Roadmap |
|
341 | 341 | label_roadmap_due_in: Färdig om |
|
342 | label_roadmap_overdue: %s late | |
|
342 | 343 | label_roadmap_no_issues: Inga brister för denna version |
|
343 | 344 | label_search: Sök |
|
344 | 345 | label_result: %d resultat |
General Comments 0
You need to be logged in to leave comments.
Login now