From b320dd60a8d4627fc199c05f54c8e41a2d244a51 Mon Sep 17 00:00:00 2001 From: sfischme Date: Thu, 15 Sep 2011 00:42:34 -0400 Subject: [PATCH 01/13] initial version of reviewing --- Gemfile | 1 + Gemfile.lock | 124 ------------------------- app/controllers/projects_controller.rb | 14 +++ app/views/projects/_edit_project.rhtml | 1 + app/views/projects/_project_form.rhtml | 4 + config/routes.rb | 2 +- public/images/reviewed.png | Bin 0 -> 3058 bytes public/stylesheets/standard.css | 4 + 8 files changed, 25 insertions(+), 125 deletions(-) delete mode 100644 Gemfile.lock create mode 100755 public/images/reviewed.png diff --git a/Gemfile b/Gemfile index e4f5bdad..64f83507 100644 --- a/Gemfile +++ b/Gemfile @@ -16,6 +16,7 @@ gem "actionwebservice", :git => "git://github.com/dejan/actionwebservice.git" gem "rubycas-client", "~>2.2.1" gem "ruby-openid", :require => "openid" gem "sqlite3" +gem "ruby-debug" gem 'bcrypt-ruby', '~> 2.1.4' gem "webrat", ">=0.7.0", :groups => [:cucumber, :test] diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index a952d7a4..00000000 --- a/Gemfile.lock +++ /dev/null @@ -1,124 +0,0 @@ -GIT - remote: git://github.com/dejan/actionwebservice.git - revision: f0d48a4f747a998cc431615d69a0bdf089b18be3 - specs: - actionwebservice (2.3.2.1705) - actionpack (>= 2.3.2) - activerecord (>= 2.3.2) - -GEM - remote: http://rubygems.org/ - remote: http://gems.github.com/ - specs: - RedCloth (4.2.3) - ZenTest (4.6.1) - aasm (2.2.0) - actionmailer (2.3.14) - actionpack (= 2.3.14) - actionpack (2.3.14) - activesupport (= 2.3.14) - rack (~> 1.1.0) - activerecord (2.3.14) - activesupport (= 2.3.14) - activeresource (2.3.14) - activesupport (= 2.3.14) - activesupport (2.3.14) - acts_as_list (0.1.4) - bcrypt-ruby (2.1.4) - builder (3.0.0) - cgi_multipart_eof_fix (2.5.0) - cucumber (1.0.2) - builder (>= 2.1.2) - diff-lcs (>= 1.1.2) - gherkin (~> 2.4.5) - json (>= 1.4.6) - term-ansicolor (>= 1.0.5) - cucumber-rails (0.3.2) - cucumber (>= 0.8.0) - daemons (1.1.4) - database_cleaner (0.6.7) - diff-lcs (1.1.2) - fastthread (1.0.7) - flexmock (0.9.0) - gem_plugin (0.2.3) - gherkin (2.4.11) - json (>= 1.4.6) - has_many_polymorphs (2.13) - activerecord - highline (1.5.2) - hoe (2.12.0) - rake (~> 0.8) - hpricot (0.8.4) - httpclient (2.2.1) - json (1.5.3) - memory_test_fix (0.1.3) - mongrel (1.1.5) - cgi_multipart_eof_fix (>= 2.4) - daemons (>= 1.0.3) - fastthread (>= 1.0.1) - gem_plugin (>= 0.2.3) - nokogiri (1.4.7) - rack (1.1.0) - rack-test (0.6.1) - rack (>= 1.0) - rails (2.3.14) - actionmailer (= 2.3.14) - actionpack (= 2.3.14) - activerecord (= 2.3.14) - activeresource (= 2.3.14) - activesupport (= 2.3.14) - rake (>= 0.8.3) - rake (0.8.7) - rspec (1.3.2) - rspec-rails (1.3.4) - rack (>= 1.0.0) - rspec (~> 1.3.1) - ruby-openid (2.1.8) - rubycas-client (2.2.1) - activesupport - sanitize (1.2.1) - nokogiri (~> 1.4.1) - selenium-client (1.2.18) - soap4r (1.5.8) - httpclient (>= 2.1.1) - sqlite3 (1.3.4) - term-ansicolor (1.0.6) - thoughtbot-factory_girl (1.2.2) - webrat (0.7.3) - nokogiri (>= 1.2.0) - rack (>= 1.0) - rack-test (>= 0.5.3) - will_paginate (2.3.16) - -PLATFORMS - ruby - -DEPENDENCIES - RedCloth (= 4.2.3) - ZenTest (>= 4.0.0) - aasm (~> 2.2.0) - actionwebservice! - acts_as_list (~> 0.1.4) - bcrypt-ruby (~> 2.1.4) - cucumber-rails (~> 0.3.0) - database_cleaner (>= 0.5.0) - flexmock - has_many_polymorphs (~> 2.13) - highline (~> 1.5.0) - hoe - hpricot - memory_test_fix (~> 0.1.3) - mongrel - rack (= 1.1.0) - rails (~> 2.3.12) - rake (~> 0.8.7) - rspec-rails (~> 1.3.3) - ruby-openid - rubycas-client (~> 2.2.1) - sanitize (~> 1.2.1) - selenium-client - soap4r (~> 1.5.8) - sqlite3 - thoughtbot-factory_girl - webrat (>= 0.7.0) - will_paginate (~> 2.3.15) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 5f681aa4..6d216e44 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -51,6 +51,20 @@ class ProjectsController < ApplicationController render end + def set_reviewed + template = 'projects/update.js.erb' + + #@source_view = 'project' + @project = current_user.projects.find(params[:id]) + + @project.todos.each do |todo| + todo.created_at = Time.now + todo.save + end + + redirect_to :action => 'show' + end + def projects_and_actions @projects = current_user.projects.active respond_to do |format| diff --git a/app/views/projects/_edit_project.rhtml b/app/views/projects/_edit_project.rhtml index e2d377af..41927dd5 100644 --- a/app/views/projects/_edit_project.rhtml +++ b/app/views/projects/_edit_project.rhtml @@ -1,4 +1,5 @@ <%= hidden_field( "project", "id" ) %> +MUUUUUAAHAHAHAHAH!!!!
<%= text_field( "project", "name" ) %>
diff --git a/app/views/projects/_project_form.rhtml b/app/views/projects/_project_form.rhtml index f6b67b6c..b1e30107 100644 --- a/app/views/projects/_project_form.rhtml +++ b/app/views/projects/_project_form.rhtml @@ -40,6 +40,10 @@ project = project_form <%=image_tag("cancel.png", :alt => "") %> Cancel + " id="<%= dom_id(project, 'reviewed') %>" class="reviewed"> + <%=image_tag("reviewed.png", :alt => "") %> + Reviewed +

diff --git a/config/routes.rb b/config/routes.rb index 1838b1bc..98307766 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -13,7 +13,7 @@ ActionController::Routing::Routes.draw do |map| end map.resources :projects, :collection => {:order => :post, :alphabetize => :post, :actionize => :post, :done => :get}, - :member => {:done_todos => :get, :all_done_todos => :get} do |projects| + :member => {:done_todos => :get, :all_done_todos => :get, :set_reviewed => :get} do |projects| projects.resources :todos, :name_prefix => "project_" end diff --git a/public/images/reviewed.png b/public/images/reviewed.png new file mode 100755 index 0000000000000000000000000000000000000000..b4c38a0b15b92ad1e929fd9717521fa79905d688 GIT binary patch literal 3058 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 Date: Thu, 15 Sep 2011 00:52:22 -0400 Subject: [PATCH 02/13] added gemfile again --- Gemfile.lock | 134 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 Gemfile.lock diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 00000000..bae08b4f --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,134 @@ +GIT + remote: git://github.com/dejan/actionwebservice.git + revision: f0d48a4f747a998cc431615d69a0bdf089b18be3 + specs: + actionwebservice (2.3.2.1705) + actionpack (>= 2.3.2) + activerecord (>= 2.3.2) + +GEM + remote: http://rubygems.org/ + remote: http://gems.github.com/ + specs: + RedCloth (4.2.3) + ZenTest (4.6.2) + aasm (2.2.1) + actionmailer (2.3.14) + actionpack (= 2.3.14) + actionpack (2.3.14) + activesupport (= 2.3.14) + rack (~> 1.1.0) + activerecord (2.3.14) + activesupport (= 2.3.14) + activeresource (2.3.14) + activesupport (= 2.3.14) + activesupport (2.3.14) + acts_as_list (0.1.4) + bcrypt-ruby (2.1.4) + builder (3.0.0) + cgi_multipart_eof_fix (2.5.0) + columnize (0.3.4) + cucumber (1.0.6) + builder (>= 2.1.2) + diff-lcs (>= 1.1.2) + gherkin (~> 2.4.18) + json (>= 1.4.6) + term-ansicolor (>= 1.0.6) + cucumber-rails (0.3.2) + cucumber (>= 0.8.0) + daemons (1.1.4) + database_cleaner (0.6.7) + diff-lcs (1.1.3) + fastthread (1.0.7) + flexmock (0.9.0) + gem_plugin (0.2.3) + gherkin (2.4.18) + json (>= 1.4.6) + has_many_polymorphs (2.13) + activerecord + highline (1.5.2) + hoe (2.12.3) + rake (~> 0.8) + hpricot (0.8.4) + httpclient (2.2.1) + json (1.6.0) + linecache (0.46) + rbx-require-relative (> 0.0.4) + memory_test_fix (0.1.3) + mongrel (1.1.5) + cgi_multipart_eof_fix (>= 2.4) + daemons (>= 1.0.3) + fastthread (>= 1.0.1) + gem_plugin (>= 0.2.3) + nokogiri (1.4.7) + rack (1.1.0) + rack-test (0.6.1) + rack (>= 1.0) + rails (2.3.14) + actionmailer (= 2.3.14) + actionpack (= 2.3.14) + activerecord (= 2.3.14) + activeresource (= 2.3.14) + activesupport (= 2.3.14) + rake (>= 0.8.3) + rake (0.8.7) + rbx-require-relative (0.0.5) + rspec (1.3.2) + rspec-rails (1.3.4) + rack (>= 1.0.0) + rspec (~> 1.3.1) + ruby-debug (0.10.4) + columnize (>= 0.1) + ruby-debug-base (~> 0.10.4.0) + ruby-debug-base (0.10.4) + linecache (>= 0.3) + ruby-openid (2.1.8) + rubycas-client (2.2.1) + activesupport + sanitize (1.2.1) + nokogiri (~> 1.4.1) + selenium-client (1.2.18) + soap4r (1.5.8) + httpclient (>= 2.1.1) + sqlite3 (1.3.4) + term-ansicolor (1.0.6) + thoughtbot-factory_girl (1.2.2) + webrat (0.7.3) + nokogiri (>= 1.2.0) + rack (>= 1.0) + rack-test (>= 0.5.3) + will_paginate (2.3.16) + +PLATFORMS + ruby + +DEPENDENCIES + RedCloth (= 4.2.3) + ZenTest (>= 4.0.0) + aasm (~> 2.2.0) + actionwebservice! + acts_as_list (~> 0.1.4) + bcrypt-ruby (~> 2.1.4) + cucumber-rails (~> 0.3.0) + database_cleaner (>= 0.5.0) + flexmock + has_many_polymorphs (~> 2.13) + highline (~> 1.5.0) + hoe + hpricot + memory_test_fix (~> 0.1.3) + mongrel + rack (= 1.1.0) + rails (~> 2.3.12) + rake (~> 0.8.7) + rspec-rails (~> 1.3.3) + ruby-debug + ruby-openid + rubycas-client (~> 2.2.1) + sanitize (~> 1.2.1) + selenium-client + soap4r (~> 1.5.8) + sqlite3 + thoughtbot-factory_girl + webrat (>= 0.7.0) + will_paginate (~> 2.3.15) From 9d5049c9ea874cb30406f9f9b2d789ad3fec3e0f Mon Sep 17 00:00:00 2001 From: sfischme Date: Thu, 15 Sep 2011 09:10:12 -0400 Subject: [PATCH 03/13] fixed html error --- app/views/projects/_project_form.rhtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/projects/_project_form.rhtml b/app/views/projects/_project_form.rhtml index b1e30107..46630cff 100644 --- a/app/views/projects/_project_form.rhtml +++ b/app/views/projects/_project_form.rhtml @@ -43,7 +43,7 @@ project = project_form
" id="<%= dom_id(project, 'reviewed') %>" class="reviewed"> <%=image_tag("reviewed.png", :alt => "") %> Reviewed - +

From 7ebf25320b305a741161a2f3f2c0562a658cc18f Mon Sep 17 00:00:00 2001 From: sfischme Date: Thu, 15 Sep 2011 09:30:50 -0400 Subject: [PATCH 04/13] better icon --- public/images/reviewed.png | Bin 3058 -> 642 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/images/reviewed.png b/public/images/reviewed.png index b4c38a0b15b92ad1e929fd9717521fa79905d688..9c4495be6bdc3649171bcd81be419a71b6b226c3 100755 GIT binary patch delta 618 zcmV-w0+s#p7lH+lBYy%(Nkli7AyLFH>gD9}) z_I1j4LHi$$bw6?Y~H#djNiX{{Z5s$~o<#O2Vb^v5qCKmfZd;5I= z>~;yORX#TmLU4F^NGKG-6bJ2>i z#CKk(t9ZR$0)fEA7S`6*h{a+^l0-{O3)|bJx#bR04b&igX$Y!%-G8xk8G`g-MgkZhg%&9}hY%ycA*|6EHJbZMAcW*!QA1Y?Clfl{e->C#5tWaxYB=SvPwiWhvX1YegwUbOHhJbV3#^>6wm?nDXVSbfh( zxBPd5-*GPz1>kAlO@=z^FaN^7z~{O~$1NvA9rXbG0LiQQ(DgpTGXMYp07*qoM6N<$ Ef_U&PmH+?% delta 3053 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 Date: Thu, 15 Sep 2011 20:52:24 -0400 Subject: [PATCH 05/13] added separate database field for reviews --- app/controllers/projects_controller.rb | 12 ++++++------ app/helpers/projects_helper.rb | 16 ++++++++++++++++ app/views/projects/_project_listing.rhtml | 6 +++++- ...0110915100000_add_last_reviewed_to_project.rb | 9 +++++++++ public/stylesheets/standard.css | 4 ++++ 5 files changed, 40 insertions(+), 7 deletions(-) create mode 100644 db/migrate/20110915100000_add_last_reviewed_to_project.rb diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 6d216e44..a400c710 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -52,15 +52,15 @@ class ProjectsController < ApplicationController end def set_reviewed - template = 'projects/update.js.erb' - #@source_view = 'project' @project = current_user.projects.find(params[:id]) + @project.last_reviewed = Time.now + @project.save - @project.todos.each do |todo| - todo.created_at = Time.now - todo.save - end +# @project.todos.each do |todo| +# todo.created_at = Time.now +# todo.save +# end redirect_to :action => 'show' end diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 5773e5c8..752141c6 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -67,4 +67,20 @@ module ProjectsHelper project_description end + def needsreview_class(item) +# if item.due || item.completed? +# return "" +# elsif item.last_reviewed < current_user.time - (prefs.staleness_starts * 3).days +# return " stale_l3" +# elsif item.last_reviewed < current_user.time - (prefs.staleness_starts * 2).days +# return " stale_l2" +# elsif + if item.last_reviewed < current_user.time - (prefs.staleness_starts).days + return "needsreview" + else + return "needsnoreview" + end + end + + end diff --git a/app/views/projects/_project_listing.rhtml b/app/views/projects/_project_listing.rhtml index b07bf0c3..1fdfddde 100644 --- a/app/views/projects/_project_listing.rhtml +++ b/app/views/projects/_project_listing.rhtml @@ -12,8 +12,12 @@ suppress_edit_button ||= false <% end -%> +
- <%= link_to_project( project ) %><%= " (" + count_undone_todos_and_notes_phrase(project,"actions") + ")" %> + + <%= link_to_project( project ) %> + + <%= " (" + count_undone_todos_and_notes_phrase(project,"actions") + ")" %>
diff --git a/db/migrate/20110915100000_add_last_reviewed_to_project.rb b/db/migrate/20110915100000_add_last_reviewed_to_project.rb new file mode 100644 index 00000000..e6d84814 --- /dev/null +++ b/db/migrate/20110915100000_add_last_reviewed_to_project.rb @@ -0,0 +1,9 @@ +class AddLastReviewedToProject < ActiveRecord::Migration + def self.up + add_column :projects, :last_reviewed, :timestamp + execute 'update projects set last_reviewed = created_at where last_reviewed IS NULL' + end + def self.down + remove_column :projects, :last_reviewed + end +end diff --git a/public/stylesheets/standard.css b/public/stylesheets/standard.css index 19398cd7..f8a9d9fc 100644 --- a/public/stylesheets/standard.css +++ b/public/stylesheets/standard.css @@ -1,3 +1,7 @@ +.needsreview { + background: #ffC; +} + .widgets a.reviewed, button.reviewed{ float:right; } From 33befa88b32ed0a3a912947b060e153436c6e30d Mon Sep 17 00:00:00 2001 From: sfischme Date: Thu, 15 Sep 2011 21:06:50 -0400 Subject: [PATCH 06/13] added preference settings --- app/helpers/projects_helper.rb | 10 ++-------- app/views/preferences/_tracks_behavior.html.erb | 1 + app/views/projects/_project_listing.rhtml | 4 ++-- .../20110915100001_add_next_review_preferences.rb | 8 ++++++++ 4 files changed, 13 insertions(+), 10 deletions(-) create mode 100644 db/migrate/20110915100001_add_next_review_preferences.rb diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 752141c6..1d383fd5 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -68,14 +68,8 @@ module ProjectsHelper end def needsreview_class(item) -# if item.due || item.completed? -# return "" -# elsif item.last_reviewed < current_user.time - (prefs.staleness_starts * 3).days -# return " stale_l3" -# elsif item.last_reviewed < current_user.time - (prefs.staleness_starts * 2).days -# return " stale_l2" -# elsif - if item.last_reviewed < current_user.time - (prefs.staleness_starts).days + ### FIXME: need to check to do this with active projects only + if item.last_reviewed < current_user.time - (prefs.review_period).days return "needsreview" else return "needsnoreview" diff --git a/app/views/preferences/_tracks_behavior.html.erb b/app/views/preferences/_tracks_behavior.html.erb index 480b647f..b4937187 100644 --- a/app/views/preferences/_tracks_behavior.html.erb +++ b/app/views/preferences/_tracks_behavior.html.erb @@ -5,6 +5,7 @@ <%= pref_with_select_field('prefs', "show_hidden_contexts_in_sidebar") %> <%= pref_with_select_field('prefs', "show_project_on_todo_done") %> <%= pref_with_text_field('prefs', 'staleness_starts') %> +<%= pref_with_text_field('prefs', 'review_period') %> <%= pref_with_text_field('prefs', 'show_number_completed') %> <%= pref_with_text_field('prefs', 'refresh') %> <%= pref_with_select_field('prefs', "verbose_action_descriptors") %> diff --git a/app/views/projects/_project_listing.rhtml b/app/views/projects/_project_listing.rhtml index 1fdfddde..3d452c54 100644 --- a/app/views/projects/_project_listing.rhtml +++ b/app/views/projects/_project_listing.rhtml @@ -16,8 +16,8 @@ suppress_edit_button ||= false
<%= link_to_project( project ) %> - - <%= " (" + count_undone_todos_and_notes_phrase(project,"actions") + ")" %> + <%= " (" + count_undone_todos_and_notes_phrase(project,"actions") + ")" %> +
diff --git a/db/migrate/20110915100001_add_next_review_preferences.rb b/db/migrate/20110915100001_add_next_review_preferences.rb new file mode 100644 index 00000000..633c765d --- /dev/null +++ b/db/migrate/20110915100001_add_next_review_preferences.rb @@ -0,0 +1,8 @@ +class AddNextReviewPreferences < ActiveRecord::Migration + def self.up + add_column :preferences, :review_period, :integer, :default => 14, :null => false + end + def self.down + remove_column :preferences, :review_period + end +end From 01bcc7a48cafe391e0165a6bd768e1f19abc3cd9 Mon Sep 17 00:00:00 2001 From: sfischme Date: Thu, 15 Sep 2011 21:09:03 -0400 Subject: [PATCH 07/13] code cleanup --- app/controllers/projects_controller.rb | 7 ------- 1 file changed, 7 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index a400c710..51f7eae5 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -52,16 +52,9 @@ class ProjectsController < ApplicationController end def set_reviewed - #@source_view = 'project' @project = current_user.projects.find(params[:id]) @project.last_reviewed = Time.now @project.save - -# @project.todos.each do |todo| -# todo.created_at = Time.now -# todo.save -# end - redirect_to :action => 'show' end From 5f0bcebca968f56f8227cf039efca3a823d97d39 Mon Sep 17 00:00:00 2001 From: sfischme Date: Fri, 16 Sep 2011 15:07:58 -0400 Subject: [PATCH 08/13] first steps towards review view --- app/controllers/projects_controller.rb | 4 ++++ app/helpers/projects_helper.rb | 2 +- app/models/project.rb | 5 +++++ app/views/projects/_project_state_group.rhtml | 2 +- config/routes.rb | 6 ++++++ 5 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 51f7eae5..7856235b 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -33,6 +33,10 @@ class ProjectsController < ApplicationController end end + def review + puts "MUAUAUAUAUAUAUAUA" + end + def done @source_view = params['_source_view'] || 'project_list' @page_title = t('projects.list_completed_projects') diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 1d383fd5..f0171d11 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -69,7 +69,7 @@ module ProjectsHelper def needsreview_class(item) ### FIXME: need to check to do this with active projects only - if item.last_reviewed < current_user.time - (prefs.review_period).days + if item.needs_review?(current_user) return "needsreview" else return "needsnoreview" diff --git a/app/models/project.rb b/app/models/project.rb index c78e6ccb..7a3730ab 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -107,6 +107,11 @@ class Project < ActiveRecord::Base end end + def needs_review?(current_user) + return (last_reviewed < current_user.time ) # - current_user.prefs.review_period.days) + end + + def name=(value) self[:name] = value.gsub(/\s{2,}/, " ").strip end diff --git a/app/views/projects/_project_state_group.rhtml b/app/views/projects/_project_state_group.rhtml index beb7d882..68b03240 100644 --- a/app/views/projects/_project_state_group.rhtml +++ b/app/views/projects/_project_state_group.rhtml @@ -18,6 +18,6 @@
- <%= render :partial => 'project_listing', :collection => project_state_group %> + <%= render :partial => 'projects/project_listing', :collection => project_state_group %>
diff --git a/config/routes.rb b/config/routes.rb index 98307766..c642eb35 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -17,6 +17,11 @@ ActionController::Routing::Routes.draw do |map| projects.resources :todos, :name_prefix => "project_" end + map.with_options :controller => :projects do |projects| + # projects.home '', :action => "index" + projects.review 'review', :action => :review + end + map.resources :notes map.resources :todos, @@ -24,6 +29,7 @@ ActionController::Routing::Routes.draw do |map| :collection => {:check_deferred => :post, :filter_to_context => :post, :filter_to_project => :post, :done => :get, :all_done => :get } + map.with_options :controller => :todos do |todos| todos.home '', :action => "index" todos.tickler 'tickler.:format', :action => "list_deferred" From ac98737176654878b34aefef86fea34640b9c286 Mon Sep 17 00:00:00 2001 From: sfischme Date: Fri, 16 Sep 2011 23:34:09 -0400 Subject: [PATCH 09/13] first version of review view --- app/controllers/projects_controller.rb | 35 ++++++++++++++++++- app/helpers/projects_helper.rb | 4 +-- app/models/project.rb | 23 +++++++++++- app/views/layouts/standard.html.erb | 1 + app/views/projects/_project_state_group.rhtml | 6 +++- app/views/projects/review.html.erb | 6 ++++ config/locales/en.yml | 9 +++++ features/support/paths.rb | 3 ++ 8 files changed, 82 insertions(+), 5 deletions(-) create mode 100644 app/views/projects/review.html.erb diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 7856235b..b8437feb 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -34,7 +34,40 @@ class ProjectsController < ApplicationController end def review - puts "MUAUAUAUAUAUAUAUA" + ## select project that need reviewing + @projects_to_review = Array.new + current_user.projects.each do |project| + @projects_to_review.push project if project.needs_review?(current_user) + end + + ## select project that are stalled + @stalled_projects = Array.new + current_user.projects.each do |project| + @stalled_projects.push project if project.stalled? + end + + ## select project that are stalled + @blocked_projects = Array.new + current_user.projects.each do |project| + @blocked_projects.push project if project.blocked? + end + + @contexts = current_user.contexts.all + init_not_done_counts(['project']) + init_project_hidden_todo_counts(['project']) + if params[:only_active_with_no_next_actions] + @projects = current_user.projects.active.select { |p| count_undone_todos(p) == 0 } + else + @projects = current_user.projects.all + end + + @page_title = t('projects.list_reviews') + @count = @projects_to_review.count + @blocked_projects.count + @stalled_projects.count + + @no_projects = current_user.projects.empty? + current_user.projects.cache_note_counts + @new_project = current_user.projects.build + render end def done diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index f0171d11..aadb3303 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -68,7 +68,8 @@ module ProjectsHelper end def needsreview_class(item) - ### FIXME: need to check to do this with active projects only + raise "item must be a Project " unless item.kind_of? Project + if item.needs_review?(current_user) return "needsreview" else @@ -76,5 +77,4 @@ module ProjectsHelper end end - end diff --git a/app/models/project.rb b/app/models/project.rb index 7a3730ab..8f9478a5 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -108,7 +108,28 @@ class Project < ActiveRecord::Base end def needs_review?(current_user) - return (last_reviewed < current_user.time ) # - current_user.prefs.review_period.days) + return false unless !nil? + return true if last_reviewed.nil? + return (active? && (last_reviewed < current_user.time - current_user.prefs.review_period.days)) + end + + def blocked? + ## mutually exclusive for stalled and blocked + return false if stalled? + is_blocked = true + todos.each do |t| + is_blocked = false if (!t.completed? && !t.deferred? && !t.pending?) + end + return is_blocked + end + + def stalled? + return true if todos.count == 0 + is_stalled = true + todos.each do |t| + is_stalled = false if (!t.completed?) + end + return is_stalled end diff --git a/app/views/layouts/standard.html.erb b/app/views/layouts/standard.html.erb index 86409650..f47cfa96 100644 --- a/app/views/layouts/standard.html.erb +++ b/app/views/layouts/standard.html.erb @@ -64,6 +64,7 @@
  • <%= navigation_link( t('common.contexts'), contexts_path, {:accesskey=>"c", :title=>t('layouts.navigation.contexts_title')} ) %>
  • <%= navigation_link( t('common.notes'), notes_path, {:accesskey => "o", :title => t('layouts.navigation.notes_title')} ) %>
  • +
  • <%= navigation_link( t('common.review'), review_path, {:accesskey => "r", :title => t('layouts.navigation.review_title')} ) %>
  • <%= navigation_link( t('layouts.navigation.recurring_todos'), {:controller => "recurring_todos", :action => "index"}, :title => t('layouts.navigation.recurring_todos_title')) %>
diff --git a/app/views/projects/_project_state_group.rhtml b/app/views/projects/_project_state_group.rhtml index 68b03240..65e15230 100644 --- a/app/views/projects/_project_state_group.rhtml +++ b/app/views/projects/_project_state_group.rhtml @@ -5,7 +5,11 @@
>

<%= project_state_group.length%><%= total_count_string%> - <%= t('common.last' )%> <%= t('states.'+state+'_plural' )%> <%= t('common.projects') %><%= total_count==-1 ? "" : " ("+link_to("Show all", done_projects_path)+")"%> + + <%= t('common.last' ) unless (state == 'review' || state == 'stalled' || state == 'blocked')%> + <%= t('states.'+state+'_plural' )%> + <%= t('common.projects') %><%= total_count==-1 ? "" : " ("+link_to("Show all", done_projects_path)+")"%> +