Skip to content

Commit 381b592

Browse files
committed
Add an option to disable courses' code reviews
1 parent d35dac2 commit 381b592

File tree

6 files changed

+25
-1
lines changed

6 files changed

+25
-1
lines changed

app/controllers/courses_controller.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,12 @@ def toggle_hidden
9797
redirect_to(organization_course_path(@organization, @course), notice: "Course is now #{@course.hidden? ? 'hidden' : 'visible'}.")
9898
end
9999

100+
def toggle_code_review_requests
101+
authorize! :teach, @organization
102+
@course.update!(code_review_requests_enabled: !@course.code_review_requests_enabled)
103+
redirect_to(organization_course_path(@organization, @course), notice: "Code review requests are now #{@course.code_review_requests_enabled? ? 'enabled' : 'disabled'}.")
104+
end
105+
100106
def manage_deadlines
101107
authorize! :manage_deadlines, @course
102108
add_course_breadcrumb

app/models/exercise.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,10 @@ def runtime_params_array
401401
ActiveSupport::JSON.decode(runtime_params)
402402
end
403403

404+
def code_review_requests_enabled?
405+
course.code_review_requests_enabled? && self[:code_review_requests_enabled]
406+
end
407+
404408
def self.default_options
405409
{
406410
'deadline' => nil,

app/views/courses/show.html.erb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,13 @@
127127
<% end %>
128128
<% end %>
129129

130+
<li>
131+
<% if @course.code_review_requests_enabled? %>
132+
<%= link_to 'Disable code review requests', toggle_code_review_requests_organization_course_path(@organization, @course), method: :post, class: "btn btn-warning btn-sm" %>
133+
<% else %>
134+
<%= link_to 'Enable code review requests', toggle_code_review_requests_organization_course_path(@organization, @course), method: :post, class: "btn btn-warning btn-sm" %>
135+
<% end %>
136+
</li>
130137
<% # Course timing, deadlines, unlocks %>
131138
<% if can? :manage_deadlines, @course %>
132139
<li>

config/routes.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@
162162
post 'enable'
163163
post 'disable'
164164
post 'toggle_hidden'
165+
post 'toggle_code_review_requests'
165166
get 'courses', to: 'courses#show_json', format: 'json', as: 'one_course_json'
166167
get 'students', to: 'courses#student_emails'
167168
resources :emails, only: [:index]
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class AddCodeReviewRequestsEnabledToCourse < ActiveRecord::Migration
2+
def change
3+
add_column :courses, :code_review_requests_enabled, :boolean, null: false, default: true
4+
end
5+
end

db/schema.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#
1212
# It's strongly recommended that you check this file into your version control system.
1313

14-
ActiveRecord::Schema.define(version: 20180912080101) do
14+
ActiveRecord::Schema.define(version: 20181003103718) do
1515

1616
# These are extensions that must be enabled in order to support this database
1717
enable_extension "plpgsql"
@@ -116,6 +116,7 @@
116116
t.boolean "hide_submissions", default: false, null: false
117117
t.boolean "model_solution_visible_before_completion", default: false, null: false
118118
t.float "soft_deadline_point_multiplier", default: 0.75, null: false
119+
t.boolean "code_review_requests_enabled", default: true, null: false
119120
end
120121

121122
add_index "courses", ["organization_id"], name: "index_courses_on_organization_id", using: :btree

0 commit comments

Comments
 (0)