canvas_sync 0.19.0.beta10 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/canvas_sync/concerns/account/ancestry.rb +1 -1
  3. data/lib/canvas_sync/concerns/api_syncable.rb +1 -1
  4. data/lib/canvas_sync/generators/templates/migrations/create_course_nicknames.rb +17 -0
  5. data/lib/canvas_sync/generators/templates/models/course_nickname.rb +13 -0
  6. data/lib/canvas_sync/processors/model_mappings.yml +18 -0
  7. data/lib/canvas_sync/processors/provisioning_report_processor.rb +10 -0
  8. data/lib/canvas_sync/record.rb +1 -1
  9. data/lib/canvas_sync/version.rb +1 -1
  10. data/lib/canvas_sync.rb +1 -0
  11. data/spec/canvas_sync/processors/provisioning_report_processor_spec.rb +9 -0
  12. data/spec/dummy/app/models/account.rb +2 -0
  13. data/spec/dummy/app/models/admin.rb +2 -0
  14. data/spec/dummy/app/models/assignment.rb +2 -0
  15. data/spec/dummy/app/models/assignment_group.rb +2 -0
  16. data/spec/dummy/app/models/content_migration.rb +2 -0
  17. data/spec/dummy/app/models/context_module.rb +2 -0
  18. data/spec/dummy/app/models/context_module_item.rb +2 -0
  19. data/spec/dummy/app/models/course.rb +2 -0
  20. data/spec/dummy/app/models/course_nickname.rb +19 -0
  21. data/spec/dummy/app/models/enrollment.rb +2 -0
  22. data/spec/dummy/app/models/grading_period.rb +2 -0
  23. data/spec/dummy/app/models/grading_period_group.rb +2 -0
  24. data/spec/dummy/app/models/group.rb +2 -0
  25. data/spec/dummy/app/models/group_membership.rb +2 -0
  26. data/spec/dummy/app/models/learning_outcome.rb +2 -0
  27. data/spec/dummy/app/models/pseudonym.rb +2 -0
  28. data/spec/dummy/app/models/role.rb +2 -0
  29. data/spec/dummy/app/models/section.rb +2 -0
  30. data/spec/dummy/app/models/submission.rb +2 -0
  31. data/spec/dummy/app/models/term.rb +2 -0
  32. data/spec/dummy/app/models/user.rb +2 -0
  33. data/spec/dummy/app/models/user_observer.rb +2 -0
  34. data/spec/dummy/db/migrate/20240408223326_create_course_nicknames.rb +23 -0
  35. data/spec/dummy/db/schema.rb +12 -1
  36. data/spec/support/fixtures/reports/course_nicknames.csv +3 -0
  37. metadata +12 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3cd64554a1f451160b874e8901b7275a25b6f9c526d687a29e531abff9f0b285
4
- data.tar.gz: 9cac31449a633b4c3513088abf00b0274b0ce794e54f72742d65802bf2bb5a8c
3
+ metadata.gz: 56b320065eb2aec256795336a077f2c5c93652293313bd3d69ebbb8f65a70d4e
4
+ data.tar.gz: 750f717c88eebcdebc3959bd084fd2872bee21f7bb507ae7f15207ad2ea9bfcd
5
5
  SHA512:
6
- metadata.gz: a479a1705e765b3e338c7aed688728436fbeedd82809218bcbd288775e9a2175c62d5294dc2a206fdb77a7945f0223be723b74e9ec6800635841124e42149c22
7
- data.tar.gz: 96bef245b0ba1a4de671dfc1d49a184d35bd03fea62efad44dbaac1bdcff345cabd19b1f12147f1d334b967641ce72e9c66704e0709f55b5f2378475d39d9d86
6
+ metadata.gz: b98a1f43e84bda12e540da6d4d45c2e5781435db2232f7b71400d42991cfd7cb38e1c686930801e3e91ac9ccd97e550e2cf5661e4895cbd804cfd7bd739bed8d
7
+ data.tar.gz: b0e1546e0ceb23dc1577cdaab04a6b6e64fe2351634aa1cd3a0cc8897d78d301585350f68baf577badcccedd77b9280a7d8fb65e0c7abfb574bee2120d086c2f
@@ -11,7 +11,7 @@ module CanvasSync::Concerns
11
11
  extend ActiveSupport::Concern
12
12
  include CanvasSync::Record
13
13
 
14
- CanvasSync::Record.define_feature self, default: ->{ column_names.include?("ancestry") }
14
+ CanvasSync::Record.define_feature self, default: ->{ column_names.include?("ancestry") rescue nil }
15
15
 
16
16
  included do
17
17
  has_ancestry
@@ -1,7 +1,7 @@
1
1
  module CanvasSync::Concerns
2
2
  module ApiSyncable
3
3
  extend ActiveSupport::Concern
4
- NON_EXISTANT_ERRORS = [Faraday::Error::ResourceNotFound, Footrest::HttpError::NotFound]
4
+ NON_EXISTANT_ERRORS = [Faraday::ResourceNotFound, Footrest::HttpError::NotFound]
5
5
 
6
6
  class_methods do
7
7
  def find_or_fetch(canvas_id, save: false, retries: 1, **kwargs)
@@ -0,0 +1,17 @@
1
+ # <%= autogenerated_migration_warning %>
2
+
3
+ class CreateCourseNicknames < ActiveRecord::Migration[5.1]
4
+ def change
5
+ create_table :course_nicknames do |t|
6
+ t.bigint :canvas_user_preference_value_id, null: false
7
+ t.integer :canvas_user_id
8
+ t.integer :canvas_course_id
9
+ t.string :nickname
10
+
11
+ t.timestamps
12
+ end
13
+
14
+ add_index :course_nicknames, :canvas_user_preference_value_id, unique: true
15
+ add_index :course_nicknames, [:canvas_course_id, :canvas_user_id], unique: true
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # # <%= autogenerated_migration_warning %>
4
+
5
+ class CourseNickname < ApplicationRecord
6
+ include CanvasSync::Record
7
+ include CanvasSync::Concerns::ApiSyncable
8
+
9
+ canvas_sync_features :defaults
10
+
11
+ belongs_to :user, primary_key: :canvas_id, foreign_key: :canvas_user_id, optional: true
12
+ belongs_to :course, primary_key: :canvas_id, foreign_key: :canvas_course_id, optional: true
13
+ end
@@ -565,3 +565,21 @@ learning_outcomes:
565
565
  description:
566
566
  database_column_name: description
567
567
  type: string
568
+
569
+ course_nicknames:
570
+ conflict_target:
571
+ - canvas_user_id
572
+ - canvas_course_id
573
+ report_columns:
574
+ user_preference_value_id:
575
+ database_column_name: canvas_user_preference_value_id
576
+ type: integer
577
+ canvas_user_id:
578
+ database_column_name: canvas_user_id
579
+ type: integer
580
+ canvas_course_id:
581
+ database_column_name: canvas_course_id
582
+ type: integer
583
+ nickname:
584
+ database_column_name: nickname
585
+ type: string
@@ -123,6 +123,16 @@ module CanvasSync
123
123
  row
124
124
  end
125
125
  end
126
+
127
+ def bulk_process_course_nicknames(report_file_path)
128
+ exists = []
129
+ do_bulk_import(report_file_path, CourseNickname, options: @options) do |row|
130
+ exists << row[:user_preference_value_id]
131
+ row
132
+ end
133
+ # Canvas does not soft delete UserPreferenceValues so there's no point in doing the same
134
+ CourseNickname.where.not(canvas_user_preference_value_id: exists).delete_all
135
+ end
126
136
  end
127
137
  end
128
138
  end
@@ -47,7 +47,7 @@ module CanvasSync
47
47
  feat = applicable_canvas_sync_features[feature]
48
48
 
49
49
  if !feat
50
- raise "Unkown feature :#{feature} for model #{self}"
50
+ raise "Unknown feature :#{feature} for model #{self}"
51
51
  end
52
52
 
53
53
  setup = feat[:setup]
@@ -1,3 +1,3 @@
1
1
  module CanvasSync
2
- VERSION = "0.19.0.beta10".freeze
2
+ VERSION = "0.19.0".freeze
3
3
  end
data/lib/canvas_sync.rb CHANGED
@@ -46,6 +46,7 @@ module CanvasSync
46
46
  grading_period_groups
47
47
  content_migrations
48
48
  learning_outcomes
49
+ course_nicknames
49
50
  ].freeze
50
51
 
51
52
  SUPPORTED_TERM_SCOPE_MODELS = %w[
@@ -131,6 +131,15 @@ RSpec.describe CanvasSync::Processors::ProvisioningReportProcessor do
131
131
  }.to change { LearningOutcome.count }.by(2)
132
132
  end
133
133
 
134
+ it 'processes course_nicknames' do
135
+ CourseNickname.create(canvas_user_preference_value_id: 42, canvas_course_id: 42, canvas_user_id: 42, nickname: 'test')
136
+ expect(CourseNickname.all.pluck(:canvas_user_preference_value_id)).to include(42)
137
+ expect {
138
+ subject.process('spec/support/fixtures/reports/course_nicknames.csv', { models: ['course_nicknames'] }, 1)
139
+ }.to change { CourseNickname.count }.by(1)
140
+ expect(CourseNickname.all.pluck(:canvas_user_preference_value_id)).not_to include(42)
141
+ end
142
+
134
143
  it 'model with composite key behaves as expected' do
135
144
  expect {
136
145
  subject.process('spec/support/fixtures/reports/user_observers.csv', { models: ['user_observers'] }, 1)
@@ -11,6 +11,8 @@ class Account < ApplicationRecord
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
  # include CanvasSync::Concerns::Account::Ancestry # Add support for the ancestry Gem
13
13
 
14
+ canvas_sync_features :defaults
15
+
14
16
  validates :canvas_id, uniqueness: true, presence: true
15
17
 
16
18
  has_many :admins, primary_key: :canvas_id, foreign_key: :canvas_account_id
@@ -10,6 +10,8 @@ class Admin < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  validates :canvas_id, uniqueness: true, presence: true
14
16
  belongs_to :account, primary_key: :canvas_id, foreign_key: :canvas_account_id, optional: true
15
17
  belongs_to :user, primary_key: :canvas_id, foreign_key: :canvas_user_id, optional: true
@@ -10,6 +10,8 @@ class Assignment < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  validates :canvas_id, uniqueness: true, presence: true
14
16
  belongs_to :context, polymorphic: true, optional: true, primary_key: :canvas_id, foreign_key: :canvas_context_id, foreign_type: :canvas_context_type
15
17
  belongs_to :assignment_group, optional: true, primary_key: :canvas_id, foreign_key: :canvas_assignment_group_id
@@ -10,6 +10,8 @@ class AssignmentGroup < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  validates :canvas_id, uniqueness: true, presence: true
14
16
  belongs_to :course, primary_key: :canvas_id, foreign_key: :canvas_course_id, optional: true
15
17
  has_many :assignments, primary_key: :canvas_id, foreign_key: :canvas_assignment_group_id
@@ -10,6 +10,8 @@ class ContentMigration < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  validates :canvas_id, uniqueness: true, presence: true
14
16
  belongs_to :context, polymorphic: true, optional: true, primary_key: :canvas_id, foreign_key: :canvas_context_id, foreign_type: :canvas_context_type
15
17
 
@@ -13,6 +13,8 @@ class ContextModule < ApplicationRecord
13
13
  include CanvasSync::Record
14
14
  include CanvasSync::Concerns::ApiSyncable
15
15
 
16
+ canvas_sync_features :defaults
17
+
16
18
  belongs_to :context, polymorphic: true, optional: true, primary_key: :canvas_id, foreign_key: :canvas_context_id, foreign_type: :canvas_context_type
17
19
  has_many :context_module_items, primary_key: :canvas_id, foreign_key: :canvas_context_module_id
18
20
  has_many :assignments, through: :context_module_items
@@ -10,6 +10,8 @@ class ContextModuleItem < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  belongs_to :context_module, primary_key: :canvas_id, foreign_key: :canvas_context_module_id, optional: true
14
16
  belongs_to :content, polymorphic: true, optional: true, primary_key: :canvas_id, foreign_key: :canvas_content_id, foreign_type: :canvas_content_type
15
17
  belongs_to :assignment, foreign_key: :canvas_assignment_id, primary_key: :canvas_id
@@ -10,6 +10,8 @@ class Course < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  validates :canvas_id, uniqueness: true, presence: true
14
16
  belongs_to :term, foreign_key: :canvas_term_id, primary_key: :canvas_id, optional: true
15
17
  has_many :enrollments, primary_key: :canvas_id, foreign_key: :canvas_course_id
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ # # #
4
+ # AUTO GENERATED MIGRATION
5
+ # This migration was auto generated by the CanvasSync Gem.
6
+ # You can add new columns to this table, but removing or
7
+ # re-naming ones created here may break Canvas Syncing.
8
+ #
9
+
10
+
11
+ class CourseNickname < ApplicationRecord
12
+ include CanvasSync::Record
13
+ include CanvasSync::Concerns::ApiSyncable
14
+
15
+ canvas_sync_features :defaults
16
+
17
+ belongs_to :user, primary_key: :canvas_id, foreign_key: :canvas_user_id, optional: true
18
+ belongs_to :course, primary_key: :canvas_id, foreign_key: :canvas_course_id, optional: true
19
+ end
@@ -10,6 +10,8 @@ class Enrollment < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  validates :canvas_id, uniqueness: true, presence: true
14
16
  belongs_to :user, primary_key: :canvas_id, foreign_key: :canvas_user_id, optional: true
15
17
  belongs_to :role, primary_key: :canvas_id, foreign_key: :canvas_role_id, optional: true
@@ -9,6 +9,8 @@
9
9
  class GradingPeriod < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
 
12
+ canvas_sync_features :defaults
13
+
12
14
  validates :canvas_id, uniqueness: true, presence: true
13
15
  belongs_to :grading_period_group, primary_key: :canvas_id, foreign_key: :canvas_grading_period_group_id, optional: true
14
16
  end
@@ -9,5 +9,7 @@
9
9
  class GradingPeriodGroup < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
 
12
+ canvas_sync_features :defaults
13
+
12
14
  validates :canvas_id, uniqueness: true, presence: true
13
15
  end
@@ -10,6 +10,8 @@ class Group < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  validates :canvas_id, uniqueness: true, presence: true
14
16
  belongs_to :course, primary_key: :canvas_id, foreign_key: :canvas_course_id, optional: true
15
17
  belongs_to :account, primary_key: :canvas_id, foreign_key: :canvas_account_id, optional: true
@@ -10,6 +10,8 @@ class GroupMembership < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  validates :canvas_id, uniqueness: true, presence: true
14
16
  belongs_to :group, primary_key: :canvas_id, foreign_key: :canvas_group_id
15
17
  belongs_to :user, primary_key: :canvas_id, foreign_key: :canvas_user_id
@@ -12,6 +12,8 @@ class LearningOutcome < ApplicationRecord
12
12
  include CanvasSync::Record
13
13
  include CanvasSync::Concerns::ApiSyncable
14
14
 
15
+ canvas_sync_features :defaults
16
+
15
17
  belongs_to :context, polymorphic: true, optional: true, primary_key: :canvas_id, foreign_key: :canvas_context_id, foreign_type: :canvas_context_type
16
18
 
17
19
  api_syncable({
@@ -9,6 +9,8 @@
9
9
  class Pseudonym < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
 
12
+ canvas_sync_features :defaults
13
+
12
14
  validates :canvas_id, uniqueness: true, presence: true
13
15
  belongs_to :user, primary_key: :canvas_id, foreign_key: :canvas_user_id
14
16
  end
@@ -10,6 +10,8 @@ class Role < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  validates :canvas_id, uniqueness: true, presence: true
14
16
  has_many :admins, foreign_key: :canvas_role_id, primary_key: :canvas_id
15
17
 
@@ -10,6 +10,8 @@ class Section < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  validates :canvas_id, uniqueness: true, presence: true
14
16
  belongs_to :course, primary_key: :canvas_id, foreign_key: :canvas_course_id, optional: true
15
17
  has_many :enrollments, primary_key: :canvas_id, foreign_key: :canvas_section_id
@@ -10,6 +10,8 @@ class Submission < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  validates :canvas_id, uniqueness: true, presence: true
14
16
  belongs_to :assignment, primary_key: :canvas_id, foreign_key: :canvas_assignment_id, optional: true
15
17
  belongs_to :user, primary_key: :canvas_id, foreign_key: :canvas_user_id, optional: true
@@ -10,6 +10,8 @@ class Term < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  validates :canvas_id, uniqueness: true, presence: true
14
16
  has_many :courses, foreign_key: :canvas_term_id, primary_key: :canvas_id
15
17
  belongs_to :grading_period_group, primary_key: :canvas_id, foreign_key: :grading_period_group_id, optional: true
@@ -10,6 +10,8 @@ class User < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  validates :canvas_id, uniqueness: true, presence: true
14
16
  has_many :pseudonyms, primary_key: :canvas_id, foreign_key: :canvas_user_id
15
17
  has_many :enrollments, primary_key: :canvas_id, foreign_key: :canvas_user_id
@@ -10,6 +10,8 @@ class UserObserver < ApplicationRecord
10
10
  include CanvasSync::Record
11
11
  include CanvasSync::Concerns::ApiSyncable
12
12
 
13
+ canvas_sync_features :defaults
14
+
13
15
  validates :canvas_id, uniqueness: true, presence: true
14
16
 
15
17
  belongs_to :observing_user, primary_key: :canvas_id, foreign_key: :observing_user_id, class_name: 'User', optional: true
@@ -0,0 +1,23 @@
1
+ # #
2
+ # AUTO GENERATED MIGRATION
3
+ # This migration was auto generated by the CanvasSync Gem.
4
+ # You can add new columns to this table, but removing or
5
+ # re-naming ones created here may break Canvas Syncing.
6
+ #
7
+
8
+
9
+ class CreateCourseNicknames < ActiveRecord::Migration[5.1]
10
+ def change
11
+ create_table :course_nicknames do |t|
12
+ t.bigint :canvas_user_preference_value_id, null: false
13
+ t.integer :canvas_user_id
14
+ t.integer :canvas_course_id
15
+ t.string :nickname
16
+
17
+ t.timestamps
18
+ end
19
+
20
+ add_index :course_nicknames, :canvas_user_preference_value_id, unique: true
21
+ add_index :course_nicknames, [:canvas_course_id, :canvas_user_id], unique: true
22
+ end
23
+ end
@@ -10,7 +10,7 @@
10
10
  #
11
11
  # It's strongly recommended that you check this file into your version control system.
12
12
 
13
- ActiveRecord::Schema.define(version: 2022_09_26_221926) do
13
+ ActiveRecord::Schema.define(version: 2024_04_08_223326) do
14
14
 
15
15
  # These are extensions that must be enabled in order to support this database
16
16
  enable_extension "plpgsql"
@@ -157,6 +157,17 @@ ActiveRecord::Schema.define(version: 2022_09_26_221926) do
157
157
  t.index ["canvas_id"], name: "index_context_modules_on_canvas_id", unique: true
158
158
  end
159
159
 
160
+ create_table "course_nicknames", force: :cascade do |t|
161
+ t.bigint "canvas_user_preference_value_id", null: false
162
+ t.integer "canvas_user_id"
163
+ t.integer "canvas_course_id"
164
+ t.string "nickname"
165
+ t.datetime "created_at", null: false
166
+ t.datetime "updated_at", null: false
167
+ t.index ["canvas_course_id", "canvas_user_id"], name: "index_course_nicknames_on_canvas_course_id_and_canvas_user_id", unique: true
168
+ t.index ["canvas_user_preference_value_id"], name: "index_course_nicknames_on_canvas_user_preference_value_id", unique: true
169
+ end
170
+
160
171
  create_table "courses", force: :cascade do |t|
161
172
  t.bigint "canvas_id", null: false
162
173
  t.string "sis_id"
@@ -0,0 +1,3 @@
1
+ user_preference_value_id,canvas_user_id,canvas_course_id,nickname
2
+ 86,17,35,foo
3
+ 123,8348,12,bar
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: canvas_sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.0.beta10
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Instructure CustomDev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-28 00:00:00.000000000 Z
11
+ date: 2024-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -430,6 +430,7 @@ files:
430
430
  - lib/canvas_sync/generators/templates/migrations/create_content_migrations.rb
431
431
  - lib/canvas_sync/generators/templates/migrations/create_context_module_items.rb
432
432
  - lib/canvas_sync/generators/templates/migrations/create_context_modules.rb
433
+ - lib/canvas_sync/generators/templates/migrations/create_course_nicknames.rb
433
434
  - lib/canvas_sync/generators/templates/migrations/create_courses.rb
434
435
  - lib/canvas_sync/generators/templates/migrations/create_enrollments.rb
435
436
  - lib/canvas_sync/generators/templates/migrations/create_grading_period_groups.rb
@@ -452,6 +453,7 @@ files:
452
453
  - lib/canvas_sync/generators/templates/models/context_module.rb
453
454
  - lib/canvas_sync/generators/templates/models/context_module_item.rb
454
455
  - lib/canvas_sync/generators/templates/models/course.rb
456
+ - lib/canvas_sync/generators/templates/models/course_nickname.rb
455
457
  - lib/canvas_sync/generators/templates/models/enrollment.rb
456
458
  - lib/canvas_sync/generators/templates/models/grading_period.rb
457
459
  - lib/canvas_sync/generators/templates/models/grading_period_group.rb
@@ -597,6 +599,7 @@ files:
597
599
  - spec/dummy/app/models/context_module.rb
598
600
  - spec/dummy/app/models/context_module_item.rb
599
601
  - spec/dummy/app/models/course.rb
602
+ - spec/dummy/app/models/course_nickname.rb
600
603
  - spec/dummy/app/models/enrollment.rb
601
604
  - spec/dummy/app/models/grading_period.rb
602
605
  - spec/dummy/app/models/grading_period_group.rb
@@ -673,6 +676,7 @@ files:
673
676
  - spec/dummy/db/migrate/20220308072643_create_content_migrations.rb
674
677
  - spec/dummy/db/migrate/20220712210559_create_learning_outcomes.rb
675
678
  - spec/dummy/db/migrate/20220926221926_create_users.rb
679
+ - spec/dummy/db/migrate/20240408223326_create_course_nicknames.rb
676
680
  - spec/dummy/db/schema.rb
677
681
  - spec/factories/account_factory.rb
678
682
  - spec/factories/admin_factory.rb
@@ -717,6 +721,7 @@ files:
717
721
  - spec/support/fixtures/reports/content_migrations.csv
718
722
  - spec/support/fixtures/reports/context_module_items.csv
719
723
  - spec/support/fixtures/reports/context_modules.csv
724
+ - spec/support/fixtures/reports/course_nicknames.csv
720
725
  - spec/support/fixtures/reports/courses.csv
721
726
  - spec/support/fixtures/reports/enrollments.csv
722
727
  - spec/support/fixtures/reports/grading_period_groups.csv
@@ -746,9 +751,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
746
751
  version: '0'
747
752
  required_rubygems_version: !ruby/object:Gem::Requirement
748
753
  requirements:
749
- - - ">"
754
+ - - ">="
750
755
  - !ruby/object:Gem::Version
751
- version: 1.3.1
756
+ version: '0'
752
757
  requirements: []
753
758
  rubygems_version: 3.1.6
754
759
  signing_key:
@@ -832,6 +837,7 @@ test_files:
832
837
  - spec/support/fixtures/reports/assignment_groups.csv
833
838
  - spec/support/fixtures/reports/group_memberships.csv
834
839
  - spec/support/fixtures/reports/enrollments.csv
840
+ - spec/support/fixtures/reports/course_nicknames.csv
835
841
  - spec/support/fixtures/reports/provisioning_csv
836
842
  - spec/support/fixtures/reports/grading_periods.csv
837
843
  - spec/support/fixtures/reports/content_migrations.csv
@@ -852,6 +858,7 @@ test_files:
852
858
  - spec/dummy/db/migrate/20220926221926_create_users.rb
853
859
  - spec/dummy/db/migrate/20210907233330_create_grading_periods.rb
854
860
  - spec/dummy/db/migrate/20190702203631_create_context_modules.rb
861
+ - spec/dummy/db/migrate/20240408223326_create_course_nicknames.rb
855
862
  - spec/dummy/db/migrate/20190702203632_create_context_module_items.rb
856
863
  - spec/dummy/db/migrate/20190927204545_create_roles.rb
857
864
  - spec/dummy/db/migrate/20190702203622_create_accounts.rb
@@ -893,6 +900,7 @@ test_files:
893
900
  - spec/dummy/app/services/live_events/module_item_event.rb
894
901
  - spec/dummy/app/services/live_events/submission_updated_event.rb
895
902
  - spec/dummy/app/services/live_events/user_event.rb
903
+ - spec/dummy/app/models/course_nickname.rb
896
904
  - spec/dummy/app/models/user.rb
897
905
  - spec/dummy/app/models/submission.rb
898
906
  - spec/dummy/app/models/group_membership.rb