Diff for /loncom/Lond.pm between versions 1.4 and 1.8

version 1.4, 2012/07/17 14:49:39 version 1.8, 2015/05/22 21:14:59
Line 333  sub dump_course_id_handler { Line 333  sub dump_course_id_handler {
     my ($udom,$since,$description,$instcodefilter,$ownerfilter,$coursefilter,      my ($udom,$since,$description,$instcodefilter,$ownerfilter,$coursefilter,
         $typefilter,$regexp_ok,$rtn_as_hash,$selfenrollonly,$catfilter,$showhidden,          $typefilter,$regexp_ok,$rtn_as_hash,$selfenrollonly,$catfilter,$showhidden,
         $caller,$cloner,$cc_clone_list,$cloneonly,$createdbefore,$createdafter,          $caller,$cloner,$cc_clone_list,$cloneonly,$createdbefore,$createdafter,
         $creationcontext,$domcloner) = split(/:/,$tail);          $creationcontext,$domcloner,$hasuniquecode,$reqcrsdom,$reqinstcode) = split(/:/,$tail);
     my $now = time;      my $now = time;
     my ($cloneruname,$clonerudom,%cc_clone);      my ($cloneruname,$clonerudom,%cc_clone);
     if (defined($description)) {      if (defined($description)) {
Line 406  sub dump_course_id_handler { Line 406  sub dump_course_id_handler {
     } else {      } else {
         $creationcontext = '.';          $creationcontext = '.';
     }      }
       unless ($hasuniquecode) {
           $hasuniquecode = '.';
       }
       if ($reqinstcode ne '') {
           $reqinstcode = &unescape($reqinstcode);
       }
     my $unpack = 1;      my $unpack = 1;
     if ($description eq '.' && $instcodefilter eq '.' && $ownerfilter eq '.' &&       if ($description eq '.' && $instcodefilter eq '.' && $ownerfilter eq '.' && 
         $typefilter eq '.') {          $typefilter eq '.') {
         $unpack = 0;          $unpack = 0;
     }      }
     if (!defined($since)) { $since=0; }      if (!defined($since)) { $since=0; }
       my (%gotcodedefaults,%otcodedefaults);
     my $qresult='';      my $qresult='';
   
     my $hashref = &tie_domain_hash($udom, "nohist_courseids", &GDBM_WRCREAT())      my $hashref = &tie_domain_hash($udom, "nohist_courseids", &GDBM_WRCREAT())
Line 431  sub dump_course_id_handler { Line 438  sub dump_course_id_handler {
                 $lasttime = $hashref->{$lasttime_key};                  $lasttime = $hashref->{$lasttime_key};
                 next if ($lasttime<$since);                  next if ($lasttime<$since);
             }              }
             my ($canclone,$valchange);              my ($canclone,$valchange,$clonefromcode);
             my $items = &Apache::lonnet::thaw_unescape($value);              my $items = &Apache::lonnet::thaw_unescape($value);
             if (ref($items) eq 'HASH') {              if (ref($items) eq 'HASH') {
                 if ($hashref->{$lasttime_key} eq '') {                  if ($hashref->{$lasttime_key} eq '') {
                     next if ($since > 1);                      next if ($since > 1);
                 }                  }
                   if ($items->{'inst_code'}) {
                       $clonefromcode = $items->{'inst_code'};
                   }
                 $is_hash =  1;                  $is_hash =  1;
                 if ($domcloner) {                  if ($domcloner) {
                     $canclone = 1;                      $canclone = 1;
Line 462  sub dump_course_id_handler { Line 472  sub dump_course_id_handler {
                                 }                                  }
                             }                              }
                         }                          }
                           unless ($canclone) {
                               if (($reqcrsdom eq $udom) && ($reqinstcode) && ($clonefromcode)) {
                                   if (grep(/\=/,@cloneable))  {
                                       foreach my $cloner (@cloneable) {
                                           if (($cloner ne '*') && ($cloner !~ /^\*\:$LONCAPA::match_domain$/) &&
                                               ($cloner !~ /^$LONCAPA::match_username\:$LONCAPA::match_domain$/) && ($cloner ne '')) {
                                               if ($cloner =~ /=/) {
                                                   my (%codedefaults,@code_order);
                                                   if (ref($gotcodedefaults{$udom}) eq 'HASH') {
                                                       if (ref($gotcodedefaults{$udom}{'defaults'}) eq 'HASH') {
                                                           %codedefaults = %{$gotcodedefaults{$udom}{'defaults'}};
                                                       }
                                                       if (ref($gotcodedefaults{$udom}{'order'}) eq 'ARRAY') {
                                                           @code_order = @{$gotcodedefaults{$udom}{'order'}};
                                                       }
                                                   } else {
                                                       &Apache::lonnet::auto_instcode_defaults($udom,
                                                                                               \%codedefaults,
                                                                                               \@code_order);
                                                       $gotcodedefaults{$udom}{'defaults'} = \%codedefaults;
                                                       $gotcodedefaults{$udom}{'order'} = \@code_order;
                                                   }
                                                   if (@code_order > 0) {
                                                       if (&Apache::lonnet::check_instcode_cloning(\%codedefaults,\@code_order,
                                                                                                   $cloner,$clonefromcode,$reqinstcode)) {
                                                           $canclone = 1;
                                                           last;
                                                       }
                                                   }
                                               }
                                           }
                                       }
                                   }
                               }
                           }
                     } elsif (defined($cloneruname)) {                      } elsif (defined($cloneruname)) {
                         if ($cc_clone{$unesc_key}) {                          if ($cc_clone{$unesc_key}) {
                             $canclone = 1;                              $canclone = 1;
Line 482  sub dump_course_id_handler { Line 527  sub dump_course_id_handler {
                             }                              }
                         }                          }
                     }                      }
                       unless (($canclone) || ($items->{'cloners'})) {
                           my %domdefs = &Apache::lonnet::get_domain_defaults($udom);
                           if ($domdefs{'canclone'}) {
                               unless ($domdefs{'canclone'} eq 'none') {
                                   if ($domdefs{'canclone'} eq 'domain') {
                                       if ($clonerudom eq $udom) {
                                           $canclone = 1;
                                       }
                                   } elsif (($clonefromcode) && ($reqinstcode) &&
                                            ($udom eq $reqcrsdom)) {
                                       if (&Apache::lonnet::default_instcode_cloning($udom,$domdefs{'canclone'},
                                                                                     $clonefromcode,$reqinstcode)) {
                                           $canclone = 1;
                                       }
                                   }
                               }
                           }
                       }
                 }                  }
                 if ($unpack || !$rtn_as_hash) {                  if ($unpack || !$rtn_as_hash) {
                     $unesc_val{'descr'} = $items->{'description'};                      $unesc_val{'descr'} = $items->{'description'};
Line 530  sub dump_course_id_handler { Line 593  sub dump_course_id_handler {
                         next if !$showhidden;                          next if !$showhidden;
                     }                      }
                 }                  }
                   if ($hasuniquecode ne '.') {
                       next unless ($items->{'uniquecode'});
                   }
             } else {              } else {
                 next if ($catfilter ne '');                  next if ($catfilter ne '');
                 next if ($selfenrollonly);                  next if ($selfenrollonly);
Line 776  Returns: 1 (Continue processing). Line 842  Returns: 1 (Continue processing).
   
 Side effects: response is written to $client.    Side effects: response is written to $client.  
   
 =item dump_couse_id_handler  =item dump_course_id_handler
   
 #TODO copy from lond  #TODO copy from lond
   

Removed from v.1.4  
changed lines
  Added in v.1.8


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>