Revision 1207
Added by Jean-Philippe Lang over 17 years ago
Version details view changes:
- display related issues on the version detail view
- display total estimated and spent hours on the version detail view
- fixed wiki headings size (same as r1168)
trunk/app/helpers/projects_helper.rb | ||
---|---|---|
18 | 18 |
module ProjectsHelper |
19 | 19 |
def link_to_version(version, options = {}) |
20 | 20 |
return '' unless version && version.is_a?(Version) |
21 |
link_to version.name, {:controller => 'projects', |
|
22 |
:action => 'roadmap', |
|
23 |
:id => version.project_id, |
|
24 |
:completed => (version.completed? ? 1 : nil), |
|
25 |
:anchor => version.name |
|
26 |
}, options |
|
21 |
link_to h(version.name), { :controller => 'versions', :action => 'show', :id => version }, options |
|
27 | 22 |
end |
28 | 23 |
|
29 | 24 |
def format_activity_day(date) |
trunk/app/models/version.rb | ||
---|---|---|
34 | 34 |
effective_date |
35 | 35 |
end |
36 | 36 |
|
37 |
# Returns the total estimated time for this version |
|
38 |
def estimated_hours |
|
39 |
@estimated_hours ||= fixed_issues.sum(:estimated_hours).to_f |
|
40 |
end |
|
41 |
|
|
42 |
# Returns the total reported time for this version |
|
43 |
def spent_hours |
|
44 |
@spent_hours ||= TimeEntry.sum(:hours, :include => :issue, :conditions => ["#{Issue.table_name}.fixed_version_id = ?", id]).to_f |
|
45 |
end |
|
46 |
|
|
37 | 47 |
# Returns true if the version is completed: due date reached and no open issues |
38 | 48 |
def completed? |
39 | 49 |
effective_date && (effective_date <= Date.today) && (open_issues_count == 0) |
trunk/app/views/versions/show.rhtml | ||
---|---|---|
4 | 4 |
|
5 | 5 |
<h2><%= h(@version.name) %></h2> |
6 | 6 |
|
7 |
<div id="version-summary"> |
|
8 |
<% if @version.estimated_hours > 0 || User.current.allowed_to?(:view_time_entries, @project) %> |
|
9 |
<fieldset><legend><%= l(:label_time_tracking) %></legend> |
|
10 |
<table> |
|
11 |
<tr> |
|
12 |
<td width="130px" align="right"><%= l(:field_estimated_hours) %></td> |
|
13 |
<td width="240px" class="total-hours"width="130px" align="right"><%= html_hours(lwr(:label_f_hour, @version.estimated_hours)) %></td> |
|
14 |
</tr> |
|
15 |
<% if User.current.allowed_to?(:view_time_entries, @project) %> |
|
16 |
<tr> |
|
17 |
<td width="130px" align="right"><%= l(:label_spent_time) %></td> |
|
18 |
<td width="240px" class="total-hours"><%= html_hours(lwr(:label_f_hour, @version.spent_hours)) %></td> |
|
19 |
</tr> |
|
20 |
<% end %> |
|
21 |
</table> |
|
22 |
</fieldset> |
|
23 |
<% end %> |
|
24 |
|
|
7 | 25 |
<div id="status_by"> |
8 | 26 |
<%= render_issue_status_by(@version, params[:status_by]) if @version.fixed_issues.count > 0 %> |
9 | 27 |
</div> |
28 |
</div> |
|
10 | 29 |
|
30 |
<div id="roadmap"> |
|
11 | 31 |
<%= render :partial => 'versions/overview', :locals => {:version => @version} %> |
12 | 32 |
<%= render(:partial => "wiki/content", :locals => {:content => @version.wiki_page.content}) if @version.wiki_page %> |
13 | 33 |
|
34 |
<% issues = @version.fixed_issues.find(:all, |
|
35 |
:include => [:status, :tracker], |
|
36 |
:order => "#{Tracker.table_name}.position, #{Issue.table_name}.id") %> |
|
37 |
<% if issues.size > 0 %> |
|
38 |
<fieldset class="related-issues"><legend><%= l(:label_related_issues) %></legend> |
|
39 |
<ul> |
|
40 |
<% issues.each do |issue| -%> |
|
41 |
<li><%= link = link_to_issue(issue) |
|
42 |
issue.status.is_closed? ? content_tag("del", link) : link %>: <%=h issue.subject %></li> |
|
43 |
<% end -%> |
|
44 |
</ul> |
|
45 |
</fieldset> |
|
46 |
<% end %> |
|
47 |
</div> |
|
48 |
|
|
14 | 49 |
<% html_title @version.name %> |
trunk/public/stylesheets/application.css | ||
---|---|---|
174 | 174 |
div#roadmap .wiki h1 { font-size: 120%; } |
175 | 175 |
div#roadmap .wiki h2 { font-size: 110%; } |
176 | 176 |
|
177 |
div#version-summary { float:right; width:380px; margin-left: 16px; margin-bottom: 16px; background-color: #fff; } |
|
178 |
div#version-summary fieldset { margin-bottom: 1em; } |
|
179 |
div#version-summary .total-hours { text-align: right; } |
|
180 |
|
|
177 | 181 |
table#time-report td.hours { text-align: right; padding-right: 0.5em; } |
178 | 182 |
table#time-report tbody tr { font-style: italic; color: #777; } |
179 | 183 |
table#time-report tbody tr.last-level { font-style: normal; color: #555; } |
180 | 184 |
table#time-report tbody tr.total { font-style: normal; font-weight: bold; color: #555; background-color:#EEEEEE; } |
181 | 185 |
table#time-report .hours-dec { font-size: 0.9em; } |
182 | 186 |
|
183 |
div.total-hours { text-align: left; font-size: 110%; font-weight: bold; }
|
|
184 |
div.total-hours span.hours-int { font-size: 120%; }
|
|
187 |
.total-hours { font-size: 110%; font-weight: bold; }
|
|
188 |
.total-hours span.hours-int { font-size: 120%; } |
|
185 | 189 |
|
186 | 190 |
.autoscroll {overflow-x: auto; padding:1px; width:100%; margin-bottom: 1.2em;} |
187 | 191 |
#user_firstname, #user_lastname, #user_mail, #my_account_form select { width: 90%; } |
... | ... | |
337 | 341 |
p.pourcent {font-size: 80%;} |
338 | 342 |
p.progress-info {clear: left; font-style: italic; font-size: 80%;} |
339 | 343 |
|
340 |
div#status_by { float:right; width:380px; margin-left: 16px; margin-bottom: 16px; } |
|
341 |
|
|
342 | 344 |
/***** Tabs *****/ |
343 | 345 |
#content .tabs {height: 2.6em; border-bottom: 1px solid #bbbbbb; margin-bottom:1.2em; position:relative;} |
344 | 346 |
#content .tabs ul {margin:0; position:absolute; bottom:-2px; padding-left:1em;} |
Also available in: Unified diff