Diff for /loncom/interface/lonpickcourse.pm between versions 1.58 and 1.64

version 1.58, 2006/11/14 18:27:57 version 1.64, 2007/10/03 19:57:29
Line 35  use Apache::loncoursedata; Line 35  use Apache::loncoursedata;
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::longroup;  use Apache::longroup;
 use lib '/home/httpd/lib/perl/';  
 use LONCAPA;  use LONCAPA;
   
 sub handler {  sub handler {
Line 79  sub handler { Line 78  sub handler {
   
     my $onlyown = 0;      my $onlyown = 0;
     # if called to assign course-based portfolio access control      # if called to assign course-based portfolio access control
     if ((($env{'form.form'} eq 'portform') && ($env{'user.adv'}))) {      if ((($env{'form.form'} eq 'portform') && (!$env{'user.adv'}))) {
         $onlyown = 1;          $onlyown = 1;
     }      }
   
Line 176  sub display_matched_courses { Line 175  sub display_matched_courses {
     my $numcourses = keys(%courses);      my $numcourses = keys(%courses);
     foreach my $course (keys(%courses)) {      foreach my $course (keys(%courses)) {
         my $descr;          my $descr;
         if ($courses{$course} =~ m/^([^:]*):/i) {          if (ref($courses{$course}) eq 'HASH') {
               $descr = &unescape($courses{$course}{'description'});
           } elsif ($courses{$course} =~ m/^([^:]*):/i) {
             $descr = &unescape($1);              $descr = &unescape($1);
         } else {          } else {
             $descr = &unescape($courses{$course});              $descr = &unescape($courses{$course});
Line 196  sub display_matched_courses { Line 197  sub display_matched_courses {
             my $cleandesc=&HTML::Entities::encode($description,'<>&"');              my $cleandesc=&HTML::Entities::encode($description,'<>&"');
             $cleandesc=~s/'/\\'/g;              $cleandesc=~s/'/\\'/g;
             my ($cdom,$cnum)=split(/\_/,$course);              my ($cdom,$cnum)=split(/\_/,$course);
             my ($descr,$instcode,$owner,$ttype) = split/:/,$courses{$course};              my ($descr,$instcode,$ttype,@owners);
               if (ref($courses{$course}) eq 'HASH') {
                   $descr = $courses{$course}{'description'};
                   $instcode =  $courses{$course}{'instcode'};
                   $ttype =  $courses{$course}{'type'};
                   push(@owners,&unescape($courses{$course}{'owner'}));
                   if (ref($courses{$course}{'co-owners'}) eq 'ARRAY') {
                       foreach my $item (@{$courses{$course}{'co-owners'}}) {
                           push(@owners,&unescape($item));
                       }
                   }
               } else {
                   my $singleowner; 
                   ($descr,$instcode,$singleowner,$ttype)=split(/:/,$courses{$course});
                   push(@owners,&unescape($singleowner));
               }
               my $owner = join(', ',@owners);
             $r->print(&course_chooser($multiple,$cdom,$cnum,$cleandesc));              $r->print(&course_chooser($multiple,$cdom,$cnum,$cleandesc));
             $r->print($description.'('.              $r->print($description.'('.
                       ($Apache::lonnet::domaindescription{$cdom}?                        (&Apache::lonnet::domain($cdom,'description')?
                        $Apache::lonnet::domaindescription{$cdom}:$cdom).")");                         &Apache::lonnet::domain($cdom,'description'):$cdom).")");
             unless ($instcode eq '') {              if ($instcode ne '') {
                 $r->print(" - ".&unescape($instcode));                  $r->print(" - ".&unescape($instcode));
             }              }
             unless ($owner eq '') {              if (@owners > 1) {
                 $r->print(", owner - ".&unescape($owner));                  $r->print(', '.&mt('owners').' - ',join(', ',@owners)); 
               } elsif (@owners == 1) {
                   $r->print(', '.&mt('owner').' - '.$owner);
             }              }
             unless ($ttype eq '') {              if ($ttype ne '') {
                 $r->print('('.&unescape($ttype).')');                  $r->print('('.&unescape($ttype).')');
             }              }
             if ($multiple) { $r->print("</label>\n"); }              if ($multiple) { $r->print("</label>\n"); }
Line 266  sub build_filters { Line 285  sub build_filters {
     foreach my $item (@{$filterlist}) {      foreach my $item (@{$filterlist}) {
         $filter->{$item} = $env{'form.'.$item};          $filter->{$item} = $env{'form.'.$item};
         if ($item ne 'descriptfilter' && $item ne 'instcodefilter') {          if ($item ne 'descriptfilter' && $item ne 'instcodefilter') {
             $filter->{$item} =~ s/\W//g;      if ($item eq 'domainfilter' || $item eq 'ownerdomfilter') {
    $filter->{$item} = &LONCAPA::clean_domain($filter->{$item});
       } elsif ($item eq 'coursefilter') {
    $filter->{$item} = &LONCAPA::clean_courseid($filter->{$item});
       } elsif ($item eq 'ownerfilter') {
    $filter->{$item} = &LONCAPA::clean_username($filter->{$item});
       } else {
    $filter->{$item} =~ s/\W//g;
       }
             if (!$filter->{$item}) {              if (!$filter->{$item}) {
                 $filter->{$item} = '';                  $filter->{$item} = '';
             }              }
         }          }
         if ($item eq 'domainfilter') {          if ($item eq 'domainfilter') {
       my $allow_blank = 1;
       if ($formname eq 'portform') {
    $filter->{$item} ||= $env{'user.domain'};
    $allow_blank=0;
       }
             $domainselectform =              $domainselectform =
      &Apache::loncommon::select_dom_form($filter->{$item},'domainfilter',1);   &Apache::loncommon::select_dom_form($filter->{$item},
       'domainfilter',
       $allow_blank);
         } elsif ($item eq 'ownerdomfilter') {          } elsif ($item eq 'ownerdomfilter') {
             $ownerdomselectform =              $ownerdomselectform =
      &Apache::loncommon::select_dom_form($filter->{$item},'ownerdomfilter',1);       &Apache::loncommon::select_dom_form($filter->{$item},'ownerdomfilter',1);
Line 339  $name_input Line 373  $name_input
 $roleelement  $roleelement
 $multelement  $multelement
 |;  |;
           if ($formname eq 'portform') {
               $output .= '<input type="hidden" name="setroles" value="'.$env{'form.setroles'}.'" />';
           }
     }      }
     if ($sincefilterform) {       if ($sincefilterform) { 
         $output .= $lt{'cac'}.': '.$sincefilterform.'<br />'."\n";          $output .= $lt{'cac'}.': '.$sincefilterform.'<br />'."\n";
Line 406  sub search_courses { Line 443  sub search_courses {
                                           undef,undef,$type);                                            undef,undef,$type);
     } else {      } else {
         $r->print('<br />');          $r->print('<br />');
         foreach my $cid (sort(&Apache::loncommon::findallcourses())) {          my %coursehash = &Apache::loncommon::findallcourses(); 
           foreach my $cid (sort(keys(%coursehash))) {
             $courses{$cid} = $env{'course.'.$cid.'.description'};              $courses{$cid} = $env{'course.'.$cid.'.description'};
         }          }
     }      }

Removed from v.1.58  
changed lines
  Added in v.1.64


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