Add functionality to set default live video URL
All checks were successful
Build and Publish Docker Container / build (push) Successful in 6m21s

A new method has been added to the `CoursesController` which allows admins to fill default live video URLs for online lectures that don't have one. This feature is accessible via a button on the courses admin page. The routing for this new action has also been set up.
This commit is contained in:
Joshua Coles 2024-02-04 15:14:38 +00:00
parent c97041597b
commit f81005408e
4 changed files with 15 additions and 4 deletions

View File

@ -1,9 +1,13 @@
module Admin
class CoursesController < Admin::ApplicationController
def renumber_lectures
course = Course.find(params[:id])
course.renumber_lectures!
redirect_to admin_course_url(course), notice: "Lectures renumbered!"
requested_resource.renumber_lectures!
redirect_to admin_course_url(requested_resource), notice: "Lectures renumbered"
end
def fill_in_default_live_video_url
requested_resource.fill_in_default_live_video_url!
redirect_to admin_course_url(requested_resource), notice: "Filled in default live video URL"
end
# Overwrite any of the RESTful controller actions to implement custom behavior

View File

@ -87,6 +87,6 @@ class Course < ApplicationRecord
def fill_in_default_live_video_url!
raise "No default live video URL set" if self.default_live_video_url.nil?
lectures.where(live_video_url: nil).update_all!(live_video_url: self.default_live_video_url)
lectures.where(live_video_url: nil).update_all(live_video_url: self.default_live_video_url)
end
end

View File

@ -3,3 +3,9 @@
[namespace, page.resource, :renumber_lectures],
class: "button",
) if accessible_action?(page.resource, :renumber_lectures) %>
<%= link_to(
"Fill in default live video URL",
[namespace, page.resource, :fill_in_default_live_video_url],
class: "button",
) if accessible_action?(page.resource, :fill_in_default_live_video_url) && page.resource.default_live_video_url.present? %>

View File

@ -9,6 +9,7 @@ Rails.application.routes.draw do
root to: "courses#index"
get '/courses/:id/renumber_lectures', to: 'courses#renumber_lectures', as: :course_renumber_lectures
get '/courses/:id/fill_in_default_live_video_url', to: 'courses#fill_in_default_live_video_url', as: :course_fill_in_default_live_video_url
end
root controller: :attendance_tracker, action: :index