canvas_sync 0.16.5 → 0.17.0.beta5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +49 -137
- data/app/models/canvas_sync/sync_batch.rb +5 -0
- data/db/migrate/20201018210836_create_canvas_sync_sync_batches.rb +11 -0
- data/lib/canvas_sync.rb +35 -97
- data/lib/canvas_sync/importers/bulk_importer.rb +4 -7
- data/lib/canvas_sync/job.rb +4 -10
- data/lib/canvas_sync/job_batches/batch.rb +403 -0
- data/lib/canvas_sync/job_batches/batch_aware_job.rb +62 -0
- data/lib/canvas_sync/job_batches/callback.rb +152 -0
- data/lib/canvas_sync/job_batches/chain_builder.rb +220 -0
- data/lib/canvas_sync/job_batches/context_hash.rb +147 -0
- data/lib/canvas_sync/job_batches/jobs/base_job.rb +7 -0
- data/lib/canvas_sync/job_batches/jobs/concurrent_batch_job.rb +19 -0
- data/lib/canvas_sync/job_batches/jobs/serial_batch_job.rb +75 -0
- data/lib/canvas_sync/job_batches/sidekiq.rb +93 -0
- data/lib/canvas_sync/job_batches/status.rb +83 -0
- data/lib/canvas_sync/jobs/begin_sync_chain_job.rb +35 -0
- data/lib/canvas_sync/jobs/report_checker.rb +3 -6
- data/lib/canvas_sync/jobs/report_processor_job.rb +2 -5
- data/lib/canvas_sync/jobs/report_starter.rb +28 -20
- data/lib/canvas_sync/jobs/sync_accounts_job.rb +3 -5
- data/lib/canvas_sync/jobs/sync_admins_job.rb +2 -4
- data/lib/canvas_sync/jobs/sync_assignment_groups_job.rb +2 -4
- data/lib/canvas_sync/jobs/sync_assignments_job.rb +2 -4
- data/lib/canvas_sync/jobs/sync_context_module_items_job.rb +2 -4
- data/lib/canvas_sync/jobs/sync_context_modules_job.rb +2 -4
- data/lib/canvas_sync/jobs/sync_provisioning_report_job.rb +4 -34
- data/lib/canvas_sync/jobs/sync_roles_job.rb +2 -5
- data/lib/canvas_sync/jobs/sync_simple_table_job.rb +11 -32
- data/lib/canvas_sync/jobs/sync_submissions_job.rb +2 -4
- data/lib/canvas_sync/jobs/sync_terms_job.rb +25 -8
- data/lib/canvas_sync/processors/assignment_groups_processor.rb +2 -3
- data/lib/canvas_sync/processors/assignments_processor.rb +2 -3
- data/lib/canvas_sync/processors/context_module_items_processor.rb +2 -3
- data/lib/canvas_sync/processors/context_modules_processor.rb +2 -3
- data/lib/canvas_sync/processors/normal_processor.rb +1 -2
- data/lib/canvas_sync/processors/provisioning_report_processor.rb +2 -10
- data/lib/canvas_sync/processors/submissions_processor.rb +2 -3
- data/lib/canvas_sync/version.rb +1 -1
- data/spec/canvas_sync/canvas_sync_spec.rb +136 -153
- data/spec/canvas_sync/jobs/job_spec.rb +9 -17
- data/spec/canvas_sync/jobs/report_checker_spec.rb +1 -3
- data/spec/canvas_sync/jobs/report_processor_job_spec.rb +0 -3
- data/spec/canvas_sync/jobs/report_starter_spec.rb +19 -28
- data/spec/canvas_sync/jobs/sync_admins_job_spec.rb +1 -4
- data/spec/canvas_sync/jobs/sync_assignment_groups_job_spec.rb +2 -1
- data/spec/canvas_sync/jobs/sync_assignments_job_spec.rb +3 -2
- data/spec/canvas_sync/jobs/sync_context_module_items_job_spec.rb +3 -2
- data/spec/canvas_sync/jobs/sync_context_modules_job_spec.rb +3 -2
- data/spec/canvas_sync/jobs/sync_provisioning_report_job_spec.rb +3 -35
- data/spec/canvas_sync/jobs/sync_roles_job_spec.rb +1 -4
- data/spec/canvas_sync/jobs/sync_simple_table_job_spec.rb +5 -12
- data/spec/canvas_sync/jobs/sync_submissions_job_spec.rb +2 -1
- data/spec/canvas_sync/jobs/sync_terms_job_spec.rb +1 -4
- data/spec/dummy/config/environments/test.rb +2 -0
- data/spec/dummy/db/schema.rb +9 -1
- data/spec/job_batching/batch_aware_job_spec.rb +100 -0
- data/spec/job_batching/batch_spec.rb +372 -0
- data/spec/job_batching/callback_spec.rb +38 -0
- data/spec/job_batching/flow_spec.rb +88 -0
- data/spec/job_batching/integration/integration.rb +57 -0
- data/spec/job_batching/integration/nested.rb +88 -0
- data/spec/job_batching/integration/simple.rb +47 -0
- data/spec/job_batching/integration/workflow.rb +134 -0
- data/spec/job_batching/integration_helper.rb +48 -0
- data/spec/job_batching/sidekiq_spec.rb +124 -0
- data/spec/job_batching/status_spec.rb +92 -0
- data/spec/job_batching/support/base_job.rb +14 -0
- data/spec/job_batching/support/sample_callback.rb +2 -0
- data/spec/spec_helper.rb +17 -0
- metadata +85 -8
- data/lib/canvas_sync/job_chain.rb +0 -102
- data/lib/canvas_sync/jobs/fork_gather.rb +0 -74
- data/spec/canvas_sync/jobs/fork_gather_spec.rb +0 -73
@@ -7,18 +7,16 @@ module CanvasSync
|
|
7
7
|
# running provisioning by term we sync users first so we don't duplicate
|
8
8
|
# the work of syncing all accounts for each term.
|
9
9
|
#
|
10
|
-
# @param job_chain [Hash]
|
11
10
|
# @param options [Hash]
|
12
|
-
def perform(
|
11
|
+
def perform(options)
|
13
12
|
unless options[:root_account] == false
|
14
|
-
acc_params = CanvasSync.get_canvas_sync_client(
|
13
|
+
acc_params = CanvasSync.get_canvas_sync_client(batch_context).account("self")
|
15
14
|
update_or_create_model(Account, acc_params)
|
16
15
|
end
|
17
16
|
|
18
17
|
super(
|
19
|
-
job_chain,
|
20
18
|
"proservices_provisioning_csv",
|
21
|
-
merge_report_params(
|
19
|
+
merge_report_params(options, {
|
22
20
|
accounts: true,
|
23
21
|
include_deleted: true,
|
24
22
|
}, term_scope: false),
|
@@ -4,11 +4,10 @@ module CanvasSync
|
|
4
4
|
# Syncs Admins using the Canvas API
|
5
5
|
#
|
6
6
|
#
|
7
|
-
# @param job_chain [Hash]
|
8
7
|
# @param options [Hash]
|
9
|
-
def perform(
|
8
|
+
def perform(options)
|
10
9
|
updated_admin_ids = []
|
11
|
-
api_client = CanvasSync.get_canvas_sync_client(
|
10
|
+
api_client = CanvasSync.get_canvas_sync_client(batch_context)
|
12
11
|
CanvasSync.sync_scope(Account).find_each do |acc|
|
13
12
|
api_client.account_admins(acc.canvas_id).all_pages_each do |admin_params|
|
14
13
|
admin_params[:account_id] = acc.canvas_id
|
@@ -17,7 +16,6 @@ module CanvasSync
|
|
17
16
|
end
|
18
17
|
end
|
19
18
|
Admin.where.not(id: updated_admin_ids).update_all(workflow_state: 'inactive')
|
20
|
-
CanvasSync.invoke_next(job_chain)
|
21
19
|
end
|
22
20
|
end
|
23
21
|
end
|
@@ -6,13 +6,11 @@ module CanvasSync
|
|
6
6
|
# Starts a report processor for the assignment_groups report
|
7
7
|
# (the proserv_assignment_group_export_csv report must be enabled)
|
8
8
|
#
|
9
|
-
# @param job_chain [Hash]
|
10
9
|
# @param options [Hash]
|
11
|
-
def perform(
|
10
|
+
def perform(options)
|
12
11
|
super(
|
13
|
-
job_chain,
|
14
12
|
"proserv_assignment_group_export_csv",
|
15
|
-
merge_report_params(
|
13
|
+
merge_report_params(options),
|
16
14
|
CanvasSync::Processors::AssignmentGroupsProcessor.to_s,
|
17
15
|
{},
|
18
16
|
)
|
@@ -6,13 +6,11 @@ module CanvasSync
|
|
6
6
|
# Starts a report processor for the assignment report
|
7
7
|
# (the proserv_assignment_export_csv report must be enabled)
|
8
8
|
#
|
9
|
-
# @param job_chain [Hash]
|
10
9
|
# @param options [Hash]
|
11
|
-
def perform(
|
10
|
+
def perform(options)
|
12
11
|
super(
|
13
|
-
job_chain,
|
14
12
|
"proserv_assignment_export_csv",
|
15
|
-
merge_report_params(
|
13
|
+
merge_report_params(options),
|
16
14
|
CanvasSync::Processors::AssignmentsProcessor.to_s,
|
17
15
|
{},
|
18
16
|
)
|
@@ -6,13 +6,11 @@ module CanvasSync
|
|
6
6
|
# Starts a report processor for the context modules report
|
7
7
|
# (the proserv_context_module_items_csv report must be enabled)
|
8
8
|
#
|
9
|
-
# @param job_chain [Hash]
|
10
9
|
# @param options [Hash]
|
11
|
-
def perform(
|
10
|
+
def perform(options)
|
12
11
|
super(
|
13
|
-
job_chain,
|
14
12
|
"proserv_context_module_items_csv",
|
15
|
-
merge_report_params(
|
13
|
+
merge_report_params(options),
|
16
14
|
CanvasSync::Processors::ContextModuleItemsProcessor.to_s,
|
17
15
|
{},
|
18
16
|
)
|
@@ -6,13 +6,11 @@ module CanvasSync
|
|
6
6
|
# Starts a report processor for the context modules report
|
7
7
|
# (the proserv_context_modules_csv report must be enabled)
|
8
8
|
#
|
9
|
-
# @param job_chain [Hash]
|
10
9
|
# @param options [Hash]
|
11
|
-
def perform(
|
10
|
+
def perform(options)
|
12
11
|
super(
|
13
|
-
job_chain,
|
14
12
|
"proserv_context_modules_csv",
|
15
|
-
merge_report_params(
|
13
|
+
merge_report_params(options),
|
16
14
|
CanvasSync::Processors::ContextModulesProcessor.to_s,
|
17
15
|
{},
|
18
16
|
)
|
@@ -2,40 +2,14 @@ module CanvasSync
|
|
2
2
|
module Jobs
|
3
3
|
# ActiveJob class that starts a Canvas provisioning report
|
4
4
|
class SyncProvisioningReportJob < CanvasSync::Job
|
5
|
-
|
6
|
-
|
7
|
-
# will be started for each term in that scope. :models should be an array of
|
8
|
-
# models to sync.
|
9
|
-
def perform(job_chain, options)
|
10
|
-
if options[:term_scope]
|
11
|
-
sub_reports = CanvasSync.fork(@job_log, job_chain, keys: [:canvas_term_id]) do |fork_template|
|
12
|
-
Term.send(options[:term_scope]).find_each.map do |term|
|
13
|
-
fork = fork_template.duplicate
|
14
|
-
# Deep copy the job_chain so each report gets the correct term id passed into
|
15
|
-
# its options with no side effects
|
16
|
-
term_id = get_term_id(term)
|
17
|
-
fork[:global_options][:canvas_term_id] = term_id
|
18
|
-
{
|
19
|
-
job_chain: fork.serialize,
|
20
|
-
params: report_params(options, term_id),
|
21
|
-
options: options,
|
22
|
-
}
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
sub_reports.each do |r|
|
27
|
-
start_report(r[:params], r[:job_chain], r[:options])
|
28
|
-
end
|
29
|
-
else
|
30
|
-
start_report(report_params(options), job_chain, options)
|
31
|
-
end
|
5
|
+
def perform(options)
|
6
|
+
start_report(report_params(options), options)
|
32
7
|
end
|
33
8
|
|
34
9
|
protected
|
35
10
|
|
36
|
-
def start_report(report_params,
|
11
|
+
def start_report(report_params, options)
|
37
12
|
CanvasSync::Jobs::ReportStarter.perform_later(
|
38
|
-
job_chain,
|
39
13
|
"proservices_provisioning_csv",
|
40
14
|
report_params,
|
41
15
|
CanvasSync::Processors::ProvisioningReportProcessor.to_s,
|
@@ -43,7 +17,7 @@ module CanvasSync
|
|
43
17
|
)
|
44
18
|
end
|
45
19
|
|
46
|
-
def report_params(options, canvas_term_id=
|
20
|
+
def report_params(options, canvas_term_id = options[:canvas_term_id] || batch_context[:canvas_term_id])
|
47
21
|
params = {
|
48
22
|
include_deleted: true,
|
49
23
|
}
|
@@ -60,10 +34,6 @@ module CanvasSync
|
|
60
34
|
|
61
35
|
{ parameters: params }
|
62
36
|
end
|
63
|
-
|
64
|
-
def get_term_id(term)
|
65
|
-
term.try(:canvas_id) || term.canvas_term_id
|
66
|
-
end
|
67
37
|
end
|
68
38
|
end
|
69
39
|
end
|
@@ -3,12 +3,10 @@ module CanvasSync
|
|
3
3
|
class SyncRolesJob < CanvasSync::Job
|
4
4
|
# Syncs Roles using the Canvas API
|
5
5
|
#
|
6
|
-
#
|
7
|
-
# @param job_chain [Hash]
|
8
6
|
# @param options [Hash]
|
9
|
-
def perform(
|
7
|
+
def perform(options)
|
10
8
|
updated_role_ids = []
|
11
|
-
api_client = CanvasSync.get_canvas_sync_client(
|
9
|
+
api_client = CanvasSync.get_canvas_sync_client(batch_context)
|
12
10
|
CanvasSync.sync_scope(Account).find_each do |acc|
|
13
11
|
api_client.list_roles(acc.canvas_id, state: %w[active inactive]).all_pages_each do |role_params|
|
14
12
|
role = update_or_create_model(Role, role_params)
|
@@ -16,7 +14,6 @@ module CanvasSync
|
|
16
14
|
end
|
17
15
|
end
|
18
16
|
Role.where.not(id: updated_role_ids).update_all(workflow_state: 'inactive')
|
19
|
-
CanvasSync.invoke_next(job_chain)
|
20
17
|
end
|
21
18
|
end
|
22
19
|
end
|
@@ -5,36 +5,19 @@ module CanvasSync
|
|
5
5
|
# Starts a report processor for the specified report
|
6
6
|
# (the specified report must be enabled)
|
7
7
|
#
|
8
|
-
# @param
|
9
|
-
#
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
term_id = get_term_id(term)
|
18
|
-
fork[:global_options][:canvas_term_id] = term_id
|
19
|
-
{
|
20
|
-
job_chain: fork.serialize,
|
21
|
-
params: report_params(options, term_id),
|
22
|
-
options: options,
|
23
|
-
}
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
sub_reports.each do |r|
|
28
|
-
start_report(r[:params], r[:job_chain], r[:options])
|
29
|
-
end
|
30
|
-
else
|
31
|
-
start_report(report_params(options), job_chain, options)
|
32
|
-
end
|
8
|
+
# @param options [Hash] {
|
9
|
+
# report_name: "", # Name of the report in the Canvas API
|
10
|
+
# model: , # Model to map the report results as
|
11
|
+
# mapping: {} # Mapping to describe how to convert the report to the Model,
|
12
|
+
# klass: ,
|
13
|
+
# params: {}, # List of params to pass to the report
|
14
|
+
# }
|
15
|
+
def perform(options)
|
16
|
+
start_report(report_params(options), options)
|
33
17
|
end
|
34
18
|
|
35
|
-
def start_report(params,
|
19
|
+
def start_report(params, options)
|
36
20
|
CanvasSync::Jobs::ReportStarter.perform_later(
|
37
|
-
job_chain,
|
38
21
|
options[:report_name],
|
39
22
|
params,
|
40
23
|
CanvasSync::Processors::NormalProcessor.to_s,
|
@@ -42,15 +25,11 @@ module CanvasSync
|
|
42
25
|
)
|
43
26
|
end
|
44
27
|
|
45
|
-
def report_params(options, canvas_term_id=
|
28
|
+
def report_params(options, canvas_term_id = options[:canvas_term_id] || batch_context[:canvas_term_id])
|
46
29
|
params = options[:params] || {}
|
47
30
|
params["parameters[enrollment_term_id]"] = canvas_term_id if canvas_term_id
|
48
31
|
params
|
49
32
|
end
|
50
|
-
|
51
|
-
def get_term_id(term)
|
52
|
-
term.try(:canvas_id) || term.canvas_term_id
|
53
|
-
end
|
54
33
|
end
|
55
34
|
end
|
56
35
|
end
|
@@ -6,13 +6,11 @@ module CanvasSync
|
|
6
6
|
# Starts a report processor for the submission report
|
7
7
|
# (the proserv_student_submissions_csv report must be enabled)
|
8
8
|
#
|
9
|
-
# @param job_chain [Hash]
|
10
9
|
# @param options [Hash]
|
11
|
-
def perform(
|
10
|
+
def perform(options)
|
12
11
|
super(
|
13
|
-
job_chain,
|
14
12
|
"proserv_student_submissions_csv",
|
15
|
-
merge_report_params(
|
13
|
+
merge_report_params(options, { include_all: options[:include_all] }, {}),
|
16
14
|
CanvasSync::Processors::SubmissionsProcessor.to_s,
|
17
15
|
{},
|
18
16
|
)
|
@@ -5,16 +5,17 @@ module CanvasSync
|
|
5
5
|
#
|
6
6
|
# Terms are pre-synced so that provisioning reports can be scoped to term.
|
7
7
|
#
|
8
|
-
# @param
|
9
|
-
#
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
# @param options [Hash] If options contains a :term_scope a seperate provisioning report
|
9
|
+
# will be started for each term in that scope. :models should be an array of
|
10
|
+
# models to sync.
|
11
|
+
def perform(options)
|
12
|
+
CanvasSync.get_canvas_sync_client(batch_context).terms("self").all_pages!.each do |term_params|
|
13
|
+
if account_id = batch_context[:account_id]
|
13
14
|
# These branches are primarily to support Legacy apps
|
14
15
|
if Term.respond_to?(:create_or_update) && Term.method(:create_or_update).arity.abs == 2
|
15
|
-
Term.create_or_update(term_params,
|
16
|
+
Term.create_or_update(term_params, account_id)
|
16
17
|
else
|
17
|
-
term_params[:account_id] |=
|
18
|
+
term_params[:account_id] |= account_id
|
18
19
|
update_or_create_model(Term, term_params)
|
19
20
|
end
|
20
21
|
else
|
@@ -22,7 +23,23 @@ module CanvasSync
|
|
22
23
|
end
|
23
24
|
end
|
24
25
|
|
25
|
-
|
26
|
+
if (jobs = options[:sub_jobs]).present?
|
27
|
+
context = options[:context] || {}
|
28
|
+
if options[:term_scope]
|
29
|
+
Term.send(options[:term_scope]).find_each.map do |term|
|
30
|
+
local_context = context.merge(canvas_term_id: get_term_id(term))
|
31
|
+
JobBatches::ConcurrentBatchJob.perform_now(jobs, context: local_context)
|
32
|
+
end
|
33
|
+
else
|
34
|
+
JobBatches::ConcurrentBatchJob.perform_now(jobs, context: context)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
protected
|
40
|
+
|
41
|
+
def get_term_id(term)
|
42
|
+
term.try(:canvas_id) || term.canvas_term_id
|
26
43
|
end
|
27
44
|
end
|
28
45
|
end
|
@@ -8,16 +8,15 @@ module CanvasSync
|
|
8
8
|
# @param options [Hash]
|
9
9
|
class AssignmentGroupsProcessor < ReportProcessor
|
10
10
|
def self.process(report_file_path, _options, report_id)
|
11
|
-
new(report_file_path
|
11
|
+
new(report_file_path)
|
12
12
|
end
|
13
13
|
|
14
|
-
def initialize(report_file_path
|
14
|
+
def initialize(report_file_path)
|
15
15
|
CanvasSync::Importers::BulkImporter.import(
|
16
16
|
report_file_path,
|
17
17
|
mapping[:assignment_groups][:report_columns],
|
18
18
|
AssignmentGroup,
|
19
19
|
mapping[:assignment_groups][:conflict_target].to_sym,
|
20
|
-
import_args: options
|
21
20
|
)
|
22
21
|
end
|
23
22
|
end
|
@@ -8,16 +8,15 @@ module CanvasSync
|
|
8
8
|
# @param options [Hash]
|
9
9
|
class AssignmentsProcessor < ReportProcessor
|
10
10
|
def self.process(report_file_path, _options, report_id)
|
11
|
-
new(report_file_path
|
11
|
+
new(report_file_path)
|
12
12
|
end
|
13
13
|
|
14
|
-
def initialize(report_file_path
|
14
|
+
def initialize(report_file_path)
|
15
15
|
CanvasSync::Importers::BulkImporter.import(
|
16
16
|
report_file_path,
|
17
17
|
mapping[:assignments][:report_columns],
|
18
18
|
Assignment,
|
19
19
|
mapping[:assignments][:conflict_target].to_sym,
|
20
|
-
import_args: options
|
21
20
|
)
|
22
21
|
end
|
23
22
|
end
|
@@ -8,16 +8,15 @@ module CanvasSync
|
|
8
8
|
# @param options [Hash]
|
9
9
|
class ContextModuleItemsProcessor < ReportProcessor
|
10
10
|
def self.process(report_file_path, _options, report_id)
|
11
|
-
new(report_file_path
|
11
|
+
new(report_file_path)
|
12
12
|
end
|
13
13
|
|
14
|
-
def initialize(report_file_path
|
14
|
+
def initialize(report_file_path)
|
15
15
|
CanvasSync::Importers::BulkImporter.import(
|
16
16
|
report_file_path,
|
17
17
|
mapping[:context_module_items][:report_columns],
|
18
18
|
ContextModuleItem,
|
19
19
|
mapping[:context_module_items][:conflict_target].to_sym,
|
20
|
-
import_args: options
|
21
20
|
)
|
22
21
|
end
|
23
22
|
end
|
@@ -8,16 +8,15 @@ module CanvasSync
|
|
8
8
|
# @param options [Hash]
|
9
9
|
class ContextModulesProcessor < ReportProcessor
|
10
10
|
def self.process(report_file_path, _options, report_id)
|
11
|
-
new(report_file_path
|
11
|
+
new(report_file_path)
|
12
12
|
end
|
13
13
|
|
14
|
-
def initialize(report_file_path
|
14
|
+
def initialize(report_file_path)
|
15
15
|
CanvasSync::Importers::BulkImporter.import(
|
16
16
|
report_file_path,
|
17
17
|
mapping[:context_modules][:report_columns],
|
18
18
|
ContextModule,
|
19
19
|
mapping[:context_modules][:conflict_target].to_sym,
|
20
|
-
import_args: options
|
21
20
|
)
|
22
21
|
end
|
23
22
|
end
|
@@ -18,8 +18,7 @@ module CanvasSync
|
|
18
18
|
report_file_path,
|
19
19
|
mapping[options[:mapping].to_sym][:report_columns],
|
20
20
|
options[:klass].constantize,
|
21
|
-
conflict_target ? conflict_target.to_sym : conflict_target
|
22
|
-
import_args: options
|
21
|
+
conflict_target ? conflict_target.to_sym : conflict_target
|
23
22
|
)
|
24
23
|
end
|
25
24
|
end
|
@@ -21,6 +21,7 @@ module CanvasSync
|
|
21
21
|
|
22
22
|
def initialize(report_file_path, options) # rubocop:disable Metrics/AbcSize
|
23
23
|
@options = options
|
24
|
+
|
24
25
|
if options[:models].length == 1
|
25
26
|
run_import(options[:models][0], report_file_path)
|
26
27
|
else
|
@@ -74,7 +75,6 @@ module CanvasSync
|
|
74
75
|
mapping[:users][:report_columns],
|
75
76
|
User,
|
76
77
|
mapping[:users][:conflict_target].to_sym,
|
77
|
-
import_args: @options
|
78
78
|
)
|
79
79
|
end
|
80
80
|
|
@@ -84,7 +84,6 @@ module CanvasSync
|
|
84
84
|
mapping[:pseudonyms][:report_columns],
|
85
85
|
Pseudonym,
|
86
86
|
mapping[:pseudonyms][:conflict_target].to_sym,
|
87
|
-
import_args: @options
|
88
87
|
)
|
89
88
|
end
|
90
89
|
|
@@ -93,8 +92,7 @@ module CanvasSync
|
|
93
92
|
report_file_path,
|
94
93
|
mapping[:accounts][:report_columns],
|
95
94
|
Account,
|
96
|
-
mapping[:accounts][:conflict_target].to_sym
|
97
|
-
import_args: @options
|
95
|
+
mapping[:accounts][:conflict_target].to_sym
|
98
96
|
)
|
99
97
|
end
|
100
98
|
|
@@ -104,7 +102,6 @@ module CanvasSync
|
|
104
102
|
mapping[:courses][:report_columns],
|
105
103
|
Course,
|
106
104
|
mapping[:courses][:conflict_target].to_sym,
|
107
|
-
import_args: @options
|
108
105
|
)
|
109
106
|
end
|
110
107
|
|
@@ -114,7 +111,6 @@ module CanvasSync
|
|
114
111
|
mapping[:enrollments][:report_columns],
|
115
112
|
Enrollment,
|
116
113
|
mapping[:enrollments][:conflict_target].to_sym,
|
117
|
-
import_args: @options
|
118
114
|
)
|
119
115
|
end
|
120
116
|
|
@@ -124,7 +120,6 @@ module CanvasSync
|
|
124
120
|
mapping[:sections][:report_columns],
|
125
121
|
Section,
|
126
122
|
mapping[:sections][:conflict_target].to_sym,
|
127
|
-
import_args: @options
|
128
123
|
)
|
129
124
|
end
|
130
125
|
|
@@ -134,7 +129,6 @@ module CanvasSync
|
|
134
129
|
mapping[:xlist][:report_columns],
|
135
130
|
Section,
|
136
131
|
mapping[:xlist][:conflict_target].to_sym,
|
137
|
-
import_args: @options
|
138
132
|
)
|
139
133
|
end
|
140
134
|
|
@@ -144,7 +138,6 @@ module CanvasSync
|
|
144
138
|
mapping[:groups][:report_columns],
|
145
139
|
Group,
|
146
140
|
mapping[:groups][:conflict_target].to_sym,
|
147
|
-
import_args: @options
|
148
141
|
)
|
149
142
|
end
|
150
143
|
|
@@ -155,7 +148,6 @@ module CanvasSync
|
|
155
148
|
mapping[:group_memberships][:report_columns],
|
156
149
|
GroupMembership,
|
157
150
|
mapping[:group_memberships][:conflict_target].to_sym,
|
158
|
-
import_args: @options
|
159
151
|
)
|
160
152
|
end
|
161
153
|
end
|