[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