--- loncom/interface/lonrelrequtils.pm 2016/03/04 21:43:16 1.5 +++ loncom/interface/lonrelrequtils.pm 2018/01/02 14:43:17 1.6 @@ -1,7 +1,7 @@ #!/usr/bin/perl # The LearningOnline Network # -# $Id: lonrelrequtils.pm,v 1.5 2016/03/04 21:43:16 raeburn Exp $ +# $Id: lonrelrequtils.pm,v 1.6 2018/01/02 14:43:17 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -271,6 +271,7 @@ sub init_global_hashes { %Apache::lonrelrequtils::checkcrstypes = (); %Apache::lonrelrequtils::anonsurvey = (); %Apache::lonrelrequtils::randomizetry = (); + %Apache::lonrelrequtils::exttool = (); foreach my $key (keys(%Apache::lonnet::needsrelease)) { my ($item,$name,$value,$valuematch,$namematch) = split(/:/,$key); @@ -304,6 +305,11 @@ sub init_global_hashes { } elsif ($item eq 'course') { if ($name eq 'crstype') { $Apache::lonrelrequtils::checkcrstypes{$value} = $Apache::lonnet::needsrelease{$key}; + } elsif ($name eq 'courserestype') { + if ($value eq 'exttool') { + ($Apache::lonrelrequtils::exttool{major},$Apache::lonrelrequtils::exttool{minor}) = + split(/\./,$Apache::lonnet::needsrelease{$key}); + } } } } @@ -475,8 +481,12 @@ sub coursecontent_constraints { my %randomizetrysubm = &Apache::lonnet::dump('nohist_randomizetry', $cdom,$cnum); my %allresponses; - my ($anonsurv_subm,$randbytry_subm); - foreach my $res ($navmap->retrieveResources(undef,sub { $_[0]->is_problem() },1,0)) { + my ($anonsurv_subm,$randbytry_subm,$exttool); + foreach my $res ($navmap->retrieveResources(undef,sub { $_[0]->is_problem() || $_[0]->is_tool() },1,0)) { + if ($res->is_tool()) { + $exttool ++; + next; + } my %responses = $res->responseTypes(); foreach my $key (keys(%responses)) { next unless(exists($Apache::lonrelrequtils::checkresponsetypes{$key})); @@ -497,6 +507,10 @@ sub coursecontent_constraints { my ($major,$minor) = split(/\./,$Apache::lonrelrequtils::checkresponsetypes{$key}); ($reqdmajor,$reqdminor) = &update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); } + if ($exttool) { + ($reqdmajor,$reqdminor) = &update_reqd_loncaparev($Apache::lonrelrequtils::exttool{major}, + $Apache::lonrelrequtils::exttool{minor}); + } if ($anonsurv_subm) { ($reqdmajor,$reqdminor) = &update_reqd_loncaparev($Apache::lonrelrequtils::anonsurvey{major}, $Apache::lonrelrequtils::anonsurvey{minor},$reqdmajor,$reqdminor);