version 1.29, 2001/01/02 20:19:34
|
version 1.30, 2001/01/02 22:35:30
|
Line 781 sub makenewsheet {
|
Line 781 sub makenewsheet {
|
'";$uhome="'.&Apache::lonnet::homeserver($uname,$udom). |
'";$uhome="'.&Apache::lonnet::homeserver($uname,$udom). |
'";$sheettype="'.$stype. |
'";$sheettype="'.$stype. |
'";$usymb="'.$usymb. |
'";$usymb="'.$usymb. |
|
'";$csec="'.&Apache::lonnet::usection($udom,$uname, |
|
$ENV{'request.course.id'}). |
'";$cid="'.$ENV{'request.course.id'}. |
'";$cid="'.$ENV{'request.course.id'}. |
'";$cfn="'.$ENV{'request.course.fn'}. |
'";$cfn="'.$ENV{'request.course.fn'}. |
'";$cnum="'.$ENV{'course.'.$ENV{'request.course.id'}.'.num'}. |
'";$cnum="'.$ENV{'course.'.$ENV{'request.course.id'}.'.num'}. |
Line 815 sub writesheet {
|
Line 817 sub writesheet {
|
$sheetdata,$chome); |
$sheetdata,$chome); |
if ($reply eq 'ok') { |
if ($reply eq 'ok') { |
$reply=&Apache::lonnet::reply('put:'.$cdom.':'.$cnum.':'. |
$reply=&Apache::lonnet::reply('put:'.$cdom.':'.$cnum.':'. |
&stype.'_spreadsheets:'. |
$stype.'_spreadsheets:'. |
&Apache::lonnet::escape($fn).'='.$ENV{'user.name'}, |
&Apache::lonnet::escape($fn).'='.$ENV{'user.name'}, |
$chome); |
$chome); |
if ($reply eq 'ok') { |
if ($reply eq 'ok') { |
Line 1157 sub loadstudent {
|
Line 1159 sub loadstudent {
|
if ($_=~/^A(\d+)/) { |
if ($_=~/^A(\d+)/) { |
my $row=$1; |
my $row=$1; |
unless ($f{$_}=~/^\!/) { |
unless ($f{$_}=~/^\!/) { |
# my @assessdata=split(/\_\_\_\;\_\_\_/, |
my @assessdata=&exportsheet(&getuname($safeeval), |
# &Apache::lonnet::ssi( |
&getudom($safeeval), |
# '/adm/assesscalc',('utarget' => 'export', |
'assesscalc',$f{$_}); |
# 'uname' => $uname, |
|
# 'udom' => $udom, |
|
# 'usymb' => $f{$_}))); |
|
my $index=0; |
my $index=0; |
# map { |
map { |
# if ($assessdata[$index]) { |
if ($assessdata[$index]) { |
# $c{$_.$row}=$assessdata[$index]; |
$c{$_.$row}=$assessdata[$index]; |
# unless ($_ eq 'A') { |
unless ($_ eq 'A') { |
# $f{$_.$row}='import'; |
$f{$_.$row}='import'; |
# } |
} |
# } |
} |
# $index++; |
$index++; |
# } ('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', |
# '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'); |
} |
} |
} |
} |
} keys %f; |
} keys %f; |
Line 1183 sub loadstudent {
|
Line 1182 sub loadstudent {
|
|
|
# --------------------------------------------------- Load data for one student |
# --------------------------------------------------- Load data for one student |
|
|
sub loadclass { |
sub loadcourse { |
my $safeeval=shift; |
my $safeeval=shift; |
my %c=(); |
my %c=(); |
my %f=&getformulas($safeeval); |
my %f=&getformulas($safeeval); |
map { |
map { |
if ($_=~/^A(\d+)/) { |
if ($_=~/^A(\d+)/) { |
my $row=$1; |
my $row=$1; |
unless ($f{$_}=~/^\!/) { |
unless (($f{$_}=~/^\!/) |
my ($tname,$tdom)=split(/\:/,$_); |
|
# my @assessdata=split(/\_\_\_\;\_\_\_/, |
|| ($row>5)) |
# &Apache::lonnet::ssi( |
|
# '/adm/studentcalc',('utarget' => 'export', |
{ |
# 'uname' => $tname, |
my @studentdata=&exportsheet(&getuname($safeeval), |
# 'udom' => $tdom))); |
&getudom($safeeval), |
|
'studentcalc'); |
my $index=0; |
my $index=0; |
# map { |
map { |
# if ($assessdata[$index]) { |
if ($studentdata[$index]) { |
# $c{$_.$row}=$assessdata[$index]; |
$c{$_.$row}=$studentdata[$index]; |
# unless ($_ eq 'A') { |
unless ($_ eq 'A') { |
# $f{$_.$row}='import'; |
$f{$_.$row}='import'; |
# } |
} |
# } |
} |
# $index++; |
$index++; |
# } ('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', |
# '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'); |
} |
} |
} |
} |
} keys %f; |
} keys %f; |
Line 1484 ENDSCRIPT
|
Line 1484 ENDSCRIPT
|
|
|
my $asheet=&makenewsheet($aname,$adom,$1,$ENV{'form.usymb'}); |
my $asheet=&makenewsheet($aname,$adom,$1,$ENV{'form.usymb'}); |
|
|
# if ($ENV{'form.unewfield'}) { |
# ------------------------ If a new formula had been entered, go from work copy |
# $r->print('<h2>Modified Workcopy</h2>'); |
|
# $ENV{'form.unewformula'}=~s/\'/\"/g; |
if ($ENV{'form.unewfield'}) { |
# $r->print('<p>New formula: '.$ENV{'form.unewfield'}.'='. |
$r->print('<h2>Modified Workcopy</h2>'); |
# $ENV{'form.unewformula'}.'<p>'); |
$ENV{'form.unewformula'}=~s/\'/\"/g; |
# &setfilename($sheetone,$ENV{'form.ufn'}); |
$r->print('<p>New formula: '.$ENV{'form.unewfield'}.'='. |
# &tmpread($sheetone,$r->dir_config('lonDaemons').'/tmp/', |
$ENV{'form.unewformula'}.'<p>'); |
# $ENV{'form.usymb'}, |
&setfilename($asheet,$ENV{'form.ufn'}); |
# $ENV{'form.unewfield'},$ENV{'form.unewformula'}); |
&tmpread($asheet, |
# } elsif ($ENV{'form.saveas'}) { |
$ENV{'form.unewfield'},$ENV{'form.unewformula'}); |
# &setfilename($sheetone,$ENV{'form.ufn'}); |
|
# &tmpread($sheetone,, |
} elsif ($ENV{'form.saveas'}) { |
# $ENV{'form.usymb'}); |
&setfilename($asheet,$ENV{'form.ufn'}); |
# } else { |
&tmpread($asheet); |
# unless ($ENV{'form.ufn'}) { |
} else { |
# }# |
&readsheet($asheet,$ENV{'form.ufn'}); |
# |
} |
# if (&gettype($sheetone) eq 'classcalc') { |
|
# ---------------------------------- For course view: get courselist and update |
# -------------------------------------------------- Print out user information |
# &updatestudentrows($sheetone); |
|
# } else { |
unless (&gettype($asheet) eq 'classcalc') { |
# ----------------- For assessment and student: See if all import rows uptodate |
$r->print('<p><b>User:</b> '.&getuname($asheet). |
# $csec=&Apache::lonnet::usection($udom,$uname,$ENV{'request.course.id'}); |
'<br><b>Domain:</b> '.&getudom($asheet)); |
# if ($csec eq '-1') { |
if (&getcsec($asheet) eq '-1') { |
# $r->print('<h3><font color=red>'. |
$r->print('<h3><font color=red>'. |
# "User '$uname' at domain '$udom' not a student in this course</font></h3>"); |
'Not a student in this course</font></h3>'); |
# } |
} else { |
# &updaterows($sheetone); |
$r->print('<br><b>Section/Group:</b> '.&getcsec($asheet)); |
# untie(%parmhash); |
} |
# } else { |
} |
# $r->print('<h3><font color=red>'. |
|
# 'Could not initialize import fields (not in a course)</font></h3>'); |
# ---------------------------------------------------------------- Course title |
# } |
|
# } |
$r->print('<h1>'. |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.description'}.'</h1>'); |
|
|
|
|
# ---------------------------------------------------- See if something to save |
# ---------------------------------------------------- See if something to save |
# if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) { |
|
# my $fname=''; |
if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) { |
# if ($ENV{'form.saveas'} && ($fname=$ENV{'form.newfn'})) { |
my $fname=''; |
# $fname=~s/\W/\_/g; |
if ($ENV{'form.saveas'} && ($fname=$ENV{'form.newfn'})) { |
# if ($fname eq 'default') { $fname='course_default'; } |
$fname=~s/\W/\_/g; |
# $fname.='_'.&gettype($sheetone); |
if ($fname eq 'default') { $fname='course_default'; } |
# &setfilename($sheetone,$fname); |
$fname.='_'.&gettype($asheet); |
# $ENV{'form.ufn'}=$fname; |
&setfilename($asheet,$fname); |
# my $reply=&writesheet($sheetone); |
$ENV{'form.ufn'}=$fname; |
# unless ($reroute) { |
$r->print('<p>Saving spreadsheet: '. |
# $r->print('<p>Saving spreadsheet: '.$reply.'<p>'); |
&writesheet($asheet,$ENV{'form.makedefufn'}).'<p>'); |
# } |
} |
# if ($ENV{'form.makedefufn'}) { |
} |
# my $reply=&Apache::lonnet::reply('put:'. |
|
# $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.':'. |
|
# $ENV{'course.'.$ENV{'request.course.id'}.'.num'}. |
|
# ':environment:spreadsheet_default_'. |
|
# &gettype($sheetone).'='. |
|
# &Apache::lonnet::escape($fname), |
|
# $ENV{'course.'.$ENV{'request.course.id'}.'.home'}); |
|
# unless ($reroute) { |
|
# $r->print('<p>Making default spreadsheet: '.$reply.'<p>'); |
|
# } |
|
# } |
|
# } |
|
# } |
|
# ------------------------------------------------ Write the modified worksheet |
# ------------------------------------------------ Write the modified worksheet |
# |
|
# &tmpwrite($sheetone,$r->dir_config('lonDaemons').'/tmp/', |
|
# $ENV{'form.usymb'}); |
|
# |
|
# ----------------------------------------------------- Print user, course, etc |
|
# unless ($reroute) { |
|
# if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) { |
|
# my $fname=$ENV{'form.ufn'}; |
|
# $fname=~s/\_[^\_]+$//; |
|
# if ($fname eq 'default') { $fname='course_default'; } |
|
# $r->print('<input type=submit name=saveas value="Save as ...">'. |
|
# '<input type=text size=20 name=newfn value="'.$fname. |
|
# '"> (make default: <input type=checkbox name="makedefufn">)<p>'); |
|
# } |
|
# $r->print(&hiddenfield('ufn',$ENV{'form.ufn'})); |
|
# unless (&gettype($sheetone) eq 'classcalc') { |
|
# $r->print('<br><b>User:</b> '.$uname.'<br><b>Domain:</b> '.$udom); |
|
# } |
|
# $r->print('<h1>'. |
|
# $ENV{'course.'.$ENV{'request.course.id'}.'.description'}.'</h1>'); |
|
# if ($csec) { |
|
# $r->print('<h3>Group/Section: '.$csec.'</h3>'); |
|
# } |
|
# } |
|
# -------------------------------------------------------- Import and calculate |
|
# |
|
# if (&gettype($sheetone) eq 'assesscalc') { |
|
# &rowaassess($sheetone,$ENV{'form.usymb'}); |
|
# } elsif (&gettype($sheetone) eq 'studentcalc') { |
|
# &rowazstudent($sheetone); |
|
# } else { |
|
# &rowazclass($sheetone); |
|
# } |
|
|
|
|
$r->print('<b>Current sheet:</b> '.&getfilename($asheet).'<p>'); |
|
|
|
&tmpwrite($asheet); |
|
|
|
# ----------------------------------------------------------------- Save dialog |
|
|
|
|
|
if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) { |
|
my $fname=$ENV{'form.ufn'}; |
|
$fname=~s/\_[^\_]+$//; |
|
if ($fname eq 'default') { $fname='course_default'; } |
|
$r->print('<input type=submit name=saveas value="Save as ...">'. |
|
'<input type=text size=20 name=newfn value="'.$fname. |
|
'"> (make default: <input type=checkbox name="makedefufn">)<p>'); |
|
} |
|
|
|
$r->print(&hiddenfield('ufn',&getfilename($asheet))); |
|
|
|
|
|
# ----------------------------------------------------- Update sheet, load rows |
|
|
&readsheet($asheet,''); |
|
&updatesheet($asheet); |
&updatesheet($asheet); |
&loadrows($asheet); |
&loadrows($asheet); |
|
|