canvas_sync 0.22.8 → 0.22.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (415) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +0 -0
  3. data/app/controllers/canvas_sync/api/v1/health_check_controller.rb +0 -0
  4. data/app/controllers/canvas_sync/api/v1/live_events_controller.rb +0 -0
  5. data/app/models/canvas_sync/job_log.rb +0 -0
  6. data/app/models/canvas_sync/sync_batch.rb +0 -0
  7. data/config/initializers/apartment.rb +0 -0
  8. data/config/routes.rb +0 -0
  9. data/db/migrate/20170915210836_create_canvas_sync_job_log.rb +0 -0
  10. data/db/migrate/20180725155729_add_job_id_to_canvas_sync_job_logs.rb +0 -0
  11. data/db/migrate/20190916154829_add_fork_count_to_canvas_sync_job_logs.rb +0 -0
  12. data/db/migrate/20201018210836_create_canvas_sync_sync_batches.rb +0 -0
  13. data/db/migrate/20201030210836_add_full_sync_to_canvas_sync_sync_batch.rb +0 -0
  14. data/lib/canvas_sync/api_syncable.rb +0 -0
  15. data/lib/canvas_sync/batch_processor.rb +0 -0
  16. data/lib/canvas_sync/class_callback_executor.rb +0 -0
  17. data/lib/canvas_sync/concerns/ability_helper.rb +0 -0
  18. data/lib/canvas_sync/concerns/account/ancestry.rb +0 -0
  19. data/lib/canvas_sync/concerns/account/base.rb +0 -0
  20. data/lib/canvas_sync/concerns/api_syncable.rb +0 -0
  21. data/lib/canvas_sync/concerns/legacy_columns.rb +0 -0
  22. data/lib/canvas_sync/concerns/live_event_sync.rb +0 -0
  23. data/lib/canvas_sync/concerns/role/base.rb +0 -0
  24. data/lib/canvas_sync/config.rb +0 -0
  25. data/lib/canvas_sync/engine.rb +0 -0
  26. data/lib/canvas_sync/generators/install_generator.rb +0 -0
  27. data/lib/canvas_sync/generators/install_live_events_generator.rb +0 -0
  28. data/lib/canvas_sync/generators/templates/migrations/create_accounts.rb +0 -0
  29. data/lib/canvas_sync/generators/templates/migrations/create_admins.rb +0 -0
  30. data/lib/canvas_sync/generators/templates/migrations/create_assignment_groups.rb +0 -0
  31. data/lib/canvas_sync/generators/templates/migrations/create_assignment_overrides.rb +25 -0
  32. data/lib/canvas_sync/generators/templates/migrations/create_assignments.rb +0 -0
  33. data/lib/canvas_sync/generators/templates/migrations/create_content_migrations.rb +0 -0
  34. data/lib/canvas_sync/generators/templates/migrations/create_context_module_items.rb +0 -0
  35. data/lib/canvas_sync/generators/templates/migrations/create_context_modules.rb +0 -0
  36. data/lib/canvas_sync/generators/templates/migrations/create_course_nicknames.rb +0 -0
  37. data/lib/canvas_sync/generators/templates/migrations/create_course_progresses.rb +0 -0
  38. data/lib/canvas_sync/generators/templates/migrations/create_courses.rb +0 -0
  39. data/lib/canvas_sync/generators/templates/migrations/create_grading_period_groups.rb +0 -0
  40. data/lib/canvas_sync/generators/templates/migrations/create_grading_periods.rb +0 -0
  41. data/lib/canvas_sync/generators/templates/migrations/create_group_memberships.rb +0 -0
  42. data/lib/canvas_sync/generators/templates/migrations/create_groups.rb +0 -0
  43. data/lib/canvas_sync/generators/templates/migrations/create_learning_outcome_results.rb +0 -0
  44. data/lib/canvas_sync/generators/templates/migrations/create_learning_outcomes.rb +0 -0
  45. data/lib/canvas_sync/generators/templates/migrations/create_pseudonyms.rb +0 -0
  46. data/lib/canvas_sync/generators/templates/migrations/create_roles.rb +0 -0
  47. data/lib/canvas_sync/generators/templates/migrations/create_rubric_assessments.rb +0 -0
  48. data/lib/canvas_sync/generators/templates/migrations/create_rubric_associations.rb +0 -0
  49. data/lib/canvas_sync/generators/templates/migrations/create_rubrics.rb +0 -0
  50. data/lib/canvas_sync/generators/templates/migrations/create_sections.rb +0 -0
  51. data/lib/canvas_sync/generators/templates/migrations/create_submissions.rb +0 -0
  52. data/lib/canvas_sync/generators/templates/migrations/create_terms.rb +0 -0
  53. data/lib/canvas_sync/generators/templates/migrations/create_user_observers.rb +0 -0
  54. data/lib/canvas_sync/generators/templates/migrations/create_users.rb +0 -0
  55. data/lib/canvas_sync/generators/templates/models/account.rb +0 -0
  56. data/lib/canvas_sync/generators/templates/models/admin.rb +0 -0
  57. data/lib/canvas_sync/generators/templates/models/assignment.rb +0 -0
  58. data/lib/canvas_sync/generators/templates/models/assignment_group.rb +0 -0
  59. data/lib/canvas_sync/generators/templates/models/assignment_override.rb +28 -0
  60. data/lib/canvas_sync/generators/templates/models/content_migration.rb +0 -0
  61. data/lib/canvas_sync/generators/templates/models/context_module.rb +0 -0
  62. data/lib/canvas_sync/generators/templates/models/context_module_item.rb +0 -0
  63. data/lib/canvas_sync/generators/templates/models/course.rb +0 -0
  64. data/lib/canvas_sync/generators/templates/models/course_nickname.rb +0 -0
  65. data/lib/canvas_sync/generators/templates/models/enrollment.rb +0 -0
  66. data/lib/canvas_sync/generators/templates/models/grading_period.rb +0 -0
  67. data/lib/canvas_sync/generators/templates/models/grading_period_group.rb +0 -0
  68. data/lib/canvas_sync/generators/templates/models/group.rb +0 -0
  69. data/lib/canvas_sync/generators/templates/models/group_membership.rb +0 -0
  70. data/lib/canvas_sync/generators/templates/models/learning_outcome.rb +0 -0
  71. data/lib/canvas_sync/generators/templates/models/learning_outcome_result.rb +0 -0
  72. data/lib/canvas_sync/generators/templates/models/pseudonym.rb +0 -0
  73. data/lib/canvas_sync/generators/templates/models/role.rb +0 -0
  74. data/lib/canvas_sync/generators/templates/models/rubric.rb +0 -0
  75. data/lib/canvas_sync/generators/templates/models/rubric_assessment.rb +0 -0
  76. data/lib/canvas_sync/generators/templates/models/rubric_association.rb +0 -0
  77. data/lib/canvas_sync/generators/templates/models/section.rb +0 -0
  78. data/lib/canvas_sync/generators/templates/models/submission.rb +0 -0
  79. data/lib/canvas_sync/generators/templates/models/term.rb +0 -0
  80. data/lib/canvas_sync/generators/templates/models/user.rb +0 -0
  81. data/lib/canvas_sync/generators/templates/models/user_observer.rb +0 -0
  82. data/lib/canvas_sync/generators/templates/services/live_events/assignment_event.rb +0 -0
  83. data/lib/canvas_sync/generators/templates/services/live_events/assignment_group_event.rb +0 -0
  84. data/lib/canvas_sync/generators/templates/services/live_events/course_event.rb +0 -0
  85. data/lib/canvas_sync/generators/templates/services/live_events/course_section_event.rb +0 -0
  86. data/lib/canvas_sync/generators/templates/services/live_events/enrollment_event.rb +0 -0
  87. data/lib/canvas_sync/generators/templates/services/live_events/grade_event.rb +0 -0
  88. data/lib/canvas_sync/generators/templates/services/live_events/module_event.rb +0 -0
  89. data/lib/canvas_sync/generators/templates/services/live_events/module_item_event.rb +0 -0
  90. data/lib/canvas_sync/generators/templates/services/live_events/submission_event.rb +0 -0
  91. data/lib/canvas_sync/generators/templates/services/live_events/syllabus_event.rb +0 -0
  92. data/lib/canvas_sync/generators/templates/services/live_events/user_event.rb +0 -0
  93. data/lib/canvas_sync/importers/legacy_importer.rb +0 -0
  94. data/lib/canvas_sync/job_batches/callback.rb +0 -0
  95. data/lib/canvas_sync/job_batches/compat/active_job.rb +0 -0
  96. data/lib/canvas_sync/job_batches/compat/sidekiq/web/batches_assets/css/styles.less +0 -0
  97. data/lib/canvas_sync/job_batches/compat/sidekiq/web/batches_assets/js/batch_tree.js +0 -0
  98. data/lib/canvas_sync/job_batches/compat/sidekiq/web/batches_assets/js/util.js +0 -0
  99. data/lib/canvas_sync/job_batches/compat/sidekiq/web/helpers.rb +0 -0
  100. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_batch_tree.erb +0 -0
  101. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_batches_table.erb +0 -0
  102. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_common.erb +0 -0
  103. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_jobs_table.erb +0 -0
  104. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_pagination.erb +0 -0
  105. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/batch.erb +0 -0
  106. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/batches.erb +0 -0
  107. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/pool.erb +0 -0
  108. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/pools.erb +0 -0
  109. data/lib/canvas_sync/job_batches/compat/sidekiq/web.rb +0 -0
  110. data/lib/canvas_sync/job_batches/compat/sidekiq.rb +0 -0
  111. data/lib/canvas_sync/job_batches/compat.rb +0 -0
  112. data/lib/canvas_sync/job_batches/context_hash.rb +0 -0
  113. data/lib/canvas_sync/job_batches/hier_batch_ids.lua +0 -0
  114. data/lib/canvas_sync/job_batches/jobs/base_job.rb +0 -0
  115. data/lib/canvas_sync/job_batches/jobs/concurrent_batch_job.rb +0 -0
  116. data/lib/canvas_sync/job_batches/jobs/serial_batch_job.rb +0 -0
  117. data/lib/canvas_sync/job_batches/pool.rb +0 -0
  118. data/lib/canvas_sync/job_batches/pool_refill.lua +0 -0
  119. data/lib/canvas_sync/job_batches/redis_model.rb +0 -0
  120. data/lib/canvas_sync/job_batches/redis_script.rb +0 -0
  121. data/lib/canvas_sync/job_batches/schedule_callback.lua +0 -0
  122. data/lib/canvas_sync/job_uniqueness/compat/active_job.rb +0 -0
  123. data/lib/canvas_sync/job_uniqueness/compat/sidekiq.rb +0 -0
  124. data/lib/canvas_sync/job_uniqueness/compat.rb +0 -0
  125. data/lib/canvas_sync/job_uniqueness/configuration.rb +0 -0
  126. data/lib/canvas_sync/job_uniqueness/job_uniqueness.rb +0 -0
  127. data/lib/canvas_sync/job_uniqueness/locksmith.rb +0 -0
  128. data/lib/canvas_sync/job_uniqueness/on_conflict/base.rb +0 -0
  129. data/lib/canvas_sync/job_uniqueness/on_conflict/log.rb +0 -0
  130. data/lib/canvas_sync/job_uniqueness/on_conflict/null_strategy.rb +0 -0
  131. data/lib/canvas_sync/job_uniqueness/on_conflict/raise.rb +0 -0
  132. data/lib/canvas_sync/job_uniqueness/on_conflict/reject.rb +0 -0
  133. data/lib/canvas_sync/job_uniqueness/on_conflict/reschedule.rb +0 -0
  134. data/lib/canvas_sync/job_uniqueness/on_conflict.rb +0 -0
  135. data/lib/canvas_sync/job_uniqueness/strategy/base.rb +0 -0
  136. data/lib/canvas_sync/job_uniqueness/strategy/until_and_while_executing.rb +0 -0
  137. data/lib/canvas_sync/job_uniqueness/strategy/until_executed.rb +0 -0
  138. data/lib/canvas_sync/job_uniqueness/strategy/until_executing.rb +0 -0
  139. data/lib/canvas_sync/job_uniqueness/strategy/until_expired.rb +0 -0
  140. data/lib/canvas_sync/job_uniqueness/strategy/while_executing.rb +0 -0
  141. data/lib/canvas_sync/job_uniqueness/strategy.rb +0 -0
  142. data/lib/canvas_sync/job_uniqueness/unique_job_common.rb +0 -0
  143. data/lib/canvas_sync/jobs/begin_sync_chain_job.rb +0 -0
  144. data/lib/canvas_sync/jobs/canvas_process_waiter.rb +0 -0
  145. data/lib/canvas_sync/jobs/report_checker.rb +0 -0
  146. data/lib/canvas_sync/jobs/report_processor_job.rb +0 -0
  147. data/lib/canvas_sync/jobs/report_starter.rb +0 -0
  148. data/lib/canvas_sync/jobs/sync_accounts_job.rb +0 -0
  149. data/lib/canvas_sync/jobs/sync_admins_job.rb +0 -0
  150. data/lib/canvas_sync/jobs/sync_assignment_groups_job.rb +0 -0
  151. data/lib/canvas_sync/jobs/sync_assignment_overrides_job.rb +20 -0
  152. data/lib/canvas_sync/jobs/sync_assignments_job.rb +0 -0
  153. data/lib/canvas_sync/jobs/sync_content_migrations_job.rb +0 -0
  154. data/lib/canvas_sync/jobs/sync_context_module_items_job.rb +0 -0
  155. data/lib/canvas_sync/jobs/sync_context_modules_job.rb +0 -0
  156. data/lib/canvas_sync/jobs/sync_course_progresses_job.rb +0 -0
  157. data/lib/canvas_sync/jobs/sync_provisioning_report_job.rb +0 -0
  158. data/lib/canvas_sync/jobs/sync_roles_job.rb +0 -0
  159. data/lib/canvas_sync/jobs/sync_rubric_assessments_job.rb +0 -0
  160. data/lib/canvas_sync/jobs/sync_rubric_associations_job.rb +0 -0
  161. data/lib/canvas_sync/jobs/sync_rubrics_job.rb +0 -0
  162. data/lib/canvas_sync/jobs/sync_simple_table_job.rb +0 -0
  163. data/lib/canvas_sync/jobs/sync_submissions_job.rb +0 -0
  164. data/lib/canvas_sync/jobs/sync_terms_job.rb +0 -0
  165. data/lib/canvas_sync/live_events/base_handler.rb +0 -0
  166. data/lib/canvas_sync/live_events/process_event_job.rb +0 -0
  167. data/lib/canvas_sync/live_events.rb +0 -0
  168. data/lib/canvas_sync/misc_helper.rb +0 -0
  169. data/lib/canvas_sync/processors/assignment_groups_processor.rb +0 -0
  170. data/lib/canvas_sync/processors/assignment_overrides_processor.rb +41 -0
  171. data/lib/canvas_sync/processors/assignments_processor.rb +0 -0
  172. data/lib/canvas_sync/processors/content_migrations_processor.rb +0 -0
  173. data/lib/canvas_sync/processors/context_module_items_processor.rb +0 -0
  174. data/lib/canvas_sync/processors/context_modules_processor.rb +0 -0
  175. data/lib/canvas_sync/processors/course_completion_report_processor.rb +0 -0
  176. data/lib/canvas_sync/processors/model_mappings.yml +43 -0
  177. data/lib/canvas_sync/processors/normal_processor.rb +0 -0
  178. data/lib/canvas_sync/processors/provisioning_report_processor.rb +0 -0
  179. data/lib/canvas_sync/processors/report_processor.rb +0 -0
  180. data/lib/canvas_sync/processors/rubric_assessments_processor.rb +0 -0
  181. data/lib/canvas_sync/processors/rubric_associations_processor.rb +0 -0
  182. data/lib/canvas_sync/processors/rubrics_processor.rb +0 -0
  183. data/lib/canvas_sync/processors/submissions_processor.rb +0 -0
  184. data/lib/canvas_sync/record.rb +0 -0
  185. data/lib/canvas_sync/sidekiq_job.rb +0 -0
  186. data/lib/canvas_sync/version.rb +1 -1
  187. data/lib/canvas_sync.rb +4 -0
  188. data/spec/canvas_sync/jobs/canvas_process_waiter_spec.rb +0 -0
  189. data/spec/canvas_sync/jobs/job_spec.rb +0 -0
  190. data/spec/canvas_sync/jobs/report_checker_spec.rb +0 -0
  191. data/spec/canvas_sync/jobs/report_processor_job_spec.rb +0 -0
  192. data/spec/canvas_sync/jobs/report_starter_spec.rb +0 -0
  193. data/spec/canvas_sync/jobs/sync_admins_job_spec.rb +0 -0
  194. data/spec/canvas_sync/jobs/sync_assignment_groups_job_spec.rb +0 -0
  195. data/spec/canvas_sync/jobs/sync_assignments_job_spec.rb +0 -0
  196. data/spec/canvas_sync/jobs/sync_content_migrations_job_spec.rb +0 -0
  197. data/spec/canvas_sync/jobs/sync_context_module_items_job_spec.rb +0 -0
  198. data/spec/canvas_sync/jobs/sync_context_modules_job_spec.rb +0 -0
  199. data/spec/canvas_sync/jobs/sync_provisioning_report_job_spec.rb +0 -0
  200. data/spec/canvas_sync/jobs/sync_roles_job_spec.rb +0 -0
  201. data/spec/canvas_sync/jobs/sync_simple_table_job_spec.rb +0 -0
  202. data/spec/canvas_sync/jobs/sync_submissions_job_spec.rb +0 -0
  203. data/spec/canvas_sync/jobs/sync_terms_job_spec.rb +0 -0
  204. data/spec/canvas_sync/live_events/live_event_sync_spec.rb +0 -0
  205. data/spec/canvas_sync/live_events/live_events_controller_spec.rb +0 -0
  206. data/spec/canvas_sync/live_events/process_event_job_spec.rb +0 -0
  207. data/spec/canvas_sync/misc_helper_spec.rb +0 -0
  208. data/spec/canvas_sync/models/accounts_spec.rb +0 -0
  209. data/spec/canvas_sync/models/admins_spec.rb +0 -0
  210. data/spec/canvas_sync/models/assignment_group_spec.rb +0 -0
  211. data/spec/canvas_sync/models/assignment_spec.rb +0 -0
  212. data/spec/canvas_sync/models/context_module_item_spec.rb +0 -0
  213. data/spec/canvas_sync/models/context_module_spec.rb +0 -0
  214. data/spec/canvas_sync/models/course_spec.rb +0 -0
  215. data/spec/canvas_sync/models/enrollment_spec.rb +0 -0
  216. data/spec/canvas_sync/models/group_membership_spec.rb +0 -0
  217. data/spec/canvas_sync/models/group_spec.rb +0 -0
  218. data/spec/canvas_sync/models/roles_spec.rb +0 -0
  219. data/spec/canvas_sync/models/section_spec.rb +0 -0
  220. data/spec/canvas_sync/models/submission_spec.rb +0 -0
  221. data/spec/canvas_sync/models/term_spec.rb +0 -0
  222. data/spec/canvas_sync/models/user_spec.rb +0 -0
  223. data/spec/canvas_sync/processors/assignment_groups_processor_spec.rb +0 -0
  224. data/spec/canvas_sync/processors/assignment_overrides_processor_spec.rb +45 -0
  225. data/spec/canvas_sync/processors/assignments_processor_spec.rb +0 -0
  226. data/spec/canvas_sync/processors/content_migrations_processor_spec.rb +0 -0
  227. data/spec/canvas_sync/processors/context_module_items_processor_spec.rb +0 -0
  228. data/spec/canvas_sync/processors/context_modules_processor_spec.rb +0 -0
  229. data/spec/canvas_sync/processors/course_completion_report_processor_spec.rb +0 -0
  230. data/spec/canvas_sync/processors/normal_processor_spec.rb +0 -0
  231. data/spec/canvas_sync/processors/rubric_assessments_spec.rb +0 -0
  232. data/spec/canvas_sync/processors/rubric_associations_spec.rb +0 -0
  233. data/spec/canvas_sync/processors/rubrics_processor_spec.rb +0 -0
  234. data/spec/canvas_sync/processors/submissions_processor_spec.rb +0 -0
  235. data/spec/canvas_sync/services/module_event_spec.rb +0 -0
  236. data/spec/canvas_sync/services/module_item_event_spec.rb +0 -0
  237. data/spec/dummy/README.rdoc +0 -0
  238. data/spec/dummy/Rakefile +0 -0
  239. data/spec/dummy/app/models/account.rb +0 -0
  240. data/spec/dummy/app/models/admin.rb +0 -0
  241. data/spec/dummy/app/models/application_record.rb +0 -0
  242. data/spec/dummy/app/models/assignment.rb +0 -0
  243. data/spec/dummy/app/models/assignment_group.rb +0 -0
  244. data/spec/dummy/app/models/assignment_override.rb +34 -0
  245. data/spec/dummy/app/models/content_migration.rb +0 -0
  246. data/spec/dummy/app/models/context_module.rb +0 -0
  247. data/spec/dummy/app/models/context_module_item.rb +0 -0
  248. data/spec/dummy/app/models/course.rb +0 -0
  249. data/spec/dummy/app/models/course_nickname.rb +0 -0
  250. data/spec/dummy/app/models/enrollment.rb +0 -0
  251. data/spec/dummy/app/models/grading_period.rb +0 -0
  252. data/spec/dummy/app/models/grading_period_group.rb +0 -0
  253. data/spec/dummy/app/models/group.rb +0 -0
  254. data/spec/dummy/app/models/group_membership.rb +0 -0
  255. data/spec/dummy/app/models/learning_outcome.rb +0 -0
  256. data/spec/dummy/app/models/pseudonym.rb +0 -0
  257. data/spec/dummy/app/models/role.rb +0 -0
  258. data/spec/dummy/app/models/section.rb +0 -0
  259. data/spec/dummy/app/models/submission.rb +0 -0
  260. data/spec/dummy/app/models/term.rb +0 -0
  261. data/spec/dummy/app/models/user_observer.rb +0 -0
  262. data/spec/dummy/app/services/live_events/assignment_created_event.rb +0 -0
  263. data/spec/dummy/app/services/live_events/assignment_event.rb +0 -0
  264. data/spec/dummy/app/services/live_events/assignment_updated_event.rb +0 -0
  265. data/spec/dummy/app/services/live_events/base_event.rb +0 -0
  266. data/spec/dummy/app/services/live_events/course_created_event.rb +0 -0
  267. data/spec/dummy/app/services/live_events/course_event.rb +0 -0
  268. data/spec/dummy/app/services/live_events/course_section_created_event.rb +0 -0
  269. data/spec/dummy/app/services/live_events/course_section_event.rb +0 -0
  270. data/spec/dummy/app/services/live_events/course_section_updated_event.rb +0 -0
  271. data/spec/dummy/app/services/live_events/course_updated_event.rb +0 -0
  272. data/spec/dummy/app/services/live_events/enrollment_created_event.rb +0 -0
  273. data/spec/dummy/app/services/live_events/enrollment_event.rb +0 -0
  274. data/spec/dummy/app/services/live_events/enrollment_updated_event.rb +0 -0
  275. data/spec/dummy/app/services/live_events/grade_changed_event.rb +0 -0
  276. data/spec/dummy/app/services/live_events/grade_event.rb +0 -0
  277. data/spec/dummy/app/services/live_events/module_created_event.rb +0 -0
  278. data/spec/dummy/app/services/live_events/module_event.rb +0 -0
  279. data/spec/dummy/app/services/live_events/module_item_created_event.rb +0 -0
  280. data/spec/dummy/app/services/live_events/module_item_event.rb +0 -0
  281. data/spec/dummy/app/services/live_events/module_item_updated_event.rb +0 -0
  282. data/spec/dummy/app/services/live_events/module_updated_event.rb +0 -0
  283. data/spec/dummy/app/services/live_events/submission_created_event.rb +0 -0
  284. data/spec/dummy/app/services/live_events/submission_event.rb +0 -0
  285. data/spec/dummy/app/services/live_events/submission_updated_event.rb +0 -0
  286. data/spec/dummy/app/services/live_events/syllabus_event.rb +0 -0
  287. data/spec/dummy/app/services/live_events/syllabus_updated_event.rb +0 -0
  288. data/spec/dummy/app/services/live_events/user_created_event.rb +0 -0
  289. data/spec/dummy/app/services/live_events/user_event.rb +0 -0
  290. data/spec/dummy/app/services/live_events/user_updated_event.rb +0 -0
  291. data/spec/dummy/config/application.rb +0 -0
  292. data/spec/dummy/config/boot.rb +0 -0
  293. data/spec/dummy/config/database.yml +0 -0
  294. data/spec/dummy/config/environment.rb +0 -0
  295. data/spec/dummy/config/environments/development.rb +0 -0
  296. data/spec/dummy/config/environments/test.rb +0 -0
  297. data/spec/dummy/config/initializers/assets.rb +0 -0
  298. data/spec/dummy/config/initializers/session_store.rb +0 -0
  299. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -0
  300. data/spec/dummy/config/routes.rb +0 -0
  301. data/spec/dummy/config/secrets.yml +0 -0
  302. data/spec/dummy/config.ru +0 -0
  303. data/spec/dummy/db/migrate/20190702203621_create_courses.rb +0 -0
  304. data/spec/dummy/db/migrate/20190702203622_create_accounts.rb +0 -0
  305. data/spec/dummy/db/migrate/20190702203623_create_terms.rb +0 -0
  306. data/spec/dummy/db/migrate/20190702203625_create_sections.rb +0 -0
  307. data/spec/dummy/db/migrate/20190702203626_create_assignments.rb +0 -0
  308. data/spec/dummy/db/migrate/20190702203627_create_submissions.rb +0 -0
  309. data/spec/dummy/db/migrate/20190702203630_create_assignment_groups.rb +0 -0
  310. data/spec/dummy/db/migrate/20190702203631_create_context_modules.rb +0 -0
  311. data/spec/dummy/db/migrate/20190702203632_create_context_module_items.rb +0 -0
  312. data/spec/dummy/db/migrate/20190927204545_create_roles.rb +0 -0
  313. data/spec/dummy/db/migrate/20190927204546_create_admins.rb +0 -0
  314. data/spec/dummy/db/migrate/20200415171620_create_groups.rb +0 -0
  315. data/spec/dummy/db/migrate/20200416214248_create_group_memberships.rb +0 -0
  316. data/spec/dummy/db/migrate/20201016181346_create_pseudonyms.rb +0 -0
  317. data/spec/dummy/db/migrate/20210907233329_create_user_observers.rb +0 -0
  318. data/spec/dummy/db/migrate/20210907233330_create_grading_periods.rb +0 -0
  319. data/spec/dummy/db/migrate/20211001184920_create_grading_period_groups.rb +0 -0
  320. data/spec/dummy/db/migrate/20220308072643_create_content_migrations.rb +0 -0
  321. data/spec/dummy/db/migrate/20220712210559_create_learning_outcomes.rb +0 -0
  322. data/spec/dummy/db/migrate/20220926221926_create_users.rb +0 -0
  323. data/spec/dummy/db/migrate/20240510094100_create_rubric_associations.rb +0 -0
  324. data/spec/dummy/db/migrate/20240510101100_create_rubric_assessments.rb +0 -0
  325. data/spec/dummy/db/migrate/20240523101010_create_learning_outcome_results.rb +0 -0
  326. data/spec/dummy/db/migrate/20240828161300_create_course_progresses.rb +0 -0
  327. data/spec/dummy/db/migrate/20241223080202_create_assignment_overrides.rb +25 -0
  328. data/spec/dummy/db/schema.rb +187 -174
  329. data/spec/factories/account_factory.rb +0 -0
  330. data/spec/factories/admin_factory.rb +0 -0
  331. data/spec/factories/assignment_factory.rb +0 -0
  332. data/spec/factories/assignment_group_factory.rb +0 -0
  333. data/spec/factories/assignment_override_factory.rb +10 -0
  334. data/spec/factories/context_module_factory.rb +0 -0
  335. data/spec/factories/context_module_item_factory.rb +0 -0
  336. data/spec/factories/course_factory.rb +0 -0
  337. data/spec/factories/enrollment_factory.rb +0 -0
  338. data/spec/factories/group_factory.rb +0 -0
  339. data/spec/factories/group_membership_factory.rb +0 -0
  340. data/spec/factories/role_factory.rb +0 -0
  341. data/spec/factories/section_factory.rb +0 -0
  342. data/spec/factories/submission_factory.rb +0 -0
  343. data/spec/factories/term_factory.rb +0 -0
  344. data/spec/factories/user_factory.rb +0 -0
  345. data/spec/job_batching/batch_spec.rb +0 -0
  346. data/spec/job_batching/callback_spec.rb +0 -0
  347. data/spec/job_batching/compat/active_job_spec.rb +0 -0
  348. data/spec/job_batching/compat/sidekiq_spec.rb +0 -0
  349. data/spec/job_batching/context_hash_spec.rb +0 -0
  350. data/spec/job_batching/flow_spec.rb +0 -0
  351. data/spec/job_batching/integration/fail_then_succeed.rb +0 -0
  352. data/spec/job_batching/integration/integration.rb +0 -0
  353. data/spec/job_batching/integration/nested.rb +0 -0
  354. data/spec/job_batching/integration/simple.rb +0 -0
  355. data/spec/job_batching/integration/workflow.rb +0 -0
  356. data/spec/job_batching/integration_helper.rb +0 -0
  357. data/spec/job_batching/pool_spec.rb +0 -0
  358. data/spec/job_batching/status_spec.rb +0 -0
  359. data/spec/job_batching/support/base_job.rb +0 -0
  360. data/spec/job_batching/support/sample_callback.rb +0 -0
  361. data/spec/job_uniqueness/compat/active_job_spec.rb +0 -0
  362. data/spec/job_uniqueness/compat/sidekiq_spec.rb +0 -0
  363. data/spec/job_uniqueness/lock_context_spec.rb +0 -0
  364. data/spec/job_uniqueness/on_conflict/log_spec.rb +0 -0
  365. data/spec/job_uniqueness/on_conflict/raise_spec.rb +0 -0
  366. data/spec/job_uniqueness/on_conflict/reschedule_spec.rb +0 -0
  367. data/spec/job_uniqueness/on_conflict_spec.rb +0 -0
  368. data/spec/job_uniqueness/spec_helper.rb +0 -0
  369. data/spec/job_uniqueness/strategy/base_spec.rb +0 -0
  370. data/spec/job_uniqueness/strategy/until_and_while_executing_spec.rb +0 -0
  371. data/spec/job_uniqueness/strategy/until_executed_spec.rb +0 -0
  372. data/spec/job_uniqueness/strategy/until_executing_spec.rb +0 -0
  373. data/spec/job_uniqueness/strategy/until_expired_spec.rb +0 -0
  374. data/spec/job_uniqueness/strategy/while_executing_spec.rb +0 -0
  375. data/spec/job_uniqueness/support/lock_strategy.rb +0 -0
  376. data/spec/job_uniqueness/support/on_conflict.rb +0 -0
  377. data/spec/job_uniqueness/support/test_worker.rb +0 -0
  378. data/spec/job_uniqueness/unique_job_common_spec.rb +0 -0
  379. data/spec/spec_helper.rb +0 -0
  380. data/spec/support/fake_canvas.rb +0 -0
  381. data/spec/support/fixtures/canvas_responses/admins.json +0 -0
  382. data/spec/support/fixtures/canvas_responses/module.json +0 -0
  383. data/spec/support/fixtures/canvas_responses/module_item.json +0 -0
  384. data/spec/support/fixtures/canvas_responses/roles.json +0 -0
  385. data/spec/support/fixtures/canvas_responses/terms.json +0 -0
  386. data/spec/support/fixtures/reports/assignment_groups.csv +0 -0
  387. data/spec/support/fixtures/reports/assignment_overrides.csv +3 -0
  388. data/spec/support/fixtures/reports/assignment_overrides_conflict.csv +2 -0
  389. data/spec/support/fixtures/reports/assignments.csv +0 -0
  390. data/spec/support/fixtures/reports/content_migrations.csv +0 -0
  391. data/spec/support/fixtures/reports/context_module_items.csv +0 -0
  392. data/spec/support/fixtures/reports/context_modules.csv +0 -0
  393. data/spec/support/fixtures/reports/course_nicknames.csv +0 -0
  394. data/spec/support/fixtures/reports/course_progresses.csv +0 -0
  395. data/spec/support/fixtures/reports/course_progresses_conflict.csv +0 -0
  396. data/spec/support/fixtures/reports/courses.csv +0 -0
  397. data/spec/support/fixtures/reports/enrollments.csv +0 -0
  398. data/spec/support/fixtures/reports/grading_period_groups.csv +0 -0
  399. data/spec/support/fixtures/reports/grading_periods.csv +0 -0
  400. data/spec/support/fixtures/reports/group_memberships.csv +0 -0
  401. data/spec/support/fixtures/reports/groups.csv +0 -0
  402. data/spec/support/fixtures/reports/learning_outcome_results.csv +0 -0
  403. data/spec/support/fixtures/reports/learning_outcomes.csv +0 -0
  404. data/spec/support/fixtures/reports/provisioning_csv +0 -0
  405. data/spec/support/fixtures/reports/rubric_assessments.csv +0 -0
  406. data/spec/support/fixtures/reports/rubric_associations.csv +0 -0
  407. data/spec/support/fixtures/reports/rubrics.csv +0 -0
  408. data/spec/support/fixtures/reports/sections.csv +0 -0
  409. data/spec/support/fixtures/reports/submissions.csv +0 -0
  410. data/spec/support/fixtures/reports/user_observers.csv +0 -0
  411. data/spec/support/fixtures/reports/users.csv +0 -0
  412. data/spec/support/fixtures/reports/xlist.csv +0 -0
  413. metadata +19 -7
  414. data/spec/support/fixtures/reports/provisioning_csv_unzipped/courses.csv +0 -3
  415. data/spec/support/fixtures/reports/provisioning_csv_unzipped/users.csv +0 -4
@@ -293,6 +293,49 @@ submissions:
293
293
  database_column_name: workflow_state
294
294
  type: string
295
295
 
296
+ assignment_overrides:
297
+ conflict_target: id
298
+ report_columns:
299
+ id:
300
+ database_column_name: canvas_id
301
+ type: integer
302
+ assignment_id:
303
+ database_column_name: canvas_assignment_id
304
+ type: integer
305
+ student_ids:
306
+ database_column_name: student_ids
307
+ type: array
308
+ group_id:
309
+ database_column_name: canvas_group_id
310
+ type: integer
311
+ course_section_id:
312
+ database_column_name: canvas_section_id
313
+ type: integer
314
+ course_id:
315
+ database_column_name: canvas_course_id
316
+ type: integer
317
+ title:
318
+ database_column_name: title
319
+ type: string
320
+ due_at:
321
+ database_column_name: due_at
322
+ type: datetime
323
+ unlock_at:
324
+ database_column_name: unlock_at
325
+ type: datetime
326
+ lock_at:
327
+ database_column_name: lock_at
328
+ type: datetime
329
+ all_day:
330
+ database_column_name: all_day
331
+ type: boolean
332
+ all_day_date:
333
+ database_column_name: all_day_date
334
+ type: datetime
335
+ workflow_state:
336
+ database_column_name: workflow_state
337
+ type: string
338
+
296
339
  assignment_groups:
297
340
  conflict_target: id
298
341
  report_columns:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,3 +1,3 @@
1
1
  module CanvasSync
2
- VERSION = "0.22.8".freeze
2
+ VERSION = "0.22.9".freeze
3
3
  end
data/lib/canvas_sync.rb CHANGED
@@ -54,6 +54,7 @@ module CanvasSync
54
54
  rubric_associations
55
55
  rubric_assessments
56
56
  course_progresses
57
+ assignment_overrides
57
58
  ].freeze
58
59
 
59
60
  SUPPORTED_TERM_SCOPE_MODELS = %w[
@@ -66,6 +67,7 @@ module CanvasSync
66
67
  rubric_associations
67
68
  rubric_assessments
68
69
  course_progresses
70
+ assignment_overrides
69
71
  ].freeze
70
72
 
71
73
  DEFAULT_TERM_SCOPE_MODELS = %w[
@@ -78,6 +80,7 @@ module CanvasSync
78
80
  rubric_associations
79
81
  rubric_assessments
80
82
  course_progresses
83
+ assignment_overrides
81
84
  ].freeze
82
85
 
83
86
  SUPPORTED_LIVE_EVENTS = %w[
@@ -166,6 +169,7 @@ module CanvasSync
166
169
  assignments: CanvasSync::Jobs::SyncAssignmentsJob,
167
170
  submissions: CanvasSync::Jobs::SyncSubmissionsJob,
168
171
  assignment_groups: CanvasSync::Jobs::SyncAssignmentGroupsJob,
172
+ assignment_overrides: CanvasSync::Jobs::SyncAssignmentOverridesJob,
169
173
  context_modules: CanvasSync::Jobs::SyncContextModulesJob,
170
174
  context_module_items: CanvasSync::Jobs::SyncContextModuleItemsJob,
171
175
  content_migrations: CanvasSync::Jobs::SyncContentMigrationsJob,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,45 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe CanvasSync::Processors::AssignmentOverridesProcessor do
4
+ describe '#process' do
5
+ it 'inserts assignment overrides' do
6
+ expect {
7
+ described_class.process('spec/support/fixtures/reports/assignment_overrides.csv', {}, 1)
8
+ }.to change { AssignmentOverride.count }.by(2)
9
+
10
+ override = AssignmentOverride.first
11
+ expect(override).to have_attributes(
12
+ canvas_id: 1,
13
+ canvas_assignment_id: 1,
14
+ student_ids: [1, 2],
15
+ canvas_group_id: nil,
16
+ canvas_section_id: nil,
17
+ canvas_course_id: 1,
18
+ title: "Override 1",
19
+ workflow_state: "active"
20
+ )
21
+ expect(override.due_at.strftime('%Y-%m-%d %H:%M:%S')).to eq('2024-05-01 09:00:00')
22
+ end
23
+
24
+ context 'record already present in the database' do
25
+ before do
26
+ described_class.process('spec/support/fixtures/reports/assignment_overrides.csv', {}, 1)
27
+ end
28
+
29
+ it 'updates the override' do
30
+ expect {
31
+ described_class.process('spec/support/fixtures/reports/assignment_overrides_conflict.csv', {}, 1)
32
+ }.to change { AssignmentOverride.count }.by(0)
33
+
34
+ override = AssignmentOverride.first
35
+ expect(override).to have_attributes(
36
+ canvas_id: 1,
37
+ student_ids: [1, 2, 3],
38
+ title: "Override 1 Updated",
39
+ workflow_state: "active"
40
+ )
41
+ expect(override.due_at.strftime('%Y-%m-%d %H:%M:%S')).to eq('2024-06-01 09:00:00')
42
+ end
43
+ end
44
+ end
45
+ end
File without changes
File without changes
File without changes
File without changes
data/spec/dummy/Rakefile CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,34 @@
1
+ # #
2
+ # AUTO GENERATED MODEL
3
+ # This model was auto generated by the CanvasSync Gem.
4
+ # You can customize it as needed, but make sure you test
5
+ # any changes you make to the auto generated methods.
6
+ #
7
+
8
+
9
+ class AssignmentOverride < ApplicationRecord
10
+ include CanvasSync::Record
11
+ include CanvasSync::Concerns::ApiSyncable
12
+
13
+ canvas_sync_features :defaults
14
+
15
+ validates :canvas_id, uniqueness: true, presence: true
16
+ belongs_to :assignment, primary_key: :canvas_id, foreign_key: :canvas_assignment_id, optional: true
17
+ belongs_to :course, primary_key: :canvas_id, foreign_key: :canvas_course_id, optional: true
18
+
19
+ api_syncable({
20
+ canvas_id: :id,
21
+ canvas_assignment_id: :assignment_id,
22
+ title: :title,
23
+ workflow_state: :workflow_state,
24
+ due_at: :due_at,
25
+ all_day: :all_day,
26
+ all_day_date: :all_day_date,
27
+ unlock_at: :unlock_at,
28
+ lock_at: :lock_at,
29
+ student_ids: ->(r) { JSON.parse(r[:student_ids]) if r[:student_ids].present? },
30
+ canvas_group_id: :group_id,
31
+ canvas_section_id: :course_section_id,
32
+ canvas_course_id: -> (r) { r.dig(:assignment, :course_id) }
33
+ }, -> (api) { api.assignment_override(canvas_assignment_id, canvas_id) })
34
+ end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/spec/dummy/config.ru CHANGED
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,25 @@
1
+ class CreateAssignmentOverrides < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :assignment_overrides do |t|
4
+ t.bigint :canvas_id, null: false
5
+ t.bigint :canvas_assignment_id
6
+ t.bigint :canvas_group_id
7
+ t.bigint :canvas_course_id
8
+ t.bigint :canvas_section_id
9
+ t.bigint :student_ids, array: true
10
+ t.datetime :due_at
11
+ t.boolean :all_day
12
+ t.datetime :all_day_date
13
+ t.datetime :unlock_at
14
+ t.datetime :lock_at
15
+ t.string :title
16
+ t.string :workflow_state
17
+
18
+ t.timestamps
19
+ end
20
+
21
+ add_index :assignment_overrides, :canvas_id, unique: true
22
+ add_index :assignment_overrides, :canvas_assignment_id
23
+ add_index :assignment_overrides, :canvas_course_id
24
+ end
25
+ end