diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 06a8041b..0722fe94 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -21,6 +21,7 @@ def index # GET /courses/1.json def show @reviews = @course.reviews.preload(:user, course: [:school]) + @url = school_course_reviews_path(school_id: @school, course_id: @course) end # GET /courses/new diff --git a/app/controllers/reviews_controller.rb b/app/controllers/reviews_controller.rb index 7f48851c..cab06940 100644 --- a/app/controllers/reviews_controller.rb +++ b/app/controllers/reviews_controller.rb @@ -12,7 +12,7 @@ class ReviewsController < ApplicationController def index if params[:course_id].to_i.zero? if params[:school_id].to_i.zero? - @reviews = Review.all + @reviews = Review.preload(:user, course: [:school]).all else set_school @reviews = Review.preload(:user, course: [:school]).joins(:course).where('courses.school_id = (?)', @school.id) @@ -42,6 +42,7 @@ def edit # POST /schools/1/courses/1/reviews # POST /schools/1/courses/1/reviews.json def create + @url = school_course_reviews_path @review = Review.new(review_params) respond_to do |format| if @review.save @@ -83,7 +84,11 @@ def update def destroy @review.destroy respond_to do |format| - format.html { redirect_to school_course_reviews_url, notice: 'Review was successfully destroyed.' } + format.html do + redirect_to school_course_reviews_url(school_id: @school, + course_id: @course), + notice: 'Review was successfully destroyed.' + end format.json { head :no_content } end end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 0dbf9b8a..3e7257e2 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -59,7 +59,7 @@ def destroy # PUT /users/1/promote def promote @user.update(is_admin: true) - redirect_to users_url, notice: "#{@user.email} was successfully demoted from admin." + redirect_to users_url, notice: "#{@user.email} was successfully promoted to admin." end # PUT /users/1/demote diff --git a/app/models/ability.rb b/app/models/ability.rb index 4e15fb81..5b11a2ee 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -15,7 +15,7 @@ def initialize(user) can [:update, :delete], Review do |r| r.user == user end - can [:update, :delete], User do |u| + can [:read, :update, :delete], User do |u| u == user end return unless user.admin? diff --git a/app/views/courses/edit.html.erb b/app/views/courses/edit.html.erb index 2d2f4231..fbd7d050 100644 --- a/app/views/courses/edit.html.erb +++ b/app/views/courses/edit.html.erb @@ -2,4 +2,4 @@ <%= render 'form', course: @course %> -<%= link_to 'Show', school_course_path(school_id: @school.id, id: @course.id) %> | +<%= link_to 'Show', school_course_path(school_id: @school.id, id: @course.id) %> diff --git a/app/views/courses/index.html.erb b/app/views/courses/index.html.erb index eb4d5920..3b0fecf1 100644 --- a/app/views/courses/index.html.erb +++ b/app/views/courses/index.html.erb @@ -1,5 +1,3 @@ -<p id="notice"><%= notice %></p> - <h1>Courses</h1> <% if can? :create, Course %> <% if @school %> @@ -8,30 +6,34 @@ <%= link_to 'Select a school first to add a new course', schools_path %> <% end %> <% end %> - -<table class="table table-hover table-sm table-responsive"> - <thead class="thead-light"> - <tr> - <th scope="col">Name</th> - <th scope="col">Number</th> - <th scope="col">Department</th> - <th scope="col">School</th> - <th scope="col" colspan="3"></th> - </tr> - </thead> - - <tbody> - <% @courses.each do |course| %> +<br/> +<% if @courses.load.empty? %> + No courses at this time! +<% else %> + <table class="table table-hover table-sm table-responsive"> + <thead class="thead-light"> <tr> - <td><%= link_to course.name, school_course_path(id: course.id, school_id: course.school.id) %></td> - <td><%= course.number %></td> - <td><%= course.department %></td> - <td><%= link_to course.school.name, school_path(id: course.school) %><td> - <% if can? :edit, course %> - <td><%= link_to 'Edit', edit_school_course_path(id: course.id, school_id: course.school.id) %></td> - <td><%= link_to 'Destroy', school_course_path(id: course.id, school_id: course.school.id), method: :delete, data: { confirm: 'Are you sure?' } %></td> - <% end %> + <th scope="col">Name</th> + <th scope="col">Number</th> + <th scope="col">Department</th> + <th scope="col">School</th> + <th scope="col" colspan="3"></th> </tr> - <% end %> - </tbody> -</table> + </thead> + + <tbody> + <% @courses.each do |course| %> + <tr> + <td><%= link_to course.name, school_course_path(id: course.id, school_id: course.school.id) %></td> + <td><%= course.number %></td> + <td><%= course.department %></td> + <td><%= link_to course.school.name, school_path(id: course.school) %><td> + <% if can? :edit, course %> + <td><%= link_to 'Edit', edit_school_course_path(id: course.id, school_id: course.school.id) %></td> + <td><%= link_to 'Destroy', school_course_path(id: course.id, school_id: course.school.id), method: :delete, data: { confirm: 'Are you sure?' } %></td> + <% end %> + </tr> + <% end %> + </tbody> + </table> +<% end %> \ No newline at end of file diff --git a/app/views/courses/show.html.erb b/app/views/courses/show.html.erb index e9952861..133808f9 100644 --- a/app/views/courses/show.html.erb +++ b/app/views/courses/show.html.erb @@ -1,7 +1,7 @@ <h2> <%= @course.name %> at <%= link_to @course.school.name, @course.school %> </h2> <% if can? :edit, @course %> -<%= link_to 'Edit', edit_school_course_path(@course) %> +<%= link_to 'Edit', edit_school_course_path(school_id: @school.id, course_id: @course.id) %> <% end %> <p> <strong>Number:</strong> @@ -15,6 +15,9 @@ <p> <h4>Reviews</h4> - <%= link_to 'New Review', new_school_course_review_path(school_id: @school.id, course_id: @course.id) %> + <% if can? :create, Review %> + <%= link_to 'New Review', new_school_course_review_path(school_id: @school.id, course_id: @course.id) %> + <% end %> + <br/> <%= render 'reviews/review_index', reviews: @reviews %> </p> diff --git a/app/views/reviews/_review_index.html.erb b/app/views/reviews/_review_index.html.erb index 6bdc9658..c876dc92 100644 --- a/app/views/reviews/_review_index.html.erb +++ b/app/views/reviews/_review_index.html.erb @@ -1,4 +1,4 @@ -<% if reviews.empty? %> +<% if reviews.load.empty? %> No reviews at this time! <% else %> <table class="table table-hover table-sm table-responsive"> diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb index b3977005..1178ae26 100644 --- a/app/views/users/index.html.erb +++ b/app/views/users/index.html.erb @@ -1,7 +1,6 @@ -<p id="notice"><%= notice %></p> - -<h1>Users</h1> - +<% if can? :manage, User %> +<h1>Users</h1><!-- +<%= link_to 'New User', new_user_path %> --> <table class="table table-hover table-sm table-responsive"> <thead class="thead-light"> <tr> @@ -29,7 +28,4 @@ <% end %> </tbody> </table> - -<br> - -<%= link_to 'New User', new_user_path %> +<% end %> \ No newline at end of file diff --git a/coverage/.resultset.json b/coverage/.resultset.json index ff00e34d..5598cac1 100644 --- a/coverage/.resultset.json +++ b/coverage/.resultset.json @@ -120,6 +120,7 @@ null, 1, 2, + 2, null, null, null, @@ -251,6 +252,7 @@ 5, 5, 5, + 5, 2, 2, null, @@ -413,7 +415,7 @@ null, null, 1, - 4, + 5, null, null, null, @@ -664,6 +666,6 @@ null ] }, - "timestamp": 1559940230 + "timestamp": 1560033163 } } diff --git a/coverage/index.html b/coverage/index.html index ed1339f9..023460f5 100644 --- a/coverage/index.html +++ b/coverage/index.html @@ -14,7 +14,7 @@ <img src="./assets/0.10.2/loading.gif" alt="loading"/> </div> <div id="wrapper" style="display:none;"> - <div class="timestamp">Generated <abbr class="timeago" title="2019-06-07T16:43:50-04:00">2019-06-07T16:43:50-04:00</abbr></div> + <div class="timestamp">Generated <abbr class="timeago" title="2019-06-08T18:32:43-04:00">2019-06-08T18:32:43-04:00</abbr></div> <ul class="group_tabs"></ul> <div id="content"> @@ -25,15 +25,15 @@ <h2> covered at <span class="covered_strength"> <span class="green"> - 7.48 + 7.45 </span> </span> hits/line) </h2> <a name="AllFiles"></a> <div> <b>17</b> files in total. - <b>241</b> relevant lines. - <span class="green"><b>241</b> lines covered</span> and + <b>243</b> relevant lines. + <span class="green"><b>243</b> lines covered</span> and <span class="red"><b>0</b> lines missed </span> </div> <table class="file_list"> @@ -63,9 +63,9 @@ <h2> <tr> <td class="strong"><a href="#cf239358874d983659a0b8c02ca86a4bab1c3958" class="src_link" title="app/controllers/courses_controller.rb">app/controllers/courses_controller.rb</a></td> <td class="green strong">100.0 %</td> - <td>98</td> - <td>46</td> - <td>46</td> + <td>99</td> + <td>47</td> + <td>47</td> <td>0</td> <td>3.4</td> </tr> @@ -73,9 +73,9 @@ <h2> <tr> <td class="strong"><a href="#b392633e97378fa3512a30beefced23256710115" class="src_link" title="app/controllers/reviews_controller.rb">app/controllers/reviews_controller.rb</a></td> <td class="green strong">100.0 %</td> - <td>119</td> - <td>52</td> - <td>52</td> + <td>120</td> + <td>53</td> + <td>53</td> <td>0</td> <td>3.6</td> </tr> @@ -240,8 +240,8 @@ <h2> <a name="Controllers"></a> <div> <b>5</b> files in total. - <b>173</b> relevant lines. - <span class="green"><b>173</b> lines covered</span> and + <b>175</b> relevant lines. + <span class="green"><b>175</b> lines covered</span> and <span class="red"><b>0</b> lines missed </span> </div> <table class="file_list"> @@ -271,9 +271,9 @@ <h2> <tr> <td class="strong"><a href="#cf239358874d983659a0b8c02ca86a4bab1c3958" class="src_link" title="app/controllers/courses_controller.rb">app/controllers/courses_controller.rb</a></td> <td class="green strong">100.0 %</td> - <td>98</td> - <td>46</td> - <td>46</td> + <td>99</td> + <td>47</td> + <td>47</td> <td>0</td> <td>3.4</td> </tr> @@ -281,9 +281,9 @@ <h2> <tr> <td class="strong"><a href="#b392633e97378fa3512a30beefced23256710115" class="src_link" title="app/controllers/reviews_controller.rb">app/controllers/reviews_controller.rb</a></td> <td class="green strong">100.0 %</td> - <td>119</td> - <td>52</td> - <td>52</td> + <td>120</td> + <td>53</td> + <td>53</td> <td>0</td> <td>3.6</td> </tr> @@ -682,8 +682,8 @@ <h4><span class="green">100.0 %</span> covered</h4> <h3>app/controllers/courses_controller.rb</h3> <h4><span class="green">100.0 %</span> covered</h4> <div> - <b>46</b> relevant lines. - <span class="green"><b>46</b> lines covered</span> and + <b>47</b> relevant lines. + <span class="green"><b>47</b> lines covered</span> and <span class="red"><b>0</b> lines missed.</span> </div> </div> @@ -829,451 +829,457 @@ <h4><span class="green">100.0 %</span> covered</h4> <code class="ruby"> @reviews = @course.reviews.preload(:user, course: [:school])</code> </li> - <li class="never" data-hits="" data-linenumber="24"> + <li class="covered" data-hits="2" data-linenumber="24"> + <span class="hits">2</span> + + <code class="ruby"> @url = school_course_reviews_path(school_id: @school, course_id: @course)</code> + </li> + + <li class="never" data-hits="" data-linenumber="25"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="25"> + <li class="never" data-hits="" data-linenumber="26"> <code class="ruby"></code> </li> - <li class="never" data-hits="" data-linenumber="26"> + <li class="never" data-hits="" data-linenumber="27"> <code class="ruby"> # GET /courses/new</code> </li> - <li class="covered" data-hits="1" data-linenumber="27"> + <li class="covered" data-hits="1" data-linenumber="28"> <span class="hits">1</span> <code class="ruby"> def new</code> </li> - <li class="covered" data-hits="2" data-linenumber="28"> + <li class="covered" data-hits="2" data-linenumber="29"> <span class="hits">2</span> <code class="ruby"> @course = Course.new</code> </li> - <li class="covered" data-hits="2" data-linenumber="29"> + <li class="covered" data-hits="2" data-linenumber="30"> <span class="hits">2</span> <code class="ruby"> @url = school_courses_path</code> </li> - <li class="never" data-hits="" data-linenumber="30"> + <li class="never" data-hits="" data-linenumber="31"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="31"> + <li class="never" data-hits="" data-linenumber="32"> <code class="ruby"></code> </li> - <li class="never" data-hits="" data-linenumber="32"> + <li class="never" data-hits="" data-linenumber="33"> <code class="ruby"> # GET /courses/1/edit</code> </li> - <li class="covered" data-hits="1" data-linenumber="33"> + <li class="covered" data-hits="1" data-linenumber="34"> <span class="hits">1</span> <code class="ruby"> def edit</code> </li> - <li class="covered" data-hits="2" data-linenumber="34"> + <li class="covered" data-hits="2" data-linenumber="35"> <span class="hits">2</span> <code class="ruby"> @url = school_course_path</code> </li> - <li class="never" data-hits="" data-linenumber="35"> + <li class="never" data-hits="" data-linenumber="36"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="36"> + <li class="never" data-hits="" data-linenumber="37"> <code class="ruby"></code> </li> - <li class="never" data-hits="" data-linenumber="37"> + <li class="never" data-hits="" data-linenumber="38"> <code class="ruby"> # POST /courses</code> </li> - <li class="never" data-hits="" data-linenumber="38"> + <li class="never" data-hits="" data-linenumber="39"> <code class="ruby"> # POST /courses.json</code> </li> - <li class="covered" data-hits="1" data-linenumber="39"> + <li class="covered" data-hits="1" data-linenumber="40"> <span class="hits">1</span> <code class="ruby"> def create</code> </li> - <li class="covered" data-hits="5" data-linenumber="40"> + <li class="covered" data-hits="5" data-linenumber="41"> <span class="hits">5</span> <code class="ruby"> @course = Course.new(course_params)</code> </li> - <li class="never" data-hits="" data-linenumber="41"> + <li class="never" data-hits="" data-linenumber="42"> <code class="ruby"></code> </li> - <li class="covered" data-hits="5" data-linenumber="42"> + <li class="covered" data-hits="5" data-linenumber="43"> <span class="hits">5</span> <code class="ruby"> respond_to do |format|</code> </li> - <li class="covered" data-hits="5" data-linenumber="43"> + <li class="covered" data-hits="5" data-linenumber="44"> <span class="hits">5</span> <code class="ruby"> if @course.save</code> </li> - <li class="covered" data-hits="2" data-linenumber="44"> + <li class="covered" data-hits="2" data-linenumber="45"> <span class="hits">2</span> <code class="ruby"> format.html do</code> </li> - <li class="covered" data-hits="2" data-linenumber="45"> + <li class="covered" data-hits="2" data-linenumber="46"> <span class="hits">2</span> <code class="ruby"> redirect_to school_course_url(school_id: @school.id, id: @course.id),</code> </li> - <li class="never" data-hits="" data-linenumber="46"> + <li class="never" data-hits="" data-linenumber="47"> <code class="ruby"> notice: 'Course was successfully created.'</code> </li> - <li class="never" data-hits="" data-linenumber="47"> + <li class="never" data-hits="" data-linenumber="48"> <code class="ruby"> end</code> </li> - <li class="covered" data-hits="2" data-linenumber="48"> + <li class="covered" data-hits="2" data-linenumber="49"> <span class="hits">2</span> <code class="ruby"> format.json { render :show, status: :created, location: @course }</code> </li> - <li class="never" data-hits="" data-linenumber="49"> + <li class="never" data-hits="" data-linenumber="50"> <code class="ruby"> else</code> </li> - <li class="covered" data-hits="6" data-linenumber="50"> + <li class="covered" data-hits="6" data-linenumber="51"> <span class="hits">6</span> <code class="ruby"> format.html { render :new }</code> </li> - <li class="covered" data-hits="3" data-linenumber="51"> + <li class="covered" data-hits="3" data-linenumber="52"> <span class="hits">3</span> <code class="ruby"> format.json { render json: @course.errors, status: :unprocessable_entity }</code> </li> - <li class="never" data-hits="" data-linenumber="52"> + <li class="never" data-hits="" data-linenumber="53"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="53"> + <li class="never" data-hits="" data-linenumber="54"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="54"> + <li class="never" data-hits="" data-linenumber="55"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="55"> + <li class="never" data-hits="" data-linenumber="56"> <code class="ruby"></code> </li> - <li class="never" data-hits="" data-linenumber="56"> + <li class="never" data-hits="" data-linenumber="57"> <code class="ruby"> # PATCH/PUT /courses/1</code> </li> - <li class="never" data-hits="" data-linenumber="57"> + <li class="never" data-hits="" data-linenumber="58"> <code class="ruby"> # PATCH/PUT /courses/1.json</code> </li> - <li class="covered" data-hits="1" data-linenumber="58"> + <li class="covered" data-hits="1" data-linenumber="59"> <span class="hits">1</span> <code class="ruby"> def update</code> </li> - <li class="covered" data-hits="4" data-linenumber="59"> + <li class="covered" data-hits="4" data-linenumber="60"> <span class="hits">4</span> <code class="ruby"> respond_to do |format|</code> </li> - <li class="covered" data-hits="4" data-linenumber="60"> + <li class="covered" data-hits="4" data-linenumber="61"> <span class="hits">4</span> <code class="ruby"> if @course.update(course_params)</code> </li> - <li class="covered" data-hits="3" data-linenumber="61"> + <li class="covered" data-hits="3" data-linenumber="62"> <span class="hits">3</span> <code class="ruby"> format.html do</code> </li> - <li class="covered" data-hits="3" data-linenumber="62"> + <li class="covered" data-hits="3" data-linenumber="63"> <span class="hits">3</span> <code class="ruby"> redirect_to school_course_url(school_id: @school.id, id: @course.id),</code> </li> - <li class="never" data-hits="" data-linenumber="63"> + <li class="never" data-hits="" data-linenumber="64"> <code class="ruby"> notice: 'Course was successfully updated.'</code> </li> - <li class="never" data-hits="" data-linenumber="64"> + <li class="never" data-hits="" data-linenumber="65"> <code class="ruby"> end</code> </li> - <li class="covered" data-hits="3" data-linenumber="65"> + <li class="covered" data-hits="3" data-linenumber="66"> <span class="hits">3</span> <code class="ruby"> format.json { render :show, status: :ok, location: @course }</code> </li> - <li class="never" data-hits="" data-linenumber="66"> + <li class="never" data-hits="" data-linenumber="67"> <code class="ruby"> else</code> </li> - <li class="covered" data-hits="2" data-linenumber="67"> + <li class="covered" data-hits="2" data-linenumber="68"> <span class="hits">2</span> <code class="ruby"> format.html { render :edit }</code> </li> - <li class="covered" data-hits="1" data-linenumber="68"> + <li class="covered" data-hits="1" data-linenumber="69"> <span class="hits">1</span> <code class="ruby"> format.json { render json: @course.errors, status: :unprocessable_entity }</code> </li> - <li class="never" data-hits="" data-linenumber="69"> + <li class="never" data-hits="" data-linenumber="70"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="70"> + <li class="never" data-hits="" data-linenumber="71"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="71"> + <li class="never" data-hits="" data-linenumber="72"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="72"> + <li class="never" data-hits="" data-linenumber="73"> <code class="ruby"></code> </li> - <li class="never" data-hits="" data-linenumber="73"> + <li class="never" data-hits="" data-linenumber="74"> <code class="ruby"> # DELETE /courses/1</code> </li> - <li class="never" data-hits="" data-linenumber="74"> + <li class="never" data-hits="" data-linenumber="75"> <code class="ruby"> # DELETE /courses/1.json</code> </li> - <li class="covered" data-hits="1" data-linenumber="75"> + <li class="covered" data-hits="1" data-linenumber="76"> <span class="hits">1</span> <code class="ruby"> def destroy</code> </li> - <li class="covered" data-hits="2" data-linenumber="76"> + <li class="covered" data-hits="2" data-linenumber="77"> <span class="hits">2</span> <code class="ruby"> @course.destroy</code> </li> - <li class="covered" data-hits="2" data-linenumber="77"> + <li class="covered" data-hits="2" data-linenumber="78"> <span class="hits">2</span> <code class="ruby"> respond_to do |format|</code> </li> - <li class="covered" data-hits="4" data-linenumber="78"> + <li class="covered" data-hits="4" data-linenumber="79"> <span class="hits">4</span> <code class="ruby"> format.html { redirect_to school_courses_url, notice: 'Course was successfully destroyed.' }</code> </li> - <li class="covered" data-hits="2" data-linenumber="79"> + <li class="covered" data-hits="2" data-linenumber="80"> <span class="hits">2</span> <code class="ruby"> format.json { head :no_content }</code> </li> - <li class="never" data-hits="" data-linenumber="80"> + <li class="never" data-hits="" data-linenumber="81"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="81"> + <li class="never" data-hits="" data-linenumber="82"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="82"> + <li class="never" data-hits="" data-linenumber="83"> <code class="ruby"></code> </li> - <li class="covered" data-hits="1" data-linenumber="83"> + <li class="covered" data-hits="1" data-linenumber="84"> <span class="hits">1</span> <code class="ruby"> private</code> </li> - <li class="never" data-hits="" data-linenumber="84"> + <li class="never" data-hits="" data-linenumber="85"> <code class="ruby"></code> </li> - <li class="never" data-hits="" data-linenumber="85"> + <li class="never" data-hits="" data-linenumber="86"> <code class="ruby"> # Use callbacks to share common setup or constraints between actions.</code> </li> - <li class="covered" data-hits="1" data-linenumber="86"> + <li class="covered" data-hits="1" data-linenumber="87"> <span class="hits">1</span> <code class="ruby"> def set_school</code> </li> - <li class="covered" data-hits="26" data-linenumber="87"> + <li class="covered" data-hits="26" data-linenumber="88"> <span class="hits">26</span> <code class="ruby"> @school = School.find(params[:school_id])</code> </li> - <li class="never" data-hits="" data-linenumber="88"> + <li class="never" data-hits="" data-linenumber="89"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="89"> + <li class="never" data-hits="" data-linenumber="90"> <code class="ruby"></code> </li> - <li class="covered" data-hits="1" data-linenumber="90"> + <li class="covered" data-hits="1" data-linenumber="91"> <span class="hits">1</span> <code class="ruby"> def set_course</code> </li> - <li class="covered" data-hits="10" data-linenumber="91"> + <li class="covered" data-hits="10" data-linenumber="92"> <span class="hits">10</span> <code class="ruby"> @course = Course.find(params[:id])</code> </li> - <li class="never" data-hits="" data-linenumber="92"> + <li class="never" data-hits="" data-linenumber="93"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="93"> + <li class="never" data-hits="" data-linenumber="94"> <code class="ruby"></code> </li> - <li class="never" data-hits="" data-linenumber="94"> + <li class="never" data-hits="" data-linenumber="95"> <code class="ruby"> # Never trust parameters from the scary internet, only allow the white list through.</code> </li> - <li class="covered" data-hits="1" data-linenumber="95"> + <li class="covered" data-hits="1" data-linenumber="96"> <span class="hits">1</span> <code class="ruby"> def course_params</code> </li> - <li class="covered" data-hits="14" data-linenumber="96"> + <li class="covered" data-hits="14" data-linenumber="97"> <span class="hits">14</span> <code class="ruby"> params.require(:course).permit(:name, :number, :department, :school_id)</code> </li> - <li class="never" data-hits="" data-linenumber="97"> + <li class="never" data-hits="" data-linenumber="98"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="98"> + <li class="never" data-hits="" data-linenumber="99"> <code class="ruby">end</code> @@ -1289,8 +1295,8 @@ <h4><span class="green">100.0 %</span> covered</h4> <h3>app/controllers/reviews_controller.rb</h3> <h4><span class="green">100.0 %</span> covered</h4> <div> - <b>52</b> relevant lines. - <span class="green"><b>52</b> lines covered</span> and + <b>53</b> relevant lines. + <span class="green"><b>53</b> lines covered</span> and <span class="red"><b>0</b> lines missed.</span> </div> </div> @@ -1385,7 +1391,7 @@ <h4><span class="green">100.0 %</span> covered</h4> <li class="covered" data-hits="1" data-linenumber="15"> <span class="hits">1</span> - <code class="ruby"> @reviews = Review.all</code> + <code class="ruby"> @reviews = Review.preload(:user, course: [:school]).all</code> </li> <li class="never" data-hits="" data-linenumber="16"> @@ -1565,448 +1571,454 @@ <h4><span class="green">100.0 %</span> covered</h4> <li class="covered" data-hits="5" data-linenumber="45"> <span class="hits">5</span> - <code class="ruby"> @review = Review.new(review_params)</code> + <code class="ruby"> @url = school_course_reviews_path</code> </li> <li class="covered" data-hits="5" data-linenumber="46"> <span class="hits">5</span> - <code class="ruby"> respond_to do |format|</code> + <code class="ruby"> @review = Review.new(review_params)</code> </li> <li class="covered" data-hits="5" data-linenumber="47"> <span class="hits">5</span> + <code class="ruby"> respond_to do |format|</code> + </li> + + <li class="covered" data-hits="5" data-linenumber="48"> + <span class="hits">5</span> + <code class="ruby"> if @review.save</code> </li> - <li class="covered" data-hits="2" data-linenumber="48"> + <li class="covered" data-hits="2" data-linenumber="49"> <span class="hits">2</span> <code class="ruby"> format.html do</code> </li> - <li class="covered" data-hits="2" data-linenumber="49"> + <li class="covered" data-hits="2" data-linenumber="50"> <span class="hits">2</span> <code class="ruby"> redirect_to school_course_review_url(school_id: @school.id,</code> </li> - <li class="never" data-hits="" data-linenumber="50"> + <li class="never" data-hits="" data-linenumber="51"> <code class="ruby"> course_id: @course.id,</code> </li> - <li class="never" data-hits="" data-linenumber="51"> + <li class="never" data-hits="" data-linenumber="52"> <code class="ruby"> id: @review.id),</code> </li> - <li class="never" data-hits="" data-linenumber="52"> + <li class="never" data-hits="" data-linenumber="53"> <code class="ruby"> notice: 'Review was successfully created.'</code> </li> - <li class="never" data-hits="" data-linenumber="53"> + <li class="never" data-hits="" data-linenumber="54"> <code class="ruby"> end</code> </li> - <li class="covered" data-hits="2" data-linenumber="54"> + <li class="covered" data-hits="2" data-linenumber="55"> <span class="hits">2</span> <code class="ruby"> format.json { render :show, status: :created, location: @review }</code> </li> - <li class="never" data-hits="" data-linenumber="55"> + <li class="never" data-hits="" data-linenumber="56"> <code class="ruby"> else</code> </li> - <li class="covered" data-hits="6" data-linenumber="56"> + <li class="covered" data-hits="6" data-linenumber="57"> <span class="hits">6</span> <code class="ruby"> format.html { render :new }</code> </li> - <li class="covered" data-hits="3" data-linenumber="57"> + <li class="covered" data-hits="3" data-linenumber="58"> <span class="hits">3</span> <code class="ruby"> format.json { render json: @review.errors, status: :unprocessable_entity }</code> </li> - <li class="never" data-hits="" data-linenumber="58"> + <li class="never" data-hits="" data-linenumber="59"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="59"> + <li class="never" data-hits="" data-linenumber="60"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="60"> + <li class="never" data-hits="" data-linenumber="61"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="61"> + <li class="never" data-hits="" data-linenumber="62"> <code class="ruby"></code> </li> - <li class="never" data-hits="" data-linenumber="62"> + <li class="never" data-hits="" data-linenumber="63"> <code class="ruby"> # PATCH/PUT /schools/1/courses/1/reviews/1</code> </li> - <li class="never" data-hits="" data-linenumber="63"> + <li class="never" data-hits="" data-linenumber="64"> <code class="ruby"> # PATCH/PUT /schools/1/courses/1/reviews/1.json</code> </li> - <li class="covered" data-hits="1" data-linenumber="64"> + <li class="covered" data-hits="1" data-linenumber="65"> <span class="hits">1</span> <code class="ruby"> def update</code> </li> - <li class="covered" data-hits="4" data-linenumber="65"> + <li class="covered" data-hits="4" data-linenumber="66"> <span class="hits">4</span> <code class="ruby"> respond_to do |format|</code> </li> - <li class="covered" data-hits="4" data-linenumber="66"> + <li class="covered" data-hits="4" data-linenumber="67"> <span class="hits">4</span> <code class="ruby"> if @review.update(review_params)</code> </li> - <li class="covered" data-hits="2" data-linenumber="67"> + <li class="covered" data-hits="2" data-linenumber="68"> <span class="hits">2</span> <code class="ruby"> format.html do</code> </li> - <li class="covered" data-hits="2" data-linenumber="68"> + <li class="covered" data-hits="2" data-linenumber="69"> <span class="hits">2</span> <code class="ruby"> redirect_to school_course_review_url(school_id: @school.id,</code> </li> - <li class="never" data-hits="" data-linenumber="69"> + <li class="never" data-hits="" data-linenumber="70"> <code class="ruby"> course_id: @course.id,</code> </li> - <li class="never" data-hits="" data-linenumber="70"> + <li class="never" data-hits="" data-linenumber="71"> <code class="ruby"> id: @review.id),</code> </li> - <li class="never" data-hits="" data-linenumber="71"> + <li class="never" data-hits="" data-linenumber="72"> <code class="ruby"> notice: 'Review was successfully updated.'</code> </li> - <li class="never" data-hits="" data-linenumber="72"> + <li class="never" data-hits="" data-linenumber="73"> <code class="ruby"> end</code> </li> - <li class="covered" data-hits="2" data-linenumber="73"> + <li class="covered" data-hits="2" data-linenumber="74"> <span class="hits">2</span> <code class="ruby"> format.json { render :show, status: :ok, location: @review }</code> </li> - <li class="never" data-hits="" data-linenumber="74"> + <li class="never" data-hits="" data-linenumber="75"> <code class="ruby"> else</code> </li> - <li class="covered" data-hits="4" data-linenumber="75"> + <li class="covered" data-hits="4" data-linenumber="76"> <span class="hits">4</span> <code class="ruby"> format.html { render :edit }</code> </li> - <li class="covered" data-hits="2" data-linenumber="76"> + <li class="covered" data-hits="2" data-linenumber="77"> <span class="hits">2</span> <code class="ruby"> format.json { render json: @review.errors, status: :unprocessable_entity }</code> </li> - <li class="never" data-hits="" data-linenumber="77"> + <li class="never" data-hits="" data-linenumber="78"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="78"> + <li class="never" data-hits="" data-linenumber="79"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="79"> + <li class="never" data-hits="" data-linenumber="80"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="80"> + <li class="never" data-hits="" data-linenumber="81"> <code class="ruby"></code> </li> - <li class="never" data-hits="" data-linenumber="81"> + <li class="never" data-hits="" data-linenumber="82"> <code class="ruby"> # DELETE /schools/1/courses/1/reviews/1</code> </li> - <li class="never" data-hits="" data-linenumber="82"> + <li class="never" data-hits="" data-linenumber="83"> <code class="ruby"> # DELETE /schools/1/courses/1/reviews/1.json</code> </li> - <li class="covered" data-hits="1" data-linenumber="83"> + <li class="covered" data-hits="1" data-linenumber="84"> <span class="hits">1</span> <code class="ruby"> def destroy</code> </li> - <li class="covered" data-hits="2" data-linenumber="84"> + <li class="covered" data-hits="2" data-linenumber="85"> <span class="hits">2</span> <code class="ruby"> @review.destroy</code> </li> - <li class="covered" data-hits="2" data-linenumber="85"> + <li class="covered" data-hits="2" data-linenumber="86"> <span class="hits">2</span> <code class="ruby"> respond_to do |format|</code> </li> - <li class="covered" data-hits="4" data-linenumber="86"> + <li class="covered" data-hits="4" data-linenumber="87"> <span class="hits">4</span> - <code class="ruby"> format.html { redirect_to school_course_reviews_url, notice: 'Review was successfully destroyed.' }</code> + <code class="ruby"> format.html { redirect_to school_course_reviews_url(school_id: @school, course_id: @course), notice: 'Review was successfully destroyed.' }</code> </li> - <li class="covered" data-hits="2" data-linenumber="87"> + <li class="covered" data-hits="2" data-linenumber="88"> <span class="hits">2</span> <code class="ruby"> format.json { head :no_content }</code> </li> - <li class="never" data-hits="" data-linenumber="88"> + <li class="never" data-hits="" data-linenumber="89"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="89"> + <li class="never" data-hits="" data-linenumber="90"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="90"> + <li class="never" data-hits="" data-linenumber="91"> <code class="ruby"></code> </li> - <li class="covered" data-hits="1" data-linenumber="91"> + <li class="covered" data-hits="1" data-linenumber="92"> <span class="hits">1</span> <code class="ruby"> private</code> </li> - <li class="never" data-hits="" data-linenumber="92"> + <li class="never" data-hits="" data-linenumber="93"> <code class="ruby"></code> </li> - <li class="never" data-hits="" data-linenumber="93"> + <li class="never" data-hits="" data-linenumber="94"> <code class="ruby"> # Use callbacks to share common setup or constraints between actions.</code> </li> - <li class="covered" data-hits="1" data-linenumber="94"> + <li class="covered" data-hits="1" data-linenumber="95"> <span class="hits">1</span> <code class="ruby"> def set_school</code> </li> - <li class="covered" data-hits="25" data-linenumber="95"> + <li class="covered" data-hits="25" data-linenumber="96"> <span class="hits">25</span> <code class="ruby"> @school = School.find(params[:school_id])</code> </li> - <li class="never" data-hits="" data-linenumber="96"> + <li class="never" data-hits="" data-linenumber="97"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="97"> + <li class="never" data-hits="" data-linenumber="98"> <code class="ruby"></code> </li> - <li class="covered" data-hits="1" data-linenumber="98"> + <li class="covered" data-hits="1" data-linenumber="99"> <span class="hits">1</span> <code class="ruby"> def set_course</code> </li> - <li class="covered" data-hits="24" data-linenumber="99"> + <li class="covered" data-hits="24" data-linenumber="100"> <span class="hits">24</span> <code class="ruby"> @course = Course.find(params[:course_id])</code> </li> - <li class="never" data-hits="" data-linenumber="100"> + <li class="never" data-hits="" data-linenumber="101"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="101"> + <li class="never" data-hits="" data-linenumber="102"> <code class="ruby"></code> </li> - <li class="covered" data-hits="1" data-linenumber="102"> + <li class="covered" data-hits="1" data-linenumber="103"> <span class="hits">1</span> <code class="ruby"> def set_review</code> </li> - <li class="covered" data-hits="11" data-linenumber="103"> + <li class="covered" data-hits="11" data-linenumber="104"> <span class="hits">11</span> <code class="ruby"> @review = Review.find(params[:id])</code> </li> - <li class="never" data-hits="" data-linenumber="104"> + <li class="never" data-hits="" data-linenumber="105"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="105"> + <li class="never" data-hits="" data-linenumber="106"> <code class="ruby"></code> </li> - <li class="never" data-hits="" data-linenumber="106"> + <li class="never" data-hits="" data-linenumber="107"> <code class="ruby"> # Never trust parameters from the scary internet, only allow the white list through.</code> </li> - <li class="covered" data-hits="1" data-linenumber="107"> + <li class="covered" data-hits="1" data-linenumber="108"> <span class="hits">1</span> <code class="ruby"> def review_params</code> </li> - <li class="covered" data-hits="14" data-linenumber="108"> + <li class="covered" data-hits="14" data-linenumber="109"> <span class="hits">14</span> <code class="ruby"> params.require(:review).permit(:course_id,</code> </li> - <li class="never" data-hits="" data-linenumber="109"> + <li class="never" data-hits="" data-linenumber="110"> <code class="ruby"> :user_id,</code> </li> - <li class="never" data-hits="" data-linenumber="110"> + <li class="never" data-hits="" data-linenumber="111"> <code class="ruby"> :notes,</code> </li> - <li class="never" data-hits="" data-linenumber="111"> + <li class="never" data-hits="" data-linenumber="112"> <code class="ruby"> :work_required,</code> </li> - <li class="never" data-hits="" data-linenumber="112"> + <li class="never" data-hits="" data-linenumber="113"> <code class="ruby"> :difficulty,</code> </li> - <li class="never" data-hits="" data-linenumber="113"> + <li class="never" data-hits="" data-linenumber="114"> <code class="ruby"> :rating,</code> </li> - <li class="never" data-hits="" data-linenumber="114"> + <li class="never" data-hits="" data-linenumber="115"> <code class="ruby"> :experience_with_topic,</code> </li> - <li class="never" data-hits="" data-linenumber="115"> + <li class="never" data-hits="" data-linenumber="116"> <code class="ruby"> :year,</code> </li> - <li class="never" data-hits="" data-linenumber="116"> + <li class="never" data-hits="" data-linenumber="117"> <code class="ruby"> :term,</code> </li> - <li class="never" data-hits="" data-linenumber="117"> + <li class="never" data-hits="" data-linenumber="118"> <code class="ruby"> :grade)</code> </li> - <li class="never" data-hits="" data-linenumber="118"> + <li class="never" data-hits="" data-linenumber="119"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="119"> + <li class="never" data-hits="" data-linenumber="120"> <code class="ruby">end</code> @@ -2566,8 +2578,8 @@ <h4><span class="green">100.0 %</span> covered</h4> <code class="ruby"> def index</code> </li> - <li class="covered" data-hits="4" data-linenumber="11"> - <span class="hits">4</span> + <li class="covered" data-hits="5" data-linenumber="11"> + <span class="hits">5</span> <code class="ruby"> @users = User.all</code> </li> @@ -2875,7 +2887,7 @@ <h4><span class="green">100.0 %</span> covered</h4> <li class="covered" data-hits="2" data-linenumber="62"> <span class="hits">2</span> - <code class="ruby"> redirect_to users_url, notice: "#{@user.email} was successfully demoted from admin."</code> + <code class="ruby"> redirect_to users_url, notice: "#{@user.email} was successfully promoted to admin."</code> </li> <li class="never" data-hits="" data-linenumber="63"> @@ -3398,7 +3410,7 @@ <h4><span class="green">100.0 %</span> covered</h4> <li class="covered" data-hits="95" data-linenumber="18"> <span class="hits">95</span> - <code class="ruby"> can [:update, :delete], User do |u|</code> + <code class="ruby"> can [:read, :update, :delete], User do |u|</code> </li> <li class="covered" data-hits="2" data-linenumber="19"> diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb index f62d38b3..0ec8d600 100644 --- a/spec/controllers/users_controller_spec.rb +++ b/spec/controllers/users_controller_spec.rb @@ -220,8 +220,8 @@ end describe 'GET #index' do - it 'returns an access denied' do - expect { get :index }.to raise_error(CanCan::AccessDenied) + it 'returns no errors' do + expect { get :index }.not_to raise_error end end