Create TrackedTimeEntry as more general replacement of Attendance to include preparation and review

This commit is contained in:
Joshua Coles 2023-10-06 21:09:28 +01:00
parent c706aa2561
commit a2dfad331b
5 changed files with 44 additions and 0 deletions

View File

@ -3,6 +3,8 @@ class Lecture < ApplicationRecord
has_one :attendance, dependent: :destroy
has_one :recording, dependent: :nullify
has_many :tracked_time_entries, dependent: :destroy
enum :kind, [
:lecture,
:problems_class,

View File

@ -0,0 +1,13 @@
class TrackedTimeEntry < ApplicationRecord
belongs_to :lecture
enum :kind, [
:concurrent,
:catchup
]
def duration
toggl_data['time_entries'].sum { |entry| entry['seconds'] }
.seconds
end
end

View File

@ -0,0 +1,11 @@
class CreateTrackedTimeEntries < ActiveRecord::Migration[7.1]
def change
create_table :tracked_time_entries do |t|
t.references :lecture, null: false, foreign_key: true
t.integer :kind
t.jsonb :toggl_data
t.timestamps
end
end
end

11
test/fixtures/tracked_time_entries.yml vendored Normal file
View File

@ -0,0 +1,11 @@
# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
one:
lecture: one
kind: 1
toggl_data:
two:
lecture: two
kind: 1
toggl_data:

View File

@ -0,0 +1,7 @@
require "test_helper"
class TrackedTimeEntryTest < ActiveSupport::TestCase
# test "the truth" do
# assert true
# end
end