diff --git a/app/models/course.rb b/app/models/course.rb index 569ee66..c3c34cc 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -6,6 +6,10 @@ class Course < ApplicationRecord # we them independently to avoid re-importing lectures. has_many :recordings, dependent: :destroy + def lectures_and_work_items + (lectures + work_items).sort_by(&:start_time) + end + def import_from_calendar! ics_file = HTTParty.get("https://mytimetable.bath.ac.uk/ical?6519757b&group=false&timetable=!MjAyMyFzdHVkZW50c2V0ITRDRjQ5MjlGRTg1M0Q4N0MyMDZENTVDNUQ3QTJFNzk0&eu=amMzMDkxQGJhdGguYWMudWs=&h=MiuDbRiudE_Yf7B25v2SfEuFCtmYGkFb5sAUI3yGmtY=") calendars = Icalendar::Calendar.parse(ics_file) diff --git a/app/models/work_item.rb b/app/models/work_item.rb index f9a26d3..ded75ae 100644 --- a/app/models/work_item.rb +++ b/app/models/work_item.rb @@ -1,4 +1,8 @@ class WorkItem < ApplicationRecord belongs_to :course has_many :tracked_time_entries, dependent: :destroy, as: :subject + + def week_number + ((start_time.beginning_of_week - course.semester_start_date.to_time) / 1.week).floor + 1 + end end diff --git a/app/views/attendance_tracker/index.html.erb b/app/views/attendance_tracker/index.html.erb index 6a643df..93125a0 100644 --- a/app/views/attendance_tracker/index.html.erb +++ b/app/views/attendance_tracker/index.html.erb @@ -20,7 +20,7 @@
- <% course.lectures.order(:start_time).group_by { |lecture| lecture.week_number }.each do |(week_number, lectures)| %> + <% course.lectures_and_work_items.group_by { |lecture| lecture.week_number }.each do |(week_number, lectures)| %>