Diff for /loncom/interface/lonwhatsnew.pm between versions 1.98.2.1 and 1.105.2.1

version 1.98.2.1, 2009/12/14 22:24:31 version 1.105.2.1, 2012/05/10 19:01:40
Line 88  sub handler { Line 88  sub handler {
   
     if ( ! $env{'request.course.fn'} || ! $checkallowed{'whatsnew'}) {      if ( ! $env{'request.course.fn'} || ! $checkallowed{'whatsnew'}) {
         # Not in a course, or no whn priv in course          # Not in a course, or no whn priv in course
         $env{'user.error.msg'}="/adm/whatsnew::whn:0:0:Cannot display what's new page";          $env{'user.error.msg'}="/adm/whatsnew:whn:0:0:Cannot display what's new page";
         return HTTP_NOT_ACCEPTABLE;          return HTTP_NOT_ACCEPTABLE;
     }      }
   
Line 282  END Line 282  END
 sub display_actions_box {  sub display_actions_box {
     my ($r,$command,$refpage,$threshold_titles,$interval_titles,$initpage,      my ($r,$command,$refpage,$threshold_titles,$interval_titles,$initpage,
         $cdom,$crs,$checkallowed) = @_;          $cdom,$crs,$checkallowed) = @_;
     my $custommenu = &Apache::loncommon::needs_gci_custom();  
     my $udom = $env{'user.domain'};      my $udom = $env{'user.domain'};
     my $uname = $env{'user.name'};      my $uname = $env{'user.name'};
     my $cid = $env{'request.course.id'};      my $cid = $env{'request.course.id'};
Line 344  sub display_actions_box { Line 343  sub display_actions_box {
     }      }
   
     my $header = '';      my $header = '';
     if (($refpage eq 'start') && (!$custommenu)) {      if ($refpage eq 'start') {
         if (tie(my %bighash,'GDBM_File',$env{'request.course.fn'}.'.db',          if (tie(my %bighash,'GDBM_File',$env{'request.course.fn'}.'.db',
             &GDBM_READER(),0640)) {              &GDBM_READER(),0640)) {
             my $furl=&HTML::Entities::encode($bighash{'first_url'},'"<>&');              my $furl=&HTML::Entities::encode($bighash{'first_url'},'"<>&');
Line 353  sub display_actions_box { Line 352  sub display_actions_box {
                   '</a></b><br />';                    '</a></b><br />';
         }          }
     }      }
     unless ($custommenu) {      $header .= &mt('Page set to be displayed after you have selected a role in this '.$lctype).'.'
         $header .= &mt('Page set to be displayed after you have selected a role in this '.$lctype).'.'  
               .' <span class="LC_nobreak">'                .' <span class="LC_nobreak">'
               .&mt('Currently: [_1].','<i>'.$currinit.'</i>')                .&mt('Currently: [_1].','<i>'.$currinit.'</i>')
               .'&nbsp;&nbsp;'                .'&nbsp;&nbsp;'
Line 367  sub display_actions_box { Line 365  sub display_actions_box {
                   ,'</a>')                    ,'</a>')
               .' </span>';                .' </span>';
   
         $r->print(&Apache::loncommon::head_subbox($header));      $r->print(&Apache::loncommon::head_subbox($header));
     }  
   
     if ($command eq 'reset') {      if ($command eq 'reset') {
         $result = &process_reset($cdom,$crs);          $result = &process_reset($cdom,$crs);
Line 477  sub display_actions_box { Line 474  sub display_actions_box {
     $threshold{'av_attempts'},$threshold{'degdiff'},      $threshold{'av_attempts'},$threshold{'degdiff'},
     '<br />',$threshold{'numstudents'});      '<br />',$threshold{'numstudents'});
   
     my @actionorder;      my @actionorder = ('handgrading','haserrors','abovethreshold','versionchanges','coursediscussion','coursenormalmail','coursecritmail','newroles','oldroles');
     if ($custommenu) {  
         @actionorder = ('coursenormalmail','coursecritmail','newroles','oldroles');  
     } else {  
         @actionorder = ('handgrading','haserrors','abovethreshold','versionchanges','coursediscussion','coursenormalmail','coursecritmail','newroles','oldroles');  
     }  
   
     foreach my $key (keys(%{$checkallowed})) {      foreach my $key (keys(%{$checkallowed})) {
  if ($key =~ /_section$/) { next; }   if ($key =~ /_section$/) { next; }
Line 543  sub display_actions_box { Line 535  sub display_actions_box {
     }      }
     my $halfway = 4;      my $halfway = 4;
 #    my $halfway = int($totalboxes/2) + $totalboxes%2;  #    my $halfway = int($totalboxes/2) + $totalboxes%2;
     if ($custommenu) {  
         $halfway = 2;  
     }  
     foreach my $actionitem (@actionorder) {      foreach my $actionitem (@actionorder) {
         if ($$checkallowed{$actionitem}) {          if ($$checkallowed{$actionitem}) {
             if ($displayed == $halfway) {              if ($displayed == $halfway) {
Line 985  sub check_thresholds { Line 974  sub check_thresholds {
         if ($resource->handgrade($part) eq 'yes') {          if ($resource->handgrade($part) eq 'yes') {
             next;              next;
         }          }
           if ($resource->is_anonsurvey($part)) {
               next;
           }
         if ($resource->is_survey($part)) {          if ($resource->is_survey($part)) {
             next;              next;
         }          }
Line 1007  sub check_thresholds { Line 999  sub check_thresholds {
             $av_attempts = $attempts/$users;              $av_attempts = $attempts/$users;
             $av_attempts = sprintf("%.2f",$av_attempts);              $av_attempts = sprintf("%.2f",$av_attempts);
         }          }
           &Apache::lonnet::statslog($symb,$part,$users,$av_attempts,$degdiff);
         if ((($degdiff ne '' && $degdiff >= $$threshold{'degdiff'}) || ($av_attempts ne '' && $av_attempts >= $$threshold{'av_attempts'})) && ($users >= $$threshold{'numstudents'})) {          if ((($degdiff ne '' && $degdiff >= $$threshold{'degdiff'}) || ($av_attempts ne '' && $av_attempts >= $$threshold{'av_attempts'})) && ($users >= $$threshold{'numstudents'})) {
             $stats{$part}{degdiff} = $degdiff;              $stats{$part}{degdiff} = $degdiff;
             $stats{$part}{attempts} = $av_attempts;              $stats{$part}{attempts} = $av_attempts;
Line 1141  sub process_reset { Line 1134  sub process_reset {
   
 sub process_update {  sub process_update {
     my ($uname,$udom,$threshold_titles) = @_;      my ($uname,$udom,$threshold_titles) = @_;
     my $setoutput = '<b>'.&mt('Changes to threshold(s) for problem tracking:').'</b><br />';      my $setoutput = '<b>'.&mt('Changes to threshold(s) for problem tracking:').'</b><br/><br />';
     foreach (keys %env) {      foreach (keys %env) {
         next if ($_!~/^form\.(.+)\_setparmval$/);          next if ($_!~/^form\.(.+)\_setparmval$/);
         my $name  = $1;          my $name  = $1;
Line 1152  sub process_update { Line 1145  sub process_update {
                         
             my ($shortname) = ($name =~ /^\Q$env{'request.course.id'}\E:threshold_(.+)$/);              my ($shortname) = ($name =~ /^\Q$env{'request.course.id'}\E:threshold_(.+)$/);
             if ($put_result eq 'ok') {              if ($put_result eq 'ok') {
                 $setoutput.=&mt('Set threshold for [_1] to [_2]',                  $setoutput.= &Apache::lonhtmlcommon::confirm_success(&mt('Set threshold for [_1] to [_2]',
  '<b>'.$$threshold_titles{$shortname}.'</b>',   '<b>'.$$threshold_titles{$shortname}.'</b>',
  '<b>'.$value.'</b>').'<br />';   '<b>'.$value.'</b>').'<br />');
     } else {      } else {
                 $setoutput.=&mt('Unable to set threshold for [_1] to [_2] due to [_3].',                  $setoutput.= &Apache::lonhtmlcommon::confirm_success(&mt('Unable to set threshold for [_1] to [_2] due to [_3].',
  '<b>'.$name.'</b>','<b>'.$value.'</b>',   '<b>'.$name.'</b>','<b>'.$value.'</b>',
  '<tt>'.$put_result.'</tt>').'<br />';   '<tt>'.$put_result.'</tt>').'<br />',1);
             }              }
         }          }
     }      }
     return $setoutput;      return &Apache::loncommon::confirmwrapper($setoutput);
 }  }
   
 sub getnormalmail {  sub getnormalmail {
Line 1177  sub getnormalmail { Line 1170  sub getnormalmail {
             &Apache::lonmsg::unpackmsgid($msgid);              &Apache::lonmsg::unpackmsgid($msgid);
         if (($fromcid) && ($fromcid eq $env{'request.course.id'})) {          if (($fromcid) && ($fromcid eq $env{'request.course.id'})) {
             if (defined($sendtime) && $sendtime!~/error/) {              if (defined($sendtime) && $sendtime!~/error/) {
                 my $numsendtime = $sendtime;  
                 if ($status eq 'new') {                  if ($status eq 'new') {
                 $sendtime = &Apache::lonlocal::locallocaltime($sendtime);                  $sendtime = &Apache::lonlocal::locallocaltime($sendtime);
     $msgcount ++;      $msgcount ++;
Line 1209  sub getcritmail { Line 1201  sub getcritmail {
             &Apache::lonmsg::unpackmsgid($msgid);              &Apache::lonmsg::unpackmsgid($msgid);
         if (($fromcid) && ($fromcid eq  $env{'request.course.id'})) {          if (($fromcid) && ($fromcid eq  $env{'request.course.id'})) {
             if (defined($sendtime) && $sendtime!~/error/) {              if (defined($sendtime) && $sendtime!~/error/) {
                 my $numsendtime = $sendtime;  
                 $sendtime = &Apache::lonlocal::locallocaltime($sendtime);                  $sendtime = &Apache::lonlocal::locallocaltime($sendtime);
                 $critmsgcount ++;                  $critmsgcount ++;
                 if ($shortsubj eq '') {                  if ($shortsubj eq '') {
Line 1444  sub checkversions { Line 1435  sub checkversions {
                                                      'lastrevisiondate');                                                       'lastrevisiondate');
                     $revdate =  &Apache::lonlocal::locallocaltime($revdate);                      $revdate =  &Apache::lonlocal::locallocaltime($revdate);
                     my $linkurl=&Apache::lonnet::clutter($key);                      my $linkurl=&Apache::lonnet::clutter($key);
                     my $usedversion=$navmap->usedVersion('version_'.$linkurl);                      my $usedversion=$navmap->usedVersion($linkurl);
                     my @resources = $navmap->getResourceByUrl($linkurl,1);                      my @resources = $navmap->getResourceByUrl($linkurl,1);
                     if (($usedversion) && ($usedversion ne 'mostrecent')) {                      if (($usedversion) && ($usedversion ne 'mostrecent')) {
                         $version = $usedversion;                               $version = $usedversion;     
Line 1487  sub display_handgrade { Line 1478  sub display_handgrade {
             my $linkurl=&Apache::lonnet::clutter($url);              my $linkurl=&Apache::lonnet::clutter($url);
             $linkurl .= '?symb='.&escape($res);              $linkurl .= '?symb='.&escape($res);
             if ($$ungraded{$res}{'enclink'}) {              if ($$ungraded{$res}{'enclink'}) {
                 $linkurl =                   $linkurl =
                     $$ungraded{$res}{'enclink'}.'?symb='.$$ungraded{$res}{'encsymb'};                      $$ungraded{$res}{'enclink'}.'?symb='.$$ungraded{$res}{'encsymb'};
             }               }
             $r->print('<tr'.$css_class.'><td><a href="'.$linkurl.'">'.$$ungraded{$res}{title}.'</a></td><td class="LC_right_item">'.$$ungraded{$res}{count}.'</td></tr>');              $r->print('<tr'.$css_class.'><td><a href="'.$linkurl.'">'.$$ungraded{$res}{title}.'</a></td><td class="LC_right_item">'.$$ungraded{$res}{count}.'</td></tr>');
         }          }
     } elsif ($itemserror) {      } elsif ($itemserror) {
Line 1852  sub store_interval_setting { Line 1843  sub store_interval_setting {
                                              \%interval_settings,$udom,$uname);                                               \%interval_settings,$udom,$uname);
         if ($outcome eq 'ok') {          if ($outcome eq 'ok') {
             if (ref($interval_titles->{$context}) eq 'HASH') {              if (ref($interval_titles->{$context}) eq 'HASH') {
                 $result = &mt('New filter setting: [_1].','<b>'.                   $result = &Apache::lonhtmlcommon::confirm_success(&mt('New filter setting: [_1].','<b>'. 
                               $interval_titles->{$context}->{$env{'form.interval'}}.'</b>').'<br />';                                $interval_titles->{$context}->{$env{'form.interval'}}.'</b>').'<br />');
             }              }
         } else {          } else {
     my $lctype = lc(&Apache::loncommon::course_type());      my $lctype = lc(&Apache::loncommon::course_type());
             &Apache::lonnet::logthis('Error saving whatsnew '.$context.' interval setting'.              &Apache::lonnet::logthis('Error saving whatsnew '.$context.' interval setting'.
                 ' '.$outcome.' for '.$uname.':'.$udom.' in '.$lctype.' '.$cid);                  ' '.$outcome.' for '.$uname.':'.$udom.' in '.$lctype.' '.$cid);
             $result = &mt('Unable to set interval to [_1] due to [_2].',              $result = &Apache::lonhtmlcommon::confirm_success(&mt('Unable to set interval to [_1] due to [_2].',
                          '<b>'.$interval_titles->{$context}->{$env{'form.interval'}}.'</b>',                           '<b>'.$interval_titles->{$context}->{$env{'form.interval'}}.'</b>',
                          '<tt>'.$outcome.'</tt>.<br />');                           '<tt>'.$outcome.'</tt>'),1);
         }          }
     }      }
     return $result;      return &Apache::loncommon::confirmwrapper($result);
 }  }
   
 sub store_discussion_setting {  sub store_discussion_setting {
Line 1876  sub store_discussion_setting { Line 1867  sub store_discussion_setting {
         my $outcome = &Apache::lonnet::put('nohist_whatsnew',          my $outcome = &Apache::lonnet::put('nohist_whatsnew',
                                              \%discussion_settings,$udom,$uname);                                               \%discussion_settings,$udom,$uname);
         if ($outcome eq 'ok') {          if ($outcome eq 'ok') {
             $result = &mt('Count unread posts in discussions display set to [_1]',              $result = &Apache::lonhtmlcommon::confirm_success(&mt('Count unread posts in discussions display set to [_1]',
                   '<b>'.&mt($env{'form.countunread'}).'</b>').'<br />';                    '<b>'.&mt($env{'form.countunread'}).'</b>').'<br />');
                                                                                                                                                                       
         } else {          } else {
     my $lctype = lc(&Apache::loncommon::course_type());      my $lctype = lc(&Apache::loncommon::course_type());
             &Apache::lonnet::logthis('Error saving whatsnew countunread setting'.              &Apache::lonnet::logthis('Error saving whatsnew countunread setting'.
                 ' '.$outcome.' for '.$uname.':'.$udom.' in '.$lctype.' '.$cid);                  ' '.$outcome.' for '.$uname.':'.$udom.' in '.$lctype.' '.$cid);
             $result = &mt('Unable to set "number unread posts display" to [_1]'.              $result = &Apache::lonhtmlcommon::confirm_success(&mt('Unable to set "number unread posts display" to [_1]'.
                           ' due to [_2].',                            ' due to [_2].',
                          '<b>'.&mt($env{'form.countunread'}).'</b>',                           '<b>'.&mt($env{'form.countunread'}).'</b>',
                          '<tt>'.$outcome.'</tt>.<br />');                           '<tt>'.$outcome.'</tt>'),1);
         }          }
     }      }
     return $result;      return &Apache::loncommon::confirmwrapper($result);
 }  }
   
 sub store_courseinit_setting {  sub store_courseinit_setting {
Line 1914  sub store_courseinit_setting { Line 1905  sub store_courseinit_setting {
                                            \%courseinit_settings,$udom,$uname);                                             \%courseinit_settings,$udom,$uname);
             if ($outcome eq 'ok') {              if ($outcome eq 'ok') {
                 if ($page_control eq 'global preferences') {                  if ($page_control eq 'global preferences') {
                     $result = &mt("Page displayed after role selection in $lctype now set by [_1]user's global preferences[_2].",'<b>','</b>');                      $result = &Apache::lonhtmlcommon::confirm_success(&mt("Page displayed after role selection in $lctype now set by [_1]user's global preferences[_2].",'<b>','</b>'));
                 } else {                  } else {
                     $result = &mt('Page displayed after role selection in this '.$lctype.' set to [_1].'                      $result = &Apache::lonhtmlcommon::confirm_success(&mt('Page displayed after role selection in this '.$lctype.' set to [_1].'
                                  ,'<b>'.$$initpage{$env{'form.courseinit_page'}}.'</b>');                                   ,'<b>'.$$initpage{$env{'form.courseinit_page'}}.'</b>'));
                 }                  }
             } else {              } else {
                 &Apache::lonnet::logthis('Error saving whatsnew courseinit '.                  &Apache::lonnet::logthis('Error saving whatsnew courseinit '.
                                          'setting: '.$outcome.' for '.$uname.                                           'setting: '.$outcome.' for '.$uname.
                                          ':'.$udom.' in '.$lctype.' '.$cid);                                           ':'.$udom.' in '.$lctype.' '.$cid);
                 if ($page_control eq 'global preferences') {                  if ($page_control eq 'global preferences') {
                     $result = &mt('Unable to set control of page display to [_1]'.                      $result = &Apache::lonhtmlcommon::confirm_success(&mt('Unable to set control of page display to [_1]'.
                           ' due to [_2].',                            ' due to [_2].',
                          '<b>'.$page_control.'</b>',                           '<b>'.$page_control.'</b>',
                          '<tt>'.$outcome.'</tt>.<br />');                           '<tt>'.$outcome.'</tt>'),1);
                 } else {                  } else {
                     $result = &mt('Unable to set page display, after role selection, for this '.$lctype.' to [_1] due to [_2].'                      $result = &Apache::lonhtmlcommon::confirm_success(&mt('Unable to set page display, after role selection, for this '.$lctype.' to [_1] due to [_2].'
                                  ,'<b>'.$$initpage{$env{'form.courseinit_page'}}.'</b>'                                   ,'<b>'.$$initpage{$env{'form.courseinit_page'}}.'</b>'
                                  ,'<tt>'.$outcome.'</tt>')                                   ,'<tt>'.$outcome.'</tt>'),1);
                              .'<br />';  
                 }                  }
             }              }
         }          }
     }      }
     return $result;      return &Apache::loncommon::confirmwrapper($result);
 }  }
   
 sub start_box {  sub start_box {

Removed from v.1.98.2.1  
changed lines
  Added in v.1.105.2.1


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