[LON-CAPA-cvs] cvs: loncom /interface lonannounce.pm

www lon-capa-cvs@mail.lon-capa.org
Tue, 17 Feb 2004 01:36:14 -0000


www		Mon Feb 16 20:36:14 2004 EDT

  Modified files:              
    /loncom/interface	lonannounce.pm 
  Log:
  Show due dates, etc, on calendar
  
  
Index: loncom/interface/lonannounce.pm
diff -u loncom/interface/lonannounce.pm:1.25 loncom/interface/lonannounce.pm:1.26
--- loncom/interface/lonannounce.pm:1.25	Wed Jan 14 20:43:43 2004
+++ loncom/interface/lonannounce.pm	Mon Feb 16 20:36:14 2004
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Announce
 #
-# $Id: lonannounce.pm,v 1.25 2004/01/15 01:43:43 www Exp $
+# $Id: lonannounce.pm,v 1.26 2004/02/17 01:36:14 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -72,6 +72,35 @@
 	   $returnhash{$courseid.'@'.$_}=$thiscal{$_};
         }
     }
+    if ($courseid eq $ENV{'request.course.id'}) {
+	my %resourcedata=
+	    &Apache::lonnet::dump('resourcedata',$coursedom,$coursenum);
+	foreach my $thiskey (sort keys %resourcedata) {
+	    if ($resourcedata{$thiskey.'.type'}=~/^date/) {
+		my ($course,$middle,$part,$name)=
+		    ($thiskey=~/^(\w+)\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);
+		my $section=&mt('All Students');
+		if ($middle=~/^\[(.*)\]\./) {
+		    $section=&mt('Group/Section').': '.$1;
+		    $middle=~s/^\[(.*)\]\.//;
+		}
+		$middle=~s/\.$//;
+		my $realm=&mt('All Resources');
+		if ($middle=~/^(.+)\_\_\_\(all\)$/) {
+		    $realm=&mt('Folder/Map').': '.&Apache::lonnet::gettitle($1);
+		} elsif ($middle) {
+		    $realm=&mt('Resource').': '.&Apache::lonnet::gettitle($middle);
+		}
+		my $datetype='';
+		if ($name eq 'duedate') { $datetype=&mt('Due'); }
+		if ($name eq 'opendate') { $datetype=&mt('Opening'); }
+		if ($name eq 'answerdate') { $datetype=&mt('Answer Available'); }
+		$returnhash{$courseid.'@'.$resourcedata{$thiskey}.'_'.
+			    $resourcedata{$thiskey}}=
+			    'INTERNAL:'.$datetype.': '.$realm.' ('.$section.')';
+	    }
+	}
+    }
     return %returnhash;
 }
 
@@ -84,14 +113,24 @@
     my $output='';
     foreach (split(/\_\_\_\&\&\&\_\_\_/,$text)) {
         if ($_) {
+	    my $internalflag=0;
 	    my ($courseid,$start,$end,@msg)=split(/\@/,$_);
             my $msg=join('@',@msg);
+	    if ($msg=~/INTERNAL\:/) {
+		$msg=~s/INTERNAL\://gs;
+		$internalflag=1;
+	    }
             my $fullmsg=$ENV{'course.'.$courseid.'.description'}.
-		', '.&Apache::lonlocal::locallocaltime($start).' - '.&Apache::lonlocal::locallocaltime($end).': '.$msg;
+		', '.&Apache::lonlocal::locallocaltime($start);
+	    if ($start!=$end) {
+		$fullmsg.=' - '.&Apache::lonlocal::locallocaltime($end);
+	    }
+	    $fullmsg.=': '.$msg;
             if ($courseid eq $ENV{'request.course.id'}) {
               if ((&Apache::lonnet::allowed('srm',$ENV{'request.course.id'}))
                && (!$showedcheck{$start.'_'.$end})
-	       && ($ENV{'form.pickdate'} ne 'yes')) {
+	       && ($ENV{'form.pickdate'} ne 'yes')
+	       && (!$internalflag)) {
                $output.='<input type="checkbox" name="remove_'.$start.'_'.
 		   $end.'">';
                $showedcheck{$start.'_'.$end}=1;
@@ -118,7 +157,11 @@
 	    my ($courseid,$start,$end,@msg)=split(/\@/,$_);
             my $msg=join('@',@msg);
             my $fullmsg=$ENV{'course.'.$courseid.'.description'}.
-		', '.localtime($start).' - '.localtime($end).': '.$msg;
+		', '.&Apache::lonlocal::locallocaltime($start);
+	    if ($start!=$end) {
+		$fullmsg.=' - '.&Apache::lonlocal::locallocaltime($end);
+	    }
+	    $fullmsg.=': '.$msg;
             $fullmsg=&HTML::Entities::encode($fullmsg,'<>&"\'');
             $fullmsg=~s/&/\\&/g;
             $output.='<a href="javascript:alert('."'$fullmsg'".')">'.
@@ -135,7 +178,12 @@
         if ($_) {
 	    my ($courseid,$start,$end,@msg)=split(/\@/,$_);
             my $msg=join('@',@msg);
-            my $fullmsg=localtime($start).' to '.localtime($end).':<br /><b>'.
+            my $fullmsg=&Apache::lonlocal::locallocaltime($start);
+	    if ($start!=$end) {
+		$fullmsg.=&mt(' to ').
+		    &Apache::lonlocal::locallocaltime($end);
+	    }
+            $fullmsg.=':<br /><b>'.
                $msg.'</b>';
             $output.='<li>'.$fullmsg.'</li>';
        }