version 1.156, 2002/12/09 14:50:11
|
version 1.160.2.3, 2003/03/14 22:54:26
|
Line 961 ENDDEFS
|
Line 961 ENDDEFS
|
sub templaterow { |
sub templaterow { |
my $sheet = shift; |
my $sheet = shift; |
my @cols=(); |
my @cols=(); |
my $rowlabel = 'Template'; |
my $rowlabel = 'Template</td><td> '; |
foreach ('A','B','C','D','E','F','G','H','I','J','K','L','M', |
foreach ('A','B','C','D','E','F','G','H','I','J','K','L','M', |
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', |
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', |
'a','b','c','d','e','f','g','h','i','j','k','l','m', |
'a','b','c','d','e','f','g','h','i','j','k','l','m', |
Line 989 sub outrowassess {
|
Line 989 sub outrowassess {
|
} else { |
} else { |
$rowlabel = ''; |
$rowlabel = ''; |
} |
} |
|
} elsif ($ENV{'request.role'} =~ /^st\./) { |
|
$rowlabel = 'Summary</td><td>0'; |
} else { |
} else { |
$rowlabel = 'Export'; |
$rowlabel = 'Export</td><td>0'; |
} |
} |
foreach ('A','B','C','D','E','F','G','H','I','J','K','L','M', |
foreach ('A','B','C','D','E','F','G','H','I','J','K','L','M', |
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', |
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z', |
Line 1011 sub outrow {
|
Line 1013 sub outrow {
|
$rowlabel = $sheet->{'rowlabel'}->{$sheet->{'f'}->{'A'.$n}}; |
$rowlabel = $sheet->{'rowlabel'}->{$sheet->{'f'}->{'A'.$n}}; |
} else { |
} else { |
if ($sheet->{'sheettype'} eq 'classcalc') { |
if ($sheet->{'sheettype'} eq 'classcalc') { |
$rowlabel = 'Summary'; |
$rowlabel = 'Summary</td><td>0'; |
} else { |
} else { |
$rowlabel = 'Export'; |
$rowlabel = 'Export</td><td>0'; |
} |
} |
} |
} |
foreach ('A','B','C','D','E','F','G','H','I','J','K','L','M', |
foreach ('A','B','C','D','E','F','G','H','I','J','K','L','M', |
Line 1259 sub html_editable_cell {
|
Line 1261 sub html_editable_cell {
|
} elsif ($value =~ /^\s*$/ ) { |
} elsif ($value =~ /^\s*$/ ) { |
$value = '<font color="'.$bgcolor.'">#</font>'; |
$value = '<font color="'.$bgcolor.'">#</font>'; |
} else { |
} else { |
$value = &HTML::Entities::encode($value); |
$value = &HTML::Entities::encode($value) if ($value !~/ /); |
} |
} |
# Make the formula safe for outputting |
# Make the formula safe for outputting |
$formula =~ s/\'/\"/g; |
$formula =~ s/\'/\"/g; |
Line 1277 sub html_editable_cell {
|
Line 1279 sub html_editable_cell {
|
sub html_uneditable_cell { |
sub html_uneditable_cell { |
my ($cell,$bgcolor) = @_; |
my ($cell,$bgcolor) = @_; |
my $value = (defined($cell) ? $cell->{'value'} : ''); |
my $value = (defined($cell) ? $cell->{'value'} : ''); |
$value = &HTML::Entities::encode($value); |
$value = &HTML::Entities::encode($value) if ($value !~/ /); |
return ' '.$value.' '; |
return ' '.$value.' '; |
} |
} |
|
|
Line 1307 sub outsheet_html {
|
Line 1309 sub outsheet_html {
|
my $tabledata =<<"END"; |
my $tabledata =<<"END"; |
<table border="2"> |
<table border="2"> |
<tr> |
<tr> |
<th colspan="1" rowspan="2"><font size="+2">$realm</font></th> |
<th colspan="2" rowspan="2"><font size="+2">$realm</font></th> |
<td bgcolor="#FFDDDD" colspan="$num_uneditable"> |
<td bgcolor="#FFDDDD" colspan="$num_uneditable"> |
<b><font size="+1">Import</font></b></td> |
<b><font size="+1">Import</font></b></td> |
<td colspan="$num_left"> |
<td colspan="$num_left"> |
Line 1353 END
|
Line 1355 END
|
# Print out summary/export row |
# Print out summary/export row |
#################################### |
#################################### |
($rowlabel,@rowdata) = &get_row($sheet,'0'); |
($rowlabel,@rowdata) = &get_row($sheet,'0'); |
$row_html = '<tr><td>'.&format_html_rowlabel($sheet,'Summary').'</td>'; |
$row_html = '<tr><td>'.&format_html_rowlabel($sheet,$rowlabel).'</td>'; |
$num_cols_output = 0; |
$num_cols_output = 0; |
foreach my $cell (@rowdata) { |
foreach my $cell (@rowdata) { |
if ($num_cols_output++ < 26 && ! $requester_is_student) { |
if ($num_cols_output++ < 26 && ! $requester_is_student) { |
Line 1839 sub readsheet {
|
Line 1841 sub readsheet {
|
} |
} |
%f=%{&parse_sheet(\$sheetxml)}; |
%f=%{&parse_sheet(\$sheetxml)}; |
} else { |
} else { |
my $sheet=''; |
|
my %tmphash = &Apache::lonnet::dump($fn,$cdom,$cnum); |
my %tmphash = &Apache::lonnet::dump($fn,$cdom,$cnum); |
my ($tmp) = keys(%tmphash); |
my ($tmp) = keys(%tmphash); |
unless ($tmp =~ /^(con_lost|error|no_such_host)/i) { |
if ($tmp !~ /^(con_lost|error|no_such_host)/i) { |
foreach (keys(%tmphash)) { |
foreach (keys(%tmphash)) { |
$f{$_}=$tmphash{$_}; |
$f{$_}=$tmphash{$_}; |
} |
} |
|
} else { |
|
# Unable to grab the specified spreadsheet, |
|
# so we get the default ones instead. |
|
$fn = 'default_'.$stype; |
|
$sheet->{'filename'} = $fn; |
|
my $dfn = $fn; |
|
$dfn =~ s/\_/\./g; |
|
my $sheetxml; |
|
if (my $fh=Apache::File->new($includedir.'/'.$dfn)) { |
|
$sheetxml = join('',<$fh>); |
|
} else { |
|
$sheetxml='<field row="0" col="A">'. |
|
'"Unable to load spreadsheet"</field>'; |
|
} |
|
%f=%{&parse_sheet(\$sheetxml)}; |
} |
} |
} |
} |
# Cache and set |
# Cache and set |
Line 1866 sub makenewsheet {
|
Line 1882 sub makenewsheet {
|
$sheet->{'mapid'} = $ENV{'form.mapid'}; |
$sheet->{'mapid'} = $ENV{'form.mapid'}; |
$sheet->{'resid'} = $ENV{'form.resid'}; |
$sheet->{'resid'} = $ENV{'form.resid'}; |
$sheet->{'cid'} = $ENV{'request.course.id'}; |
$sheet->{'cid'} = $ENV{'request.course.id'}; |
|
if (! exists($Section{$uname.':'.$udom})) { |
|
my $classlist = &Apache::loncoursedata::get_classlist(); |
|
foreach my $student (keys(%$classlist)) { |
|
my ($studentDomain,$studentName,undef,undef,undef,$studentSection, |
|
undef,undef) = @{$classlist->{$student}}; |
|
$Section{$studentName.':'.$studentDomain} = $studentSection; |
|
} |
|
} |
$sheet->{'csec'} = $Section{$uname.':'.$udom}; |
$sheet->{'csec'} = $Section{$uname.':'.$udom}; |
$sheet->{'coursefilename'} = $ENV{'request.course.fn'}; |
$sheet->{'coursefilename'} = $ENV{'request.course.fn'}; |
$sheet->{'cnum'} = $ENV{'course.'.$ENV{'request.course.id'}.'.num'}; |
$sheet->{'cnum'} = $ENV{'course.'.$ENV{'request.course.id'}.'.num'}; |
Line 2078 sub parmval {
|
Line 2102 sub parmval {
|
# second, check map parms |
# second, check map parms |
my $thisparm = $parmhash{$symbparm}; |
my $thisparm = $parmhash{$symbparm}; |
return $thisparm if (defined($thisparm)); |
return $thisparm if (defined($thisparm)); |
|
|
# first, check default |
# first, check default |
return &Apache::lonnet::metadata($fn,$rwhat.'.default'); |
$thisparm = &Apache::lonnet::metadata($fn,$rwhat.'.default'); |
|
return $thisparm if (defined($thisparm)); |
|
|
|
#Cascade Up |
|
my $space=$what; |
|
$space=~s/\.\w+$//; |
|
if ($space ne '0') { |
|
my @parts=split(/_/,$space); |
|
my $id=pop(@parts); |
|
my $part=join('_',@parts); |
|
if ($part eq '') { $part='0'; } |
|
my $newwhat=$rwhat; |
|
$newwhat=~s/\Q$space\E/$part/; |
|
my $partgeneral=&parmval($newwhat,$sheet); |
|
if (defined($partgeneral)) { return $partgeneral; } |
|
} |
|
|
|
#nothing defined |
|
return ''; |
} |
} |
|
|
|
|
Line 2375 sub updatestudentassesssheet {
|
Line 2418 sub updatestudentassesssheet {
|
unless ((exists($sheet->{'rowlabel'}->{$usy}) && |
unless ((exists($sheet->{'rowlabel'}->{$usy}) && |
(defined($sheet->{'rowlabel'}->{$usy})) || (!$1) || |
(defined($sheet->{'rowlabel'}->{$usy})) || (!$1) || |
($formula =~ /^(~~~|---)/) )) { |
($formula =~ /^(~~~|---)/) )) { |
$f{$_}='!!! Obsolete'; |
$f{$cell}='!!! Obsolete'; |
$changed=1; |
$changed=1; |
} |
} |
} |
} |
Line 2899 sub cachedssheets {
|
Line 2942 sub cachedssheets {
|
$uname = $uname || $sheet->{'uname'}; |
$uname = $uname || $sheet->{'uname'}; |
$udom = $udom || $sheet->{'udom'}; |
$udom = $udom || $sheet->{'udom'}; |
if (! $loadedcaches{$uname.'_'.$udom}) { |
if (! $loadedcaches{$uname.'_'.$udom}) { |
my @tmp = &Apache::lonnet::dump('nohist_calculatedsheets', |
my @tmp = &Apache::lonnet::dump('nohist_calculatedsheets_'. |
|
$ENV{'request.course.id'}, |
$sheet->{'udom'}, |
$sheet->{'udom'}, |
$sheet->{'uname'}); |
$sheet->{'uname'}); |
if ($tmp[0] !~ /^error/) { |
if ($tmp[0] !~ /^error/) { |
Line 3195 ENDSCRIPT
|
Line 3239 ENDSCRIPT
|
$oldsheets{'course'} ne $sheet->{'cid'}) { |
$oldsheets{'course'} ne $sheet->{'cid'}) { |
undef %oldsheets; |
undef %oldsheets; |
undef %loadedcaches; |
undef %loadedcaches; |
|
undef %Section; |
} |
} |
$oldsheets{'course'} = $sheet->{'cid'}; |
$oldsheets{'course'} = $sheet->{'cid'}; |
# |
# |
Line 3261 ENDSCRIPT
|
Line 3306 ENDSCRIPT
|
} |
} |
$r->print('>'); |
$r->print('>'); |
# |
# |
# CSV format checkbox (classcalc sheets only) |
# output format select box |
$r->print(' Output as <select name="output" size="1" onClick="submit()">'. |
$r->print(' Output as <select name="output" size="1" onChange="submit()">'. |
"\n"); |
"\n"); |
foreach my $mode (qw/HTML CSV Excel/) { |
foreach my $mode (qw/HTML CSV Excel/) { |
$r->print('<option value="'.$mode.'"'); |
$r->print('<option value="'.$mode.'"'); |