From 961aad6d3bb5358f14304a7c6e0b5b54433f6020 Mon Sep 17 00:00:00 2001 From: Bracken Mosbacker Date: Mon, 2 Apr 2012 16:38:05 -0600 Subject: [PATCH] properly handle selective external migration imports The selective imports mostly worked before, but if a given section was completely unchecked the previous code would import it anyway. This fixes that and makes all the decision code in one place and easy to test. Test Plan: * Import a content package and only choose certain items * Only the items you chose should be imported closes #5528 Change-Id: Ia6c0c1f5f9a44497053733101140cc74d6239129 Reviewed-on: https://gerrit.instructure.com/9799 Tested-by: Hudson Reviewed-by: Cody Cutrer --- app/models/assignment.rb | 2 +- app/models/assignment_group.rb | 3 +- app/models/attachment.rb | 3 +- app/models/calendar_event.rb | 3 +- app/models/content_migration.rb | 20 +++++- app/models/context_external_tool.rb | 3 +- app/models/context_module.rb | 3 +- app/models/discussion_topic.rb | 6 +- app/models/group.rb | 3 +- app/models/quiz.rb | 3 +- app/models/rubric.rb | 3 +- app/models/wiki_page.rb | 1 + lib/cc/importer/cc_worker.rb | 6 +- spec/fixtures/migration/cc_ark_test.zip | Bin 0 -> 95279 bytes .../common_cartridge_converter_spec.rb | 1 + .../importer/import_from_migration_spec.rb | 1 + spec/models/content_migration_spec.rb | 46 +++++++++++++ spec/selenium/common.rb | 3 +- spec/selenium/content_migrations_spec.rb | 64 +++++++++++++----- .../qti_exporter/lib/workers/qti_worker.rb | 2 +- 20 files changed, 132 insertions(+), 44 deletions(-) create mode 100644 spec/fixtures/migration/cc_ark_test.zip diff --git a/app/models/assignment.rb b/app/models/assignment.rb index 4e02ce86967..889554c3f1b 100644 --- a/app/models/assignment.rb +++ b/app/models/assignment.rb @@ -1487,7 +1487,7 @@ class Assignment < ActiveRecord::Base assignments = data['assignments'] ? data['assignments']: [] to_import = migration.to_import 'assignments' assignments.each do |assign| - if assign['migration_id'] && (!to_import || to_import[assign['migration_id']]) + if migration.import_object?("assignments", assign['migration_id']) begin import_from_migration(assign, migration.context) rescue diff --git a/app/models/assignment_group.rb b/app/models/assignment_group.rb index e1b0ba2c0ff..6d5a61bfc8d 100644 --- a/app/models/assignment_group.rb +++ b/app/models/assignment_group.rb @@ -183,9 +183,8 @@ class AssignmentGroup < ActiveRecord::Base def self.process_migration(data, migration) groups = data['assignment_groups'] ? data['assignment_groups']: [] - to_import = migration.to_import 'assignment_groups' groups.each do |group| - if group['migration_id'] && (!to_import || to_import[group['migration_id']]) + if migration.import_object?("assignment_groups", group['migration_id']) begin import_from_migration(group, migration.context) rescue diff --git a/app/models/attachment.rb b/app/models/attachment.rb index 108ea8fd445..7bd3e574d0e 100644 --- a/app/models/attachment.rb +++ b/app/models/attachment.rb @@ -179,9 +179,8 @@ class Attachment < ActiveRecord::Base def self.process_migration(data, migration) attachments = data['file_map'] ? data['file_map']: {} # TODO i18n - to_import = migration.to_import 'files' attachments.values.each do |att| - if !att['is_folder'] && att['migration_id'] && (!to_import || to_import[att['migration_id']]) + if !att['is_folder'] && migration.import_object?("files", att['migration_id']) begin import_from_migration(att, migration.context) rescue diff --git a/app/models/calendar_event.rb b/app/models/calendar_event.rb index 1e4b6711d84..515cc541312 100644 --- a/app/models/calendar_event.rb +++ b/app/models/calendar_event.rb @@ -419,9 +419,8 @@ class CalendarEvent < ActiveRecord::Base def self.process_migration(data, migration) events = data['calendar_events'] ? data['calendar_events']: [] - to_import = migration.to_import 'events' events.each do |event| - if event['migration_id'] && (!to_import || to_import[event['migration_id']]) + if migration.import_object?("events", event['migration_id']) begin import_from_migration(event, migration.context) rescue diff --git a/app/models/content_migration.rb b/app/models/content_migration.rb index db1d13de89c..fd4a72b3fbb 100644 --- a/app/models/content_migration.rb +++ b/app/models/content_migration.rb @@ -222,7 +222,23 @@ class ContentMigration < ActiveRecord::Base end def to_import(val) - migration_settings[:migration_ids_to_import][:copy][val] rescue nil + migration_settings[:migration_ids_to_import] && migration_settings[:migration_ids_to_import][:copy] && migration_settings[:migration_ids_to_import][:copy][val] + end + + def import_object?(asset_type, mig_id) + return false unless mig_id + return true unless migration_settings[:migration_ids_to_import] && migration_settings[:migration_ids_to_import][:copy] && migration_settings[:migration_ids_to_import][:copy].length > 0 + return true if is_set?(to_import(:everything)) + + return true if is_set?(to_import("all_#{asset_type}")) + + return false unless to_import(asset_type) + + is_set?(to_import(asset_type)[mig_id]) + end + + def is_set?(option) + Canvas::Plugin::value_to_boolean option end def import_content @@ -295,6 +311,8 @@ class ContentMigration < ActiveRecord::Base if ce.workflow_state == 'exported_for_course_copy' # use the exported attachment as the import archive self.attachment = ce.attachment + migration_settings[:migration_ids_to_import] ||= {:copy=>{}} + migration_settings[:migration_ids_to_import][:copy][:everything] = true self.save worker = Canvas::Migration::Worker::CCWorker.new worker.migration_id = self.id diff --git a/app/models/context_external_tool.rb b/app/models/context_external_tool.rb index 5dac2c89f86..0ed15fd881b 100644 --- a/app/models/context_external_tool.rb +++ b/app/models/context_external_tool.rb @@ -354,9 +354,8 @@ class ContextExternalTool < ActiveRecord::Base def self.process_migration(data, migration) tools = data['external_tools'] ? data['external_tools']: [] - to_import = migration.to_import 'external_tools' tools.each do |tool| - if tool['migration_id'] && (!to_import || to_import[tool['migration_id']]) + if migration.import_object?("external_tools", tool['migration_id']) item = import_from_migration(tool, migration.context) if item.consumer_key == 'fake' || item.shared_secret == 'fake' migration.add_warning(t('external_tool_attention_needed', 'The security parameters for the external tool "%{tool_name}" need to be set in Course Settings.', :tool_name => item.name)) diff --git a/app/models/context_module.rb b/app/models/context_module.rb index 4ee18f1d015..c033dc343f9 100644 --- a/app/models/context_module.rb +++ b/app/models/context_module.rb @@ -646,9 +646,8 @@ class ContextModule < ActiveRecord::Base def self.process_migration(data, migration) modules = data['modules'] ? data['modules'] : [] - to_import = migration.to_import 'modules' modules.each do |mod| - if mod['migration_id'] && (!to_import || to_import[mod['migration_id']]) + if migration.import_object?("modules", mod['migration_id']) begin import_from_migration(mod, migration.context) rescue diff --git a/app/models/discussion_topic.rb b/app/models/discussion_topic.rb index 25138127d96..bb740d8f7e4 100644 --- a/app/models/discussion_topic.rb +++ b/app/models/discussion_topic.rb @@ -652,9 +652,8 @@ class DiscussionTopic < ActiveRecord::Base def self.process_migration(data, migration) announcements = data['announcements'] ? data['announcements']: [] - to_import = migration.to_import 'announcements' announcements.each do |event| - if event['migration_id'] && (!to_import || to_import[event['migration_id']]) + if migration.import_object?("announcements", event['migration_id']) event[:type] = 'announcement' begin import_from_migration(event, migration.context) @@ -665,13 +664,12 @@ class DiscussionTopic < ActiveRecord::Base end topics = data['discussion_topics'] ? data['discussion_topics']: [] - topics_to_import = migration.to_import 'topics' topic_entries_to_import = migration.to_import 'topic_entries' topics.each do |topic| context = Group.find_by_context_id_and_context_type_and_migration_id(migration.context.id, migration.context.class.to_s, topic['group_id']) if topic['group_id'] context ||= migration.context if context - if topic['migration_id'] && (!topics_to_import || topics_to_import[topic['migration_id']]) + if migration.import_object?("topics", topic['migration_id']) begin import_from_migration(topic.merge({:topic_entries_to_import => topic_entries_to_import}), context) rescue diff --git a/app/models/group.rb b/app/models/group.rb index 5d3bc652193..c334d0eaa87 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -377,9 +377,8 @@ class Group < ActiveRecord::Base def self.process_migration(data, migration) groups = data['groups'] ? data['groups']: [] - to_import = migration.to_import 'groups' groups.each do |group| - if group['migration_id'] && (!to_import || to_import[group['migration_id']]) + if migration.import_object?("groups", group['migration_id']) begin import_from_migration(group, migration.context) rescue diff --git a/app/models/quiz.rb b/app/models/quiz.rb index 506d3344bca..8787366b285 100644 --- a/app/models/quiz.rb +++ b/app/models/quiz.rb @@ -1085,10 +1085,9 @@ class Quiz < ActiveRecord::Base def self.process_migration(data, migration, question_data) assessments = data['assessments'] ? data['assessments']['assessments'] : [] - to_import = migration.to_import 'quizzes' assessments.each do |assessment| migration_id = assessment['migration_id'] || assessment['assessment_id'] - if migration_id && (!to_import || to_import[migration_id]) + if migration.import_object?("quizzes", migration_id) allow_update = false # allow update if we find an existing item based on this migration setting if item_id = migration.migration_settings[:quiz_id_to_update] diff --git a/app/models/rubric.rb b/app/models/rubric.rb index 6f843b79fce..389576a815e 100644 --- a/app/models/rubric.rb +++ b/app/models/rubric.rb @@ -264,9 +264,8 @@ class Rubric < ActiveRecord::Base def self.process_migration(data, migration) rubrics = data['rubrics'] ? data['rubrics']: [] - to_import = migration.to_import 'rubrics' rubrics.each do |rubric| - if rubric['migration_id'] && (!to_import || to_import[rubric['migration_id']]) + if migration.import_object?("rubrics", rubric['migration_id']) begin import_from_migration(rubric, migration.context) rescue diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb index c57e14c5246..e523a9431f5 100644 --- a/app/models/wiki_page.rb +++ b/app/models/wiki_page.rb @@ -390,6 +390,7 @@ class WikiPage < ActiveRecord::Base def self.process_migration(data, migration) wikis = data['wikis'] ? data['wikis']: [] wikis.each do |wiki| + next unless migration.import_object?("wikis", wiki['migration_id']) begin import_from_migration(wiki, migration.context) if wiki rescue diff --git a/lib/cc/importer/cc_worker.rb b/lib/cc/importer/cc_worker.rb index fca7730d241..df11b7114a8 100644 --- a/lib/cc/importer/cc_worker.rb +++ b/lib/cc/importer/cc_worker.rb @@ -45,10 +45,8 @@ module Canvas::Migration end cm.migration_settings[:worker_class] = converter_class.name - if cm.migration_settings[:migration_ids_to_import] && cm.migration_settings[:migration_ids_to_import][:copy] - cm.migration_settings[:migration_ids_to_import][:copy][:assessment_questions] = true - else - cm.migration_settings[:migration_ids_to_import] = {:copy=>{:assessment_questions=>true}} + if !cm.migration_settings[:migration_ids_to_import] || !cm.migration_settings[:migration_ids_to_import][:copy] + cm.migration_settings[:migration_ids_to_import] = {:copy=>{:everything => true}} end cm.workflow_state = :exported cm.progress = 0 diff --git a/spec/fixtures/migration/cc_ark_test.zip b/spec/fixtures/migration/cc_ark_test.zip new file mode 100644 index 0000000000000000000000000000000000000000..9e7eb01b0e5b4639350032bc3b0ce392b8ec74ba GIT binary patch literal 95279 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 $;(dK44qzy7_qj^TBa1Let z{d(Srt8FZPoaNbCzes202L}7%%(eg9;T#T#CH#weQgF{GaO=M0$4J~T3IbmUM`4Zi z@vjHM_!f}uv$n2yTYVNQ*xy|-i|nJzC)YMWb(cw#revBYn5OY`HYU1)HIgIT0*rkM zo`_$}C9((}xz%A!vVCo#`YUiJhk^sUbT65L0V98Vf{2Fr zal&JK0&LWZBUuwKi#-Ea21vBYx$j01wS4Jzb^N`_Lgvff@Ev0LfU8th2D*!j@HqksZ4h{3gc{?Adhs9WU-Pt%hP z*bJ}=)Pb5FL062oAtR=e6Ek0<BC+PzrvGCEd_8$xH%w5BhC+_aLix-`P%_mt7MM z4&8)Wq%n>mnwCG)*0l4j{*J6X;lsoRZLEq3yb^2geM9m{5jVY)w4Qn>OZs*OXfD2BKi}(4omh6%YN2vVhD|yqY>G^{STlY6@TCh2t;XATF`|Mc!*g*p$)^zV<*K7LT4kI>eM7U z)!0>~TqW{{bSwJArPgV8kbDzrPRSW2O3p+uvO-GD!J#H>e$FXTUEvrBHTNRe3)vzmH~QtM4( zWYRON9VTn6{5eASW;!Z`L=;T-I2BHH<1EYvm^<%C<+w*jjilr}1!(4cb8{3eJE*Pc zQ~^pnWEISH^zHD&srgM(o23&797F*uyz>k&&9@-mg7{=w(!Su2vCx8+{xb03*1o+b zy}2#93!a6yp+XI|&HxvnFR=41-mb4)RfF7e93mWx*vsMkgn z1)*qht|s&|EEYCdBn#c}G@bN00oFh~f-7~c3Vq_M4v`+Qq(riy1=Jo-g+-xxMyQJ{ z9a=_AtR6&@`^a7HjNj)kz6GH$;m6DC>D9nfR=AYgV>$(fTfKK>#_Q;!=e`vq_f^U9 zs~?ix*Eb$?7C|vP2QpIPGSk#;n54$hNCHcht41SS*vtz#lg28~jTA&VT*bu2oY4QB5{O+_Oh9YzH z$D=CibYlnf>(p_hb?|v|Kj<8c^M@HkdXYE6=Gsfq_T0>_K!uZOL0L=zy+KZoC)16N z^RG<#Mgl=1xH2n&evk0}Mi4VbvFi90kR%{9g(&+_8Xfd}=7MqwPx!BVR$kG-H%~sa z0_FV1-z((Vk7eieH8Ae?ld_?V0a)Zw8R>^IP2T<2={@c8yVqEo_Oj#qBj0b7?5FG< zHs5z5z3kdjV~w@Jr}*WMd~DPeJVo@T>ReJ&Y|D4;y~#3lzbhbFaPeGU-F3oTEG^BDCVl5sLB90p?rYm3)kt+>;JiN8q{euwBCZ zpW_a27=_buVI$C}jy`KWf?n)m(e-`HhRTRttAI4sHA3GpEKy^^W+KM*;~9X8YzwaF z#Q5XjN7MM8BB&$20ofxq+q~zQCM66X^5l|e;AyCbw^n%Xye<5*f0^U}lnyVzlqmOI zF-Rdt!54ynrHtDz2pSX(y)}+n9$Lay`f~wzg9mbLnW#ISO6?<>?vJ=efw8M@kP&f=(;Pg+L z_1|@i5AUEV*yJ!u4Y`3=$1Xj=A|`W^O{My5$l2DUB@$-3zG2=c6_abd2`{^w_Sez@ z)HjZH$BUA$+qJ#Nj>6j;&Hx`njVK3yax>f>UJ764NhJMk-Yn+q%OwiyPfb4%kf<<+ z)algip<=q?=53GRJ3AYiSog{KyM_UirzpZ}%GF{hJBjItCBatLNECN*#pQ3{E9-{# z;K|D26Yt~CC+Y4oF+?s^$CLe5I93OU=gXLch9*5!G16D@R-i zzlihxu6-2_>BQ1g+1!Coe#A4tW7s*$O$^}+pR5E(pOtSHk_UlQ75<2;Q0B5^N;m>~ z&3B0^m(Kt_`bTK1Gr%lzEltDk$qCe(W6`m?5jFnxRDuF?xui^0ZgMxG3en^mjbIx{ z#O~^(A90;5hW5q{>N{eyrs0$BqJ&TsC9)WJ^W6h;CnHA8`6@@#Zpn6s8di7~xemc&ol6=-Rs#8Q6hRy|1TT$ggHOVbY&oM#iXr9gEg^`qftbuavc^9ks6aFpa$^0x7J2vxtg=p9rK*3}?Iab?U(0^% zE-GxaT3T6p29O-@O_1b1Fx4OL*cQ8L&#F%{*5CS)Esiu z6)%V+a?37&r{qhBf?DOsa<*kIVZbwPI=5EX>LRO00Y)+h#Pob z=5~keUC9fV8BZa9Ca}>2yjdOO3ZmZ-%h~{z3ltw+1}1ZS>EsX3cnNJ|1}h@42u7UI zkNp`bMA;vCf258~fGYz|PE;^5?*XB72y+JbU3RKSd0R|SjWO6watHaw$l+GkTQ449 zN9~95{z<8bM7BGfo5XR<9mzQ5c36NYk&KJEq$7djQfM8qT2ls-X;_E@bEVLSZ7T^* zorOArDjP~($X*P4zjB==Zy=MFN!p(#l?`{tv{d8!RP4XssuYN&T~Oof$9aTz|VnSHw?gc8qSyj?5 zHdCrun1py98Maid9UWjudV8DoxU((z|KJ}-r#8S)&v#4fpZJ%7!s>(!VNeS{fF%P* z{n<;YL}5=if%u0=^cesZ&+noO zRF4#yUH7=opk%+#y{mf(&<6{o5DL&sMt1SB1X#A~&K$Rt^KOnXvhD-GAUqE=!!0AzB#^kIL|Qv${R>K5$k4FzUE&%ryeEFoU2_@fRb-`vhb40!Jxp5|_D*>|DOZm}v_*$cbd27tTb{mmK%kwjF@QH0jqoGxN}M-N1I+Ib{M zLV@fN6M`KS{EC2G*pfQ~Os3Qus1>hQmAF>?i31(_p8=|SCi8h&m7;@THnZtCf++=8 ztWj?nr@F@pv~55N5nANJnv%{bORk!cGRd`?sxGJ<46-lg3S^)IMuU6%6-V2mdVBPa zvcoG6o|W_>SAU`Es_K|EjeU72Wn_yNw6n<~ql&Dm?)gDczs~@Au9NddV{k{%gwMiU zHV)Z(2EaXq-p4z+vW3Z7edm1!-^4Fow^dt&D-y+xqQ^5_qcN6zic}qdR z4Z{3^Q&J!iwG+;0DhHcN;;kiU@Z4+`)wH%TrN8*9mzy%hf63uB?D)!&wpFhNN4u-1Ue5i`>B|W74L_hpGk!=w?Awh`%T?N+! zd{F_H9OaTT;#?IZI9b@7`(5@WX^Ev_$D!r8=3V&FPth8Z z+uscYL^k*$aw3k^lCwvCR-xX_A z5|biKDw2lAJ^r}xVVX8O0sD_1yPb~rdAzul{$Abw0(AWIbklfpX*<2PG=F^cBmICq zo{GiBTcm7N8oc^S$S(RyTHo+;K(cn&E;nKa5V+c)T)^M!@iUski;X|Mc(Z2=!||tx zUTG~4V~rai)8%7n(F2&1?@*o^QYzdI%(@8^9*jEZd{+O9z%S7Kfa}x!&kQ)SAC^m&KZIJiaT$myn5jFA>NH(&7k$rpns|3@-k0#<1J6W@IQwqcu% z&6DYv37kBSM=;kZRbT^Dn@k`(IlJO7Lt9YQV7ypzlvw>GN=J>(ij-9H1ol)wwqc7iCi@{{U~ zE#RetSt-g;#i^vqO;sZD+X*#RZ1eP=D5>6a?2xA5;6Azvvh|F?EAFDJCdDq)5Txu; zPWy1*Bd31l21GM?YOj_0^*iJ2r%4c{avXT|Rg@X5V!E z3_!ewB41kj+oAqY6$Hj#+cG0};awIn(gdfrV;sDA&q`mM3j&{xMMVt9E)J70nj>Ue zSOaWm9_zdoC9_pmq(Q-hIv3v@3P%zXYy)kD5=3tlf+qRMSK9D(zBs-I<7WUz#P#Pd zh$#;G7t~ z3O$`yJ`mb?X)r5^odRm<-h(IJW53P-u*WBS&ycGUeQ>^6OG%y;^;kZ^xvv|xOh*%usu%nPNpMqTH8O)DDHwJc)=L({ zU&e(l!~~6~RpG)n<;-@Hok8!$<@y?IBdHSa!~`9zqQ0ESKk?SA;RhJU@0|t_3&b6? z=Em)@(wqjFQTgl#)<3v@D1ao7klSGL6%wUFeuwoSuBg&Xz&haEZ_DRt@ZDp3PDS$I zhT!WX?V?`d(7F&60dVc5-+T>b-g>Jwmd`@ll}bUbjeHb}2wzA6m%DzFfZg7LUm^;_ zi@=I0<`~hZ715$e1GKMW<9soZ=-TW12=)(=v2{{z|w?RRgR9At-3khOO(GpQnIeod1 z3sbW)G4u}7y)O!#U-6%#NM99xP`w}V;B&r5#XJAu1i{|TF0Yck>h8vQHp4Ril8>o_ zmljUPN`^AO@^{hp`nef8@Y3TL+x5Be(u*3wx1=C3;L%qjh2tDOy-jw9vLSp-oGd?0 zza782PG0dS6U*9K${VsY0}aM3*tJ|?Taa&_4?)q?-@C~9I4HM0cM(7$F4#IK?CiZ6 z|Gs&e6O-X!>UUJ~^MUpEW{xB@dR1L>A(A0G2K8zSyaMx&$xnCVy~p#`_qC{QR=N9X z{EE56?b3Zvo`b;=yV<*x`q!xQFmC8GO58G`;&>e4KHl!=K3*87cZIp>w0wBNiL9FJ z=}=;{`e6V9@C{^dYdk^z*?oToxI(6dat@ZC0nQO`>vCTH>e5vGrY78pWQ;g*k@>i4 z5g#WF&c?lc@a-Mjl?5rm$J#kcyz@-_@uktRIR}X~tQETVW-Id3flR?2#`#7J2N5gg z%R5J~#s?AUmvg{Tqs`cu|R>2*t@i(#O$JK$}zhfG~2#y2phDW@HsYNQCb9oO^1YZ9Tb>(TuC-!N54 zA-2B>y}de;$X#Cch2EIpyOOOo#tCL7?iSq?VA@JZBpwG0^h(w=$}4>Ps4}tZ0z?nn zMM1X6bmIgn2-QMa4Jqr+;pL2N-NrB%v5q4;)khcQJUcg&pAt6qiTu*Xnw zCpx2XRHkdG9LF2#;UtynS`!vHFdFTY6@unSP_`3slKE*E|MB<)cqOt`FTy|%=STdV zSEP6Me=pRY)4&+~+tTCQ=lcVWe=R2%U*Q>XvSfOw16~8?J*Xo=L83rjvpr}52`bISJR{sRgVK=Fm38wRVYhJtWjRh}h;MewtywRo%ldAY z&mTvGCff(ADIYa=JW3JIgrBSSSwGbgwpckV4=tsEGMr zcAY%(=;M~7@YS*Buui1CJf-^l*s6>=1Ki1?gw1@_1fw|?arBJO=;Q^-3ksx2vKY{- zT~7P!yExU(HdQ7ZC{b|g&T<*Svfc>pt_ZK4H!Hy1BQrcAg+XN(Mf-FXV?v?oXni(c z!vKUnfpKzBi^%I4LuAz$rTo6Zk#YkJz6_UySFI6Q&5x2uC=O3XUQ6?J#HH;wY;rJ` zVbIb@Ke+n%${9c`eEjI|GTnD9a(j&+3U8Keq}}8MwKXt=onwqH(YNN?-KV=x8>g+) zw%@jG+qP}nwr$(CZQJ&o|IK`vJ99IY?5dtcsO>Li4aEJDy210AJ-0<@65fa-F0B z4LA@zwE>K)wCP5f`hKrrYqMlnBYN9Eg=Bw0uysPfta~+#h06^RA8TY}sC1Mi7j53^ zNF0XnL5V&Lm#@zC06W>#?dD^khN`Is@c|Ondna_z>eN~Trv1Gv6F5@XNS|=ea&SW$ zHgw3(R;gRZX!rz0vy-qq1f{eS)TGkQTnd$(-v7`!)%s=gY~(x1g4QQtxgX=KEE^N7-5{Wck&`wuu%kX%_R!T5tjs6EI-7J(zDN8+B}> z#)a;rRPsC!4&BA=++Tap)OLifHASVC>P(tU_yTs4CPCAqlTlxxsc2k(X^9KPA!Q9R z>`Rky#3Iecns!$`Lj((z@|rsH5Jp(PWx2LQlriVxRX!e|KY9Y=W!deimdN7K?1^v} zhz+8|13Ej8D8$25fL61=7EaZCtS#B`-qQegGMmuD5aJt2E2djX4qQSk2dIQu5zD)$ zG+c4XKg`VgQx!c?GoPC-Vg*F^vgeDz2Gp^0NF`$fnO*(%fK9D`dYu-RI;MQVeu6Bk z^bF}Y2;3GdU>cmE^#=dbyQ%0$Pc62i6Rc2`x!TsiS(L!zJ=4Xa0@)6FI-5Ef%SO0mfurKXXuz;1}9VKxxITwM{feXR%tJ zsYv#MSs_BHmYE1{kK{lGDc#=ur#j&DEOw#1<<73*)YPDFpXnsKMiINJ~M zs_R7Uah;m7y_FHfH2US^h*K5G89`}xi^8*_FAI|m*=U8njpvT+6Rrb?1x<+F!$6+E z7o)H9>gq5yy7Og%yWM3B`T~yBrv4B*Us!fzWzm(U%PEyMT7zbqSFPRZNlStw*Dn!l z(Ww|y#wAKoi$#Lr(tUxtg()($((oI?cr%0B2;Nos*Du~94*2zMXS6;*CV&=2&xK>& zM$hd6rb2S_AGLh{q6t5lL0#;b4^brt^T#t?CV|c2wnCq}bLh3>vKj*5)_1=v!u8bq zbKW%O^90eL)6KesDq4}H1Ul|8%_*BhHMMrojYZTGy#IaJMoVZ`W$vij^KK{c+)A4@J-OV z1T%&S%CZ!yk=9?lv?NzSCH>8*)pPewYG`%&pyZYGWcVTia#wzo>Y`GBtcv;`$&~}U zbrHXy>9DT+3!zPDDz|T6(P3*Wc6{%Ocx3~(%%T$R1bTZGW9S0_Z^A)RZ|uZXcYsES z29$HNF}745;($M7l~3Cp%|~Vi=E*O#Ii>ToK$Tc0hq+ir;MSj^BnOitm%_Kai_fS6 zD|9{^x?gc=k6#@urh*GnW^$q?9K2K11I!k9*40!1ZC`whh$FDZxIbjNvAZWOEr=>_ z`n4pi+&R+b3&3wlcp&|^actxN2qEGT*>{QW9_v_sjt5I4 z^lvi?(gtX)K>zRx|}$obZ}1=4o*iE?Q!}xJC3K;Pl2Mf28LccKiPTTy>pO-1WA2n|^D_;!kiuiL-32N88XvIn96I|bChp_=R1iZI+I%7HKg$N}ny%iR zeS29fG;A*ZN^#zDF=uVsA71ZXy{JyO7sd?b1NA^WL-40rrOw26cDMrz{=^Y8aZy6# z;$iKu#=M`4!$N(l5|^U}>xC-kIvQ8h3F|0W9}GpCz@!!jKFWofgGQM7)=nj z6c-zpG5s5oDi@UP<%w|>EhGx}`FnWeijj?W-;T1ffR_&TCgAm-gsSVpp^wQQVuPAV zrequWYKT8DDu3Y^ltdr^-8fMSj9Fa_8ej2~_YUehLayeLUqNabyO3j~)3DY=YvHu@ zmKEMdF|#m`M`P_GU$WGNO5D0-FVh^kRndmJRPk&sJr++VTo?o7j|7lVXk>@!1n8Ml zb>#U&Yv}dO7K;BM%MD1Aa0WY%3Gm=N0#T#h3roj{DUmOGCfyHTNF-reEK;<}1^C{s zRSvCo*pFI-n0@@oBr^V~*8i5+f;IHqGPc*|h%nAu}nThg3U*)AuFK@%m2hj@^=v@2SqOmas#Qou( zz+7ycOW315G;k3PjE1_Yi_l5s3eBEo`$}Z0?HXo(8zYbmC6R@MtxxrlNd{0pLczZX?&0s^mL)-Sd zhB1!|>7TkdPbE(;HQM>SKpT58Sc|ylfxaHxQYhX;vkm2o%)h^ana87Za+E)*XkZNsMAp)VC=OO-I32=^V5t62Av4j>nz7~XA-!-*xEi@^U)uF8oG z-!Sa#$&;RF#)f8EP%Y$AOso?m(5dr}f8rJlPYO516{X{FgMkMUpvSE{%u(On-#I58 zvtZfUOriIll=`ns9I?0bRvf)ipNSQPw-${QWkwkypwuz| znJMzZOngr|+UN20w9Lh%1adV@G^%8n0F51bSAs;fqUKFw3}QpcQkb*`l9(zWyroV$ zfXl_m&89AdNiws40iwPqq><*EU-$9-cR3XnbMVRF?ccxJB^_WQ8<@>n^l4v}3`apR z1NaUJS1G>E+XL!)tt?z~4%h{Zz4jdwcsy*YBWNMpgp2xF0b*#8vkS$zV1 zdRK)|6q;lms@5Ktw@nn3OQ5m;(Z#3GbqLU4Vpx$7r2iN{fEV;byYt$PmP8j`t5T=z z3|4<&fdpU`*$W11KDD%0uTF~=7XxS<9ISUxFAsFvva`PA2xq5u3vaU=JIbq~T>^!X z6tOavb&@&2!)%J&f`~@ua@c9FRI$a=EaGk_lwrRQD(L^1TgIw??OMnS6HP3VV(k2b zWP*O!?H-CohiSBNXgOK1{vD|4#@cnR0`W)$RO4w>O`yhhJBjDVv=^|XG3Syx#%+huT{(GxythgT~ ze^JmYCY`ZQFyA4kIP(}i00$VN2iGz=_1msE6kHGr!#7ebw&$fx!QEeaWi3t-;FS5_&FB5oW4YZo7T+z_!x|QIQ_2uZcUPnDuI^$_J-tiZGp3Lf8 zXifg);;VJBAICm6Pk{CxG2LvZ)eLT8*w0`ec2GK825$gpEky;jt&$EVL3C;H7ANRm z;wuu2D;CxhHCJaEzlDw-BlRvApr`BS?^oRC%Vj=nb7`7Px#OP;j`ripqdUAc38O&I z+Z2+z`VI@4Akh7NIaD97zrWoCK-O}SOG##B`zj%^lT2?GPTfr978ef#e|ePbw!uSt z!Chiqr?Tp#8%M=yxKjzyCYTqbw5}L-Qz^2sTL*3_6JqUVj znsvq5khzNj+yfyybX(B;@*Fq<_J4z$_%=rq!I-{a>1N55u+y#P2#i-4E;#B>kg}ew zwM^+P*)(oCzR?|Q71WZKTN?jSoEI%AiG`%mwg6T6^>-srF7LsS?(9V21dz=+AfY7K2;863`0n(xZZOUW&`t}>dM_`^A2O#FeVFh&Da%Tb z!olh1F|wo^e_GP=mAp}J)$mMfH*)hj6?yg!F$V7rmT(|6bxB!MEqB_BV0{(|_QCaV zm{$GQBvI`Wp49u4IedCj`SIXs3W<&igXsnUs;OkGUOO@^LoTGfV}R@ScK!ROY{Hl7 zth4QH@qy}Q{Byjm?Lm%e5ihDO5+g%0q^_W5VKTp2oP;Qk88{QTQ;oUv2sNbbm&meC zlKe9*hP{~9b6wiTVv4z+*HFQML z+Nd;o#l1cM-QrOIrvjFEr;3*fF$HmtnQqI&O0N!~Jt(qq^!kcAVr9ya> zZ9R7Qke%kR_Ys-m|HEU^{4)fu^Uf8NiN^`wP%*0I2A5Khw`>%Khzm3iBxj&!OsV9I3%qksS~jjVe45~7I` z|3jV^N^F6F+}pzM&1okB0r|$1xKt~AFaL{wprrsx_w=b0I*e}Djg~Z}W93So#(tf4 zOI3V7T6&X+cfQ1UipHnzmr9A#qCO1}(()Oad!Yh`XF$Shp!e}#l%%s48}l*T58$P4 z-IGINZ|lpnFe#6?EUpv52@LP2TEW|{yt)=MlKCibl^~B})+}Hq+KC?P^_`~h`FXL) z8#hO~doQz25qV+GB@etzGmUBIF~)r~m!i%r)2gKWv7 zy=|+duzxQ0BJ+jCYj=3{9-sg6sXe8eVr;&s5z%Pq8?@5v$yiYB%wOIo!wJ(jiU|AX z=WLr)Cm*NCwd4R>%D6u96e?VRDSeiT$H(KIwjm2jaPqhB*!e)7J-8-y9@tW3xvdlq z9D>m;ywPNwDsEwan#OO#e`Ry09A6DZN_bd<8sjO{%*i*H+%6Zv&~lnA_v7umFU}}{ z-;$u4U{5n~|LVW1+gGu*tg42&CBs+v%Cb$crhht$S@s>-NVaxeXl4#4$*Nt%vRkKS zYqhZR?byscYV#2k9fNOw#QUivg~;tjYCB7xaQL0d8MjsfKI&I5BwZ9|)0tY!YT+!O$fi~) zGth{0HI%C zI^tHj=Lr>#Q=S~bY7RN4a>~GMKFDR(DT<5fWm-qilQkpZ_I+>D?ULv!fH`6txnZHo zVjKUp_bH-1tqv(gPCefO!yT!uY+dF7Ed4r>OB3XeW(w3Yj>A|%ZfAAXA^qNutAQ#) z8mcp3RWlAKf`(mdG?@wwV#(-bSic(ZeSkm{M7y+4Xo8pHSO{!+Cq||FLpXOFj;^}F zGPJcITJ1jgte+&FN zZA)59@rBEcb=CXt4Wg>Ju;2T)xzPzGvq!Cm2s>ZC7Ur(~i~BgkGUsj1v|Ic)9(Q(< z$j&)Jubua2icO79m{LIKdzA20kwSt=EzA~yk@^T`+^mBV0t4eVb?{45Q0LM?R1)yA zmCJjIBiG{?vD#qGP`J{bP)6PxX-p7pR^WJacc&7=L4@?nR=bbWhSJ9b2k)?u!_bl? z^d}##^WC8Cpm#cX54k!FlE%}zpLYaIz7`MP^N3^zceraPPn~eHq3P#l>?ibU(%cuS z&uBZV8d+T6@p>!)9vB_nQH;WV9Bw)7Hi@0t6A32V?-#$D-Mb*)tdP-84noeq0&u*}J-hwu z3%o&)9U+h|L}8`I9BE1+1u_1@T}EGIBF4oW#oq=-nc4z)ULug1r+C|-44J^1PYa47 zk@zE0Ebz~jd_uN#muTCN9g8eRbeGIB7Cx6RhOwRGa^-x&@%&F>u%%@7l{WD!YTU!!3yubyH}Kox5{A|CSSj6Y_TwVzQgg%2_e>k6t0)BpZ{g%M`VA0`db zLTwbXLjnkqN=;dd`2Xz{#J=6RG@gGt_#I||;-n$&_tO0!ttHP35puD|(zW!};mT!u zjHB$R`nC)VCrZO!Uk@X3ePbK@RNm2s;<7ck3v!T|cnF3i{{%l*m4y$4+KyMdHTc2Ww*fyUbXwOH_OBab72Th@+3_UM(Rq@8T@@(?p! zP&AGr$o`kC{po0XriDk0qt$H%P@;A8he=<9y?1)*g7ip;UefXT*I$nzJCT3<*xOMS z#+6cc3Lcri@Z07M9$IoPDHop>!zIX5m49PuD2u8J-1mq|I6!-P9P9iT~5LtUXy>`+)wW05(?U+r>K7QpH9vX6X$7od;rK7j&Wm=HkzXjp{9K%%VHI$;hrYK&pUE7&_5Epu z(y!w5Xr**C*Hysl$2v~hO6T^>FGyB8q-($)cv8m>dF^>EaV}PUkjLZJ?@S8mZa?gt zx9_xgx8+moPKvIdVTEL(X(?6SHivYlpZLm}#^U5o*2oVVUnNwq4PrtIuV#^YV}`rQ zDKA)|Q@HEPHqSVJbOp(Pp!Hd_vpQj`gESeNUa06MXjg90fRqt_ySuBl`@v1JdA_ev zyG^R$9X2lFhr`w>w%uQo5@3()or$x(l9%q%Kli(fhx}XmJ4empZqqHyY*o0=RnmGg zZA4%CeauagqFZr5Uolnv5z%iDwFd)jPsrSjgU_Iro>*%iAB2a`wnJ58qi6agi=0k~ zi$K3F{ssi=em>(5Q)Rl(A_ICwGG6q1&xGgJ=b#XJ4| zLBsi87vUHsFP`09F~M76q{wbgj(L8H!qYhJ*^p_W0by+al;xM5l?wEMtG4tjv|7iP z`kv!Xue}XG`zz1W5BCgKcd^FZn}QVjqP;bqb>RGM16xi8ue0;A%Sh?Qrk^mOYN(AV zYjEVR$U*jA!o!`c^J`IZF-a3IzS6rNWIv)ViQtx;wr+qbdo-W6AZQK1^=I)s(_yy? zLJAT0Tqo%Fqz<$4k8+8w)=yaZ$DnN#X2hWcwpDX;_K&@(qKr=AhsU@dPBUI%jfCm+n%X|EWnAps69l$xE5hNLdS1zU77+jT&pyPwyMLps-;D;^IXO_1M zt(`C2^S?W}yw8rNULs`d&D^)mcW?-1@;Rj+c~Bh-s@Ln+Gl6-rY17Y|Sgs#>CPlno z64EqH5n{bPzLa%z=kPP_Z+LW%!cL^U*G8qkWbC(T_EEJ(gd*Ylm&(>7psm(2oC}36 zq;~>oTPCm=z*V*e#?_%Mh@uQ4@0=sFp88=T8xcez)4Qdt85z$3N!@THXf|&b)5InU zPS0EgqCVWy&`Fo*?@J~5=Jqb=^UUs*lXg43x)7y6+)O`q4_I2$Qr>-~TNxfW(k@i; zIFjX+O|(R*c+)TLeHffk_4tufO`l)tNdrQsub&%FJ&$8}O2{Gx0zf1P6B+1|)@jWc zMBRxQ=3eFmxP}Ye9jK!Z=pJST1pS}Pug;oh)h`pJ0U*5rPw~Yk^af2GofkBwwq$DV zbP<%UPZ=Xh>yMnGcUc<3RR{0Q6?1|Siek>SB!mdVmr}bP(_L6ipR1_QdSm`-Ye%DaqWkvvm7Oj9&TM{A&Ikh#7-JV%xOw(KuXkcyp;%xFFbs zA%bNYM=6c8AfLVJk#Rt!rTfCp7SvhKYLC4qoKhV}7{HvMs1FCi^iq$|HL7T$o|YTZ z(7bp42c>vU#B<(XoWiUBpz`FY+vqQuox`f6qgUG>G|N<@uUgNvN$nuWXEVzjk{~_4 z2wEwVvK1dK{S)m=xu?~ysK$@44j8vX0_#+1sTgk6Xo8VGAMcVe?`=d2ek5^W2G0^zj7!gr{HyUUP)Cb;(KP)FVl z`MtK)Q;cIo44|p`Dq$J<;--0Nl%OY6ZGq92vhDKnP$!9a4)p=L1R5aK4TE?W@Ao@0 z{yhb_eJ`U6shCRxo5sUAvFZrX7#XD|=jp(2*~v8=y7LG|x|03JG4%ZLn(YM>)RMe! zW-2qFn>lWHz9vZ(=G{wnYAKSJw%f2B4ty&Y#@K4;m-xH)%aF>en~Lwl>R%6vH@H8G zn2?QA8&0Q|t~CZ;cE!8)pD1w~b=C@!=sOSq-p63nkCF z!sKj%&)Q%!pfG(kaM!^xd@@;yOG2H?6;9M%3%4?z*|qC`hGnvWCmlW&V{tkZmf4N$ zxMXfMObJe?j#z#{1Ox4G>&O=3R5MjUC0#D^{O$ zbvjDAfq4t6C|%zuP_t^>t;g)A=3trl{_CnJJI0&n@Wn`_@c^Nu3LcYLJE`1+sY}$P@2GL>3@@SyO|Og)4x>!;w?|XmDOtf@Doqs8Sg* zM)uivm<4S|r!)3@{z_hr=VWX+@hM)I7^4y7u(irdd`sK^5sntQ)i|`Oi zVx20>C>%gO40@k%Z?}Op9i?`bMn3^|?<+fy7WEr8=H89wO^2`v7p@WwXCXZGy#>A+ zO_+>g;$d?;S=gQoCLCUuElBYsJ3NM#wfTNbcyrOr)~Dy3{?b*L)t=g_x}Qi3@%Tx& z@_(1UKj=um{#rQ4YWH+E@jqa{K$0%8u5I}nJ;NMg#a>Sj`Nar65ohUOyP!=2#qi*g zQ0vwTi3e7 zdbPB;H80gVXVAah!uIa|WG+h~WLTu{b(F%zw%j0vQmnSl#7b~IeUBIf{s;62RgQ{#jCtZge0QK zR7)K|5r4Wh!+D5ivoYJJo+zPFqVv-z=nPk0))U3} z?CJDw{qa$}_%R_rm}l}($wre2o#pxF5g!b`C5k0Z@;r zeeo5SJVtkt#oLWb4!^$Y5zVivmwtOLf`P@I8JzGC%)o_zTHAbXiZqs1d~{_B0~fA< zMry-KLZ~tUQr3D$XWFo!5%GwF)1 z=Xm!n6BILa9}=t}ix?DlXC`^RyO}juOlR?a%Sp4BErc8bEX9+eQ6*XMMKa0oz zLI|67^c_U_9!RYRo{`3nl2h>rtGZ%-A8CYHpXq`dbSrflD09nLct6vJ`_e*GSHS6r zHwDv;AbdC|(Gr{AbLDxa|jXq?y}o-w7f&kFqM9ZukOiQ1~%Q z=Qo}G4x~d5zWx#dM@5w8i~iu2q+pduYzK?$&;Y|eF+pMfw~sPs&;Atux5qy^GPv%h zLnU0RePxAnj@~%+5yoQ{*HSUs%dP*;fgU>k8haXmi!ZmF zYJC&^;7NC=wuV8JGr~YMAt$?Bi6ol{SL-lIvn*i28K8+hFSlBPd#PKi8Sdkc8_=33 zHz?_~QXyPy8Y~?AZ5^4hF=u}MC)@T1Jye_Ps9!|Y8y5OBG@W>K8ZnNI+GmU_kL&Di zcWr@N`F9)S<$Sgcr>@7TUBnag&%BCNzdMNM=0woZh^-`0k$Q$ysqYe)G&e`LaB5ICdk6v>s{MjYusLB4&|(7-Me_ zaAW35N{B&y7`Ve5Z4u(n-}W^M>fH42XshLvNE<9Xv?PEceSY}y7f0Bg&Z@aT*c(!K zw*#HC{tcYhw>~d{Me0-05FXyTT-Z2Xxxl{fllSSrPPujW9-)v=pdEQHx!m-Ffnlt3 zH&}uVhy*D`mQ_~q+$ZYBOS+7bAB!xPk6E{Kk-iUVYD<&@c20-QOax0sd5}8(74SJNl9eme}muQ zAEETiBUmo!Jw@tDGQjSkn2<`;G5Z3p)ZtP{X)Idx307#Z(rS>_f%o3Ra@nEX`oO(r z83G5iQ?6>tMJra9c6oRQL^Kadq-k+jgDILjV(G0U@)$VJY>x;AKr&enC}aE_oeN3&LL;UWOc27 zZO1hI@iE1^={JXF@`hc6Z&kVNz5<6NRcgt3aY_#Znt~dk?bGnX@5;%mC1G!S)+z473?5$}D7m(wj#^?bt@f`v;adP(z| zVzTna@TX`^mbZQJubFh$wLQtua%a&j(YW>|iKsVB?mn-!895_*|!?cW3CTSR=shAiV(R0;7Qzh2lX-*dJD1 zotaW^@5v1`BTH@gCee!gkd%C9=Xqmn%pE)cHw8_o&rv;NLlI6~v@( z)C>+yg&QoZG`Q>zPO3)aT|9JdWplMCW=$Te)SCBDczwz> z3khc2>jmrd%8(LEw&|RVhp#K{CORq0?x40M++^@o@I2=^S^u=NJ=bjoM1CY=zGz4g z!b29>ewbK%_ZJ{pLiL$b4;B!pfZB0~&r? z)hS}tE`~{yW8_PbI!l7$ZHoYEgsf}ftnvg;kg&t z<43xYrZ`7y+U+w4Rr#k@d=CC1;;U+5-dpkisv$KOx3(vW-%kj+?fuu7jrAgqhYP*gp?F2{9j{f}SxXe1P&uR=~I7 zFn^vop6sKjPI@6*r1&+$N_DZs|MyJ=#0Xe5#df1^>{~yOB_d z8rZKW=UcbHxFCGwqRCD?hTLa=t1I#LNU^;=^6G>fM`RI0p4@GMw5RvDuJYQ?a9yah zhQ&8}I|shdZCh467Q8qamEXT8@~ySoo~TFiahT$8Frn&@;oBl(Q7AF6zm zEDL=%9309-2Dj<;M8-mZ0lHf)vF)(8!Rk3+S7}!mv5o>V;*r)q`PkynHOR9(5k^{t87(XL$Z44SZ&>c@VqkhC zARb99Pv;!M`&eU@|3*RGXol@`Qh?fJbeed!Avq(vB+1cFR20_NZb*;6_$8cm0er^C zNqvU4B?5c%nR@IV&Bu?cE(6c?A=OtTFKAi*rX4gnboU!^SGK%WN%L@NYj?5vZ(=`t z&=Updc2=*l<|LqQw_eJT%;0Mb-|F$VWJWtAjWRO8VV?(iay>LddAP@gVd0X#Q-mLA z+f7WB#INcR7xicy`4*H^V|2s2^f4?QI)riCA(jz+)?G58uj?M1`kdh+uxcwNARrK3PMk?ufV`YeEe`!3ia1%onJ&odK(T)gE_^-|A4LCLPd z!4WX5tteP<-|3IW<8Q@@DS``(`AE1`*_g_bmdJ|@(n(F9ba3VKghmULF=JNdmEy?bbO0wx!zPo!qP6|~sPF+PC>Wa&U8Ye9$ zJRXQokl6<#RUDoekP8V_dm3~88a-f&6m$~4XFnkF~GvBntl+xKP%V&aSe~5)9RAUYu7yMUc+JipB zm7L14P*ppn7gVe)_V0;8(y=?5QheTfg$OvOVNB0+gT{yli_O1lx)InjZzOoYrS-1c zQ<7k#VSE@OY`elvL(p_~%k(6O>U&bU25s(?kG$wyce3w@imJmI*u$&!1|vfQD7-up z^z_9);DTa)C`y1@N%DoRgWR=j+SZ-ZaxcVxZGJH2JGUg&m>-I63olnI6j{XJ!r^<4 zSXn?S0-|mRuSV3h9`$ zLwe%Ie3dNa+5Sq`tLg|H0v5H^kvf^Sg|n}m=--R_NFIIxws>5{Gz~$kbY_04>gmQc z&W6j`l~P1$mnBb3NC$+EpT&4)5+y{klDIF{L=o|L(y-MB_a6zz#QHtCkMwHi-w^C& zj=~0fY!wonWPD_kX+}4eeSd$iO`LZm_H|y~oU7=BHULFje-jzk$?+Kf9;8bG#1&6Y z=(scnHmqDf!{0U@Bl2oND(2qGv&)^$Z;SGqsMau)D6QsWqVgr`#FKEnN~#YmH5n}; zm|N#3o5``T2C5vhnUiOC9p*s7%keKa`P9*4)@(>$zQb^(@Jgtp^KxJgo-Q_w6-G)j#fJ@#kg!1^#ooGN{9G$)o2h5wI)Mxo7LE` zj8hPR0H=cQS?q!&GS#U?pF&;;Xz@*xtc;%WB$e3YeJ%Ohr;Wn3M-1MSi>U6?HW zOPvNd;}r3QFDK?45JvXzTpO-o9b=_9e52`kNqYjrc;kkfu=--J-dNF=d~^n|8&ThR z*p0|iR?aL4`kHo$R#`SuB}rv2<7*TT)Nr?(v>~=q!ySOV*mAz)oq{{FLI-e7Wb~V{ zG=Oar_3%(j3d-8|R)i%)KRu%mjH^W-JY<@{Phg@vkVW|q6qU*e^FZdX4pdPwzR%}| zLXeAb2>oUAvsvE9MNzYvk*|&R^wDDWWMB09`{p~Kf>@+>^(V?HntT2pF^F*?f&7jv zemccH7>FpSm7FARaREj^Z+xal#+M@=4LojEHsll~N?;v!jv6gk3>I1kV{14Itd&t| zjXSUmfaQPvnkCCg#|pyw220iD0dUGkMwc;1!Z=iuUk^+Ef=HFl<`%hDVwKDlp#PIx z^(`8Gm3K^M-d8Q!XBJ6D2|2S+Oy$gxGmmNhBDbYSN;)oX@zc%#F~>exPDOdLt6(EH z!8r0}y5eQ{`g;ld>+gt!4Z##&J!)eaMY_!1_c$OgD8lsqAhYS}=3xbb;oa#$48;r1 zcs2%RMQUS!!-Y28ElfkjvHb=;PKG=9^&d&^5o%hQ6}m$k;-ArYDAa8Uy-* zADOJ#WZp-TuVl%dzoX{P4-%>xT(LA@(dE-d65gLvSnYY&BjiYqUbsQW@R~M=0Gyc~ z$*-g&c+A`~tYYwL_YRdCS;K3G4DV9hgqSq3%Vp13epckB?$PVcH2MzM!qngcr7Uw6 z7PNGNM$nG<>~7xQM)!c%s)9>fk=vgerrj_zcpN*RO+zwguGXr?kI7QSCPZSIv^BM; zWxYeQhGO7tXuXk8TY1%vXnDnreB%T2-JF6l08Yp${7*v(G^_7C*Re9ZrN@*+aE(7t zcSvEaHbj*?jtY*ofO16o_&nB2aEaxly zhmTq&LZruEF-g(w_fKr^{W|p|>ub9v*pvz|r;du&rN6uD1Af ze{hKs;b4n{Fc8GnaxzfETww$!n2N7Av)9*~)5Q zF~^#YSJUry$qyAjKM4Xu+M$o&sb0CX0xKUM68pdpd%r$|-@Y(nOn!oT^e{W1Ikf>V z2djTzH~GkCc#&rSD0CIO$G%KHTlsUC*G}CB!4o;o1ikPdix;CugiKbqZM+8=gHaq&1akZWDU5H_lYWA)cU@sFUDNIE5!R`@#oO_P&B`mNV@D2LKhZ_0 z^b2EGBGF2n!z!_S+H;cvN^sVCQYPvleSx+K^}DF+H{}Z_kgy25gcP&JB?;dB4zthS zyh*5;^&?>?3#{ccE_ALE-l_`}{uLbIIW9wzV1JrYp(k5G5ur8RT#9o`%r|YNxwTda znZAr=Mp8HVE7Ia(@JMcnU=%3Sx-xd$>Xvbfbf7?wkE_|(fy!>YUg$264xnpba0VD5 zEkA8Er@aEihTnE?Vrxm-CFzuRl`%k)H&=dd^Q+xBo%=rt(mQdSR7mX$AnJnBt`u=N zI{2FDb2ik6KS(~FRel3ny&XzJTnS)3c18K&D+Ln{be%{a&<$4YXgD{-HsNVxXK@w| zo?jbYg&Zv+Ev$o43oKl-(FxLO&z%v6DCg{RP3EGfmCFkl%{+w+4}XAUB|yQTfq;OZ zfNUE5c?Z(};VpoHfS&&i;(uq&0D7!O%&c?_00U!VCKg5(HUl~)JtHFq7G^dBBYFm7 z8dodJB)JLeemaEC6H2NbWS)EcF#Jt-e}%F|EPGb0TER;)mcVZ>cxHp# zNvSqLtdkMS*Nf0!tJzyx6F|Ep5Ype1lE>-sZfpnVYxhU=QVI-3VK_39_B5*}-Y>Y# zVd(TmK;(1Om^BhFZYcuL`HA2&E0;sR1J-qF<%SX1i1z9lAul+aMUJq>f+F3}9Nc#6 zkMp(vdhd~{(ay1|@!~om{NVaGcTI~uI>0sz&4*`8Q0c4+^8BAV|C1I7w8nNXNm*(b3G>#DUh>%+km~$I8f2@4qaH;ehw2LkV*67Fx*K&W|AAWFbvm9BgV+ zGzFnHgE>0U2xGr+4t{u*ma|z9RW{3FXfMP#NED4KR%oX^yKydizr zD7F4OZJ4)^g}fGGKQRK&r?dHBsl7tnt}j^gHjODP8N>^*@*zaByN63g zp>3M9VgV!Uz#+TtSJUYzbs0b(JVO@fWlZGQy-abVIjrJTHW(*S%oMJisDf}Udlk4X zqReF9Z*~1IqBtVfQ)6U5tN2x?Ooo}&;>g5t(~a3VC;cl(NM(q7!kb_yDguFAP&POR z4ShmM!v_*0d1e${!t|eB$2k9GcOIS7tYsL{mr@0TCZUhTm9QlJBWMgNI?XZa4GyZS z)6nW|8odxBZIlgYcHQA}WA!qg>Wd#(EN=Y%{S(R�&&ij#@iR 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 {'1865116014002' => true, '1865116155002' => true, '4407365899221' => true, '4469882339231' => true}, :outline_folders => {'1865116206002' => true, '1865116207002' => true}, :quizzes => {'1865116175002' => true}, + :all_groups => true, :shift_dates=>"1", :old_start_date=>"Jan 23, 2009", :old_end_date=>"Apr 10, 2009", diff --git a/spec/models/content_migration_spec.rb b/spec/models/content_migration_spec.rb index 9e50a3a0226..cc1e1ef16f5 100644 --- a/spec/models/content_migration_spec.rb +++ b/spec/models/content_migration_spec.rb @@ -334,4 +334,50 @@ describe ContentMigration do end + context "import_object?" do + before do + @cm = ContentMigration.new + end + + it "should return true for everything if there are no copy options" do + @cm.import_object?("content_migrations", CC::CCHelper.create_key(@cm)).should == true + end + + it "should return true for everything if 'everything' is selected" do + @cm.migration_ids_to_import = {:copy => {:everything => "1"}} + @cm.import_object?("content_migrations", CC::CCHelper.create_key(@cm)).should == true + end + + it "should return true if there are no copy options" do + @cm.migration_ids_to_import = {:copy => {}} + @cm.import_object?("content_migrations", CC::CCHelper.create_key(@cm)).should == true + end + + it "should return false for nil objects" do + @cm.import_object?("content_migrations", nil).should == false + end + + it "should return true for all object types if the all_ option is true" do + @cm.migration_ids_to_import = {:copy => {:all_content_migrations => "1"}} + @cm.import_object?("content_migrations", CC::CCHelper.create_key(@cm)).should == true + end + + it "should return false for objects not selected" do + @cm.save! + @cm.migration_ids_to_import = {:copy => {:all_content_migrations => "0"}} + @cm.import_object?("content_migrations", CC::CCHelper.create_key(@cm)).should == false + @cm.migration_ids_to_import = {:copy => {:content_migrations => {}}} + @cm.import_object?("content_migrations", CC::CCHelper.create_key(@cm)).should == false + @cm.migration_ids_to_import = {:copy => {:content_migrations => {CC::CCHelper.create_key(@cm) => "0"}}} + @cm.import_object?("content_migrations", CC::CCHelper.create_key(@cm)).should == false + end + + it "should return true for selected objects" do + @cm.save! + @cm.migration_ids_to_import = {:copy => {:content_migrations => {CC::CCHelper.create_key(@cm) => "1"}}} + @cm.import_object?("content_migrations", CC::CCHelper.create_key(@cm)).should == true + end + + end + end \ No newline at end of file diff --git a/spec/selenium/common.rb b/spec/selenium/common.rb index a924c645a31..59f96351c33 100644 --- a/spec/selenium/common.rb +++ b/spec/selenium/common.rb @@ -824,7 +824,8 @@ end "testfile5.zip" => "3dc43133-840a-46c8-ea17-3e4bef74af37", "attachments.zip" => File.read(File.dirname(__FILE__) + "/../fixtures/attachments.zip"), "graded.png" => File.read(File.dirname(__FILE__) + '/../../public/images/graded.png'), - "cc_full_test.zip" => File.read(File.dirname(__FILE__) + '/../fixtures/migration/cc_full_test.zip') + "cc_full_test.zip" => File.read(File.dirname(__FILE__) + '/../fixtures/migration/cc_full_test.zip'), + "cc_ark_test.zip" => File.read(File.dirname(__FILE__) + '/../fixtures/migration/cc_ark_test.zip') } def get_file(filename, data = nil) diff --git a/spec/selenium/content_migrations_spec.rb b/spec/selenium/content_migrations_spec.rb index f7ac4d1cf25..429194ad958 100644 --- a/spec/selenium/content_migrations_spec.rb +++ b/spec/selenium/content_migrations_spec.rb @@ -34,13 +34,13 @@ describe "external migrations" do end end end - - it "should import a common cartridge" do + + def run_import(file) login_as(@teacher.email, @password) get "/courses/#{@course.id}/imports/migrate" - filename, fullpath, data = get_file("cc_full_test.zip") + filename, fullpath, data = get_file(file) click_option('#choose_migration_system', 'Common Cartridge 1.0/1.1/1.2 Package') driver.find_element(:css, '#config_options').find_element(:name, 'export_file').send_keys(fullpath) @@ -52,23 +52,15 @@ describe "external migrations" do @migration.attachment.should_not be_nil job = @migration.export_content job.invoke_job - + @migration.reload @migration.workflow_state.should == 'exported' get "/courses/#{@course.id}/imports/migrate/#{@migration.id}" wait_for_ajaximations keep_trying_until { find_with_jquery("#copy_everything").should be_displayed } - - driver.find_element(:id, 'copy_everything').click - driver.find_element(:id, 'copy_all_quizzes').click if Qti.migration_executable - driver.find_element(:id, 'copy_folders_I_00001_R_').click - driver.find_element(:id, 'copy_folders_I_00006_Media_').click - driver.find_element(:id, 'copy_folders_I_media_R_').click - driver.find_element(:id, 'copy_modules_I_00000_').click - driver.find_element(:id, 'copy_topics_I_00009_R_').click - driver.find_element(:id, 'copy_topics_I_00006_R_').click - driver.find_element(:id, 'copy_external_tools_I_00010_R_').click + + yield driver expect_new_page_load { driver.find_element(:id, 'copy_context_form').submit @@ -78,10 +70,24 @@ describe "external migrations" do @migration.reload @migration.import_content_without_send_later } - + driver.current_url.ends_with?("/courses/#{@course.id}").should == true - @course.reload + end + + it "should import a common cartridge" do + run_import("cc_full_test.zip") do |driver| + driver.find_element(:id, 'copy_everything').click + driver.find_element(:id, 'copy_all_quizzes').click if Qti.migration_executable + driver.find_element(:id, 'copy_folders_I_00001_R_').click + driver.find_element(:id, 'copy_folders_I_00006_Media_').click + driver.find_element(:id, 'copy_folders_I_media_R_').click + driver.find_element(:id, 'copy_modules_I_00000_').click + driver.find_element(:id, 'copy_topics_I_00009_R_').click + driver.find_element(:id, 'copy_topics_I_00006_R_').click + driver.find_element(:id, 'copy_external_tools_I_00010_R_').click + end + @course.discussion_topics.count.should == 2 @course.quizzes.count.should == 1 if Qti.migration_executable @course.attachments.count.should == 3 @@ -90,4 +96,30 @@ describe "external migrations" do @course.folders.count.should == 4 end + it "should selectively import a common cartridge" do + run_import("cc_ark_test.zip") do |driver| + driver.find_element(:id, 'copy_everything').click + driver.find_element(:id, 'copy_assignments_i183e1527a34b34e8151ffc6dec6cd140_').click + driver.find_element(:id, 'copy_quizzes_i2da11ea691f704f9b32ed3fa563af30e_').click + driver.find_element(:id, 'copy_files_i6d69d81475a73c4214327e7d4ad5630f_').click + driver.find_element(:id, 'copy_modules_i2410bad2b8623a94d9b662ced95406e0_').click + driver.find_element(:id, 'copy_topics_icdbdc4aab17bdd59c6b07f0336de1ce0_').click + driver.find_element(:id, 'copy_topics_ie28afa86290a7c5dfbe78453cc9b8d28_').click + driver.find_element(:id, 'copy_assignment_groups_i0928a83d992c891aa083bcffc1913b67_').click + driver.find_element(:id, 'copy_all_external_tools').click + end + + # 2 because the announcement is returned for this too. + @course.discussion_topics.count.should == 2 + @course.attachments.count.should == 1 + @course.quizzes.count.should == 1 if Qti.migration_executable + @course.attachments.count.should == 1 + @course.context_modules.count.should == 1 + @course.wiki.wiki_pages.count.should == 0 + @course.folders.count.should == 1 + @course.context_external_tools.count.should == 2 + end + + + end \ No newline at end of file diff --git a/vendor/plugins/qti_exporter/lib/workers/qti_worker.rb b/vendor/plugins/qti_exporter/lib/workers/qti_worker.rb index e4e3bda0916..7fffd9c29f4 100644 --- a/vendor/plugins/qti_exporter/lib/workers/qti_worker.rb +++ b/vendor/plugins/qti_exporter/lib/workers/qti_worker.rb @@ -29,7 +29,7 @@ module Canvas::Migration Canvas::Migration::Worker::clear_exported_data(export_folder_path) end - cm.migration_settings[:migration_ids_to_import] = {:copy=>{:assessment_questions=>true}}.merge(cm.migration_settings[:migration_ids_to_import] || {}) + cm.migration_settings[:migration_ids_to_import] = {:copy=>{:everything=>true}}.merge(cm.migration_settings[:migration_ids_to_import] || {}) if path = converter.course[:files_import_root_path] cm.migration_settings[:files_import_root_path] = path end