diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 2adea3c9..381ba8bf 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -74,7 +74,17 @@ class ProjectsController < ApplicationController
def set_reviewed
@project.last_reviewed = Time.zone.now
@project.save
- redirect_to :action => 'show'
+
+ case @source_view
+ when "project"
+ redirect_to :action => 'show'
+ when "project_list"
+ redirect_to :action => 'index'
+ when "review"
+ redirect_to :action => 'review'
+ else
+ redirect_to :action => 'index'
+ end
end
def projects_and_actions
diff --git a/app/views/projects/_project_form.rhtml b/app/views/projects/_project_form.rhtml
index 8aa86ee1..b349f9f5 100644
--- a/app/views/projects/_project_form.rhtml
+++ b/app/views/projects/_project_form.rhtml
@@ -40,7 +40,7 @@ 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/features/review.feature b/features/review.feature
index 6ba74cd4..c41a4aa6 100644
--- a/features/review.feature
+++ b/features/review.feature
@@ -34,3 +34,27 @@ Feature: Reviewing projects
Given I have an outdated project "dated_project" with 1 todos
When I go to the review page
And the badge should show 5 ## note that stalled and blocked projects are also up-to-date listed
+
+ @javascript
+ Scenario: I can mark a project as reviewed from the projects list page
+ Given I have a project called "review me"
+ When I go to the projects page
+ Then I should see "review me"
+ When I edit project "review me" and mark the project as reviewed
+ Then I should be on the projects page
+ And I should see "review me"
+
+ @javascript
+ Scenario: I can mark a project as reviewed from the project page
+ Given I have a project called "review me"
+ When I go to the "review me" project
+ When I edit project settings and mark the project as reviewed
+ Then I should be on the "review me" project
+
+ @javascript
+ Scenario: I can mark a project as reviewed from the review page
+ Given I have an outdated project "review me" with 1 todos
+ When I go to the review page
+ Then I should see "review me"
+ When I edit project "review me" and mark the project as reviewed
+ Then I should be on the review page
\ No newline at end of file
diff --git a/features/step_definitions/project_steps.rb b/features/step_definitions/project_steps.rb
index c948343e..812c068f 100644
--- a/features/step_definitions/project_steps.rb
+++ b/features/step_definitions/project_steps.rb
@@ -164,7 +164,6 @@ When /^I edit the project settings$/ do
page.should have_xpath("//div[@id='edit_project_#{@project.id}']/form//button[@id='submit_project_#{@project.id}']")
end
-
When /^I close the project settings$/ do
@project.should_not be_nil
click_link "Cancel"
@@ -181,6 +180,19 @@ When /^I edit the project state of "([^"]*)" to "([^"]*)"$/ do |project_name, st
end
end
+When /^I edit project "([^"]*)" and mark the project as reviewed$/ do |project_name|
+ project = @current_user.projects.find_by_name(project_name)
+ project.should_not be_nil
+
+ open_project_edit_form(project)
+ click_link "reviewed_project_#{project.id}"
+end
+
+When /^I edit project settings and mark the project as reviewed$/ do
+ open_project_edit_form(@project)
+ click_link "reviewed_project_#{@project.id}"
+end
+
When /^I add a note "([^"]*)" to the project$/ do |note_body|
click_link "Add a note"
fill_in "note[body]", :with => note_body