canvas_sync 0.19.0 → 0.19.1.beta1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 56b320065eb2aec256795336a077f2c5c93652293313bd3d69ebbb8f65a70d4e
4
- data.tar.gz: 750f717c88eebcdebc3959bd084fd2872bee21f7bb507ae7f15207ad2ea9bfcd
3
+ metadata.gz: 04535c6dcbf7a70c8214d3f6675fa9073fc69490d07c69f6723aac7667d921af
4
+ data.tar.gz: 19b2b70f666782f9c245dd2d7834031ee0630801d24b3c40ca9f5e219bbc6e07
5
5
  SHA512:
6
- metadata.gz: b98a1f43e84bda12e540da6d4d45c2e5781435db2232f7b71400d42991cfd7cb38e1c686930801e3e91ac9ccd97e550e2cf5661e4895cbd804cfd7bd739bed8d
7
- data.tar.gz: b0e1546e0ceb23dc1577cdaab04a6b6e64fe2351634aa1cd3a0cc8897d78d301585350f68baf577badcccedd77b9280a7d8fb65e0c7abfb574bee2120d086c2f
6
+ metadata.gz: 5f4028ae4b48d654eb97ead31f5fd608c3f786de9c205ed0939cc2bb4ea8845011c2089de96876b811f0723475905959bf605e00e43f9bd5dedda8679f780dce
7
+ data.tar.gz: cd8b2f0ea274ae2d8c9cb73a0329cd780cb9336f8fa73eb5584f5dcb7e7c5fa659cba38d4d2d6071f57d5744f1a18902631057c958e4db5acb57a43757e5043b
@@ -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
@@ -1,3 +1,3 @@
1
1
  module CanvasSync
2
- VERSION = "0.19.0".freeze
2
+ VERSION = "0.19.1.beta1".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.beta1
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-04-15 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