Diff for /loncom/interface/lonannounce.pm between versions 1.52 and 1.53

version 1.52, 2006/05/12 02:17:50 version 1.53, 2006/05/12 15:53:10
Line 81  sub readcalendar { Line 81  sub readcalendar {
         }          }
     }      }
   
     if ($courseid eq $env{'request.course.id'}) {      my $can_see_hidden = $env{'request.role.adv'};
  my $can_see_hidden = $env{'request.role.adv'};      my $navmap = Apache::lonnavmaps::navmap->new();
  my $navmap = Apache::lonnavmaps::navmap->new();      my %resourcedata=
  my %resourcedata=   &Apache::lonnet::dump('resourcedata',$coursedom,$coursenum);
     &Apache::lonnet::dump('resourcedata',$coursedom,$coursenum);      foreach my $thiskey (sort keys %resourcedata) {
  foreach my $thiskey (sort keys %resourcedata) {   if ($resourcedata{$thiskey.'.type'}=~/^date/) {
     if ($resourcedata{$thiskey.'.type'}=~/^date/) {      my ($course,$middle,$part,$name)=
  my ($course,$middle,$part,$name)=   ($thiskey=~/^(\w+)\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);
     ($thiskey=~/^(\w+)\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);      my $section=&mt('All Students');
  my $section=&mt('All Students');      if ($middle=~/^\[(.*)\]\./) {
  if ($middle=~/^\[(.*)\]\./) {   my $sec=$1;
     my $sec=$1;   # if we have a section don't show ones that aren't ours
     # if we have a section don't show ones that aren't ours   if ($env{'request.course.sec'} &&
     if ($env{'request.course.sec'} &&      $env{'request.course.sec'} ne $sec) { next; }
  $env{'request.course.sec'} ne $sec) { next; }   # if a student without a section don't show any section ones
     # if a student without a section don't show any section ones   if (!$env{'request.role.adv'} &&
     if (!$env{'request.role.adv'} &&      !$env{'request.course.sec'}) { next; }
  !$env{'request.course.sec'}) { next; }   $section=&mt('Group/Section').': '.$1;
     $section=&mt('Group/Section').': '.$1;   $middle=~s/^\[(.*)\]\.//;
     $middle=~s/^\[(.*)\]\.//;      }
       $middle=~s/\.$//;
       my $realm=&mt('All Resources');
       if ($middle eq '___(all)') {
    if (!$can_see_hidden && !$navmap) {
       next;
    }
       } elsif ($middle=~/^(.+)\_\_\_\(all\)$/) {
    my $map_url=$1;
    if (!$can_see_hidden && !$navmap) {
       next;
    }
    if (!$can_see_hidden) {
       my $res = $navmap->getResourceByUrl($map_url);
       if ($res && $res->randomout()) { next; }
  }   }
  $middle=~s/\.$//;   $realm=&mt('Folder/Map').': '.&Apache::lonnet::gettitle($map_url);
  my $realm=&mt('All Resources');      } elsif ($middle) {
  if ($middle=~/^(.+)\_\_\_\(all\)$/) {   if (!$can_see_hidden && !$navmap) {
     my $map_url=$1;      next;
     if (!$can_see_hidden && !$navmap) {  
  next;  
     }  
     if (!$can_see_hidden) {  
  my $res = $navmap->getResourceByUrl($map_url);  
  if ($res && $res->randomout()) { next; }  
     }  
     $realm=&mt('Folder/Map').': '.&Apache::lonnet::gettitle($map_url);  
  } elsif ($middle) {  
     if (!$can_see_hidden && !$navmap) {  
  next;  
     }  
     if (!$can_see_hidden) {  
  my $res = $navmap->getBySymb($middle);  
  if ($res && $res->randomout()) { next; }  
     }  
     $realm=&mt('Resource').': '.&Apache::lonnet::gettitle($middle);  
  }   }
  my $datetype='';   if (!$can_see_hidden) {
  if ($name eq 'duedate') {       my $res = $navmap->getBySymb($middle);
     $datetype=&mt('Due');       if ($res && $res->randomout()) { next; }
    }
    $realm=&mt('Resource').': '.&Apache::lonnet::gettitle($middle);
       }
       my $datetype='';
       if ($name eq 'duedate') { 
    $datetype=&mt('Due'); 
 # see if accidentally answerdate is before duedate  # see if accidentally answerdate is before duedate
     my $answerkey=$thiskey;   my $answerkey=$thiskey;
     $answerkey=~s/duedate$/answerdate/;   $answerkey=~s/duedate$/answerdate/;
     if ($resourcedata{$thiskey}>$resourcedata{$answerkey}) {   if ($resourcedata{$thiskey}>$resourcedata{$answerkey}) {
  $datetype='Due and Answer Available';      $datetype=&mt('Due and Answer Available');
     }  
  }   }
  if ($name eq 'opendate') { $datetype=&mt('Opening'); }      }
  if ($name eq 'answerdate') {      if ($name eq 'opendate') { $datetype=&mt('Opening'); }
       if ($name eq 'answerdate') {
 # see if accidentally answerdate is before duedate  # see if accidentally answerdate is before duedate
     my $duekey=$thiskey;   my $duekey=$thiskey;
     $duekey=~s/answerdate$/duedate/;   $duekey=~s/answerdate$/duedate/;
     if ($resourcedata{$duekey}>$resourcedata{$thiskey}) {   if ($resourcedata{$duekey}>$resourcedata{$thiskey}) {
 # forget it  # forget it
  next;      next;
     }    } 
     $datetype=&mt('Answer Available');    $datetype=&mt('Answer Available'); 
  }      }
  $returnhash{$courseid.'@'.$resourcedata{$thiskey}.'_'.      $returnhash{$courseid.'@'.$resourcedata{$thiskey}.'_'.
     $resourcedata{$thiskey}}=      $resourcedata{$thiskey}}=
     'INTERNAL:'.$datetype.': '.$realm.' ('.$section.')';      'INTERNAL:'.$datetype.': '.$realm.' ('.$section.')';
     }  
  }   }
     }      }
     return %returnhash;      return %returnhash;
Line 345  sub output_ics_file { Line 347  sub output_ics_file {
     $r->print("PRODID:-//LONCAPA//LONCAPA Calendar Output//EN$crlf");      $r->print("PRODID:-//LONCAPA//LONCAPA Calendar Output//EN$crlf");
     my %allcal=&get_all_calendars();      my %allcal=&get_all_calendars();
     foreach my $event (keys(%allcal)) {      foreach my $event (keys(%allcal)) {
  my ($course,$startdate,$enddate)=($event=~/^(\w+)\@(\d+)\_(\d+)$/);   my ($courseid,$startdate,$enddate)=($event=~/^(\w+)\@(\d+)\_(\d+)$/);
    my $uid=$event;
    $uid=~s/[\W\_]/-/gs;
    $uid.='@loncapa';
    my $summary=$allcal{$event};
    $summary=~s/^INTERNAL\://;
    $summary=~s/\s+/ /gs;
           $summary=$env{'course.'.$courseid.'.description'}.': '.$summary;
  $r->print("BEGIN:VEVENT$crlf");   $r->print("BEGIN:VEVENT$crlf");
  $r->print("DTSTART:".&Apache::loncommon::utc_string($startdate).$crlf);   $r->print("DTSTART:".&Apache::loncommon::utc_string($startdate).$crlf);
  $r->print("DTEND:".&Apache::loncommon::utc_string($enddate).$crlf);   $r->print("DTEND:".&Apache::loncommon::utc_string($enddate).$crlf);
  $r->print("SUMMARY:$allcal{$event}$crlf");   $r->print("SUMMARY:$summary$crlf");
    $r->print("UID:$uid$crlf");
  $r->print("END:VEVENT$crlf");   $r->print("END:VEVENT$crlf");
     }      }
 # Footer  # Footer
Line 593  SERVERANNOUNCE Line 603  SERVERANNOUNCE
  '&year='.$todayhash{'year'}.   '&year='.$todayhash{'year'}.
  ($pickdatemode?$pickinfo:'').'">'.&mt('Current Month').'</a></p>'.   ($pickdatemode?$pickinfo:'').'">'.&mt('Current Month').'</a></p>'.
  ($pickdatemode?'</font>':'').&Apache::loncommon::end_page());   ($pickdatemode?'</font>':'').&Apache::loncommon::end_page());
       $r->print('<a href="/adm/announcements.ics">'.&mt('Download your Calendar as iCalendar File').'</a>');
     return OK;      return OK;
 }   } 
   

Removed from v.1.52  
changed lines
  Added in v.1.53


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