Add ability to start lecture and redirect to recorded content.

This commit is contained in:
2023-10-04 15:00:23 +01:00
parent 0e0d26d06d
commit 7c96b2c2bc
11 changed files with 69 additions and 5 deletions
@@ -2,6 +2,10 @@
@tailwind components;
@tailwind utilities;
.action-button {
@apply rounded bg-indigo-600 px-2 py-1 font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600;
}
/*
@layer components {
+14
View File
@@ -0,0 +1,14 @@
class LectureController < ApplicationController
def start
lecture = Lecture.find(params[:id])
Toggl::start_time_entry(
description: lecture.title,
project_id: lecture.course.toggl_project,
)
if lecture.recording.present?
redirect_to lecture.recording.recording_url, allow_other_host: true
end
end
end
+2
View File
@@ -0,0 +1,2 @@
module LectureHelper
end
+13
View File
@@ -10,4 +10,17 @@ module Toggl
headers: { 'Content-Type' => 'application/json', 'Accept' => 'application/json' }
).body)
end
def self.start_time_entry(description:, project_id:)
HTTParty.post(
"http://localhost:3005/start_time_entry",
body: {
"created_with": "Attendance Tracker",
"description": description,
"duration": -1,
"project_id": project_id,
}.to_json,
headers: { 'Content-Type' => 'application/json', 'Accept' => 'application/json' }
)
end
end
+1
View File
@@ -61,6 +61,7 @@ class Course < ApplicationRecord
end
end
# What should this do for existing attendances?
def renumber_lectures!
lectures.group_by(&:kind).each do |kind, lectures|
lectures.sort_by(&:start_time).each_with_index do |lecture, index|
+1 -1
View File
@@ -5,7 +5,7 @@ class Lecture < ApplicationRecord
enum :kind, [
:lecture,
:problem_class,
:problems_class,
], default: :lecture
def week_number
+7 -4
View File
@@ -66,11 +66,14 @@
<td class="whitespace-nowrap px-3 py-4 text-sm text-gray-500">
<% if lecture.attendance.nil? %>
<button type="button" class="rounded bg-indigo-600 px-2 py-1 font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600">
Start
</button>
<%= button_to "Start",
lectures_start_path(id: lecture.id),
class: 'action-button'
%>
<% else %>
<%= link_to "Open recording", lecture.recording&.recording_url %>
<% if lecture.recording %>
<%= link_to "Open recording", lecture.recording&.recording_url %>
<% end %>
<% end %>
</td>
<% end %>
+4
View File
@@ -0,0 +1,4 @@
<div>
<h1 class="font-bold text-4xl">Lecture#start</h1>
<p>Find me in app/views/lecture/start.html.erb</p>
</div>