canvas_sync 0.22.15 → 0.22.16

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.
Files changed (403) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -0
  3. data/Rakefile +0 -0
  4. data/app/controllers/canvas_sync/api/v1/health_check_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/role/base.rb +0 -0
  23. data/lib/canvas_sync/config.rb +0 -0
  24. data/lib/canvas_sync/generators/install_generator.rb +0 -0
  25. data/lib/canvas_sync/generators/install_live_events_generator.rb +0 -0
  26. data/lib/canvas_sync/generators/templates/migrations/create_accounts.rb +0 -0
  27. data/lib/canvas_sync/generators/templates/migrations/create_admins.rb +0 -0
  28. data/lib/canvas_sync/generators/templates/migrations/create_assignment_groups.rb +0 -0
  29. data/lib/canvas_sync/generators/templates/migrations/create_assignments.rb +0 -0
  30. data/lib/canvas_sync/generators/templates/migrations/create_content_migrations.rb +0 -0
  31. data/lib/canvas_sync/generators/templates/migrations/create_context_module_items.rb +0 -0
  32. data/lib/canvas_sync/generators/templates/migrations/create_context_modules.rb +0 -0
  33. data/lib/canvas_sync/generators/templates/migrations/create_course_nicknames.rb +0 -0
  34. data/lib/canvas_sync/generators/templates/migrations/create_course_progresses.rb +0 -0
  35. data/lib/canvas_sync/generators/templates/migrations/create_courses.rb +0 -0
  36. data/lib/canvas_sync/generators/templates/migrations/create_grading_period_groups.rb +0 -0
  37. data/lib/canvas_sync/generators/templates/migrations/create_grading_periods.rb +0 -0
  38. data/lib/canvas_sync/generators/templates/migrations/create_group_memberships.rb +0 -0
  39. data/lib/canvas_sync/generators/templates/migrations/create_groups.rb +0 -0
  40. data/lib/canvas_sync/generators/templates/migrations/create_learning_outcome_results.rb +0 -0
  41. data/lib/canvas_sync/generators/templates/migrations/create_learning_outcomes.rb +0 -0
  42. data/lib/canvas_sync/generators/templates/migrations/create_pseudonyms.rb +0 -0
  43. data/lib/canvas_sync/generators/templates/migrations/create_roles.rb +0 -0
  44. data/lib/canvas_sync/generators/templates/migrations/create_rubric_assessments.rb +0 -0
  45. data/lib/canvas_sync/generators/templates/migrations/create_rubric_associations.rb +0 -0
  46. data/lib/canvas_sync/generators/templates/migrations/create_rubrics.rb +0 -0
  47. data/lib/canvas_sync/generators/templates/migrations/create_scores.rb +36 -0
  48. data/lib/canvas_sync/generators/templates/migrations/create_sections.rb +0 -0
  49. data/lib/canvas_sync/generators/templates/migrations/create_submissions.rb +0 -0
  50. data/lib/canvas_sync/generators/templates/migrations/create_terms.rb +0 -0
  51. data/lib/canvas_sync/generators/templates/migrations/create_user_observers.rb +0 -0
  52. data/lib/canvas_sync/generators/templates/migrations/create_users.rb +0 -0
  53. data/lib/canvas_sync/generators/templates/models/account.rb +0 -0
  54. data/lib/canvas_sync/generators/templates/models/admin.rb +0 -0
  55. data/lib/canvas_sync/generators/templates/models/assignment.rb +0 -0
  56. data/lib/canvas_sync/generators/templates/models/assignment_group.rb +0 -0
  57. data/lib/canvas_sync/generators/templates/models/content_migration.rb +0 -0
  58. data/lib/canvas_sync/generators/templates/models/context_module.rb +0 -0
  59. data/lib/canvas_sync/generators/templates/models/context_module_item.rb +0 -0
  60. data/lib/canvas_sync/generators/templates/models/course.rb +0 -0
  61. data/lib/canvas_sync/generators/templates/models/course_nickname.rb +0 -0
  62. data/lib/canvas_sync/generators/templates/models/enrollment.rb +0 -0
  63. data/lib/canvas_sync/generators/templates/models/grading_period.rb +0 -0
  64. data/lib/canvas_sync/generators/templates/models/grading_period_group.rb +0 -0
  65. data/lib/canvas_sync/generators/templates/models/group.rb +0 -0
  66. data/lib/canvas_sync/generators/templates/models/group_membership.rb +0 -0
  67. data/lib/canvas_sync/generators/templates/models/learning_outcome.rb +0 -0
  68. data/lib/canvas_sync/generators/templates/models/learning_outcome_result.rb +0 -0
  69. data/lib/canvas_sync/generators/templates/models/pseudonym.rb +0 -0
  70. data/lib/canvas_sync/generators/templates/models/role.rb +0 -0
  71. data/lib/canvas_sync/generators/templates/models/rubric.rb +0 -0
  72. data/lib/canvas_sync/generators/templates/models/rubric_assessment.rb +0 -0
  73. data/lib/canvas_sync/generators/templates/models/rubric_association.rb +0 -0
  74. data/lib/canvas_sync/generators/templates/models/score.rb +12 -0
  75. data/lib/canvas_sync/generators/templates/models/section.rb +0 -0
  76. data/lib/canvas_sync/generators/templates/models/submission.rb +0 -0
  77. data/lib/canvas_sync/generators/templates/models/term.rb +0 -0
  78. data/lib/canvas_sync/generators/templates/models/user.rb +0 -0
  79. data/lib/canvas_sync/generators/templates/models/user_observer.rb +0 -0
  80. data/lib/canvas_sync/generators/templates/services/live_events/assignment_event.rb +0 -0
  81. data/lib/canvas_sync/generators/templates/services/live_events/assignment_group_event.rb +0 -0
  82. data/lib/canvas_sync/generators/templates/services/live_events/course_event.rb +0 -0
  83. data/lib/canvas_sync/generators/templates/services/live_events/course_section_event.rb +0 -0
  84. data/lib/canvas_sync/generators/templates/services/live_events/enrollment_event.rb +0 -0
  85. data/lib/canvas_sync/generators/templates/services/live_events/grade_event.rb +0 -0
  86. data/lib/canvas_sync/generators/templates/services/live_events/module_event.rb +0 -0
  87. data/lib/canvas_sync/generators/templates/services/live_events/module_item_event.rb +0 -0
  88. data/lib/canvas_sync/generators/templates/services/live_events/submission_event.rb +0 -0
  89. data/lib/canvas_sync/generators/templates/services/live_events/syllabus_event.rb +0 -0
  90. data/lib/canvas_sync/generators/templates/services/live_events/user_event.rb +0 -0
  91. data/lib/canvas_sync/importers/legacy_importer.rb +0 -0
  92. data/lib/canvas_sync/job_batches/callback.rb +0 -0
  93. data/lib/canvas_sync/job_batches/compat/active_job.rb +0 -0
  94. data/lib/canvas_sync/job_batches/compat/sidekiq/web/batches_assets/css/styles.less +0 -0
  95. data/lib/canvas_sync/job_batches/compat/sidekiq/web/batches_assets/js/util.js +0 -0
  96. data/lib/canvas_sync/job_batches/compat/sidekiq/web/helpers.rb +0 -0
  97. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_batch_tree.erb +0 -0
  98. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_batches_table.erb +0 -0
  99. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_common.erb +0 -0
  100. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_jobs_table.erb +0 -0
  101. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/_pagination.erb +0 -0
  102. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/batch.erb +0 -0
  103. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/batches.erb +0 -0
  104. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/pool.erb +0 -0
  105. data/lib/canvas_sync/job_batches/compat/sidekiq/web/views/pools.erb +0 -0
  106. data/lib/canvas_sync/job_batches/compat.rb +0 -0
  107. data/lib/canvas_sync/job_batches/context_hash.rb +0 -0
  108. data/lib/canvas_sync/job_batches/hier_batch_ids.lua +0 -0
  109. data/lib/canvas_sync/job_batches/jobs/base_job.rb +0 -0
  110. data/lib/canvas_sync/job_batches/jobs/serial_batch_job.rb +0 -0
  111. data/lib/canvas_sync/job_batches/pool.rb +0 -0
  112. data/lib/canvas_sync/job_batches/pool_refill.lua +0 -0
  113. data/lib/canvas_sync/job_batches/redis_model.rb +0 -0
  114. data/lib/canvas_sync/job_batches/redis_script.rb +0 -0
  115. data/lib/canvas_sync/job_batches/schedule_callback.lua +0 -0
  116. data/lib/canvas_sync/job_uniqueness/compat/active_job.rb +0 -0
  117. data/lib/canvas_sync/job_uniqueness/compat/sidekiq.rb +0 -0
  118. data/lib/canvas_sync/job_uniqueness/compat.rb +0 -0
  119. data/lib/canvas_sync/job_uniqueness/configuration.rb +0 -0
  120. data/lib/canvas_sync/job_uniqueness/job_uniqueness.rb +0 -0
  121. data/lib/canvas_sync/job_uniqueness/locksmith.rb +0 -0
  122. data/lib/canvas_sync/job_uniqueness/on_conflict/base.rb +0 -0
  123. data/lib/canvas_sync/job_uniqueness/on_conflict/log.rb +0 -0
  124. data/lib/canvas_sync/job_uniqueness/on_conflict/null_strategy.rb +0 -0
  125. data/lib/canvas_sync/job_uniqueness/on_conflict/raise.rb +0 -0
  126. data/lib/canvas_sync/job_uniqueness/on_conflict/reject.rb +0 -0
  127. data/lib/canvas_sync/job_uniqueness/on_conflict/reschedule.rb +0 -0
  128. data/lib/canvas_sync/job_uniqueness/on_conflict.rb +0 -0
  129. data/lib/canvas_sync/job_uniqueness/strategy/base.rb +0 -0
  130. data/lib/canvas_sync/job_uniqueness/strategy/until_and_while_executing.rb +0 -0
  131. data/lib/canvas_sync/job_uniqueness/strategy/until_executed.rb +0 -0
  132. data/lib/canvas_sync/job_uniqueness/strategy/until_executing.rb +0 -0
  133. data/lib/canvas_sync/job_uniqueness/strategy/until_expired.rb +0 -0
  134. data/lib/canvas_sync/job_uniqueness/strategy/while_executing.rb +0 -0
  135. data/lib/canvas_sync/job_uniqueness/strategy.rb +0 -0
  136. data/lib/canvas_sync/job_uniqueness/unique_job_common.rb +0 -0
  137. data/lib/canvas_sync/jobs/begin_sync_chain_job.rb +0 -0
  138. data/lib/canvas_sync/jobs/canvas_process_waiter.rb +0 -0
  139. data/lib/canvas_sync/jobs/report_checker.rb +0 -0
  140. data/lib/canvas_sync/jobs/report_processor_job.rb +0 -0
  141. data/lib/canvas_sync/jobs/report_starter.rb +0 -0
  142. data/lib/canvas_sync/jobs/sync_accounts_job.rb +0 -0
  143. data/lib/canvas_sync/jobs/sync_admins_job.rb +0 -0
  144. data/lib/canvas_sync/jobs/sync_assignment_groups_job.rb +0 -0
  145. data/lib/canvas_sync/jobs/sync_assignments_job.rb +0 -0
  146. data/lib/canvas_sync/jobs/sync_content_migrations_job.rb +0 -0
  147. data/lib/canvas_sync/jobs/sync_context_module_items_job.rb +0 -0
  148. data/lib/canvas_sync/jobs/sync_context_modules_job.rb +0 -0
  149. data/lib/canvas_sync/jobs/sync_course_progresses_job.rb +0 -0
  150. data/lib/canvas_sync/jobs/sync_provisioning_report_job.rb +0 -0
  151. data/lib/canvas_sync/jobs/sync_roles_job.rb +5 -1
  152. data/lib/canvas_sync/jobs/sync_rubric_assessments_job.rb +0 -0
  153. data/lib/canvas_sync/jobs/sync_rubric_associations_job.rb +0 -0
  154. data/lib/canvas_sync/jobs/sync_rubrics_job.rb +0 -0
  155. data/lib/canvas_sync/jobs/sync_scores_job.rb +18 -0
  156. data/lib/canvas_sync/jobs/sync_simple_table_job.rb +0 -0
  157. data/lib/canvas_sync/jobs/sync_submissions_job.rb +0 -0
  158. data/lib/canvas_sync/jobs/sync_terms_job.rb +0 -0
  159. data/lib/canvas_sync/live_events/base_handler.rb +0 -0
  160. data/lib/canvas_sync/live_events.rb +0 -0
  161. data/lib/canvas_sync/misc_helper.rb +0 -0
  162. data/lib/canvas_sync/processors/assignment_groups_processor.rb +0 -0
  163. data/lib/canvas_sync/processors/assignments_processor.rb +0 -0
  164. data/lib/canvas_sync/processors/content_migrations_processor.rb +0 -0
  165. data/lib/canvas_sync/processors/context_module_items_processor.rb +0 -0
  166. data/lib/canvas_sync/processors/context_modules_processor.rb +0 -0
  167. data/lib/canvas_sync/processors/course_completion_report_processor.rb +0 -0
  168. data/lib/canvas_sync/processors/model_mappings.yml +46 -0
  169. data/lib/canvas_sync/processors/normal_processor.rb +0 -0
  170. data/lib/canvas_sync/processors/rubric_assessments_processor.rb +0 -0
  171. data/lib/canvas_sync/processors/rubric_associations_processor.rb +0 -0
  172. data/lib/canvas_sync/processors/rubrics_processor.rb +0 -0
  173. data/lib/canvas_sync/processors/submissions_processor.rb +0 -0
  174. data/lib/canvas_sync/record.rb +0 -0
  175. data/lib/canvas_sync/sidekiq_job.rb +0 -0
  176. data/lib/canvas_sync/version.rb +1 -1
  177. data/lib/canvas_sync.rb +4 -0
  178. data/spec/canvas_sync/canvas_sync_spec.rb +26 -0
  179. data/spec/canvas_sync/jobs/canvas_process_waiter_spec.rb +0 -0
  180. data/spec/canvas_sync/jobs/job_spec.rb +0 -0
  181. data/spec/canvas_sync/jobs/report_checker_spec.rb +0 -0
  182. data/spec/canvas_sync/jobs/report_processor_job_spec.rb +0 -0
  183. data/spec/canvas_sync/jobs/report_starter_spec.rb +0 -0
  184. data/spec/canvas_sync/jobs/sync_admins_job_spec.rb +0 -0
  185. data/spec/canvas_sync/jobs/sync_assignment_groups_job_spec.rb +0 -0
  186. data/spec/canvas_sync/jobs/sync_assignments_job_spec.rb +0 -0
  187. data/spec/canvas_sync/jobs/sync_content_migrations_job_spec.rb +0 -0
  188. data/spec/canvas_sync/jobs/sync_context_module_items_job_spec.rb +0 -0
  189. data/spec/canvas_sync/jobs/sync_context_modules_job_spec.rb +0 -0
  190. data/spec/canvas_sync/jobs/sync_provisioning_report_job_spec.rb +0 -0
  191. data/spec/canvas_sync/jobs/sync_roles_job_spec.rb +0 -0
  192. data/spec/canvas_sync/jobs/sync_scores_job_spec.rb +15 -0
  193. data/spec/canvas_sync/jobs/sync_simple_table_job_spec.rb +0 -0
  194. data/spec/canvas_sync/jobs/sync_submissions_job_spec.rb +0 -0
  195. data/spec/canvas_sync/jobs/sync_terms_job_spec.rb +0 -0
  196. data/spec/canvas_sync/live_events/live_event_sync_spec.rb +0 -0
  197. data/spec/canvas_sync/live_events/live_events_controller_spec.rb +0 -0
  198. data/spec/canvas_sync/live_events/process_event_job_spec.rb +0 -0
  199. data/spec/canvas_sync/misc_helper_spec.rb +0 -0
  200. data/spec/canvas_sync/models/accounts_spec.rb +0 -0
  201. data/spec/canvas_sync/models/admins_spec.rb +0 -0
  202. data/spec/canvas_sync/models/assignment_group_spec.rb +0 -0
  203. data/spec/canvas_sync/models/assignment_spec.rb +0 -0
  204. data/spec/canvas_sync/models/context_module_item_spec.rb +0 -0
  205. data/spec/canvas_sync/models/context_module_spec.rb +0 -0
  206. data/spec/canvas_sync/models/course_spec.rb +0 -0
  207. data/spec/canvas_sync/models/enrollment_spec.rb +0 -0
  208. data/spec/canvas_sync/models/group_membership_spec.rb +0 -0
  209. data/spec/canvas_sync/models/group_spec.rb +0 -0
  210. data/spec/canvas_sync/models/roles_spec.rb +0 -0
  211. data/spec/canvas_sync/models/section_spec.rb +0 -0
  212. data/spec/canvas_sync/models/submission_spec.rb +0 -0
  213. data/spec/canvas_sync/models/term_spec.rb +0 -0
  214. data/spec/canvas_sync/models/user_spec.rb +0 -0
  215. data/spec/canvas_sync/processors/assignment_groups_processor_spec.rb +0 -0
  216. data/spec/canvas_sync/processors/assignments_processor_spec.rb +0 -0
  217. data/spec/canvas_sync/processors/content_migrations_processor_spec.rb +0 -0
  218. data/spec/canvas_sync/processors/context_module_items_processor_spec.rb +0 -0
  219. data/spec/canvas_sync/processors/context_modules_processor_spec.rb +0 -0
  220. data/spec/canvas_sync/processors/course_completion_report_processor_spec.rb +0 -0
  221. data/spec/canvas_sync/processors/normal_processor_spec.rb +18 -0
  222. data/spec/canvas_sync/processors/rubric_assessments_spec.rb +0 -0
  223. data/spec/canvas_sync/processors/rubric_associations_spec.rb +0 -0
  224. data/spec/canvas_sync/processors/rubrics_processor_spec.rb +0 -0
  225. data/spec/canvas_sync/processors/submissions_processor_spec.rb +0 -0
  226. data/spec/canvas_sync/services/module_event_spec.rb +0 -0
  227. data/spec/canvas_sync/services/module_item_event_spec.rb +0 -0
  228. data/spec/dummy/README.rdoc +0 -0
  229. data/spec/dummy/Rakefile +0 -0
  230. data/spec/dummy/app/models/account.rb +0 -0
  231. data/spec/dummy/app/models/admin.rb +0 -0
  232. data/spec/dummy/app/models/application_record.rb +0 -0
  233. data/spec/dummy/app/models/assignment.rb +0 -0
  234. data/spec/dummy/app/models/assignment_group.rb +0 -0
  235. data/spec/dummy/app/models/content_migration.rb +0 -0
  236. data/spec/dummy/app/models/context_module.rb +7 -0
  237. data/spec/dummy/app/models/context_module_item.rb +0 -0
  238. data/spec/dummy/app/models/course.rb +0 -0
  239. data/spec/dummy/app/models/course_nickname.rb +0 -0
  240. data/spec/dummy/app/models/enrollment.rb +0 -0
  241. data/spec/dummy/app/models/grading_period.rb +0 -0
  242. data/spec/dummy/app/models/grading_period_group.rb +0 -0
  243. data/spec/dummy/app/models/group.rb +0 -0
  244. data/spec/dummy/app/models/group_membership.rb +0 -0
  245. data/spec/dummy/app/models/learning_outcome.rb +0 -0
  246. data/spec/dummy/app/models/pseudonym.rb +0 -0
  247. data/spec/dummy/app/models/role.rb +0 -0
  248. data/spec/dummy/app/models/score.rb +18 -0
  249. data/spec/dummy/app/models/section.rb +0 -0
  250. data/spec/dummy/app/models/submission.rb +0 -0
  251. data/spec/dummy/app/models/term.rb +0 -0
  252. data/spec/dummy/app/models/user_observer.rb +0 -0
  253. data/spec/dummy/app/services/live_events/assignment_created_event.rb +0 -0
  254. data/spec/dummy/app/services/live_events/assignment_event.rb +0 -0
  255. data/spec/dummy/app/services/live_events/assignment_updated_event.rb +0 -0
  256. data/spec/dummy/app/services/live_events/base_event.rb +0 -0
  257. data/spec/dummy/app/services/live_events/course_created_event.rb +0 -0
  258. data/spec/dummy/app/services/live_events/course_event.rb +0 -0
  259. data/spec/dummy/app/services/live_events/course_section_created_event.rb +0 -0
  260. data/spec/dummy/app/services/live_events/course_section_event.rb +0 -0
  261. data/spec/dummy/app/services/live_events/course_section_updated_event.rb +0 -0
  262. data/spec/dummy/app/services/live_events/course_updated_event.rb +0 -0
  263. data/spec/dummy/app/services/live_events/enrollment_created_event.rb +0 -0
  264. data/spec/dummy/app/services/live_events/enrollment_event.rb +0 -0
  265. data/spec/dummy/app/services/live_events/enrollment_updated_event.rb +0 -0
  266. data/spec/dummy/app/services/live_events/grade_changed_event.rb +0 -0
  267. data/spec/dummy/app/services/live_events/grade_event.rb +0 -0
  268. data/spec/dummy/app/services/live_events/module_created_event.rb +0 -0
  269. data/spec/dummy/app/services/live_events/module_event.rb +0 -0
  270. data/spec/dummy/app/services/live_events/module_item_created_event.rb +0 -0
  271. data/spec/dummy/app/services/live_events/module_item_event.rb +0 -0
  272. data/spec/dummy/app/services/live_events/module_item_updated_event.rb +0 -0
  273. data/spec/dummy/app/services/live_events/module_updated_event.rb +0 -0
  274. data/spec/dummy/app/services/live_events/submission_created_event.rb +0 -0
  275. data/spec/dummy/app/services/live_events/submission_event.rb +0 -0
  276. data/spec/dummy/app/services/live_events/submission_updated_event.rb +0 -0
  277. data/spec/dummy/app/services/live_events/syllabus_event.rb +0 -0
  278. data/spec/dummy/app/services/live_events/syllabus_updated_event.rb +0 -0
  279. data/spec/dummy/app/services/live_events/user_created_event.rb +0 -0
  280. data/spec/dummy/app/services/live_events/user_event.rb +0 -0
  281. data/spec/dummy/app/services/live_events/user_updated_event.rb +0 -0
  282. data/spec/dummy/config/boot.rb +0 -0
  283. data/spec/dummy/config/database.yml +0 -0
  284. data/spec/dummy/config/environment.rb +0 -0
  285. data/spec/dummy/config/environments/development.rb +0 -0
  286. data/spec/dummy/config/environments/test.rb +0 -0
  287. data/spec/dummy/config/initializers/assets.rb +0 -0
  288. data/spec/dummy/config/initializers/session_store.rb +0 -0
  289. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -0
  290. data/spec/dummy/config/routes.rb +0 -0
  291. data/spec/dummy/config/secrets.yml +0 -0
  292. data/spec/dummy/config.ru +0 -0
  293. data/spec/dummy/db/migrate/20190702203621_create_courses.rb +0 -0
  294. data/spec/dummy/db/migrate/20190702203622_create_accounts.rb +0 -0
  295. data/spec/dummy/db/migrate/20190702203623_create_terms.rb +0 -0
  296. data/spec/dummy/db/migrate/20190702203625_create_sections.rb +0 -0
  297. data/spec/dummy/db/migrate/20190702203626_create_assignments.rb +0 -0
  298. data/spec/dummy/db/migrate/20190702203627_create_submissions.rb +0 -0
  299. data/spec/dummy/db/migrate/20190702203630_create_assignment_groups.rb +0 -0
  300. data/spec/dummy/db/migrate/20190702203631_create_context_modules.rb +0 -0
  301. data/spec/dummy/db/migrate/20190702203632_create_context_module_items.rb +0 -0
  302. data/spec/dummy/db/migrate/20190927204545_create_roles.rb +0 -0
  303. data/spec/dummy/db/migrate/20190927204546_create_admins.rb +0 -0
  304. data/spec/dummy/db/migrate/20200415171620_create_groups.rb +0 -0
  305. data/spec/dummy/db/migrate/20200416214248_create_group_memberships.rb +0 -0
  306. data/spec/dummy/db/migrate/20201016181346_create_pseudonyms.rb +0 -0
  307. data/spec/dummy/db/migrate/20210907233329_create_user_observers.rb +0 -0
  308. data/spec/dummy/db/migrate/20210907233330_create_grading_periods.rb +0 -0
  309. data/spec/dummy/db/migrate/20211001184920_create_grading_period_groups.rb +0 -0
  310. data/spec/dummy/db/migrate/20220308072643_create_content_migrations.rb +0 -0
  311. data/spec/dummy/db/migrate/20220712210559_create_learning_outcomes.rb +0 -0
  312. data/spec/dummy/db/migrate/20220926221926_create_users.rb +0 -0
  313. data/spec/dummy/db/migrate/20240510094100_create_rubric_associations.rb +0 -0
  314. data/spec/dummy/db/migrate/20240510101100_create_rubric_assessments.rb +0 -0
  315. data/spec/dummy/db/migrate/20240523101010_create_learning_outcome_results.rb +0 -0
  316. data/spec/dummy/db/migrate/20240828161300_create_course_progresses.rb +0 -0
  317. data/spec/dummy/db/migrate/20250626194330_create_scores.rb +42 -0
  318. data/spec/dummy/db/schema.rb +25 -1
  319. data/spec/factories/account_factory.rb +0 -0
  320. data/spec/factories/admin_factory.rb +0 -0
  321. data/spec/factories/assignment_factory.rb +0 -0
  322. data/spec/factories/assignment_group_factory.rb +0 -0
  323. data/spec/factories/context_module_factory.rb +0 -0
  324. data/spec/factories/context_module_item_factory.rb +0 -0
  325. data/spec/factories/course_factory.rb +0 -0
  326. data/spec/factories/enrollment_factory.rb +0 -0
  327. data/spec/factories/group_factory.rb +0 -0
  328. data/spec/factories/group_membership_factory.rb +0 -0
  329. data/spec/factories/role_factory.rb +0 -0
  330. data/spec/factories/score_factory.rb +5 -0
  331. data/spec/factories/section_factory.rb +0 -0
  332. data/spec/factories/submission_factory.rb +0 -0
  333. data/spec/factories/term_factory.rb +0 -0
  334. data/spec/factories/user_factory.rb +0 -0
  335. data/spec/job_batching/batch_spec.rb +0 -0
  336. data/spec/job_batching/callback_spec.rb +0 -0
  337. data/spec/job_batching/compat/active_job_spec.rb +0 -0
  338. data/spec/job_batching/compat/sidekiq_spec.rb +0 -0
  339. data/spec/job_batching/context_hash_spec.rb +0 -0
  340. data/spec/job_batching/flow_spec.rb +0 -0
  341. data/spec/job_batching/integration/fail_then_succeed.rb +0 -0
  342. data/spec/job_batching/integration/integration.rb +0 -0
  343. data/spec/job_batching/integration/nested.rb +0 -0
  344. data/spec/job_batching/integration/simple.rb +0 -0
  345. data/spec/job_batching/integration/workflow.rb +0 -0
  346. data/spec/job_batching/integration_helper.rb +0 -0
  347. data/spec/job_batching/pool_spec.rb +0 -0
  348. data/spec/job_batching/status_spec.rb +0 -0
  349. data/spec/job_batching/support/base_job.rb +0 -0
  350. data/spec/job_batching/support/sample_callback.rb +0 -0
  351. data/spec/job_uniqueness/compat/active_job_spec.rb +0 -0
  352. data/spec/job_uniqueness/compat/sidekiq_spec.rb +0 -0
  353. data/spec/job_uniqueness/lock_context_spec.rb +0 -0
  354. data/spec/job_uniqueness/on_conflict/log_spec.rb +0 -0
  355. data/spec/job_uniqueness/on_conflict/raise_spec.rb +0 -0
  356. data/spec/job_uniqueness/on_conflict/reschedule_spec.rb +0 -0
  357. data/spec/job_uniqueness/on_conflict_spec.rb +0 -0
  358. data/spec/job_uniqueness/spec_helper.rb +0 -0
  359. data/spec/job_uniqueness/strategy/base_spec.rb +0 -0
  360. data/spec/job_uniqueness/strategy/until_and_while_executing_spec.rb +0 -0
  361. data/spec/job_uniqueness/strategy/until_executed_spec.rb +0 -0
  362. data/spec/job_uniqueness/strategy/until_executing_spec.rb +0 -0
  363. data/spec/job_uniqueness/strategy/until_expired_spec.rb +0 -0
  364. data/spec/job_uniqueness/strategy/while_executing_spec.rb +0 -0
  365. data/spec/job_uniqueness/support/lock_strategy.rb +0 -0
  366. data/spec/job_uniqueness/support/on_conflict.rb +0 -0
  367. data/spec/job_uniqueness/support/test_worker.rb +0 -0
  368. data/spec/job_uniqueness/unique_job_common_spec.rb +0 -0
  369. data/spec/support/fake_canvas.rb +0 -0
  370. data/spec/support/fixtures/canvas_responses/admins.json +0 -0
  371. data/spec/support/fixtures/canvas_responses/module.json +0 -0
  372. data/spec/support/fixtures/canvas_responses/module_item.json +0 -0
  373. data/spec/support/fixtures/canvas_responses/roles.json +0 -0
  374. data/spec/support/fixtures/canvas_responses/terms.json +0 -0
  375. data/spec/support/fixtures/reports/assignment_groups.csv +0 -0
  376. data/spec/support/fixtures/reports/assignments.csv +0 -0
  377. data/spec/support/fixtures/reports/content_migrations.csv +0 -0
  378. data/spec/support/fixtures/reports/context_module_items.csv +0 -0
  379. data/spec/support/fixtures/reports/context_modules.csv +0 -0
  380. data/spec/support/fixtures/reports/course_nicknames.csv +0 -0
  381. data/spec/support/fixtures/reports/course_progresses.csv +0 -0
  382. data/spec/support/fixtures/reports/course_progresses_conflict.csv +0 -0
  383. data/spec/support/fixtures/reports/courses.csv +0 -0
  384. data/spec/support/fixtures/reports/enrollments.csv +0 -0
  385. data/spec/support/fixtures/reports/grading_period_groups.csv +0 -0
  386. data/spec/support/fixtures/reports/grading_periods.csv +0 -0
  387. data/spec/support/fixtures/reports/group_memberships.csv +0 -0
  388. data/spec/support/fixtures/reports/groups.csv +0 -0
  389. data/spec/support/fixtures/reports/learning_outcome_results.csv +0 -0
  390. data/spec/support/fixtures/reports/learning_outcomes.csv +0 -0
  391. data/spec/support/fixtures/reports/provisioning_csv +0 -0
  392. data/spec/support/fixtures/reports/provisioning_csv_unzipped/courses.csv +0 -0
  393. data/spec/support/fixtures/reports/provisioning_csv_unzipped/users.csv +0 -0
  394. data/spec/support/fixtures/reports/rubric_assessments.csv +0 -0
  395. data/spec/support/fixtures/reports/rubric_associations.csv +0 -0
  396. data/spec/support/fixtures/reports/rubrics.csv +0 -0
  397. data/spec/support/fixtures/reports/scores.csv +3 -0
  398. data/spec/support/fixtures/reports/sections.csv +0 -0
  399. data/spec/support/fixtures/reports/submissions.csv +0 -0
  400. data/spec/support/fixtures/reports/user_observers.csv +0 -0
  401. data/spec/support/fixtures/reports/users.csv +0 -0
  402. data/spec/support/fixtures/reports/xlist.csv +0 -0
  403. metadata +16 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8fbeee209380af1879194e5c4e1a95cb131e3ee638e2941ef66160682443c38
4
- data.tar.gz: eba40becd6465d29e887ac1e44e315d483e7635190bf9ac617ba898491ae467f
3
+ metadata.gz: edf3fa2e60b56a50ba72da7e2e930b6ee7580e48350b99aaa9f69597aa01541f
4
+ data.tar.gz: cf055ba20dc5a53dc978d78ad3d6b5a3b0fc987ada68a678a86b1f09c7446ae3
5
5
  SHA512:
6
- metadata.gz: fed475cc7ef3535b65bdf11e23d2b553f4064d0745fdc76b5af9c49c52d9123ae2073545013d20e5605121b0a57c7555e5a524a3f1be255629cd6f0f0d219104
7
- data.tar.gz: 3cec741d0045cb8a7224b1cf3eeaf241c1b28b0336c09e615c77041e8690c504058e834984ef71b7820ed6d6e21a19ec17b0a6a980d243f31f26168279c7c3ee
6
+ metadata.gz: e15a40d668b06d5c449d7375441b8551ec9b4516b4f7348ec342d02287ee53b2c8f9c9faeda792148dd55358f860f9e3e008e1871c1f74944e7c9fbcf9f0c8fc
7
+ data.tar.gz: 6a1ff13780555575d896cbd9a783b28b9bbe6a1fa82f78134b531ae7c5b06954834c71f2f668c78933d21c09679e1444aee638c990ae711ce4e63050e0e88851
data/README.md CHANGED
@@ -463,6 +463,18 @@ Available config options (if you add more, please update this!):
463
463
 
464
464
  * `config.classes_to_only_log_errors_on` - use this if you are utilizing the `CanvasSync::JobLog` table, but want certain classes to only persist in the `job_logs` table if an error is encountered. This is useful if you've got a very frequently used job that's filling up your database, and only really care about tracking failures.
465
465
 
466
+
467
+ ## Job Chain options
468
+
469
+ Options can be passed into the job_chain and delivered to specific jobs tied to models.
470
+ For example: options { roles: { show_inherited: true } } will pass "show_inherited" into the SyncRolesJob.
471
+
472
+ * roles
473
+ * `show_inherited` - this applies to the roles model. If it is set to true we will use the "show_inherited" option when pulling roles from Canvas API.
474
+ "show_inherited" will include things like shadow records. It will also include roles from parent accounts if you are not syncing at the root account.
475
+
476
+ * `global` - See "Global Options"
477
+
466
478
  ## Global Options
467
479
  You can pass in global_options to a job chain. Global options are added to the batch_context and referenced by
468
480
  various internal processes.
data/Rakefile CHANGED
File without changes
File without changes
File without changes
File without changes
data/config/routes.rb CHANGED
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,36 @@
1
+ # <%= autogenerated_migration_warning %>
2
+
3
+ class CreateScores < ActiveRecord::Migration[5.1]
4
+ def change
5
+ create_table :scores do |t|
6
+ t.bigint :canvas_id, null: false
7
+ t.bigint :canvas_enrollment_id, null: false
8
+ t.bigint :canvas_assignment_group_id
9
+ t.bigint :canvas_grading_period_id
10
+ t.float :current_score
11
+ t.float :unposted_current_score
12
+ t.string :workflow_state, default: :active, null: false, limit: 255
13
+ t.float :final_score
14
+ t.boolean :course_score, default: false, null: false
15
+ t.float :unposted_final_score
16
+ t.float :current_points
17
+ t.float :unposted_current_points
18
+ t.float :final_points
19
+ t.float :unposted_final_points
20
+ t.float :override_score
21
+
22
+ t.timestamps
23
+ end
24
+
25
+ add_index :scores, :canvas_id, unique: true
26
+ add_index :scores, :canvas_enrollment_id, unique: true, where: 'course_score'
27
+ add_index :scores, [:canvas_enrollment_id, :canvas_assignment_group_id],
28
+ unique: true,
29
+ where: 'canvas_assignment_group_id IS NOT NULL',
30
+ name: 'index_scores_on_canvas_enrollment_id_and_assignment_group_id'
31
+ add_index :scores, [:canvas_enrollment_id, :canvas_grading_period_id],
32
+ unique: true,
33
+ where: 'canvas_grading_period_id IS NOT NULL',
34
+ name: 'index_scores_on_canvas_enrollment_id_and_grading_period_id'
35
+ end
36
+ end
File without changes
File without changes
File without changes
@@ -0,0 +1,12 @@
1
+ # <%= autogenerated_model_warning %>
2
+
3
+ class Score < ApplicationRecord
4
+ include CanvasSync::Record
5
+
6
+ canvas_sync_features :defaults
7
+
8
+ validates :canvas_id, uniqueness: true, presence: true
9
+ belongs_to :enrollment, primary_key: :canvas_id, foreign_key: :canvas_enrollment_id, optional: true
10
+ belongs_to :assignment_group, primary_key: :canvas_id, foreign_key: :canvas_assignment_group_id, optional: true
11
+ belongs_to :grading_period, primary_key: :canvas_id, foreign_key: :canvas_grading_period_id, optional: true
12
+ 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
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
@@ -8,7 +8,11 @@ module CanvasSync
8
8
  updated_role_ids = []
9
9
  api_client = CanvasSync.get_canvas_sync_client(batch_context)
10
10
  CanvasSync.sync_scope(Account).find_each do |acc|
11
- api_client.list_roles(acc.canvas_id, state: %w[active inactive]).all_pages_each do |role_params|
11
+ api_params = { state: %w[active inactive] }
12
+ if options[:show_inherited]
13
+ api_params[:show_inherited] = true
14
+ end
15
+ api_client.list_roles(acc.canvas_id, api_params).all_pages_each do |role_params|
12
16
  role = update_or_create_model(Role, role_params)
13
17
  updated_role_ids.push(role.id)
14
18
  end
File without changes
File without changes
File without changes
@@ -0,0 +1,18 @@
1
+ module CanvasSync
2
+ module Jobs
3
+ class SyncScoresJob < ReportStarter
4
+ # @param options [Hash]
5
+ def perform(options)
6
+ super(
7
+ "proserv_scores_data_csv",
8
+ merge_report_params(options),
9
+ CanvasSync::Processors::NormalProcessor.to_s,
10
+ {
11
+ klass: 'Score',
12
+ mapping: 'scores'
13
+ },
14
+ )
15
+ end
16
+ end
17
+ end
18
+ end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -900,3 +900,49 @@ rubric_assessments:
900
900
  root_account_id:
901
901
  database_column_name: canvas_root_account_id
902
902
  type: integer
903
+
904
+ scores:
905
+ conflict_id: id
906
+ report_columns:
907
+ id:
908
+ database_column_name: canvas_id
909
+ type: integer
910
+ canvas_enrollment_id:
911
+ database_column_name: canvas_enrollment_id
912
+ type: integer
913
+ canvas_assignment_group_id:
914
+ database_column_name: canvas_assignment_group_id
915
+ type: integer
916
+ canvas_grading_period_id:
917
+ database_column_name: canvas_grading_period_id
918
+ type: integer
919
+ current_score:
920
+ database_column_name: current_score
921
+ type: float
922
+ unposted_current_score:
923
+ database_column_name: unposted_current_score
924
+ type: float
925
+ workflow_state:
926
+ database_column_name: workflow_state
927
+ type: string
928
+ final_score:
929
+ database_column_name: final_score
930
+ type: float
931
+ unposted_final_score:
932
+ database_column_name: unposted_final_score
933
+ type: float
934
+ current_points:
935
+ database_column_name: current_points
936
+ type: float
937
+ unposted_current_points:
938
+ database_column_name: unposted_current_points
939
+ type: float
940
+ final_points:
941
+ database_column_name: final_points
942
+ type: float
943
+ unposted_final_points:
944
+ database_column_name: unposted_final_points
945
+ type: float
946
+ course_score:
947
+ database_column_name: course_score
948
+ type: boolean
File without changes
File without changes
File without changes
File without changes
File without changes