38 lines
740 B
Ruby
38 lines
740 B
Ruby
class Lecture < ApplicationRecord
|
|
belongs_to :course
|
|
has_one :attendance
|
|
|
|
enum :status, [
|
|
:undetermined,
|
|
:future,
|
|
:happening_now,
|
|
:attended_in_person,
|
|
:watched_recording,
|
|
:missed,
|
|
], default: :undetermined
|
|
|
|
def week_number
|
|
((start_time.beginning_of_week - Time.new('2023-10-02')) / 1.week).floor
|
|
end
|
|
|
|
def live_video_url
|
|
nil
|
|
end
|
|
|
|
def recording_url
|
|
return nil if recording_id.nil?
|
|
|
|
"https://uniofbath.cloud.panopto.eu/Panopto/Pages/Viewer.aspx?id=#{recording_id}"
|
|
end
|
|
|
|
def nice_title
|
|
if course.title == "General Relativity"
|
|
regex = /.+L(\d+).*/
|
|
lecture_number = self.title.match(regex)[1].to_i
|
|
return "Lecture #{lecture_number}"
|
|
end
|
|
|
|
title
|
|
end
|
|
end
|