diff --git a/app/controllers/attendance_tracker_controller.rb b/app/controllers/attendance_tracker_controller.rb index eff509d..95f4e5e 100644 --- a/app/controllers/attendance_tracker_controller.rb +++ b/app/controllers/attendance_tracker_controller.rb @@ -1,16 +1,39 @@ class AttendanceTrackerController < ApplicationController def index @courses = Course.all.sort_by(&:title) + @current_lecture = get_current_lecture end def today @courses = Course.all.sort_by(&:title) @date = Date.today - + @current_lecture = get_current_lecture @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]) + @current_lecture = get_current_lecture + end + + private + + def get_current_lecture + current_time_entry = Toggl.current_time_entry + return nil if current_time_entry.nil? + + lecture = Lecture + .joins(:course) + .find_by(title: current_time_entry['description'], course: { toggl_project: current_time_entry['project_id'] }) + + return lecture if lecture.present? + + start_time = Time.new(current_time_entry['start']) + lecture = Lecture.joins(:course) + .find_by(start_time: (start_time - 10.minutes)..(start_time + 10.minutes), course: { toggl_project: current_time_entry['project_id'] }) + + return lecture if lecture.present? + + nil end end diff --git a/app/lib/toggl.rb b/app/lib/toggl.rb index dc92f0f..27ce5f7 100644 --- a/app/lib/toggl.rb +++ b/app/lib/toggl.rb @@ -1,4 +1,11 @@ module Toggl + def self.current_time_entry + JSON.parse(HTTParty.get( + "#{TOGGL_PORTAL_URL}/current", + headers: { 'Accept' => 'application/json' } + ).body) + end + def self.entries_for_project(toggl_project_id, start_time:, end_time:) JSON.parse(HTTParty.post( "#{TOGGL_PORTAL_URL}/report", diff --git a/app/views/attendance_tracker/_course_table.erb b/app/views/attendance_tracker/_course_table.erb index ee716f1..fb7d8e6 100644 --- a/app/views/attendance_tracker/_course_table.erb +++ b/app/views/attendance_tracker/_course_table.erb @@ -14,10 +14,11 @@ <% lectures.each do |lecture| %> <% status_classes = class_names({ 'lecture-future': lecture.start_time.future?, + 'bg-purple-100': lecture == @current_lecture, 'bg-green-100': lecture.attended?, }) %> -