diff --git a/tracks/app/controllers/contexts_controller.rb b/tracks/app/controllers/contexts_controller.rb index 08eab114..82883b79 100644 --- a/tracks/app/controllers/contexts_controller.rb +++ b/tracks/app/controllers/contexts_controller.rb @@ -155,12 +155,14 @@ class ContextsController < ApplicationController def init_todos set_context_from_params unless @context.nil? - @done = @context.done_todos + @context.todos.with_scope :find => { :include => [:project, :tags] } do + @done = @context.done_todos + end # @not_done_todos = @context.not_done_todos # TODO: Temporarily doing this search manually until I can work out a way # to do the same thing using not_done_todos acts_as_todo_container method # Hides actions in hidden projects from context. - @not_done_todos = @context.todos.find(:all, :conditions => ['todos.state = ?', 'active'], :order => "todos.due IS NULL, todos.due ASC, todos.created_at ASC", :include => :project) + @not_done_todos = @context.todos.find(:all, :conditions => ['todos.state = ?', 'active'], :order => "todos.due IS NULL, todos.due ASC, todos.created_at ASC", :include => [:project, :tags]) @count = @not_done_todos.size @default_project_context_name_map = build_default_project_context_name_map(@projects).to_json end diff --git a/tracks/app/controllers/projects_controller.rb b/tracks/app/controllers/projects_controller.rb index 441ff225..fd43c6cb 100644 --- a/tracks/app/controllers/projects_controller.rb +++ b/tracks/app/controllers/projects_controller.rb @@ -27,9 +27,11 @@ class ProjectsController < ApplicationController def show init_data_for_sidebar @page_title = "TRACKS::Project: #{@project.name}" - @not_done = @project.not_done_todos(:include_project_hidden_todos => true) - @deferred = @project.deferred_todos.sort_by { |todo| todo.show_from } - @done = @project.done_todos + @project.todos.with_scope :find => { :include => [:context, :tags] } do + @not_done = @project.not_done_todos(:include_project_hidden_todos => true) + @deferred = @project.deferred_todos.sort_by { |todo| todo.show_from } + @done = @project.done_todos + end @count = @not_done.size @next_project = current_user.projects.next_from(@project) @previous_project = current_user.projects.previous_from(@project) diff --git a/tracks/app/helpers/todos_helper.rb b/tracks/app/helpers/todos_helper.rb index 9b9ecca4..23139eb1 100644 --- a/tracks/app/helpers/todos_helper.rb +++ b/tracks/app/helpers/todos_helper.rb @@ -93,19 +93,23 @@ module TodosHelper end end - def project_and_context_links(parent_container_type) + def project_and_context_links(parent_container_type, opts = {}) + str = '' if @todo.completed? - "(#{@todo.context.name}#{", " + @todo.project.name unless @todo.project.nil?})" + str += @todo.context.name unless opts[:suppress_context] + should_suppress_project = opts[:suppress_project] || @todo.project.nil? + str += ", " unless str.blank? || should_suppress_project + str += @todo.project.name unless should_suppress_project + str = "(#{str})" unless str.blank? else - str = '' if (['project', 'tag'].include?(parent_container_type)) str << item_link_to_context( @todo ) end if (['context', 'tickler', 'tag'].include?(parent_container_type)) && @todo.project_id str << item_link_to_project( @todo ) end - str end + return str end # Uses the 'staleness_starts' value from settings.yml (in days) to colour the diff --git a/tracks/app/views/contexts/show.rhtml b/tracks/app/views/contexts/show.rhtml index e2c4caf9..a269d379 100644 --- a/tracks/app/views/contexts/show.rhtml +++ b/tracks/app/views/contexts/show.rhtml @@ -1,6 +1,6 @@
<%= render :partial => "contexts/context", :locals => { :context => @context, :collapsible => false } %> -<%= render :partial => "todos/completed", :locals => { :done => @done, :collapsible => false, :append_descriptor => "in this context (last #{prefs.show_number_completed})" } %> +<%= render :partial => "todos/completed", :locals => { :done => @done, :suppress_context => true, :collapsible => false, :append_descriptor => "in this context (last #{prefs.show_number_completed})" } %>
diff --git a/tracks/app/views/projects/show.rhtml b/tracks/app/views/projects/show.rhtml index c474f38a..cc9501cf 100644 --- a/tracks/app/views/projects/show.rhtml +++ b/tracks/app/views/projects/show.rhtml @@ -5,7 +5,7 @@ <%= render :partial => "projects/project", :locals => { :project => @project, :collapsible => false } %> <%= render :partial => "todos/deferred", :locals => { :deferred => @deferred, :collapsible => false, :append_descriptor => "in this project" } %> -<%= render :partial => "todos/completed", :locals => { :done => @done, :collapsible => false, :append_descriptor => "in this project" } %> +<%= render :partial => "todos/completed", :locals => { :done => @done, :collapsible => false, :suppress_project => true, :append_descriptor => "in this project" } %>
diff --git a/tracks/app/views/todos/_completed.rhtml b/tracks/app/views/todos/_completed.rhtml index 4a1c41b3..e2a1f962 100644 --- a/tracks/app/views/todos/_completed.rhtml +++ b/tracks/app/views/todos/_completed.rhtml @@ -1,10 +1,13 @@ -<% suffix = append_descriptor ? append_descriptor : '' -%> +<% suffix = append_descriptor ? append_descriptor : '' + suppress_context ||= false + suppress_project ||= false +-%>

<% if collapsible %> <%= image_tag("collapse.png") %> <% end %> - Completed actions <%= append_descriptor ? append_descriptor : '' %> + Completed actions <%= suffix %>

@@ -12,6 +15,6 @@

Currently there are no completed actions.

- <%= render :partial => "todos/todo", :collection => done, :locals => { :parent_container_type => "completed" } %> + <%= render :partial => "todos/todo", :collection => done, :locals => { :parent_container_type => "completed", :suppress_context => suppress_context, :suppress_project => suppress_project } %>
\ No newline at end of file diff --git a/tracks/app/views/todos/_todo.rhtml b/tracks/app/views/todos/_todo.rhtml index 7815a462..d49753f6 100644 --- a/tracks/app/views/todos/_todo.rhtml +++ b/tracks/app/views/todos/_todo.rhtml @@ -1,5 +1,7 @@ <% @todo = todo + suppress_context ||= false + suppress_project ||= false %>
@@ -12,7 +14,7 @@ <%= sanitize(todo.description) %> <%= tag_list %> <%= deferred_due_date %> - <%= project_and_context_links( parent_container_type ) %> + <%= project_and_context_links( parent_container_type, :suppress_context => suppress_context, :suppress_project => suppress_project ) %> <%= render(:partial => "todos/toggle_notes", :locals => { :item => todo }) if todo.notes? %>
diff --git a/tracks/lib/tasks/query_trace_toggle.rake b/tracks/lib/tasks/query_trace_toggle.rake index 23186e7c..a6321541 100644 --- a/tracks/lib/tasks/query_trace_toggle.rake +++ b/tracks/lib/tasks/query_trace_toggle.rake @@ -21,4 +21,30 @@ namespace :query_trace do FileUtils.rm_rf("#{RAILS_ROOT}/vendor/plugins/query_trace") puts "QueryTrace plugin disabled. Must restart server to take effect." end -end \ No newline at end of file +end + +namespace :query_analyzer do + desc "Enables the query_analyzer plugin. Must restart server to take effect." + task :on => :environment do + unless File.exist?("#{RAILS_ROOT}/vendor/query_analyzer.tar.gz") + Dir.chdir("#{RAILS_ROOT}/vendor") do + url = "http://svn.nfectio.us/plugins/query_analyzer" + puts "Loading query_analyzer from #{url}..." + system "svn co #{url} query_analyzer" + system "tar zcf query_analyzer.tar.gz --exclude=.svn query_analyzer" + FileUtils.rm_rf("query_analyzer") + end + end + Dir.chdir("#{RAILS_ROOT}/vendor/plugins") do + system "tar zxf ../query_analyzer.tar.gz query_analyzer" + end + puts "QueryAnalyzer plugin enabled. Must restart server to take effect." + end + + desc "Disables the query_analyzer plugin. Must restart server to take effect." + task :off => :environment do + FileUtils.rm_rf("#{RAILS_ROOT}/vendor/plugins/query_analyzer") + puts "QueryAnalyzer plugin disabled. Must restart server to take effect." + end +end + diff --git a/tracks/vendor/query_analyzer.tar.gz b/tracks/vendor/query_analyzer.tar.gz new file mode 100644 index 00000000..6ace5199 Binary files /dev/null and b/tracks/vendor/query_analyzer.tar.gz differ