Diff for /loncom/homework/lonhomework.pm between versions 1.334 and 1.343

version 1.334, 2011/12/20 22:46:06 version 1.343, 2014/01/15 14:46:27
Line 163  sub get_target { Line 163  sub get_target {
     }      }
         }          }
 #  #
 # End of Construction Space  # End of Authoring Space
 #  #
     }      }
 #  #
Line 451  sub check_access { Line 451  sub check_access {
     $datemsg=$date;      $datemsg=$date;
  } elsif ($type eq 'opendate') {   } elsif ($type eq 'opendate') {
     $status='CLOSED';      $status='CLOSED';
     $datemsg = &mt("will open on")." $date";      $datemsg = &mt('will open on [_1]',$date);
  } elsif ($type eq 'duedate') {   } elsif ($type eq 'duedate') {
     $status='CAN_ANSWER';      $status='CAN_ANSWER';
     $datemsg = &mt("is due at")." $date";      $datemsg = &mt('is due at [_1]',$date);
  } elsif ($type eq 'answerdate') {   } elsif ($type eq 'answerdate') {
     $status='CLOSED';      $status='CLOSED';
     $datemsg = &mt("was due on")." $lastdate".&mt(", and answers will be available on")." $date";      $datemsg = &mt('was due on [_1], and answers will be available on [_2]',
                                  $lastdate,$date);
  }   }
     }      }
     if ($status eq 'CAN_ANSWER' ||      if ($status eq 'CAN_ANSWER' ||
Line 508  sub check_access { Line 509  sub check_access {
   #    return ('UNCHECKEDOUT','needs to be checked out');    #    return ('UNCHECKEDOUT','needs to be checked out');
   #}    #}
   
   
     &Apache::lonxml::debug("sending back :$status:$datemsg:");      &Apache::lonxml::debug("sending back :$status:$datemsg:");
     if (($Apache::lonhomework::browse eq 'F') && ($status eq 'CLOSED')) {      if (($Apache::lonhomework::browse eq 'F') && ($status eq 'CLOSED')) {
  &Apache::lonxml::debug("should be allowed to browse a resource when closed");   &Apache::lonxml::debug("should be allowed to browse a resource when closed");
Line 608  sub showhashsubset { Line 608  sub showhashsubset {
   
 sub setuppermissions {  sub setuppermissions {
     $Apache::lonhomework::browse= &Apache::lonnet::allowed('bre',$env{'request.filename'});      $Apache::lonhomework::browse= &Apache::lonnet::allowed('bre',$env{'request.filename'});
       unless ($Apache::lonhomework::browse eq 'F') {
           $Apache::lonhomework::browse=&Apache::lonnet::allowed('bro',$env{'request.filename'}); 
       }
     my $viewgrades = &Apache::lonnet::allowed('vgr',$env{'request.course.id'});      my $viewgrades = &Apache::lonnet::allowed('vgr',$env{'request.course.id'});
     if (! $viewgrades &&       if (! $viewgrades && 
  exists($env{'request.course.sec'}) &&    exists($env{'request.course.sec'}) && 
Line 667  sub setupheader { Line 670  sub setupheader {
 }  }
   
 sub handle_save_or_undo {  sub handle_save_or_undo {
     my ($request,$problem,$result) = @_;      my ($request,$problem,$result,$getobjref) = @_;
   
     my $file    = &Apache::lonnet::filelocation("",$request->uri);      my $file    = &Apache::lonnet::filelocation("",$request->uri);
     my $filebak =$file.".bak";      my $filebak =$file.".bak";
Line 710  sub handle_save_or_undo { Line 713  sub handle_save_or_undo {
  my $fh=Apache::File->new(">$file");   my $fh=Apache::File->new(">$file");
  if (defined($fh)) {   if (defined($fh)) {
     print $fh $$result;      print $fh $$result;
               if (ref($getobjref) eq 'SCALAR') {
                   if ($file =~ m{([^/]+)\.(html?)$}) {
                       my $fname = $1;
                       my $ext = $2;
                       my $path = $file;
                       $path =~ s/\Q$fname\E\.\Q$ext\E$//; 
                       my (%allfiles,%codebase);
                       &Apache::lonnet::extract_embedded_items($file,\%allfiles,
                                                              \%codebase,$result);
                       if (keys(%allfiles) > 0) {
                           my $url = $request->uri;
                           my $state = <<STATE;
       <input type="hidden" name="action" value="upload_embedded" />
       <input type="hidden" name="url" value="$url" />
   STATE
                           $$getobjref = "<h3>".&mt("Reference Warning")."</h3>".
                                         "<p>".&mt("Completed upload of the file. This file contained references to other files.")."</p>".
                                         "<p>".&mt("Please select the locations from which the referenced files are to be uploaded.")."</p>".
                                         &Apache::loncommon::ask_for_embedded_content($url,$state,\%allfiles,\%codebase,
                                         {'error_on_invalid_names'   => 1,
                                          'ignore_remote_references' => 1,});
                       }
                   }
               }
  } else {   } else {
     &Apache::lonxml::info('<span class="LC_error">'.      &Apache::lonxml::info('<span class="LC_error">'.
   &mt("Unable to write to [_1]",    &mt("Unable to write to [_1]",
Line 728  sub analyze_header { Line 755  sub analyze_header {
   
     # Breadcrumbs      # Breadcrumbs
     my $brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri),      my $brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri),
                    'text' => 'Construction Space'},                     'text' => 'Authoring Space'},
                   {'href' => '',                    {'href' => '',
                    'text' => 'Problem Testing'},                     'text' => 'Problem Testing'},
                   {'href' => '',                    {'href' => '',
Line 779  sub analyze { Line 806  sub analyze {
     my $rndseed=$env{'form.rndseed'};      my $rndseed=$env{'form.rndseed'};
     &analyze_header($request);      &analyze_header($request);
     my %prog_state=      my %prog_state=
  &Apache::lonhtmlcommon::Create_PrgWin($request,&mt('Analyze Progress'),   &Apache::lonhtmlcommon::Create_PrgWin($request,$env{'form.numtoanalyze'});
       &mt('Getting Problem Variants'),  
       $env{'form.numtoanalyze'},  
       'inline',undef);  
     for(my $i=1;$i<$env{'form.numtoanalyze'}+1;$i++) {      for(my $i=1;$i<$env{'form.numtoanalyze'}+1;$i++) {
  &Apache::lonhtmlcommon::Increment_PrgWin($request,\%prog_state,   &Apache::lonhtmlcommon::Increment_PrgWin($request,\%prog_state,'last problem');
  &mt('last problem'));  
  if (&Apache::loncommon::connection_aborted($request)) { return; }   if (&Apache::loncommon::connection_aborted($request)) { return; }
         my $thisseed=$i+$rndseed;          my $thisseed=$i+$rndseed;
  my $subresult=&Apache::lonnet::ssi($request->uri,   my $subresult=&Apache::lonnet::ssi($request->uri,
Line 794  sub analyze { Line 817  sub analyze {
  (my $garbage,$subresult)=split(/_HASH_REF__/,$subresult,2);   (my $garbage,$subresult)=split(/_HASH_REF__/,$subresult,2);
  my %analyze=&Apache::lonnet::str2hash($subresult);   my %analyze=&Apache::lonnet::str2hash($subresult);
  my @parts;   my @parts;
  if (defined(@{ $analyze{'parts'} })) {          if (ref($analyze{'parts'}) eq 'ARRAY') {
     @parts=@{ $analyze{'parts'} };      @parts=@{ $analyze{'parts'} };
  }   }
  foreach my $part (@parts) {   foreach my $part (@parts) {
Line 827  sub analyze { Line 850  sub analyze {
     }      }
  }   }
     }      }
     &Apache::lonhtmlcommon::Update_PrgWin($request,\%prog_state,      &Apache::lonhtmlcommon::Update_PrgWin($request,\%prog_state,&mt('Analyzing Results'));
   &mt('Analyzing Results'));  
     $request->print('<hr />'      $request->print('<hr />'
                    .'<h3>'                     .'<h3>'
                    .&mt('List of possible answers')                     .&mt('List of possible answers')
                    .'</h3>'                     .'</h3>'
     );      );
     foreach my $part (sort(keys(%allparts))) {      foreach my $part (sort(keys(%allparts))) {
  if (defined(@{ $overall{$part.'.answer'} })) {          if ((ref($overall{$part.'.answer'}) eq 'ARRAY') &&
               (@{$overall{$part.'.answer'}} > 0)) {
     for (my $i=0;$i<scalar(@{ $overall{$part.'.answer'} });$i++) {      for (my $i=0;$i<scalar(@{ $overall{$part.'.answer'} });$i++) {
  my $num_cols=scalar(@{ $overall{$part.'.answer'}[$i][0] });   my $num_cols=scalar(@{ $overall{$part.'.answer'}[$i][0] });
                 $request->print(&Apache::loncommon::start_data_table()                  $request->print(&Apache::loncommon::start_data_table()
Line 966  sub editxmlmode { Line 989  sub editxmlmode {
   
     # Breadcrumbs      # Breadcrumbs
     my $brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri),      my $brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri),
                    'text' => 'Construction Space'},                     'text' => 'Authoring Space'},
                   {'href' => '',                    {'href' => '',
                    'text' => 'Problem Editing'}];                     'text' => 'Problem Editing'}];
   
Line 1043  sub renderpage { Line 1066  sub renderpage {
     $problem='';      $problem='';
     my $filename=(split('/',$file))[-1];      my $filename=(split('/',$file))[-1];
     my $error =      my $error =
  '<p class="LC_error">'                  &mt('Unable to find [_1]',
                .&mt('Unable to find [_1]',     '<span class="LC_filename">'.$filename.'</span>');
    '<span class="LC_filename">'.$filename.'</span>')  
  ."</p>";  
     $result.=      $result.=
  &Apache::loncommon::simple_error_page($request,'Not available',   &Apache::loncommon::simple_error_page($request,'Not available',
       $error);        $error,{'no_auto_mt_msg' => 1});
     return;      return;
  }   }
   
Line 1110  sub get_template_list { Line 1131  sub get_template_list {
      '/templates/*.'.$glob_extension);       '/templates/*.'.$glob_extension);
     @files = map {[$_,&mt(&Apache::lonnet::metadata($_, 'title')),      @files = map {[$_,&mt(&Apache::lonnet::metadata($_, 'title')),
                       (&Apache::lonnet::metadata($_, 'category')?&mt(&Apache::lonnet::metadata($_, 'category')):&mt('Miscellaneous')),                        (&Apache::lonnet::metadata($_, 'category')?&mt(&Apache::lonnet::metadata($_, 'category')):&mt('Miscellaneous')),
                       &mt(&Apache::lonnet::metadata($_, 'help'))]} (@files);                        &Apache::lonnet::metadata($_, 'help')]} (@files);
     @files = sort {$a->[2].$a->[1] cmp $b->[2].$b->[1]} (@files);      @files = sort {$a->[2].$a->[1] cmp $b->[2].$b->[1]} (@files);
     my ($midpoint,$seconddiv,$numfiles);      my ($midpoint,$seconddiv,$numfiles);
       my @noexamplelink = ('blank.problem','blank.library','script.library');
     $numfiles = 0;      $numfiles = 0;
     foreach my $file (@files) {      foreach my $file (@files) {
         next if ($file->[1] !~ /\S/);          next if ($file->[1] !~ /\S/);
Line 1151  sub get_template_list { Line 1173  sub get_template_list {
         if ($file->[3]) {          if ($file->[3]) {
            $result.=&Apache::loncommon::help_open_topic($file->[3]);             $result.=&Apache::loncommon::help_open_topic($file->[3]);
         }          }
           # Provide example link
         my $filename=$file->[0];          my $filename=$file->[0];
         $filename=~s{^\Q$londocroot\E}{};          $filename=~s{^\Q$londocroot\E}{};
         $result.=' <span class="LC_fontsize_small">'           if (!(grep $filename =~ $_, @noexamplelink)) {
                 .&Apache::loncommon::modal_link($filename.'?inhibitmenu=yes',&mt('Example'),600,420,'sample')             $result .= ' <span class="LC_fontsize_small">'
                 .'</span><br />'."\n";                       .&Apache::loncommon::modal_link(
                             $filename.'?inhibitmenu=yes',&mt('Example'),600,420,'sample')
                        .'</span>';
           };
           $result .= '<br />'."\n";
         $count ++;          $count ++;
     }      }
     if ($numfiles > 0) {      if ($numfiles > 0) {
Line 1192  sub newproblem { Line 1219  sub newproblem {
  my $errormsg;   my $errormsg;
  my $instructions;   my $instructions;
         my $brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri),          my $brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri),
                        'text' => 'Construction Space'},                         'text' => 'Authoring Space'},
                       {'href' => '',                        {'href' => '',
                        'text' => "Create New $extension"}];                         'text' => "Create New $extension"}];
  my $start_page =    my $start_page = 

Removed from v.1.334  
changed lines
  Added in v.1.343


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