Diff for /loncom/homework/lonhomework.pm between versions 1.364 and 1.369

version 1.364, 2016/08/31 19:08:18 version 1.369, 2017/12/22 02:00:39
Line 190  sub proctor_checked_in { Line 190  sub proctor_checked_in {
     if ($type eq 'Task') {      if ($type eq 'Task') {
  my $version=$Apache::lonhomework::history{'resource.0.version'};   my $version=$Apache::lonhomework::history{'resource.0.version'};
  $key ="resource.$version.0.checkedin";   $key ="resource.$version.0.checkedin";
     } elsif ($type eq 'problem') {      } elsif (($type eq 'problem') || ($type eq 'tool')) {
  $key ='resource.0.checkedin';   $key ='resource.0.checkedin';
     }      }
     # backward compatability, used to be username@domain,       # backward compatability, used to be username@domain, 
Line 205  sub proctor_checked_in { Line 205  sub proctor_checked_in {
     return 1;      return 1;
  }   }
     }      }
       
     return 0;      return 0;
 }  }
   
Line 350  sub check_slot_access { Line 349  sub check_slot_access {
  $is_correct =     $is_correct =  
     ($Apache::lonhomework::history{"resource.$version.0.status"} eq 'pass'      ($Apache::lonhomework::history{"resource.$version.0.status"} eq 'pass'
      || $Apache::lonhomework::history{"resource.0.solved"} =~ /^correct_/ );       || $Apache::lonhomework::history{"resource.0.solved"} =~ /^correct_/ );
     } elsif ($type eq 'problem') {      } elsif (($type eq 'problem') || ($type eq 'tool')) {
         if ((ref($partlist) eq 'ARRAY') && (@{$partlist} > 0)) {          if ((ref($partlist) eq 'ARRAY') && (@{$partlist} > 0)) {
             my ($numcorrect,$numgraded) = (0,0);              my ($numcorrect,$numgraded) = (0,0);
             foreach my $part (@{$partlist}) {              foreach my $part (@{$partlist}) {
Line 410  sub check_slot_access { Line 409  sub check_slot_access {
     # used to gain access to it to work on it, until the due date is reached, and the      # used to gain access to it to work on it, until the due date is reached, and the
     # problem then becomes CLOSED.  Therefore return the slotstatus -       # problem then becomes CLOSED.  Therefore return the slotstatus - 
     # (which will be one of: NOT_IN_A_SLOT, RESERVABLE, RESERVABLE_LATER, or NOTRESERVABLE).      # (which will be one of: NOT_IN_A_SLOT, RESERVABLE, RESERVABLE_LATER, or NOTRESERVABLE).
     if (!defined($slot_name) && $type eq 'problem') {      if (!defined($slot_name) && (($type eq 'problem') || ($type eq 'tool'))) {
         if ($slotstatus eq 'NOT_IN_A_SLOT') {          if ($slotstatus eq 'NOT_IN_A_SLOT') {
             if (!$num_usable_slots) {              if (!$num_usable_slots) {
                 if ($env{'request.course.id'}) {                  if ($env{'request.course.id'}) {
Line 501  sub check_slot_access { Line 500  sub check_slot_access {
     }      }
   
     if (($is_correct) && ($blockip ne 'answer')) {      if (($is_correct) && ($blockip ne 'answer')) {
  if ($type eq 'problem') {   if (($type eq 'problem') || ($type eq 'tool')) {
     return ($status);      return ($status);
  }   }
  return ('SHOW_ANSWER');   return ('SHOW_ANSWER');
Line 1431  sub get_template_html { Line 1430  sub get_template_html {
 sub newproblem {  sub newproblem {
     my ($request) = @_;      my ($request) = @_;
   
  if ($env{'form.mode'} eq 'blank'){      if ($env{'form.mode'} eq 'blank'){
         my $dest = &Apache::lonnet::filelocation("",$request->uri);          my $dest = &Apache::lonnet::filelocation("",$request->uri);
         &File::Copy::copy('/home/httpd/html/res/adm/includes/templates/blank.problem',$dest);          my $templatefilename =
               $request->dir_config('lonIncludes').'/templates/blank.problem';
           &File::Copy::copy($templatefilename,$dest);
         &renderpage($request,$dest);          &renderpage($request,$dest);
         return;          return;
     }      }
       my $errormsg;
     if ($env{'form.template'}) {      if ($env{'form.template'}) {
  my $file = $env{'form.template'};          my $file;
  my $dest = &Apache::lonnet::filelocation("",$request->uri);          my ($extension) = ($env{'form.template'} =~ /\.(\w+)$/);
  &File::Copy::copy($file,$dest);          if ($extension) {
  &renderpage($request,$dest);              my @files = &get_template_list($extension);
  return;              foreach my $poss (@files) {
                   if (ref($poss) eq 'ARRAY') {
                       if ($env{'form.template'} eq $poss->[0]) {
                           $file = $env{'form.template'};
                           last;
                       }
                   }
               }
               if ($file) {
           my $dest = &Apache::lonnet::filelocation("",$request->uri);
           &File::Copy::copy($file,$dest);
           &renderpage($request,$dest);
           return;
               } else {
                   $errormsg = '<p class="LC_error">'.&mt('Invalid template file.').'</p>';
               }
           } else {
               $errormsg = '<p class="LC_error">'.&mt('Invalid template file; template needs to be a .problem, .library, or .task file.').'</p>';
           }
     }      }
   
     my ($extension) = ($request->uri =~ m/\.(\w+)$/);      my ($extension) = ($request->uri =~ m/\.(\w+)$/);
Line 1459  sub newproblem { Line 1479  sub newproblem {
     } else {      } else {
  my $url=&HTML::Entities::encode($request->uri,'<>&"');   my $url=&HTML::Entities::encode($request->uri,'<>&"');
  my $dest = &Apache::lonnet::filelocation("",$request->uri);   my $dest = &Apache::lonnet::filelocation("",$request->uri);
  my $errormsg;  
  my $instructions;   my $instructions;
         my $brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri),          my $brcrum = [{'href' => &Apache::loncommon::authorspace($request->uri),
                        'text' => 'Authoring Space'},                         'text' => 'Authoring Space'},
Line 1787  sub default_xml_tag { Line 1806  sub default_xml_tag {
   
 sub helpmenu_datastructure {  sub helpmenu_datastructure {
   
  my $width = 500;   # filename, title, width, height
  my $height = 600;  
   
  my $helpers = [   my $helpers = [
  ['Problem_LON-CAPA_Functions', &mt('Script Functions')],   ['Problem_LON-CAPA_Functions.hlp', &mt('Script Functions'), 800, 600],
  ['Greek_Symbols', &mt('Greek Symbols')],   ['Greek_Symbols.hlp', &mt('Greek Symbols'), 500, 600],
   ['Other_Symbols', &mt('Other Symbols')],    ['Other_Symbols.hlp', &mt('Other Symbols'), 500, 600],
  ['Authoring_Output_Tags', &mt('Output Tags')],   ['Authoring_Output_Tags.hlp', &mt('Output Tags'), 800, 600],
  ['Authoring_Multilingual_Problems',    ['Authoring_Multilingual_Problems.hlp', 
  &mt('How to create problems in different languages')]   &mt('How to create problems in different languages'), 800, 600],
    ['loncapa.html', &mt('Language reference'), 800, 600],
  ];   ];
   
  my $help_structure = [];   my $help_structure = [];
Line 1804  sub helpmenu_datastructure { Line 1822  sub helpmenu_datastructure {
  foreach my $count (0..(scalar(@{$helpers})-1)) {   foreach my $count (0..(scalar(@{$helpers})-1)) {
  my $filename = $helpers->[$count]->[0];   my $filename = $helpers->[$count]->[0];
  my $title = $helpers->[$count]->[1];   my $title = $helpers->[$count]->[1];
  my $href = &HTML::Entities::encode("javascript:openMyModal('/adm/help/$filename.hlp',$width,$height,'yes');");   my $width = $helpers->[$count]->[2];
                   my $height = $helpers->[$count]->[3];
                   if ($width eq '') {
                       $width = 500;
                   }
                   if ($height eq '') {
                       $height = 600;
                   }
    my $href = &HTML::Entities::encode("javascript:openMyModal('/adm/help/$filename',$width,$height,'yes');");
  push @{$help_structure}, [$href, $title, undef];   push @{$help_structure}, [$href, $title, undef];
  }   }
   

Removed from v.1.364  
changed lines
  Added in v.1.369


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