'.
+ &mt('Grading [_1] for [_2] at [_3]',
+ &Apache::lonnet::gettitle($symb),$uname,$udom).'
';
$form_tag_start.=
'';
@@ -847,6 +866,12 @@ sub get_key_todo {
my ($target)=@_;
my $todo;
+ if ($env{'request.state'} eq 'construct') {
+ my ($symb,$cid,$udom,$uname) = &Apache::lonnet::whichuser();
+ my $gradingkey=&encode_queue_key($symb,$udom,$uname);
+ return ($gradingkey);
+ }
+
if (defined($env{'form.reviewasubmission'})) {
&Apache::lonxml::debug("review a submission....");
$env{'form.queue'}='reviewqueue';
@@ -1039,7 +1064,7 @@ sub end_Task {
}
if (!$previous && $status ne 'SHOW_ANSWER' &&
&show_task($status,$previous)) {
- $result.=&Apache::inputtags::gradestatus('0');
+ $result.=&Apache::inputtags::gradestatus('0',$target,1);
}
$result.='';
@@ -1057,8 +1082,7 @@ DONEBUTTON
if (&show_task($status,$previous) &&
$Apache::lonhomework::history{"resource.$version.0.status"} =~ /^(pass|fail)$/) {
my $bt_status=$Apache::lonhomework::history{"resource.$version.0.status"};
- my $title=&Apache::lonnet::gettitle();
-
+ my $title=&Apache::lonnet::gettitle($env{'request.uri'});
my $start_time;
my $slot_name=
@@ -1332,9 +1356,7 @@ DONEBUTTON
$result.=&Apache::response::meta_stores_write('status','string',
'Bridge Task Status');
} elsif ($target eq 'edit') {
- &Apache::structuretags::reset_problem_globals('Task');
- undef($Apache::lonhomework::parsing_a_task);
- return ('','no');
+ $result.= &Apache::structuretags::problem_edit_footer();
}
&Apache::structuretags::reset_problem_globals('Task');
undef($Apache::lonhomework::parsing_a_task);
@@ -2078,13 +2100,8 @@ sub start_ClosingParagraph {
} elsif ($target eq 'webgrade') {
&Apache::lonxml::startredirection();
} elsif ($target eq 'edit') {
- my $bodytext=&Apache::lonxml::get_all_text("/closingparagraph",
- $parser);
$result = &Apache::edit::tag_start($target,$token);
- $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);
} elsif ($target eq 'modified') {
- $result = $token->[4].&Apache::edit::modifiedfield('/closingparagraph',
- $parser);
}
return $result;
}
@@ -2099,6 +2116,14 @@ sub end_ClosingParagraph {
return $result;
}
+sub insert_ClosingParagraph {
+ return '
+
+
+
+';
+}
+
sub get_dim_id {
if (@Apache::bridgetask::dimension) {
return $Apache::bridgetask::dimension[-1];
@@ -2225,12 +2250,8 @@ sub start_QuestionText {
my $dim = &get_dim_id();
$dimension{$dim}{'questiontext'}=$text;
} elsif ($target eq 'edit') {
- my $bodytext=&Apache::lonxml::get_all_text("/questiontext",$parser);
$result = &Apache::edit::tag_start($target,$token);
- $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);
} elsif ($target eq 'modified') {
- $result = $token->[4].&Apache::edit::modifiedfield('/questiontext',
- $parser);
}
return $result;
}
@@ -2239,6 +2260,14 @@ sub end_QuestionText {
return '';
}
+sub insert_QuestionText {
+ return '
+
+
+
+';
+}
+
sub get_instance {
my ($dim)=@_;
my $rand_alg=&Apache::lonnet::get_rand_alg();
@@ -2383,8 +2412,11 @@ sub end_Dimension {
}
}
# puts the results at the end of the dimension
- $result .= $dim_info;
-
+ if ($result =~m{
}) {
+ $result=~s{
}{$dim_info};
+ } else {
+ $result .= $dim_info;
+ }
# puts the results at the beginning of the dimension
# my $internal_location=&internal_location($dim);
# $result=~s/\Q$internal_location\E/$dim_info/;
@@ -2704,12 +2736,8 @@ sub start_IntroParagraph {
}
} elsif ($target eq 'edit') {
- my $bodytext=&Apache::lonxml::get_all_text("/introparagraph",$parser);
$result = &Apache::edit::tag_start($target,$token);
- $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);
} elsif ($target eq 'modified') {
- $result = $token->[4].&Apache::edit::modifiedfield('/introparagraph',
- $parser);
}
return $result;
}
@@ -2721,6 +2749,14 @@ sub end_IntroParagraph {
}
}
+sub insert_IntroParagraph {
+ return '
+
+
+
+';
+}
+
sub start_Instance {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
my $dim = &get_dim_id();
@@ -2777,12 +2813,8 @@ sub start_InstanceText {
my $instance_id=$Apache::bridgetask::instance{$dim}[-1];
$dimension{$dim}{$instance_id.'.text'}=$text;
} elsif ($target eq 'edit') {
- my $bodytext=&Apache::lonxml::get_all_text("/instancetext",$parser);
$result = &Apache::edit::tag_start($target,$token);
- $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);
} elsif ($target eq 'modified') {
- $result = $token->[4].&Apache::edit::modifiedfield('/instancetext',
- $parser);
}
return $result;
}
@@ -2791,6 +2823,14 @@ sub end_InstanceText {
return '';
}
+sub insert_InstanceText {
+ return '
+
+
+
+';
+}
+
sub start_Criteria {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result = '';
@@ -2823,35 +2863,6 @@ sub start_Criteria {
push(@{$dimension{$dim}{'criterias'}},$id);
}
} elsif ($target eq 'edit') {
- if (0) {
- $result = &Apache::edit::tag_start($target,$token);
- my $text=&Apache::lonxml::get_all_text("/criteria",$parser);
- &Apache::lonnet::logthis("get_all_text criteria \n$text");
- my $local_parser = HTML::LCParser->new(\$text);
- $local_parser->xml_mode(1);
- $local_parser->marked_sections(1);
- while (1) {
- my $criteria_text =
- &Apache::lonxml::get_all_text('gradernote',$local_parser);
- $result.=
- &Apache::edit::editfield($token->[1],$criteria_text,'',80,4);
-
- # check for a
next might be end
- my $token = $local_parser->get_token();
- # is the end
- last if (!$token);
- my $gradernote = &Apache::lonxml::get_all_text('/gradernote',
- $local_parser);
- # purge the end tag
- my $token = $local_parser->get_token();
- $gradernote = ''.$gradernote.'';
- @Apache::scripttag::parser_env = @_;
- $result .=
- &Apache::edit::end_row().&Apache::edit::start_spanning_row().
- &Apache::scripttag::xmlparse($gradernote).
- &Apache::edit::end_row().&Apache::edit::start_spanning_row();
- }
- }
$result .=&Apache::edit::tag_start($target,$token);
$result.=
&Apache::edit::text_arg('Id:','id',$token,10).' '.
@@ -2957,6 +2968,15 @@ sub end_Criteria {
} elsif ($target eq 'modified') {
}
}
+sub insert_Criteria {
+ return '
+
+
+
+
+
+';
+}
sub start_CriteriaText {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
@@ -2964,12 +2984,8 @@ sub start_CriteriaText {
if ($target eq 'grade' || $target eq 'web' || $target eq 'webgrade') {
} elsif ($target eq 'edit') {
- my $bodytext=&Apache::lonxml::get_all_text("/criteriatext",$parser);
$result = &Apache::edit::tag_start($target,$token);
- $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);
} elsif ($target eq 'modified') {
- $result = $token->[4].&Apache::edit::modifiedfield('/criteriatext',
- $parser);
}
return $result;
}
@@ -2978,6 +2994,14 @@ sub end_CriteriaText {
return '';
}
+sub insert_CriteriaText {
+ return '
+
+
+
+';
+}
+
sub start_GraderNote {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result;
@@ -2985,12 +3009,8 @@ sub start_GraderNote {
$result = ''.
&mt('Note to graders:').'';
} elsif ($target eq 'edit') {
- my $bodytext=&Apache::lonxml::get_all_text("/gradernote",$parser);
$result = &Apache::edit::tag_start($target,$token);
- $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4);
} elsif ($target eq 'modified') {
- $result = $token->[4].&Apache::edit::modifiedfield('/gradernote',
- $parser);
} elsif ($target eq 'web' || $target eq 'grade') {
my $note=&Apache::lonxml::get_all_text('/gradernote',$parser,$style);
}
@@ -3006,25 +3026,56 @@ sub end_GraderNote {
return;
}
+sub insert_GraderNote {
+ return '
+
+
+
+';
+}
sub proctor_validation_screen {
my ($slot) = @_;
my (undef,undef,$domain,$user) = &Apache::lonnet::whichuser();
my $url=&Apache::lonnet::studentphoto($domain,$user,'jpg');
+ if ($url ne '/adm/lonKaputt/lonlogo_broken.gif') {
+ $url = "
![](\"$url\") |
";
+ } else {
+ undef($url);
+ }
+
my $name=&Apache::loncommon::plainname($user,$domain);
my $msg;
if ($env{'form.proctorpassword'}) {
- $msg='
'.&mt("Failed to authenticate the proctor.")
- .'
';
+ $msg.='
'
+ .&mt("Failed to authenticate the proctor.")
+ .'
';
}
+
+ my $valid;
+ my @possible_proctors=split(",",$slot->{'proctor'});
+ foreach my $proctor (@possible_proctors) {
+ if ($proctor =~ /$LONCAPA::username_re:$LONCAPA::domain_re/) {
+ $valid = 1;
+ last;
+ }
+ }
+ if (!$valid) {
+ $msg.='
'
+ .&mt("No valid poctors are defined.")
+ .'
';
+ }
+
if (!$env{'form.proctordomain'}) { $env{'form.proctordomain'}=$domain; }
+ my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'});
+ $uri = &HTML::Entities::encode($uri,'<>&"');
my $result= (<
Proctor Validation
Your room's proctor needs to validate your access to this resource.
$msg
-