summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/timelog_controller.rb12
-rw-r--r--app/views/timelog/_date_range.rhtml4
-rw-r--r--app/views/timelog/report.rhtml1
3 files changed, 13 insertions, 4 deletions
diff --git a/app/controllers/timelog_controller.rb b/app/controllers/timelog_controller.rb
index 29ba49938..ca3774bc9 100644
--- a/app/controllers/timelog_controller.rb
+++ b/app/controllers/timelog_controller.rb
@@ -80,14 +80,22 @@ class TimelogController < ApplicationController
unless @criterias.empty?
sql_select = @criterias.collect{|criteria| @available_criterias[criteria][:sql] + " AS " + criteria}.join(', ')
sql_group_by = @criterias.collect{|criteria| @available_criterias[criteria][:sql]}.join(', ')
+ sql_condition = ''
+ if @project.nil?
+ sql_condition = Project.allowed_to_condition(User.current, :view_time_entries)
+ elsif @issue.nil?
+ sql_condition = @project.project_condition(Setting.display_subprojects_issues?)
+ else
+ sql_condition = "#{TimeEntry.table_name}.issue_id = #{@issue.id}"
+ end
+
sql = "SELECT #{sql_select}, tyear, tmonth, tweek, spent_on, SUM(hours) AS hours"
sql << " FROM #{TimeEntry.table_name}"
sql << " LEFT JOIN #{Issue.table_name} ON #{TimeEntry.table_name}.issue_id = #{Issue.table_name}.id"
sql << " LEFT JOIN #{Project.table_name} ON #{TimeEntry.table_name}.project_id = #{Project.table_name}.id"
sql << " WHERE"
- sql << " (%s) AND" % @project.project_condition(Setting.display_subprojects_issues?) if @project
- sql << " (%s) AND" % Project.allowed_to_condition(User.current, :view_time_entries)
+ sql << " (%s) AND" % sql_condition
sql << " (spent_on BETWEEN '%s' AND '%s')" % [ActiveRecord::Base.connection.quoted_date(@from.to_time), ActiveRecord::Base.connection.quoted_date(@to.to_time)]
sql << " GROUP BY #{sql_group_by}, tyear, tmonth, tweek, spent_on"
diff --git a/app/views/timelog/_date_range.rhtml b/app/views/timelog/_date_range.rhtml
index 0375d3457..9addba930 100644
--- a/app/views/timelog/_date_range.rhtml
+++ b/app/views/timelog/_date_range.rhtml
@@ -27,9 +27,9 @@
<div class="tabs">
<% url_params = @free_period ? { :from => @from, :to => @to } : { :period => params[:period] } %>
<ul>
- <li><%= link_to(l(:label_details), url_params.merge({:controller => 'timelog', :action => 'details', :project_id => @project }),
+ <li><%= link_to(l(:label_details), url_params.merge({:controller => 'timelog', :action => 'details', :project_id => @project, :issue_id => @issue }),
:class => (@controller.action_name == 'details' ? 'selected' : nil)) %></li>
- <li><%= link_to(l(:label_report), url_params.merge({:controller => 'timelog', :action => 'report', :project_id => @project}),
+ <li><%= link_to(l(:label_report), url_params.merge({:controller => 'timelog', :action => 'report', :project_id => @project, :issue_id => @issue}),
:class => (@controller.action_name == 'report' ? 'selected' : nil)) %></li>
</ul>
</div>
diff --git a/app/views/timelog/report.rhtml b/app/views/timelog/report.rhtml
index 2107fcf72..533467ef2 100644
--- a/app/views/timelog/report.rhtml
+++ b/app/views/timelog/report.rhtml
@@ -12,6 +12,7 @@
<% end %>
<%# TODO: get rid of the project_id field, that should already be in the URL %>
<%= hidden_field_tag('project_id', params[:project_id]) if @project %>
+ <%= hidden_field_tag('issue_id', params[:issue_id]) if @issue %>
<%= render :partial => 'date_range' %>
<p><%= l(:label_details) %>: <%= select_tag 'columns', options_for_select([[l(:label_year), 'year'],