--- loncom/interface/lonprintout.pm 2005/10/30 02:24:34 1.395
+++ loncom/interface/lonprintout.pm 2005/10/31 21:48:07 1.397
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.395 2005/10/30 02:24:34 www Exp $
+# $Id: lonprintout.pm,v 1.397 2005/10/31 21:48:07 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -42,6 +42,8 @@ use Apache::lonratedt;
use POSIX qw(strftime);
use Apache::lonlocal;
+my %perm;
+
#
# Convert a numeric code to letters
#
@@ -815,7 +817,7 @@ sub IndexCreation {
sub print_latex_header {
my $mode=shift;
my $output='\documentclass[letterpaper]{article}';
- if (($mode eq 'batchmode') || (!$env{'request.role.adv'})) {
+ if (($mode eq 'batchmode') || (!$perm{'pav'})) {
$output.='\batchmode';
}
$output.='\newcommand{\keephidden}[1]{}\renewcommand{\deg}{$^{\circ}$}'."\n".
@@ -909,7 +911,7 @@ sub unsupported {
sub recently_generated {
my $r=shift;
my $prtspool=$r->dir_config('lonPrtDir');
- $r->print('
'.&mt('Recently generated printouts').'
');
+ my $result;
opendir(DIR,$prtspool);
while (my $filename=readdir(DIR)) {
if ($filename=~/^$env{'user.name'}\_$env{'user.domain'}\_printout\_(\d+)\_.*.pdf$/) {
@@ -917,12 +919,17 @@ sub recently_generated {
$cuid,$cgid,$crdev,$csize,
$catime,$cmtime,$cctime,
$cblksize,$cblocks)=stat($prtspool.'/'.$filename);
- $r->print ("".
- &mt('Generated').' '.&Apache::lonlocal::locallocaltime($cctime).
- ' ('.$csize.' bytes)
');
+ $result.="".
+ &mt('Generated [_1] ([_2] bytes)',
+ &Apache::lonlocal::locallocaltime($cctime),$csize).
+ '
';
}
}
closedir(DIR);
+ if ($result) {
+ $r->print(''.&mt('Recently generated printouts').'
'."\n".
+ $result);
+ }
}
#
@@ -1629,7 +1636,7 @@ ENDPART
'cgi.'.$identifier.'.selection' => $selectionmade,
'cgi.'.$identifier.'.tableofcontents' => $helper->{'VARS'}->{'TABLE_CONTENTS'},
'cgi.'.$identifier.'.tableofindex' => $helper->{'VARS'}->{'TABLE_INDEX'},
- 'cgi.'.$identifier.'.role' => $env{'request.role.adv'},
+ 'cgi.'.$identifier.'.role' => $perm{'pav'},
'cgi.'.$identifier.'.numberoffiles' => $#print_array,
'cgi.'.$identifier.'.studentnames' => $student_names,
'cgi.'.$identifier.'.backref' => $URLback,);
@@ -1776,7 +1783,8 @@ sub print_resources {
sub handler {
my $r = shift;
- my $helper;
+
+ &init_perm();
# my $loaderror=&Apache::lonnet::overloaderror($r);
# if ($loaderror) { return $loaderror; }
@@ -1785,11 +1793,10 @@ sub handler {
# $env{'course.'.$env{'request.course.id'}.'.home'});
# if ($loaderror) { return $loaderror; }
- my $result = printHelper($r);
- if (!ref($result)) {
- return $result;
+ my $helper = printHelper($r);
+ if (!ref($helper)) {
+ return $helper;
}
- $helper = $result;
# my $key;
# foreach $key (keys %{$helper->{'VARS'}}) {
@@ -1832,6 +1839,20 @@ sub addMessage {
use Data::Dumper;
+sub init_perm {
+ undef(%perm);
+ $perm{'pav'}=&Apache::lonnet::allowed('pav',$env{'request.course.id'});
+ if (!$perm{'pav'}) {
+ $perm{'pav'}=&Apache::lonnet::allowed('pav',
+ $env{'request.course.id'}.'/'.$env{'request.course.sec'});
+ }
+ $perm{'pfo'}=&Apache::lonnet::allowed('pav',$env{'request.course.id'});
+ if (!$perm{'pfo'}) {
+ $perm{'pfo'}=&Apache::lonnet::allowed('pfo',
+ $env{'request.course.id'}.'/'.$env{'request.course.sec'});
+ }
+}
+
sub printHelper {
my $r = shift;
@@ -1960,9 +1981,6 @@ sub printHelper {
}
my $userCanSeeHidden = Apache::lonnavmaps::advancedUser();
- my $userPriviledged = ($env{'request.role'}=~m/^cc\./ or
- $env{'request.role'}=~m/^in\./ or
- $env{'request.role'}=~m/^ta\./);
Apache::lonhelper::registerHelperTags();
@@ -2047,9 +2065,9 @@ HELPERFRAGMENT
&Apache::lonxml::xmlparse($r, 'helper', $helperFragment);
}
- # If the user is privileged, allow them to print all
+ # If the user has pfo (print for otheres) allow them to print all
# problems and resources in the entier course, optionally for selected students
- if ($userPriviledged &&
+ if ($perm{'pfo'} &&
($helper->{VARS}->{'postdata'}=~/\/res\// || $helper->{VARS}->{'postdata'}=~/\/(syllabus|smppg|aboutme|bulletinboard)$/)) {
push @{$printChoices}, ['Problems from entire course', 'all_problems', 'ALL_PROBLEMS'];
@@ -2311,7 +2329,7 @@ CHOOSE_ANON2
}
# FIXME: That RE should come from a library somewhere.
- if ((((&Apache::lonnet::allowed('bre',$subdir) eq 'F') and ($helper->{VARS}->{'postdata'}=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)/)) or defined $helper->{'VARS'}->{'construction'}) and $env{'request.role.adv'} and $subdir ne $Apache::lonnet::perlvar{'lonDocRoot'}.'/res/') {
+ if ((((&Apache::lonnet::allowed('bre',$subdir) eq 'F') and ($helper->{VARS}->{'postdata'}=~/\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm|xhtml|xhtm)/)) or defined $helper->{'VARS'}->{'construction'}) and $perm{'pav'} and $subdir ne $Apache::lonnet::perlvar{'lonDocRoot'}.'/res/') {
push @{$printChoices}, ["".&mt('Problems')." ".&mt('from current subdirectory')." $subdir", 'problems_from_directory', 'CHOOSE_FROM_SUBDIR'];
my $f = '$filename';
@@ -2383,7 +2401,7 @@ CHOOSE_FROM_ANY_SEQUENCE
my $startedTable = 0; # have we started an HTML table yet? (need
# to close it later)
- if (($env{'request.role.adv'} and &Apache::lonnet::allowed('vgr',$env{'request.course.id'})) or
+ if (($perm{'pav'} and &Apache::lonnet::allowed('vgr',$env{'request.course.id'})) or
($helper->{VARS}->{'construction'} eq '1')) {
addMessage("
Print: | ");
$paramHash = Apache::lonhelper::getParamHash();
@@ -2399,7 +2417,7 @@ CHOOSE_FROM_ANY_SEQUENCE
$startedTable = 1;
}
- if ($env{'request.role.adv'}) {
+ if ($perm{'pav'}) {
if (!$startedTable) {
addMessage("
LaTeX mode: | ");
$startedTable = 1;
@@ -2450,19 +2468,14 @@ CHOOSE_FROM_ANY_SEQUENCE
Apache::lonhelper::dropdown->new();
addMessage(" | ");
- # If advanced roles, then allow to show all foils.
-
- if ($env{'request.role.adv'}) {
- addMessage(" | ");
- $paramHash = Apache::lonhelper::getParamHash();
- $paramHash->{'multichoice'} = "true";
- $paramHash->{'allowempty'} = "true";
- $paramHash->{'variable'} = "showallfoils";
- $paramHash->{'CHOICES'} = [ ["Show all foils", "1"] ];
- Apache::lonhelper::choices->new();
- addMessage(" | ");
- }
-
+ addMessage(" | ");
+ $paramHash = Apache::lonhelper::getParamHash();
+ $paramHash->{'multichoice'} = "true";
+ $paramHash->{'allowempty'} = "true";
+ $paramHash->{'variable'} = "showallfoils";
+ $paramHash->{'CHOICES'} = [ ["Show all foils", "1"] ];
+ Apache::lonhelper::choices->new();
+ addMessage(" | ");
}
if ($helper->{'VARS'}->{'construction'}) {
|