--- loncom/homework/bridgetask.pm 2015/10/05 02:35:40 1.265 +++ loncom/homework/bridgetask.pm 2025/04/02 23:44:02 1.275 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: bridgetask.pm,v 1.265 2015/10/05 02:35:40 raeburn Exp $ +# $Id: bridgetask.pm,v 1.275 2025/04/02 23:44:02 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -32,12 +32,14 @@ package Apache::bridgetask; use strict; use Apache::lonnet; +use Apache::loncommon; use Apache::File(); use Apache::lonmenu; use Apache::lonlocal; use Apache::lonxml; use Apache::slotrequest(); use Apache::structuretags(); +use HTML::Entities(); use Time::HiRes qw( gettimeofday tv_interval ); use LONCAPA; @@ -65,6 +67,7 @@ sub initialize_bridgetask { sub proctor_check_auth { my ($slot_name,$slot,$type)=@_; my $user=$env{'form.proctorname'}; + $user =~ s/^\s+|\s+$//g; my $domain=$env{'form.proctordomain'}; my @allowed=split(",",$slot->{'proctor'}); @@ -97,7 +100,7 @@ sub proctor_check_auth { sub check_in { my ($type,$user,$domain,$slot_name,$needsiptied) = @_; my $useslots = &Apache::lonnet::EXT("resource.0.useslots"); - my $ip=$env{'request.host'} || $ENV{'REMOTE_ADDR'}; + my $ip=$ENV{'REMOTE_ADDR'} || $env{'request.host'}; if ( $useslots eq 'map_map') { my $result = &check_in_sequence($user,$domain,$slot_name,$ip,$needsiptied); if ($result =~ /^error: /) { @@ -123,7 +126,7 @@ sub check_in_sequence { my ($symb) = &Apache::lonnet::whichuser(); my ($map) = &Apache::lonnet::decode_symb($symb); my @resources = - $navmap->retrieveResources($map, sub { $_[0]->is_problem() },0,0); + $navmap->retrieveResources($map, sub { $_[0]->is_problem() || $_[0]->is_tool() },0,0); my %old_history = %Apache::lonhomework::history; my %old_results = %Apache::lonhomework::results; @@ -131,7 +134,14 @@ sub check_in_sequence { foreach my $res (@resources) { &Apache::lonxml::debug("doing ".$res->src); &Apache::structuretags::initialize_storage($res->symb); - my $type = ($res->is_task()) ? 'Task' : 'problem'; + my $type; + if ($res->is_task()) { + $type = 'Task'; + } elsif ($res->is_tool) { + $type = 'tool'; + } else { + $type = 'problem'; + } my $result = &create_new_version($type,$user,$domain,$slot_name,$res->symb,$ip,$needsiptied); if ($result eq 'ok') { &Apache::structuretags::finalize_storage($res->symb); @@ -187,7 +197,7 @@ sub create_new_version { $domain = $env{'user.domain'}; } - } elsif ($type eq 'problem') { + } elsif (($type eq 'problem') || ($type eq 'tool')) { &Apache::lonxml::debug("authed $slot_name"); } if (!defined($user) || !defined($domain)) { @@ -402,11 +412,16 @@ sub add_request_another_attempt_button { .'
'; } - if ($env{'request.enc'}) { $symb=&Apache::lonenc::encrypted($symb); } - $symb=&escape($symb); + my $shownsymb; + if ($env{'request.enc'}) { + $shownsymb = &Apache::lonenc::encrypted($symb); + } else { + $shownsymb = $symb; + } + $shownsymb=&escape($shownsymb); $result.= "\n\t".'