--- loncom/interface/spreadsheet/lonspreadsheet.pm 2003/07/16 13:52:19 1.16
+++ loncom/interface/spreadsheet/lonspreadsheet.pm 2004/10/12 20:51:54 1.39
@@ -1,5 +1,5 @@
#
-# $Id: lonspreadsheet.pm,v 1.16 2003/07/16 13:52:19 matthew Exp $
+# $Id: lonspreadsheet.pm,v 1.39 2004/10/12 20:51:54 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -54,12 +54,16 @@ built-in functions.
package Apache::lonspreadsheet;
use strict;
+use warnings FATAL=>'all';
+no warnings 'uninitialized';
use Apache::classcalc();
use Apache::studentcalc();
use Apache::assesscalc();
use Apache::Constants qw(:common :http);
use Apache::lonnet;
use Apache::lonhtmlcommon;
+use Apache::lonlocal;
+use Apache::loncoursedata();
use HTML::Entities();
##
@@ -68,8 +72,8 @@ use HTML::Entities();
sub textfield {
my ($title,$name,$value)=@_;
- return "\n
$title:
".
- '';
+ return "\n
$title:
".
+ '';
}
sub hiddenfield {
@@ -79,11 +83,11 @@ sub hiddenfield {
sub selectbox {
my ($title,$name,$value,%options)=@_;
- my $selout="\n
$title:
".'\n
| \n\n";
#
$result .=<
+
+ -->
+
END
return ($result,$message);
}
@@ -200,7 +211,7 @@ sub handler {
# HTML Header
#
if ($r->header_only) {
- $r->content_type('text/html');
+ &Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
return OK;
}
@@ -214,11 +225,23 @@ sub handler {
$r->uri.":opa:0:0:Cannot modify spreadsheet";
return HTTP_NOT_ACCEPTABLE;
}
+ my $courseid = $ENV{'request.course.id'};
+ #
+ # Do not allow students to continue if standard or external grading is in
+ # effect.
+ #
+ if ($ENV{'request.role'} =~ /^st\./) {
+ if ($ENV{'course.'.$courseid.'.grading'} eq 'standard' ||
+ $ENV{'course.'.$courseid.'.grading'} eq 'external' ) {
+ return HTTP_NOT_ACCEPTABLE;
+ }
+ }
#
# Get query string for limited number of parameters
#
&Apache::loncommon::get_unprocessed_cgi
- ($ENV{'QUERY_STRING'},['sname','sdomain','usymb','filename']);
+ ($ENV{'QUERY_STRING'},['sname','sdomain','usymb','filename','recalc',
+ 'output_format','not_first_run']);
#
# Deal with restricted student permissions
#
@@ -234,10 +257,12 @@ sub handler {
$symb = $ENV{'form.usymb'} if (exists($ENV{'form.usymb'}));
my $name = $ENV{'user.name'};
my $domain = $ENV{'user.domain'};
- if (exists($ENV{'form.sname'})) {
+ if (exists($ENV{'form.sname'}) && $ENV{'form.sname'} ne '') {
$name = $ENV{'form.sname'};
$domain = $ENV{'form.sdomain'};
}
+ $ENV{'form.sname'} = $name;
+ $ENV{'form.sdomain'} = $domain;
##
## Check permissions
my $allowed_to_edit = &Apache::lonnet::allowed('mgr',
@@ -268,8 +293,8 @@ sub handler {
# Check that the student is in their section?
if (exists($ENV{'request.course.sec'}) &&
$ENV{'request.course.sec'} ne '' ) {
- my $stu_sec = &Apache::lonnet::usection($domain,$name,
- $ENV{'request.course.id'});
+ my $stu_sec = &Apache::lonnet::getsection($domain,$name,
+ $ENV{'request.course.id'});
if ($stu_sec ne $ENV{'request.course.sec'}) {
$ENV{'user.error.msg'}=
$r->uri.":vgr:0:0:Requested student not in your section.";
@@ -281,7 +306,7 @@ sub handler {
#
# Open page, try to prevent browser cache.
#
- $r->content_type('text/html');
+ &Apache::loncommon::content_type($r,'text/html');
&Apache::loncommon::no_cache($r);
$r->send_http_header;
@@ -294,11 +319,16 @@ sub handler {
## Spit out the javascript required for editing
##
if ($allowed_to_edit) {
+ my %lt=(
+ 'ce' => 'Cell',
+ 'ac' => 'Accept',
+ 'dc' => 'Discard Changes'
+ );
my $extra_javascript =
&Apache::loncommon::browser_and_searcher_javascript();
$r->print(<
-
+
ENDSCRIPT
}
+ &Apache::lonhtmlcommon::clear_breadcrumbs();
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href => $r->uri,
+ title => 'Spreadsheet',
+ text => 'Spreadsheet',
+ faq => 134,
+ bug => 'Spreadsheet'});
$r->print(''.&Apache::loncommon::bodytag('Grades Spreadsheet').
+ &Apache::lonhtmlcommon::breadcrumbs(undef,'Spreadsheet').
'