');
+ return '';
}
-#FIXME need to look at the meatdata spec on what type of data to accept and provide an
-#interface based on that, also do that to above function.
-sub setstudentgrade {
- my ($url,$symb,$courseid,$student,@parts) = @_;
+#
+# --------------------------- show submissions of a student, option to grade --------
+sub submission {
+ my ($request,$counter,$total) = @_;
- my $result ='';
+ (my $url=$ENV{'form.url'})=~s-^http://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--;
+ if ($ENV{'form.student'} eq '') { &moreinfo($request,'Need student login id'); return ''; }
+ my ($uname,$udom) = &finduser($ENV{'form.student'});
+ if ($uname eq '') { &moreinfo($request,'Unable to find student'); return ''; }
+
+ my $symb=($ENV{'form.symb'} ne '' ? $ENV{'form.symb'} : (&Apache::lonnet::symbread($url)));
+ if ($symb eq '') { $request->print("Unable to handle ambiguous references:$url:."); return ''; }
+ my $last = ($ENV{'form.lastSub'} eq 'last' ? 'last' : '');
+ $ENV{'form.vProb'} = $ENV{'form.vProb'} ne '' ? $ENV{'form.vProb'} : 'yes';
+ my ($classlist,$seclist,$ids,$stusec,$fullname);
+
+ # header info
+ if ($counter == 0) {
+ &sub_page_js($request);
+ $request->print('
Submission Record
'.
+ ' Resource: '.$url.'');
+
+ # option to display problem, only once else it cause problems with the form later
+ # since the problem has a form.
+ if ($ENV{'form.vProb'} eq 'yes') {
+ my $rendered=&Apache::loncommon::get_student_view($symb,$uname,$udom,
+ $ENV{'request.course.id'});
+ my $companswer=&Apache::loncommon::get_student_answers($symb,$uname,$udom,
+ $ENV{'request.course.id'});
+ my $result.='
'."\n";
+ return $result;
+}
- my $symb=$ENV{'form.symb'};
- if ($symb eq '') { $request->print("Unable to handle ambiguous references:$symb:$ENV{'form.url'}"); return ''; }
- my $url=$ENV{'form.url'};
- #get classlist
- my ($cdom,$cnum) = split(/_/,$ENV{'request.course.id'});
- #print "Found $cdom:$cnum ";
- my (%classlist) = &getclasslist($cdom,$cnum,'0');
-
- #get list of parts for this problem
- my (@parts) = &getpartlist($url);
-
- $result.='';
- return $result;
-}
-
-sub csvupload {
- my ($request)= @_;
- my $result;
- my ($symb,$url)=&get_symb_and_url($request);
- if (!$symb) {return '';}
- my $upfile_select=&Apache::loncommon::upfile_select_html();
+sub upcsvScores_form {
+ my ($symb,$url) = @_;
+ if (!$symb) {return '';}
+ my $result.='
'."\n";
+ $result.='
'."\n";
+ $result.=' Specify a file containing the class scores for above resource
'."\n";
+ $result.='
'."\n";
+ my $upfile_select=&Apache::loncommon::upfile_select_html();
$result.=<
-
-
Specify a file containing the class grades for resource $url
$upfile_select
-
+
+
ENDUPFORM
- return $result;
+ $result.='
'."\n";
+ $result.='
'."\n";
+ return $result;
+}
+
+sub viewGradeaStu_form {
+ my ($symb,$url,$response,$handgrade) = @_;
+ my ($classlist,$sections) = &getclasslist('all','0');
+ my $result.='
'."\n";
+ $result.='
'."\n";
+ $result.=' View/Grade an Individual Student\'s Submission
'."\n";
+ $result.='
'."\n";
+ $result.=''."\n";
+ $result.='
'."\n";
+ $result.='
'."\n";
+ return $result;
+}
+
+sub verifyReceipt_form {
+ my ($symb,$url) = @_;
+ my $cdom=$ENV{"course.$ENV{'request.course.id'}.domain"};
+ my $cnum=$ENV{"course.$ENV{'request.course.id'}.num"};
+ my $hostver=unpack("%32C*",$Apache::lonnet::perlvar{'lonHostID'});
+
+ my $result.='
'."\n";
+ $result.='
'."\n";
+ $result.=' Verify a Submission Receipt Issued by this Server
'."\n";
+ $result.='
'."\n";
+ $result.='';
+ $result.='
'."\n";
+ $result.='
'."\n";
+ return $result;
}
-sub csvuploadmap_header {
- my ($request,$symb,$url,$datatoken,$distotal)= @_;
- my $result;
- my $javascript;
- if ($ENV{'form.upfile_associate'} eq 'reverse') {
-# $javascript=&csv_upload_javascript_reverse_associate();
- } else {
-# $javascript=&csv_upload_javascript_forward_associate();
+sub viewgrades_js {
+ my ($request) = shift;
+
+ $request->print(<
+ function viewOneStudent(user) {
+ document.onestudent.student.value = user;
+ document.onestudent.submit();
+ }
+
+ function writePoint(partid,weight,point) {
+ var radioButton = eval("document.classgrade.RADVAL_"+partid);
+ var textbox = eval("document.classgrade.TEXTVAL_"+partid);
+ if (point == "textval") {
+ var point = eval("document.classgrade.TEXTVAL_"+partid+".value");
+ if (isNaN(point) || point < 0) {
+ alert("A number equal or greater than 0 is expected. Entered value = "+point);
+ var resetbox = false;
+ for (var i=0; i
+VIEWJAVASCRIPT
+}
+
+sub viewgrades {
+ my ($request) = shift;
+ &viewgrades_js($request);
+
+ my ($symb,$url) = ($ENV{'form.symb'},$ENV{'form.url'});
+ my $result='
Manual Grading
';
+
+ $result.='Resource: '.$ENV{'form.url'}.''."\n";
+
+ #view individual student submission form - called using Javascript viewOneStudent
+ $result.= ''."\n";
+
+ #start the form
+ $result.= '';
+ $result.=&show_grading_menu_form($symb,$url);
+ return $result;
+}
+
+sub viewstudentgrade {
+ my ($url,$symb,$courseid,$student,$fullname,$parts,$weight) = @_;
+ my ($username,$domain) = split(/:/,$student);
+ my %record=&Apache::lonnet::restore($symb,$courseid,$domain,$username);
+ my $result='