canvas_sync 0.19.0 → 0.19.1.beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 56b320065eb2aec256795336a077f2c5c93652293313bd3d69ebbb8f65a70d4e
4
- data.tar.gz: 750f717c88eebcdebc3959bd084fd2872bee21f7bb507ae7f15207ad2ea9bfcd
3
+ metadata.gz: 29b6fcaa8f4fd82e412c06ef358f358e00146f97670d051ffbdaf7aa5731659d
4
+ data.tar.gz: 53106e0aed084fd3782c15895a6191e2459b61938750f618f4337c058d7a0f4a
5
5
  SHA512:
6
- metadata.gz: b98a1f43e84bda12e540da6d4d45c2e5781435db2232f7b71400d42991cfd7cb38e1c686930801e3e91ac9ccd97e550e2cf5661e4895cbd804cfd7bd739bed8d
7
- data.tar.gz: b0e1546e0ceb23dc1577cdaab04a6b6e64fe2351634aa1cd3a0cc8897d78d301585350f68baf577badcccedd77b9280a7d8fb65e0c7abfb574bee2120d086c2f
6
+ metadata.gz: f302d9682a0e8901d1500e5113a46dc4e724eceef40e1ebaa18ae4ccae9dd360749e17b60e03bbfe97f5da843fe3cd0e2020cda8133ba2d86a93bee7d32ade15
7
+ data.tar.gz: 5aeee149dbbeedd67b89e42cd9849bb220b04339e4a284509507dcfacbfdcaf6bc51ce0c3ba583d3ebd31385628099379d80ae8ad189079e68b0e2aa1d2135bc
@@ -1,171 +1,43 @@
1
1
  module CanvasSync::Concerns
2
2
  module AbilityHelper
3
3
  extend ActiveSupport::Concern
4
+ include PandaPal::Concerns::AbilityHelper if defined?(PandaPal::Concerns::AbilityHelper)
4
5
 
5
- # PandaPal Domain
6
-
7
- def panda_pal_session
8
- @panda_pal_session ||= @controller.current_session&.data || {}
9
- end
10
-
11
- def rails_session
12
- @rails_session ||= @controller.session
13
- end
14
-
15
- def is_lti_launch?
16
- panda_pal_session.present?
17
- end
18
-
19
- def launch_params
20
- @launch_params ||= panda_pal_session[:launch_params] || {}
21
- end
22
-
23
- def get_lti_cust_param(key)
24
- nkey = key.to_s.gsub(/^custom_/, '')
25
-
26
- launch_params.dig("https://purl.imsglobal.org/spec/lti/claim/custom", nkey) || launch_params[nkey] || launch_params["custom_#{nkey}"]
27
- end
28
-
29
- def lti_launch_placement
30
- launch_params['https://www.instructure.com/placement'] || launch_params[:launch_type]
31
- end
32
-
33
- def canvas_role_labels
34
- labels = get_lti_cust_param('custom_canvas_role')
35
- labels.is_a?(String) ? labels.split(',') : []
36
- end
37
-
38
- def canvas_account_role_labels(account = 'self')
39
- account = 'self' if account.to_s == "root"
40
- account = account.canvas_id if account.respond_to?(:canvas_id)
41
-
42
- if "::Admin".safe_constantize && ::Admin < ::ActiveRecord::Base
43
- account = current_organization.canvas_account_id if account == 'self'
44
- adm_query = ::Admin.where(canvas_account_id: account, workflow_state: "active")
45
- adm_query.pluck(:role_name)
46
- else
47
- Rails.cache.fetch([self.class.name, "AccountAdminLinks", account, canvas_user_id], expires_in: 1.hour) do
48
- admin_entries = canvas_sync_client.account_admins(account, user_id: [canvas_user_id])
49
- admin_entries = admin_entries.select{|ent| ent[:workflow_state] == 'active' }
50
- admin_entries.map{|ent| ent[:role] }
51
- end
52
- end
53
- end
54
-
55
- def lti_roles
56
- @lti_roles ||= RoleStore.new(launch_params["https://purl.imsglobal.org/spec/lti/claim/roles"] || launch_params['ext_roles'] || '')
57
- end
58
-
59
- def canvas_site_admin?
60
- lti_roles.system_roles.include?("sys_admin")
61
- end
62
-
63
- class RoleStore
64
- ContextTypeURN = 'urn:lti:context-type:ims/lis/'.freeze
65
-
66
- ROLE_TYPES = [
67
- { type: "system", urn: "urn:lti:sysrole:ims/lis/", url: "http://purl.imsglobal.org/vocab/lis/v2/system/person#" },
68
- { type: "institution", urn: "urn:lti:instrole:ims/lis/", url: "http://purl.imsglobal.org/vocab/lis/v2/institution/person#" },
69
- { type: "context", urn: "urn:lti:role:ims/lis/", url: "http://purl.imsglobal.org/vocab/lis/v2/membership#" },
70
- ]
71
-
72
- attr_accessor :roles, :context_types, :other_roles
73
-
74
- def initialize(roles = '')
75
- roles = roles.split(',') if roles.is_a?(String)
76
- @roles = roles || []
77
-
78
- @context_types = []
79
- @other_roles = []
80
- @parsed_roles = HashWithIndifferentAccess.new
81
-
82
- map_roles
83
- end
84
-
85
- def system_roles; @parsed_roles[:system] || []; end
86
- def institution_roles; @parsed_roles[:institution] || []; end
87
- def context_roles; @parsed_roles[:context] || []; end
88
-
89
- def to_h
90
- {
91
- 'roles' => roles,
92
- 'context_type' => context_types,
93
- 'system_roles' => system_roles,
94
- 'institution_roles' => institution_roles,
95
- 'context_roles' => context_roles
96
- }
97
- end
98
-
99
- protected
100
-
101
- def map_roles
102
- roles.each do |role|
103
- if role.downcase.include?(ContextTypeURN)
104
- context_types << clean_role(ContextTypeURN, role)
105
- elsif (simple_role, type = match_role(role)).present?
106
- (@parsed_roles[type[:type]] ||= []) << simple_role
107
- else
108
- other_roles << role
109
- end
110
- end
111
- end
112
-
113
- def match_role(role)
114
- ROLE_TYPES.each do |rt|
115
- # LIS V1
116
- if role.downcase.start_with?(rt[:urn])
117
- return clean_role(rt[:urn], role), rt
118
- end
119
-
120
- # LIS V2
121
- if role.downcase.start_with?(rt[:url])
122
- return role.split('#')[1].underscore, rt
123
- end
124
- end
125
-
126
- nil
127
- end
128
-
129
- def clean_role(urn_prefix, role)
130
- role.gsub(/#{Regexp.quote(urn_prefix)}/i, '').gsub('/', '').underscore
131
- end
132
- end
6
+ # @abstract Implemented by PandaPal
7
+ def panda_pal_session; end
133
8
 
134
9
  # Middle Domain
135
10
 
136
11
  def launch_context
137
12
  @launch_context ||= begin
138
- if lti_launch_placement == "global_navigation"
13
+ if panda_pal_session.lti_launch_placement == "global_navigation"
139
14
  :global
140
- elsif get_lti_cust_param('custom_canvas_course_id').present?
141
- ::Course.find_by(canvas_id: get_lti_cust_param('custom_canvas_course_id'))
15
+ elsif panda_pal_session.get_lti_cust_param('custom_canvas_course_id').present?
16
+ ::Course.find_by(canvas_id: panda_pal_session.get_lti_cust_param('custom_canvas_course_id'))
142
17
  else
143
- ::Account.find_by(canvas_id: get_lti_cust_param('custom_canvas_account_id'))
18
+ ::Account.find_by(canvas_id: panda_pal_session.get_lti_cust_param('custom_canvas_account_id'))
144
19
  end
145
20
  end
146
21
  end
147
22
 
148
23
  def launch_account
149
- @launch_account ||= launch_context.respond_to?(:account) ? launch_context.account : ::Account.find_by(canvas_id: get_lti_cust_param('custom_canvas_account_id'))
150
- end
151
-
152
- def cache_on_session(key, &blk)
153
- panda_pal_session[:ability_cache] ||= {}
154
- panda_pal_session[:ability_cache][key] ||= blk.call
24
+ @launch_account ||= launch_context.respond_to?(:account) ?
25
+ launch_context.account :
26
+ ::Account.find_by(canvas_id: panda_pal_session.get_lti_cust_param('custom_canvas_account_id'))
155
27
  end
156
28
 
157
29
  # CanvasSync Domain
158
30
 
159
31
  def canvas_permissions
160
- panda_pal_session[:canvas_permissions] ||= ::Role.role_permissions(canvas_roles)
32
+ panda_pal_session[:canvas_permissions] ||= ::Role.joined_permissions(canvas_roles)
161
33
  end
162
34
 
163
35
  def canvas_roles
164
- @canvas_roles ||= Role.for_labels(canvas_role_labels, launch_account)
36
+ @canvas_roles ||= Role.for_labels(panda_pal_session.canvas_role_labels, launch_account)
165
37
  end
166
38
 
167
39
  def canvas_root_account_roles
168
- role_labels = canvas_account_role_labels('self')
40
+ role_labels = panda_pal_session.canvas_account_role_labels('self')
169
41
  ::Role.for_labels(role_labels, ::Account.find_by(canvas_parent_account_id: nil))
170
42
  end
171
43
 
@@ -178,13 +50,13 @@ module CanvasSync::Concerns
178
50
  end
179
51
 
180
52
  def canvas_super_user?
181
- cache_on_session(:canvas_super_user?) do
182
- canvas_site_admin? || (canvas_account_role_labels(:root) & ["AccountAdmin", "Account Admin"]).present?
53
+ panda_pal_session.cache(:canvas_super_user?) do
54
+ panda_pal_session.canvas_site_admin? || (panda_pal_session.canvas_account_role_labels(:root) & ["AccountAdmin", "Account Admin"]).present?
183
55
  end
184
56
  end
185
57
 
186
58
  def canvas_user_id
187
- user&.canvas_id || get_lti_cust_param('canvas_user_id')
59
+ user&.canvas_id || panda_pal_session.get_lti_cust_param('canvas_user_id')
188
60
  end
189
61
  end
190
62
  end
@@ -3,7 +3,7 @@
3
3
  class CreateCourseNicknames < ActiveRecord::Migration[5.1]
4
4
  def change
5
5
  create_table :course_nicknames do |t|
6
- t.bigint :canvas_user_preference_value_id, null: false
6
+ t.bigint :canvas_user_preference_value_id, null: true
7
7
  t.integer :canvas_user_id
8
8
  t.integer :canvas_course_id
9
9
  t.string :nickname
@@ -1,3 +1,3 @@
1
1
  module CanvasSync
2
- VERSION = "0.19.0".freeze
2
+ VERSION = "0.19.1.beta2".freeze
3
3
  end
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
4
+ version: 0.19.1.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Instructure CustomDev
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-10 00:00:00.000000000 Z
11
+ date: 2024-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -388,7 +388,7 @@ dependencies:
388
388
  - - ">="
389
389
  - !ruby/object:Gem::Version
390
390
  version: '0'
391
- description:
391
+ description:
392
392
  email:
393
393
  - pseng@instructure.com
394
394
  executables: []
@@ -415,7 +415,6 @@ files:
415
415
  - lib/canvas_sync/concerns/account/ancestry.rb
416
416
  - lib/canvas_sync/concerns/account/base.rb
417
417
  - lib/canvas_sync/concerns/api_syncable.rb
418
- - lib/canvas_sync/concerns/auto_relations.rb
419
418
  - lib/canvas_sync/concerns/legacy_columns.rb
420
419
  - lib/canvas_sync/concerns/role/base.rb
421
420
  - lib/canvas_sync/concerns/sync_mapping.rb
@@ -740,7 +739,7 @@ files:
740
739
  homepage: https://instructure.com
741
740
  licenses: []
742
741
  metadata: {}
743
- post_install_message:
742
+ post_install_message:
744
743
  rdoc_options: []
745
744
  require_paths:
746
745
  - lib
@@ -755,200 +754,200 @@ required_rubygems_version: !ruby/object:Gem::Requirement
755
754
  - !ruby/object:Gem::Version
756
755
  version: '0'
757
756
  requirements: []
758
- rubygems_version: 3.1.6
759
- signing_key:
757
+ rubygems_version: 3.5.4
758
+ signing_key:
760
759
  specification_version: 4
761
760
  summary: Gem for generating Canvas models and migrations and syncing data from Canvas
762
761
  test_files:
763
- - spec/canvas_sync/services/module_event_spec.rb
764
- - spec/canvas_sync/services/module_item_event_spec.rb
762
+ - spec/canvas_sync/canvas_sync_spec.rb
763
+ - spec/canvas_sync/jobs/canvas_process_waiter_spec.rb
764
+ - spec/canvas_sync/jobs/job_spec.rb
765
+ - spec/canvas_sync/jobs/report_checker_spec.rb
766
+ - spec/canvas_sync/jobs/report_processor_job_spec.rb
767
+ - spec/canvas_sync/jobs/report_starter_spec.rb
768
+ - spec/canvas_sync/jobs/sync_admins_job_spec.rb
769
+ - spec/canvas_sync/jobs/sync_assignment_groups_job_spec.rb
770
+ - spec/canvas_sync/jobs/sync_assignments_job_spec.rb
771
+ - spec/canvas_sync/jobs/sync_content_migrations_job_spec.rb
772
+ - spec/canvas_sync/jobs/sync_context_module_items_job_spec.rb
773
+ - spec/canvas_sync/jobs/sync_context_modules_job_spec.rb
774
+ - spec/canvas_sync/jobs/sync_provisioning_report_job_spec.rb
775
+ - spec/canvas_sync/jobs/sync_roles_job_spec.rb
776
+ - spec/canvas_sync/jobs/sync_simple_table_job_spec.rb
777
+ - spec/canvas_sync/jobs/sync_submissions_job_spec.rb
778
+ - spec/canvas_sync/jobs/sync_terms_job_spec.rb
779
+ - spec/canvas_sync/misc_helper_spec.rb
780
+ - spec/canvas_sync/models/accounts_spec.rb
765
781
  - spec/canvas_sync/models/admins_spec.rb
782
+ - spec/canvas_sync/models/assignment_group_spec.rb
766
783
  - spec/canvas_sync/models/assignment_spec.rb
784
+ - spec/canvas_sync/models/context_module_item_spec.rb
767
785
  - spec/canvas_sync/models/context_module_spec.rb
786
+ - spec/canvas_sync/models/course_spec.rb
787
+ - spec/canvas_sync/models/enrollment_spec.rb
768
788
  - spec/canvas_sync/models/group_membership_spec.rb
769
- - spec/canvas_sync/models/context_module_item_spec.rb
789
+ - spec/canvas_sync/models/group_spec.rb
770
790
  - spec/canvas_sync/models/roles_spec.rb
771
- - spec/canvas_sync/models/accounts_spec.rb
772
791
  - spec/canvas_sync/models/section_spec.rb
773
- - spec/canvas_sync/models/group_spec.rb
774
792
  - spec/canvas_sync/models/submission_spec.rb
775
793
  - spec/canvas_sync/models/term_spec.rb
776
- - spec/canvas_sync/models/enrollment_spec.rb
777
- - spec/canvas_sync/models/course_spec.rb
778
794
  - spec/canvas_sync/models/user_spec.rb
779
- - spec/canvas_sync/models/assignment_group_spec.rb
780
- - spec/canvas_sync/misc_helper_spec.rb
781
- - spec/canvas_sync/jobs/sync_context_module_items_job_spec.rb
782
- - spec/canvas_sync/jobs/sync_terms_job_spec.rb
783
- - spec/canvas_sync/jobs/sync_context_modules_job_spec.rb
784
- - spec/canvas_sync/jobs/sync_assignments_job_spec.rb
785
- - spec/canvas_sync/jobs/sync_provisioning_report_job_spec.rb
786
- - spec/canvas_sync/jobs/sync_assignment_groups_job_spec.rb
787
- - spec/canvas_sync/jobs/sync_admins_job_spec.rb
788
- - spec/canvas_sync/jobs/report_starter_spec.rb
789
- - spec/canvas_sync/jobs/sync_content_migrations_job_spec.rb
790
- - spec/canvas_sync/jobs/job_spec.rb
791
- - spec/canvas_sync/jobs/report_processor_job_spec.rb
792
- - spec/canvas_sync/jobs/canvas_process_waiter_spec.rb
793
- - spec/canvas_sync/jobs/sync_submissions_job_spec.rb
794
- - spec/canvas_sync/jobs/report_checker_spec.rb
795
- - spec/canvas_sync/jobs/sync_roles_job_spec.rb
796
- - spec/canvas_sync/jobs/sync_simple_table_job_spec.rb
797
- - spec/canvas_sync/canvas_sync_spec.rb
798
- - spec/canvas_sync/processors/provisioning_report_processor_spec.rb
799
- - spec/canvas_sync/processors/content_migrations_processor_spec.rb
795
+ - spec/canvas_sync/processors/assignment_groups_processor_spec.rb
800
796
  - spec/canvas_sync/processors/assignments_processor_spec.rb
801
- - spec/canvas_sync/processors/normal_processor_spec.rb
797
+ - spec/canvas_sync/processors/content_migrations_processor_spec.rb
798
+ - spec/canvas_sync/processors/context_module_items_processor_spec.rb
802
799
  - spec/canvas_sync/processors/context_modules_processor_spec.rb
803
- - spec/canvas_sync/processors/assignment_groups_processor_spec.rb
800
+ - spec/canvas_sync/processors/normal_processor_spec.rb
801
+ - spec/canvas_sync/processors/provisioning_report_processor_spec.rb
804
802
  - spec/canvas_sync/processors/submissions_processor_spec.rb
805
- - spec/canvas_sync/processors/context_module_items_processor_spec.rb
806
- - spec/job_batching/integration_helper.rb
807
- - spec/job_batching/pool_spec.rb
808
- - spec/job_batching/integration/integration.rb
809
- - spec/job_batching/integration/workflow.rb
810
- - spec/job_batching/integration/fail_then_succeed.rb
811
- - spec/job_batching/integration/nested.rb
812
- - spec/job_batching/integration/simple.rb
813
- - spec/job_batching/active_job_spec.rb
814
- - spec/job_batching/status_spec.rb
815
- - spec/job_batching/callback_spec.rb
816
- - spec/job_batching/sidekiq_spec.rb
817
- - spec/job_batching/support/base_job.rb
818
- - spec/job_batching/support/sample_callback.rb
819
- - spec/job_batching/batch_spec.rb
820
- - spec/job_batching/flow_spec.rb
821
- - spec/job_batching/context_hash_spec.rb
822
- - spec/spec_helper.rb
823
- - spec/support/fake_canvas.rb
824
- - spec/support/fixtures/reports/submissions.csv
825
- - spec/support/fixtures/reports/assignments.csv
826
- - spec/support/fixtures/reports/user_observers.csv
827
- - spec/support/fixtures/reports/xlist.csv
828
- - spec/support/fixtures/reports/sections.csv
829
- - spec/support/fixtures/reports/context_modules.csv
830
- - spec/support/fixtures/reports/users.csv
831
- - spec/support/fixtures/reports/grading_period_groups.csv
832
- - spec/support/fixtures/reports/learning_outcomes.csv
833
- - spec/support/fixtures/reports/groups.csv
834
- - spec/support/fixtures/reports/courses.csv
835
- - spec/support/fixtures/reports/provisioning_csv_unzipped/users.csv
836
- - spec/support/fixtures/reports/provisioning_csv_unzipped/courses.csv
837
- - spec/support/fixtures/reports/assignment_groups.csv
838
- - spec/support/fixtures/reports/group_memberships.csv
839
- - spec/support/fixtures/reports/enrollments.csv
840
- - spec/support/fixtures/reports/course_nicknames.csv
841
- - spec/support/fixtures/reports/provisioning_csv
842
- - spec/support/fixtures/reports/grading_periods.csv
843
- - spec/support/fixtures/reports/content_migrations.csv
844
- - spec/support/fixtures/reports/context_module_items.csv
845
- - spec/support/fixtures/canvas_responses/module.json
846
- - spec/support/fixtures/canvas_responses/terms.json
847
- - spec/support/fixtures/canvas_responses/admins.json
848
- - spec/support/fixtures/canvas_responses/roles.json
849
- - spec/support/fixtures/canvas_responses/module_item.json
850
- - spec/dummy/db/migrate/20201016181346_create_pseudonyms.rb
851
- - spec/dummy/db/migrate/20190702203630_create_assignment_groups.rb
852
- - spec/dummy/db/migrate/20190702203627_create_submissions.rb
853
- - spec/dummy/db/migrate/20190702203624_create_enrollments.rb
854
- - spec/dummy/db/migrate/20190702203621_create_courses.rb
855
- - spec/dummy/db/migrate/20211001184920_create_grading_period_groups.rb
856
- - spec/dummy/db/migrate/20220712210559_create_learning_outcomes.rb
857
- - spec/dummy/db/migrate/20200416214248_create_group_memberships.rb
858
- - spec/dummy/db/migrate/20220926221926_create_users.rb
859
- - spec/dummy/db/migrate/20210907233330_create_grading_periods.rb
860
- - spec/dummy/db/migrate/20190702203631_create_context_modules.rb
861
- - spec/dummy/db/migrate/20240408223326_create_course_nicknames.rb
862
- - spec/dummy/db/migrate/20190702203632_create_context_module_items.rb
863
- - spec/dummy/db/migrate/20190927204545_create_roles.rb
864
- - spec/dummy/db/migrate/20190702203622_create_accounts.rb
865
- - spec/dummy/db/migrate/20190702203626_create_assignments.rb
866
- - spec/dummy/db/migrate/20200415171620_create_groups.rb
867
- - spec/dummy/db/migrate/20190927204546_create_admins.rb
868
- - spec/dummy/db/migrate/20190702203625_create_sections.rb
869
- - spec/dummy/db/migrate/20210907233329_create_user_observers.rb
870
- - spec/dummy/db/migrate/20190702203623_create_terms.rb
871
- - spec/dummy/db/migrate/20220308072643_create_content_migrations.rb
872
- - spec/dummy/db/schema.rb
803
+ - spec/canvas_sync/services/module_event_spec.rb
804
+ - spec/canvas_sync/services/module_item_event_spec.rb
805
+ - spec/dummy/README.rdoc
873
806
  - spec/dummy/Rakefile
874
- - spec/dummy/app/services/live_events/submission_event.rb
875
- - spec/dummy/app/services/live_events/module_created_event.rb
876
- - spec/dummy/app/services/live_events/module_item_created_event.rb
877
- - spec/dummy/app/services/live_events/user_created_event.rb
807
+ - spec/dummy/app/models/account.rb
808
+ - spec/dummy/app/models/admin.rb
809
+ - spec/dummy/app/models/application_record.rb
810
+ - spec/dummy/app/models/assignment.rb
811
+ - spec/dummy/app/models/assignment_group.rb
812
+ - spec/dummy/app/models/content_migration.rb
813
+ - spec/dummy/app/models/context_module.rb
814
+ - spec/dummy/app/models/context_module_item.rb
815
+ - spec/dummy/app/models/course.rb
816
+ - spec/dummy/app/models/course_nickname.rb
817
+ - spec/dummy/app/models/enrollment.rb
818
+ - spec/dummy/app/models/grading_period.rb
819
+ - spec/dummy/app/models/grading_period_group.rb
820
+ - spec/dummy/app/models/group.rb
821
+ - spec/dummy/app/models/group_membership.rb
822
+ - spec/dummy/app/models/learning_outcome.rb
823
+ - spec/dummy/app/models/pseudonym.rb
824
+ - spec/dummy/app/models/role.rb
825
+ - spec/dummy/app/models/section.rb
826
+ - spec/dummy/app/models/submission.rb
827
+ - spec/dummy/app/models/term.rb
828
+ - spec/dummy/app/models/user.rb
829
+ - spec/dummy/app/models/user_observer.rb
830
+ - spec/dummy/app/services/live_events/assignment_created_event.rb
831
+ - spec/dummy/app/services/live_events/assignment_event.rb
832
+ - spec/dummy/app/services/live_events/assignment_updated_event.rb
878
833
  - spec/dummy/app/services/live_events/base_event.rb
834
+ - spec/dummy/app/services/live_events/course_created_event.rb
835
+ - spec/dummy/app/services/live_events/course_event.rb
879
836
  - spec/dummy/app/services/live_events/course_section_created_event.rb
880
- - spec/dummy/app/services/live_events/user_updated_event.rb
837
+ - spec/dummy/app/services/live_events/course_section_event.rb
838
+ - spec/dummy/app/services/live_events/course_section_updated_event.rb
881
839
  - spec/dummy/app/services/live_events/course_updated_event.rb
882
- - spec/dummy/app/services/live_events/submission_created_event.rb
883
- - spec/dummy/app/services/live_events/syllabus_event.rb
884
- - spec/dummy/app/services/live_events/module_updated_event.rb
885
- - spec/dummy/app/services/live_events/course_event.rb
886
840
  - spec/dummy/app/services/live_events/enrollment_created_event.rb
887
- - spec/dummy/app/services/live_events/grade_event.rb
888
- - spec/dummy/app/services/live_events/course_section_updated_event.rb
889
- - spec/dummy/app/services/live_events/course_created_event.rb
890
841
  - spec/dummy/app/services/live_events/enrollment_event.rb
891
- - spec/dummy/app/services/live_events/assignment_updated_event.rb
892
- - spec/dummy/app/services/live_events/syllabus_updated_event.rb
842
+ - spec/dummy/app/services/live_events/enrollment_updated_event.rb
893
843
  - spec/dummy/app/services/live_events/grade_changed_event.rb
894
- - spec/dummy/app/services/live_events/module_item_updated_event.rb
844
+ - spec/dummy/app/services/live_events/grade_event.rb
845
+ - spec/dummy/app/services/live_events/module_created_event.rb
895
846
  - spec/dummy/app/services/live_events/module_event.rb
896
- - spec/dummy/app/services/live_events/course_section_event.rb
897
- - spec/dummy/app/services/live_events/assignment_created_event.rb
898
- - spec/dummy/app/services/live_events/enrollment_updated_event.rb
899
- - spec/dummy/app/services/live_events/assignment_event.rb
847
+ - spec/dummy/app/services/live_events/module_item_created_event.rb
900
848
  - spec/dummy/app/services/live_events/module_item_event.rb
849
+ - spec/dummy/app/services/live_events/module_item_updated_event.rb
850
+ - spec/dummy/app/services/live_events/module_updated_event.rb
851
+ - spec/dummy/app/services/live_events/submission_created_event.rb
852
+ - spec/dummy/app/services/live_events/submission_event.rb
901
853
  - spec/dummy/app/services/live_events/submission_updated_event.rb
854
+ - spec/dummy/app/services/live_events/syllabus_event.rb
855
+ - spec/dummy/app/services/live_events/syllabus_updated_event.rb
856
+ - spec/dummy/app/services/live_events/user_created_event.rb
902
857
  - spec/dummy/app/services/live_events/user_event.rb
903
- - spec/dummy/app/models/course_nickname.rb
904
- - spec/dummy/app/models/user.rb
905
- - spec/dummy/app/models/submission.rb
906
- - spec/dummy/app/models/group_membership.rb
907
- - spec/dummy/app/models/enrollment.rb
908
- - spec/dummy/app/models/role.rb
909
- - spec/dummy/app/models/account.rb
910
- - spec/dummy/app/models/application_record.rb
911
- - spec/dummy/app/models/admin.rb
912
- - spec/dummy/app/models/learning_outcome.rb
913
- - spec/dummy/app/models/grading_period.rb
914
- - spec/dummy/app/models/context_module.rb
915
- - spec/dummy/app/models/context_module_item.rb
916
- - spec/dummy/app/models/course.rb
917
- - spec/dummy/app/models/section.rb
918
- - spec/dummy/app/models/grading_period_group.rb
919
- - spec/dummy/app/models/user_observer.rb
920
- - spec/dummy/app/models/assignment_group.rb
921
- - spec/dummy/app/models/assignment.rb
922
- - spec/dummy/app/models/term.rb
923
- - spec/dummy/app/models/pseudonym.rb
924
- - spec/dummy/app/models/group.rb
925
- - spec/dummy/app/models/content_migration.rb
926
- - spec/dummy/config/secrets.yml
858
+ - spec/dummy/app/services/live_events/user_updated_event.rb
859
+ - spec/dummy/bin/rails
927
860
  - spec/dummy/config/application.rb
928
- - spec/dummy/config/initializers/session_store.rb
929
- - spec/dummy/config/initializers/wrap_parameters.rb
930
- - spec/dummy/config/initializers/assets.rb
861
+ - spec/dummy/config/boot.rb
862
+ - spec/dummy/config/database.yml
863
+ - spec/dummy/config/environment.rb
931
864
  - spec/dummy/config/environments/development.rb
932
865
  - spec/dummy/config/environments/test.rb
933
- - spec/dummy/config/database.yml
934
- - spec/dummy/config/boot.rb
866
+ - spec/dummy/config/initializers/assets.rb
867
+ - spec/dummy/config/initializers/session_store.rb
868
+ - spec/dummy/config/initializers/wrap_parameters.rb
935
869
  - spec/dummy/config/routes.rb
936
- - spec/dummy/config/environment.rb
937
- - spec/dummy/README.rdoc
870
+ - spec/dummy/config/secrets.yml
938
871
  - spec/dummy/config.ru
939
- - spec/dummy/bin/rails
872
+ - spec/dummy/db/migrate/20190702203621_create_courses.rb
873
+ - spec/dummy/db/migrate/20190702203622_create_accounts.rb
874
+ - spec/dummy/db/migrate/20190702203623_create_terms.rb
875
+ - spec/dummy/db/migrate/20190702203624_create_enrollments.rb
876
+ - spec/dummy/db/migrate/20190702203625_create_sections.rb
877
+ - spec/dummy/db/migrate/20190702203626_create_assignments.rb
878
+ - spec/dummy/db/migrate/20190702203627_create_submissions.rb
879
+ - spec/dummy/db/migrate/20190702203630_create_assignment_groups.rb
880
+ - spec/dummy/db/migrate/20190702203631_create_context_modules.rb
881
+ - spec/dummy/db/migrate/20190702203632_create_context_module_items.rb
882
+ - spec/dummy/db/migrate/20190927204545_create_roles.rb
883
+ - spec/dummy/db/migrate/20190927204546_create_admins.rb
884
+ - spec/dummy/db/migrate/20200415171620_create_groups.rb
885
+ - spec/dummy/db/migrate/20200416214248_create_group_memberships.rb
886
+ - spec/dummy/db/migrate/20201016181346_create_pseudonyms.rb
887
+ - spec/dummy/db/migrate/20210907233329_create_user_observers.rb
888
+ - spec/dummy/db/migrate/20210907233330_create_grading_periods.rb
889
+ - spec/dummy/db/migrate/20211001184920_create_grading_period_groups.rb
890
+ - spec/dummy/db/migrate/20220308072643_create_content_migrations.rb
891
+ - spec/dummy/db/migrate/20220712210559_create_learning_outcomes.rb
892
+ - spec/dummy/db/migrate/20220926221926_create_users.rb
893
+ - spec/dummy/db/migrate/20240408223326_create_course_nicknames.rb
894
+ - spec/dummy/db/schema.rb
940
895
  - spec/factories/account_factory.rb
941
- - spec/factories/term_factory.rb
942
- - spec/factories/enrollment_factory.rb
896
+ - spec/factories/admin_factory.rb
943
897
  - spec/factories/assignment_factory.rb
944
898
  - spec/factories/assignment_group_factory.rb
945
- - spec/factories/role_factory.rb
946
- - spec/factories/admin_factory.rb
899
+ - spec/factories/context_module_factory.rb
900
+ - spec/factories/context_module_item_factory.rb
901
+ - spec/factories/course_factory.rb
902
+ - spec/factories/enrollment_factory.rb
947
903
  - spec/factories/group_factory.rb
948
904
  - spec/factories/group_membership_factory.rb
905
+ - spec/factories/role_factory.rb
949
906
  - spec/factories/section_factory.rb
950
- - spec/factories/context_module_item_factory.rb
951
- - spec/factories/course_factory.rb
952
907
  - spec/factories/submission_factory.rb
908
+ - spec/factories/term_factory.rb
953
909
  - spec/factories/user_factory.rb
954
- - spec/factories/context_module_factory.rb
910
+ - spec/job_batching/active_job_spec.rb
911
+ - spec/job_batching/batch_spec.rb
912
+ - spec/job_batching/callback_spec.rb
913
+ - spec/job_batching/context_hash_spec.rb
914
+ - spec/job_batching/flow_spec.rb
915
+ - spec/job_batching/integration/fail_then_succeed.rb
916
+ - spec/job_batching/integration/integration.rb
917
+ - spec/job_batching/integration/nested.rb
918
+ - spec/job_batching/integration/simple.rb
919
+ - spec/job_batching/integration/workflow.rb
920
+ - spec/job_batching/integration_helper.rb
921
+ - spec/job_batching/pool_spec.rb
922
+ - spec/job_batching/sidekiq_spec.rb
923
+ - spec/job_batching/status_spec.rb
924
+ - spec/job_batching/support/base_job.rb
925
+ - spec/job_batching/support/sample_callback.rb
926
+ - spec/spec_helper.rb
927
+ - spec/support/fake_canvas.rb
928
+ - spec/support/fixtures/canvas_responses/admins.json
929
+ - spec/support/fixtures/canvas_responses/module.json
930
+ - spec/support/fixtures/canvas_responses/module_item.json
931
+ - spec/support/fixtures/canvas_responses/roles.json
932
+ - spec/support/fixtures/canvas_responses/terms.json
933
+ - spec/support/fixtures/reports/assignment_groups.csv
934
+ - spec/support/fixtures/reports/assignments.csv
935
+ - spec/support/fixtures/reports/content_migrations.csv
936
+ - spec/support/fixtures/reports/context_module_items.csv
937
+ - spec/support/fixtures/reports/context_modules.csv
938
+ - spec/support/fixtures/reports/course_nicknames.csv
939
+ - spec/support/fixtures/reports/courses.csv
940
+ - spec/support/fixtures/reports/enrollments.csv
941
+ - spec/support/fixtures/reports/grading_period_groups.csv
942
+ - spec/support/fixtures/reports/grading_periods.csv
943
+ - spec/support/fixtures/reports/group_memberships.csv
944
+ - spec/support/fixtures/reports/groups.csv
945
+ - spec/support/fixtures/reports/learning_outcomes.csv
946
+ - spec/support/fixtures/reports/provisioning_csv
947
+ - spec/support/fixtures/reports/provisioning_csv_unzipped/courses.csv
948
+ - spec/support/fixtures/reports/provisioning_csv_unzipped/users.csv
949
+ - spec/support/fixtures/reports/sections.csv
950
+ - spec/support/fixtures/reports/submissions.csv
951
+ - spec/support/fixtures/reports/user_observers.csv
952
+ - spec/support/fixtures/reports/users.csv
953
+ - spec/support/fixtures/reports/xlist.csv
@@ -1,11 +0,0 @@
1
- module CanvasSync::Concerns
2
- module AutoRelations
3
- extend ActiveSupport::Concern
4
-
5
- # CanvasSync::Record.define_feature self, default: true
6
-
7
- included do
8
-
9
- end
10
- end
11
- end