[LON-CAPA-cvs] cvs: loncom /lonnet/perl lonnet.pm
raeburn
raeburn at source.lon-capa.org
Mon Apr 2 14:23:58 EDT 2018
raeburn Mon Apr 2 18:23:58 2018 EDT
Modified files:
/loncom/lonnet/perl lonnet.pm
Log:
- reconstructing partorder when importing a library file or problem
which contains parts, for importmodes besides "part".
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.1373 loncom/lonnet/perl/lonnet.pm:1.1374
--- loncom/lonnet/perl/lonnet.pm:1.1373 Mon Apr 2 17:27:52 2018
+++ loncom/lonnet/perl/lonnet.pm Mon Apr 2 18:23:57 2018
@@ -1,7 +1,7 @@
# The LearningOnline Network
# TCP networking package
#
-# $Id: lonnet.pm,v 1.1373 2018/04/02 17:27:52 raeburn Exp $
+# $Id: lonnet.pm,v 1.1374 2018/04/02 18:23:57 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -11960,10 +11960,7 @@
# hash populated for imported library file
%metaentry = %currmetaentry;
undef(%currmetaentry);
- if ($importmode eq 'problem') {
-# Import as problem/response
- $unikey=&add_prefix_and_part($prefix,$token->[2]->{'part'});
- } elsif ($importmode eq 'part') {
+ if ($importmode eq 'part') {
# Import as part(s)
$importedparts=1;
# We need to get the original file and the imported file to get the part order correct
@@ -12005,13 +12002,28 @@
$importedpartids{$token->[2]->{'id'}}=$token->[2]->{'id'};
}
} else {
+# Import as problem or as normal import
+ $unikey=&add_prefix_and_part($prefix,$token->[2]->{'part'});
+ unless ($importmode eq 'problem') {
# Normal import
- $unikey=&add_prefix_and_part($prefix,$token->[2]->{'part'});
- if (defined($token->[2]->{'id'})) {
- $unikey.='_'.$token->[2]->{'id'};
- }
+ if (defined($token->[2]->{'id'})) {
+ $unikey.='_'.$token->[2]->{'id'};
+ }
+ }
+# Check metadata for imported file to
+# see if it contained parts
+ if (grep(/^partorder$/, at libfilekeys)) {
+ %currmetaentry = %metaentry;
+ my $libpartorder = &metadata($location,'partorder',undef,undef,undef,
+ $depthcount+1);
+ %metaentry = %currmetaentry;
+ undef(%currmetaentry);
+ if ($libpartorder ne '') {
+ $importedparts = 1;
+ $importedpartids{$token->[2]->{'id'}}=$libpartorder;
+ }
+ }
}
-
if ($depthcount<20) {
my $metadata =
&metadata($uri,'keys',$toolsymb,$location,$unikey,
More information about the LON-CAPA-cvs
mailing list