From 9b57b7a6462752b9f539d0d0a0172bd793127a8d Mon Sep 17 00:00:00 2001 From: Joshua Coles Date: Thu, 26 Oct 2023 12:03:37 +0100 Subject: [PATCH] Add course_focus view --- .../attendance_tracker_controller.rb | 4 + app/views/attendance_tracker/course_focus.erb | 75 +++++++++++++++++++ app/views/attendance_tracker/today.html.erb | 6 -- config/routes.rb | 1 + 4 files changed, 80 insertions(+), 6 deletions(-) create mode 100644 app/views/attendance_tracker/course_focus.erb diff --git a/app/controllers/attendance_tracker_controller.rb b/app/controllers/attendance_tracker_controller.rb index 9f4dab9..eff509d 100644 --- a/app/controllers/attendance_tracker_controller.rb +++ b/app/controllers/attendance_tracker_controller.rb @@ -9,4 +9,8 @@ class AttendanceTrackerController < ApplicationController @lectures = @courses.flat_map { |course| course.lectures.filter { |a| a.start_time.today? } }.sort_by { |l| l.start_time } end + + def course_focus + @course = Course.find(params[:id]) + end end diff --git a/app/views/attendance_tracker/course_focus.erb b/app/views/attendance_tracker/course_focus.erb new file mode 100644 index 0000000..b1efc4e --- /dev/null +++ b/app/views/attendance_tracker/course_focus.erb @@ -0,0 +1,75 @@ +

<%= @course.title %>

+ +
+
+
+
+
+
+
+
Lecture
+
Status
+
Action
+
Recording
+
+ + <% @course.lectures.sort_by(&:start_time).group_by(&:week_number).each do |(week_number, lectures)| %> +
+ Week <%= week_number %> +
+ + <% lectures.each do |lecture| %> + <% status_classes = class_names({ + 'lecture-future': lecture.start_time.future?, + 'bg-green-100': lecture.attended?, + }) %> + +
+
+ <%= lecture.title %> +
+ +
+ <%= render partial: 'lecture_status_icons', locals: { lecture: } %> +
+ +
+ <% joinable_time = lecture.start_time - 5.minutes %> + + <% if joinable_time.future? %> + <%= button_to "Prepare", + lecture_start_preparation_path(id: lecture.id), + class: 'action-button' + %> + <% elsif joinable_time.past? && !lecture.attended? %> + <% start_label = if lecture.is_live? then + "Join" + else + "Start" + end %> + <%= button_to start_label, + lectures_start_path(id: lecture.id), + class: 'action-button' + %> + <% else %> + <%= button_to "Review", + lecture_start_review_path(id: lecture.id), + class: 'action-button' + %> + <% end %> +
+ +
+ <% if lecture.recording %> + <%= link_to "Open recording", lecture.recording&.recording_url %> + <% end %> +
+
+ <% end %> + <% end %> +
+
+
+
+
+
diff --git a/app/views/attendance_tracker/today.html.erb b/app/views/attendance_tracker/today.html.erb index ba80784..58e9f31 100644 --- a/app/views/attendance_tracker/today.html.erb +++ b/app/views/attendance_tracker/today.html.erb @@ -58,12 +58,6 @@ <% end %> - -
- <% if lecture.recording %> - <%= link_to "Open recording", lecture.recording&.recording_url %> - <% end %> -
<% end %> diff --git a/config/routes.rb b/config/routes.rb index 819356c..1c44964 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -11,6 +11,7 @@ Rails.application.routes.draw do root controller: :attendance_tracker, action: :index get '/today', controller: :attendance_tracker, action: :today + get '/courses/:id', controller: :attendance_tracker, action: :course_focus post '/lectures/:id/start', to: 'lecture#start', as: :lectures_start post '/lectures/:id/start_preparation', to: 'lecture#start_preparation', as: :lecture_start_preparation