Diff for /loncom/interface/lonparmset.pm between versions 1.344 and 1.350.2.1

version 1.344, 2006/10/16 10:45:24 version 1.350.2.1, 2006/12/14 20:08:15
Line 65  use Apache::lonlocal; Line 65  use Apache::lonlocal;
 use Apache::lonnavmaps;  use Apache::lonnavmaps;
 use Apache::longroup;  use Apache::longroup;
 use Apache::lonrss;  use Apache::lonrss;
 use LONCAPA;  use LONCAPA qw(:DEFAULT :match);
   
 # --- Caches local to lonparmset  # --- Caches local to lonparmset
   
Line 122  sub parmval_by_symb { Line 122  sub parmval_by_symb {
 # load caches  # load caches
     &cacheparmhash();      &cacheparmhash();
   
     my $useropt=&Apache::lonnet::get_userresdata($uname,$udom);      my $useropt;
       if ($uname ne '' && $udom ne '') {
    $useropt = &Apache::lonnet::get_userresdata($uname,$udom);
       }
   
     my $result='';      my $result='';
     my @outpar=();      my @outpar=();
Line 173  sub parmval_by_symb { Line 176  sub parmval_by_symb {
     }      }
   
 # ------------------------------------------------------ fourth, back to course  # ------------------------------------------------------ fourth, back to course
     if (defined($csec)) {      if ($csec ne '') {
         if (defined($$courseopt{$seclevel})) {          if (defined($$courseopt{$seclevel})) {
     $outpar[9]=$$courseopt{$seclevel};      $outpar[9]=$$courseopt{$seclevel};
     $result=9;      $result=9;
Line 189  sub parmval_by_symb { Line 192  sub parmval_by_symb {
  }   }
     }      }
 # ------------------------------------------------------ fifth, check course group  # ------------------------------------------------------ fifth, check course group
     if (defined($cgroup)) {      if ($cgroup ne '') {
         if (defined($$courseopt{$grplevel})) {          if (defined($$courseopt{$grplevel})) {
             $outpar[6]=$$courseopt{$grplevel};              $outpar[6]=$$courseopt{$grplevel};
             $result=6;              $result=6;
Line 206  sub parmval_by_symb { Line 209  sub parmval_by_symb {
   
 # ---------------------------------------------------------- fifth, check user  # ---------------------------------------------------------- fifth, check user
   
     if (defined($uname)) {      if ($uname ne '') {
  if (defined($$useropt{$courselevel})) {   if (defined($$useropt{$courselevel})) {
     $outpar[3]=$$useropt{$courselevel};      $outpar[3]=$$useropt{$courselevel};
     $result=3;      $result=3;
Line 270  sub resetrulescache { Line 273  sub resetrulescache {
 sub rulescache {  sub rulescache {
     my $id=shift;      my $id=shift;
     if ($rulesid ne $env{'request.course.id'}) {      if ($rulesid ne $env{'request.course.id'}) {
  %rules=();   && !defined($rules{$id})) {
     }  
     unless (defined($rules{$id})) {  
  my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};   my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
  my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};   my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
  %rules=&Apache::lonnet::dump('parmdefactions',$dom,$crs);   %rules=&Apache::lonnet::dump('parmdefactions',$dom,$crs);
Line 2363  sub readdata { Line 2364  sub readdata {
   
     my $classlist=&Apache::loncoursedata::get_classlist();      my $classlist=&Apache::loncoursedata::get_classlist();
     foreach (keys %$classlist) {      foreach (keys %$classlist) {
         # the following undefs are for 'domain', and 'username' respectively.          if ($_=~/^($match_username)\:($match_domain)$/) {
         if ($_=~/^(\w+)\:(\w+)$/) {  
     my ($tuname,$tudom)=($1,$2);      my ($tuname,$tudom)=($1,$2);
     my $useropt=&Apache::lonnet::get_userresdata($tuname,$tudom);      my $useropt=&Apache::lonnet::get_userresdata($tuname,$tudom);
             foreach my $userkey (keys %{$useropt}) {              foreach my $userkey (keys %{$useropt}) {
Line 2486  sub storedata { Line 2486  sub storedata {
   
 sub extractuser {  sub extractuser {
     my $key=shift;      my $key=shift;
     return ($key=~/^$env{'request.course.id'}.\[useropt\:(\w+)\:(\w+)\]\./);      return ($key=~/^$env{'request.course.id'}.\[useropt\:($match_username)\:($match_domain)\]\./);
 }  }
   
 sub listdata {  sub listdata {
Line 2544  sub listdata { Line 2544  sub listdata {
     my $section=&mt('All Students');      my $section=&mt('All Students');
     if ($middle=~/^\[(.*)\]/) {      if ($middle=~/^\[(.*)\]/) {
  my $issection=$1;   my $issection=$1;
  if ($issection=~/^useropt\:(\w+)\:(\w+)/) {   if ($issection=~/^useropt\:($match_username)\:($match_domain)/) {
     $section=&mt('User').": ".&Apache::loncommon::plainname($1,$2);      $section=&mt('User').": ".&Apache::loncommon::plainname($1,$2);
  } else {   } else {
     $section=&mt('Group/Section').': '.$issection;      $section=&mt('Group/Section').': '.$issection;
Line 2918  sub parse_key { Line 2918  sub parse_key {
     $data{'scope_type'} = 'all';      $data{'scope_type'} = 'all';
     if ($middle=~/^\[(.*)\]/) {      if ($middle=~/^\[(.*)\]/) {
         $data{'scope'} = $1;          $data{'scope'} = $1;
  if ($data{'scope'}=~/^useropt\:(\w+)\:(\w+)/) {   if ($data{'scope'}=~/^useropt\:($match_username)\:($match_domain)/) {
     $data{'scope_type'} = 'user';      $data{'scope_type'} = 'user';
     $data{'scope'} = [$1,$2];      $data{'scope'} = [$1,$2];
  } else {   } else {
Line 3189  ENDMAINFORMHEAD Line 3189  ENDMAINFORMHEAD
 ### Set portfolio metadata  ### Set portfolio metadata
 sub output_row {  sub output_row {
     my ($r, $field_name, $field_text, $added_flag) = @_;      my ($r, $field_name, $field_text, $added_flag) = @_;
       my $row_class;
     my $output;      my $output;
     my $options=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.options'};      my $options=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.options'};
     my $values=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.values'};      my $values=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.values'};
Line 3197  sub output_row { Line 3198  sub output_row {
         $values = '';          $values = '';
     }      }
     if (!($options =~ /deleted/)) {      if (!($options =~ /deleted/)) {
         $output.='<strong>'.$field_text.':</strong>';          $output = &Apache::loncommon::start_data_table_row();
         $output.='<input name="'.$field_name.'_values" type="text" value="'.$values.'" size="80" /><br />';          $output .= '<td><span class="LC_metadata"><strong>'.$field_text.':</strong></span></td>';
           # $output .= '<td><strong>'.$field_text.':</strong></td>';
           $output .= '<td><span class="LC_metadata"><input name="'.$field_name.'_values" type="text" value="'.$values.'" size="80" /></span></td>';
           $output .= &Apache::loncommon::end_data_table_row();
         my @options= ( ['active', 'Show to student'],          my @options= ( ['active', 'Show to student'],
    ['onlyone','Student may select only one choice'],     ['onlyone','Student may select only one choice'],
    ['stuadd', 'Student may type choices']);     ['stuadd', 'Student may type choices']);
Line 3208  sub output_row { Line 3211  sub output_row {
         }          }
         foreach my $opt (@options) {          foreach my $opt (@options) {
     my $checked = ($options =~ m/$opt->[0]/) ? ' checked="checked" ' : '' ;      my $checked = ($options =~ m/$opt->[0]/) ? ' checked="checked" ' : '' ;
     $output.=('&nbsp;'x5).'<label><input type="checkbox" name="'.      $output .= &Apache::loncommon::continue_data_table_row();
       $output .= '<td colspan="2">'.('&nbsp;' x 5).'<span class="LC_metadata"><label><input type="checkbox" name="'.
         $field_name.'_'.$opt->[0].'" value="yes"'.$checked.' />'.          $field_name.'_'.$opt->[0].'" value="yes"'.$checked.' />'.
         &mt($opt->[1]).'</label> <br />';          &mt($opt->[1]).'</label></span> </td>';
       $output .= &Apache::loncommon::end_data_table_row();
  }   }
   
     }      }
     return ($output);      return ($output);
 }  }
Line 3221  sub order_meta_fields { Line 3227  sub order_meta_fields {
     my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};      my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
     my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};      my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
     $r->print(&Apache::loncommon::start_page('Order Metadata Fields'));      $r->print(&Apache::loncommon::start_page('Order Metadata Fields'));
     $r->print(&Apache::lonhtmlcommon::breadcrumbs('Order Metadata Fields'));      &Apache::lonhtmlcommon::add_breadcrumb
               ({href=>"/adm/parmset?action=setrestrictmeta",
                 text=>"Restrict Metadata"},
                {text=>"Order Metadata"});
       $r->print(&Apache::lonhtmlcommon::breadcrumbs('Order Metadata'));
     if ($env{'form.storeorder'}) {      if ($env{'form.storeorder'}) {
         my $newpos = $env{'form.newpos'} - 1;          my $newpos = $env{'form.newpos'} - 1;
         my $currentpos = $env{'form.currentpos'} - 1;          my $currentpos = $env{'form.currentpos'} - 1;
Line 3388  sub setrestrictmeta { Line 3398  sub setrestrictmeta {
     my %metadata_fields = &Apache::lonmeta::fieldnames('portfolio');      my %metadata_fields = &Apache::lonmeta::fieldnames('portfolio');
     # Now get possible added metadata fields      # Now get possible added metadata fields
     my $added_metadata_fields = &get_added_meta_fieldnames(\%metadata_fields);      my $added_metadata_fields = &get_added_meta_fieldnames(\%metadata_fields);
       my $row_alt = 1;
       $output .= &Apache::loncommon::start_data_table();
     foreach my $field (sort(keys(%metadata_fields))) {      foreach my $field (sort(keys(%metadata_fields))) {
         if ($field ne 'courserestricted') {          if ($field ne 'courserestricted') {
               $row_alt = $row_alt ? 0 : 1;
     $output.= &output_row($r, $field, $metadata_fields{$field});      $output.= &output_row($r, $field, $metadata_fields{$field});
  }   }
     }      }
     my $added_flag = 1;      my $added_flag = 1;
     foreach my $field (sort(keys(%$added_metadata_fields))) {      foreach my $field (sort(keys(%$added_metadata_fields))) {
         $output.= &output_row($r, $field, $$added_metadata_fields{$field},$added_flag);          $row_alt = $row_alt ? 0 : 1;
           $output.= &output_row($r, $field, $$added_metadata_fields{$field},$added_flag, $row_alt);
     }      }
       $output .= &Apache::loncommon::end_data_table();
     $r->print(<<ENDenv);             $r->print(<<ENDenv);       
         <form method="post" action="/adm/parmset?action=setrestrictmeta" name="form">          <form method="post" action="/adm/parmset?action=setrestrictmeta" name="form">
         <p>  
         $output          $output
         <input type="submit" name="restrictmeta" value="Update Metadata Restrictions">          <input type="submit" name="restrictmeta" value="Update Metadata Restrictions" />
         </form><br />          </form><br />
         <form method="post" action="/adm/parmset?action=addmetadata" name="form">          <form method="post" action="/adm/parmset?action=addmetadata" name="form1">
         <input type="submit" name="restrictmeta" value="Add a Metadata Field">          <input type="submit" name="restrictmeta" value="Add a Metadata Field" />
         </form>          </form>
         </form><br />          <br />
         <form method="post" action="/adm/parmset?action=ordermetadata" name="form">          <form method="post" action="/adm/parmset?action=ordermetadata" name="form2">
         <input type="submit" name="restrictmeta" value="Order Metadata Fields">          <input type="submit" name="restrictmeta" value="Order Metadata Fields" />
         </form>          </form>
 ENDenv  ENDenv
     $r->print(&Apache::loncommon::end_page());      $r->print(&Apache::loncommon::end_page());
Line 3692  sub parm_change_log { Line 3706  sub parm_change_log {
                                               \%saveable_parameters);                                                \%saveable_parameters);
     &Apache::loncommon::restore_course_settings('parameter_log',      &Apache::loncommon::restore_course_settings('parameter_log',
                                                 \%saveable_parameters);                                                  \%saveable_parameters);
     if (!$env{'form.show'}) { $env{'form.show'}=10; }      $r->print(&Apache::loncommon::display_filter().
   
     my $countselect =  
  &Apache::lonmeta::selectbox('show',$env{'form.show'},undef,  
     (&mt('all'),10,20,50,100,1000,10000));  
   
     $r->print('<nobr>'.&mt('[_1] Records',$countselect).'</nobr>'.  
               '<label>'.&Apache::lonhtmlcommon::checkbox('includetypes',$env{'form.includetypes'},'1').                '<label>'.&Apache::lonhtmlcommon::checkbox('includetypes',$env{'form.includetypes'},'1').
       ' '.&mt('Include parameter types').'</label>'.        ' '.&mt('Include parameter types').'</label>'.
       '<input type="submit" value="'.&mt('Display').'" /></form>');        '<input type="submit" value="'.&mt('Display').'" /></form>');
Line 3710  sub parm_change_log { Line 3718  sub parm_change_log {
       &mt('Parameter').'</th><th>'.&mt('Part').'</th><th>'.&mt('New Value').'</th><th>'.&mt('Announce').'</th>'.        &mt('Parameter').'</th><th>'.&mt('Part').'</th><th>'.&mt('New Value').'</th><th>'.&mt('Announce').'</th>'.
       &Apache::loncommon::end_data_table_header_row());        &Apache::loncommon::end_data_table_header_row());
     my $shown=0;      my $shown=0;
       my $folder='';
       if ($env{'form.displayfilter'} eq 'currentfolder') {
    my $last='';
    if (tie(my %hash,'GDBM_File',$env{'request.course.fn'}.'_symb.db',
    &GDBM_READER(),0640)) {
       $last=$hash{'last_known'};
       untie(%hash);
    }
    if ($last) { ($folder) = &Apache::lonnet::decode_symb($last); }
       }
     foreach my $id (sort { $parmlog{$b}{'exe_time'}<=>$parmlog{$a}{'exe_time'} } (keys(%parmlog))) {      foreach my $id (sort { $parmlog{$b}{'exe_time'}<=>$parmlog{$a}{'exe_time'} } (keys(%parmlog))) {
         my @changes=keys(%{$parmlog{$id}{'logentry'}});          my @changes=keys(%{$parmlog{$id}{'logentry'}});
  my $count = 0;   my $count = 0;
Line 3731  sub parm_change_log { Line 3749  sub parm_change_log {
    $parmlog{$id}{'exe_udom'});     $parmlog{$id}{'exe_udom'});
  }   }
  my $row_start=&Apache::loncommon::start_data_table_row();   my $row_start=&Apache::loncommon::start_data_table_row();
  $r->print($row_start);  
  my $makenewrow=0;   my $makenewrow=0;
  my %istype=();   my %istype=();
  my $output;   my $output;
Line 3741  sub parm_change_log { Line 3758  sub parm_change_log {
     !exists($parmlog{$id}{'logentry'}{$changed.'.type'}));      !exists($parmlog{$id}{'logentry'}{$changed.'.type'}));
             my ($realm,$section,$parmname,$part,$what,$middle,$uname,$udom,$issection,$realmdescription)=              my ($realm,$section,$parmname,$part,$what,$middle,$uname,$udom,$issection,$realmdescription)=
  &components($changed,$parmlog{$id}{'uname'},$parmlog{$id}{'udom'},undef,undef,$typeflag);   &components($changed,$parmlog{$id}{'uname'},$parmlog{$id}{'udom'},undef,undef,$typeflag);
       if ($env{'form.displayfilter'} eq 'currentfolder') {
    if ($folder) {
       if ($middle!~/^\Q$folder\E/) { next; }
    }
       }
     if ($typeflag) {      if ($typeflag) {
  $istype{$parmname}=$value;    $istype{$parmname}=$value; 
  if (!$env{'form.includetypes'}) { next; }    if (!$env{'form.includetypes'}) { next; } 
Line 3793  sub parm_change_log { Line 3815  sub parm_change_log {
     }      }
     $output .= '</td>'.&Apache::loncommon::end_data_table_row();      $output .= '</td>'.&Apache::loncommon::end_data_table_row();
  }   }
  $r->print('<td rowspan="'.$count.'">'.$time.'</td>          if ($env{'form.displayfilter'} eq 'containing') {
       my $wholeentry=$about_me_link.':'.
    $parmlog{$id}{'exe_uname'}.':'.$parmlog{$id}{'exe_udom'}.':'.
    $output;
       if ($wholeentry!~/\Q$env{'form.containingphrase'}\E/i) { next; }        
    }
           if ($count) {
       $r->print($row_start.'<td rowspan="'.$count.'">'.$time.'</td>
                        <td rowspan="'.$count.'">'.$about_me_link.                         <td rowspan="'.$count.'">'.$about_me_link.
   '<br /><tt>'.$parmlog{$id}{'exe_uname'}.    '<br /><tt>'.$parmlog{$id}{'exe_uname'}.
           ':'.$parmlog{$id}{'exe_udom'}.'</tt>'.            ':'.$parmlog{$id}{'exe_udom'}.'</tt>'.
   $send_msg_link.'</td>'.$output);    $send_msg_link.'</td>'.$output);
       $shown++;
  $shown++;   }
  if (!($env{'form.show'} eq &mt('all')    if (!($env{'form.show'} eq &mt('all') 
       || $shown<=$env{'form.show'})) { last; }        || $shown<=$env{'form.show'})) { last; }
     }      }

Removed from v.1.344  
changed lines
  Added in v.1.350.2.1


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