--- loncom/interface/Attic/lonspreadsheet.pm 2002/12/04 21:49:33 1.154
+++ loncom/interface/Attic/lonspreadsheet.pm 2002/12/09 16:06:56 1.157
@@ -1,5 +1,5 @@
#
-# $Id: lonspreadsheet.pm,v 1.154 2002/12/04 21:49:33 matthew Exp $
+# $Id: lonspreadsheet.pm,v 1.157 2002/12/09 16:06:56 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1284,6 +1284,7 @@ sub html_uneditable_cell {
sub outsheet_html {
my ($sheet,$r) = @_;
my ($num_uneditable,$realm,$row_type);
+ my $requester_is_student = ($ENV{'request.role'} =~ /^st\./);
if ($sheet->{'sheettype'} eq 'assesscalc') {
$num_uneditable = 1;
$realm = 'Assessment';
@@ -1328,34 +1329,39 @@ END
####################################
# Print out template row
####################################
- my ($rowlabel,@rowdata) = &get_row($sheet,'-');
- my $row_html = '
'.&format_html_rowlabel($sheet,$rowlabel).' | ';
- my $num_cols_output = 0;
- foreach my $cell (@rowdata) {
- if ($num_cols_output++ < $num_uneditable) {
- $row_html .= '';
- $row_html .= &html_uneditable_cell($cell,'#FFDDDD');
- } else {
- $row_html .= ' | ';
- $row_html .= &html_editable_cell($cell,'#E0FFDD');
+ my ($num_cols_output,$row_html,$rowlabel,@rowdata);
+
+ if (! $requester_is_student) {
+ ($rowlabel,@rowdata) = &get_row($sheet,'-');
+ $row_html = ' |
'.&format_html_rowlabel($sheet,$rowlabel).' | ';
+ $num_cols_output = 0;
+ foreach my $cell (@rowdata) {
+ if ($requester_is_student ||
+ $num_cols_output++ < $num_uneditable) {
+ $row_html .= '';
+ $row_html .= &html_uneditable_cell($cell,'#FFDDDD');
+ } else {
+ $row_html .= ' | ';
+ $row_html .= &html_editable_cell($cell,'#E0FFDD');
+ }
+ $row_html .= ' | ';
}
- $row_html .= '';
+ $row_html.= "
\n";
+ $r->print($row_html);
}
- $row_html.= "\n";
- $r->print($row_html);
####################################
# Print out summary/export row
####################################
($rowlabel,@rowdata) = &get_row($sheet,'0');
- $row_html = ''.&format_html_rowlabel($sheet,$rowlabel).' | ';
+ $row_html = '
'.&format_html_rowlabel($sheet,'Summary').' | ';
$num_cols_output = 0;
foreach my $cell (@rowdata) {
- if ($num_cols_output++ < 26) {
+ if ($num_cols_output++ < 26 && ! $requester_is_student) {
$row_html .= '';
$row_html .= &html_editable_cell($cell,'#CCCCFF');
} else {
$row_html .= ' | ';
- $row_html .= &html_uneditable_cell(undef,'#CCCCFF');
+ $row_html .= &html_uneditable_cell($cell,'#CCCCFF');
}
$row_html .= ' | ';
}
@@ -1432,7 +1438,7 @@ END
$bgcolor='#FFDDDD' if ($shown_cells < $num_uneditable);
#
$row_html.='';
- if ($shown_cells < $num_uneditable) {
+ if ($requester_is_student || $shown_cells < $num_uneditable) {
$row_html .= &html_uneditable_cell($cell,$bgcolor);
} else {
$row_html .= &html_editable_cell($cell,$bgcolor);
@@ -1833,13 +1839,27 @@ sub readsheet {
}
%f=%{&parse_sheet(\$sheetxml)};
} else {
- my $sheet='';
my %tmphash = &Apache::lonnet::dump($fn,$cdom,$cnum);
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)) {
$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=''.
+ '"Unable to load spreadsheet"';
+ }
+ %f=%{&parse_sheet(\$sheetxml)};
}
}
# Cache and set
@@ -3123,7 +3143,7 @@ ENDSCRIPT
# If a new formula had been entered, go from work copy
if ($ENV{'form.unewfield'}) {
$r->print('Modified Workcopy');
- $ENV{'form.unewformula'}=~s/\'/\"/g;
+ #$ENV{'form.unewformula'}=~s/\'/\"/g;
$r->print('Cell '.$ENV{'form.unewfield'}.' = ');
$r->print(&HTML::Entities::encode($ENV{'form.unewformula'}).
' ');
|