version 1.2, 2014/06/13 01:48:26
|
version 1.4, 2015/09/13 21:48:05
|
Line 84 Inputs: 5
|
Line 84 Inputs: 5
|
|
|
Returns major version and minor version requirements for a course, |
Returns major version and minor version requirements for a course, |
based on parameters in use in the course. (Parameters which have |
based on parameters in use in the course. (Parameters which have |
version requirements are listed in /home/httpd/lonTabs/releaseslist.xml |
version requirements are listed in /home/httpd/lonTabs/releaseslist.xml). |
|
|
Inputs: 2 |
Inputs: 2 |
|
|
Line 265 use LONCAPA qw(:DEFAULT :match);
|
Line 265 use LONCAPA qw(:DEFAULT :match);
|
|
|
sub init_global_hashes { |
sub init_global_hashes { |
%Apache::lonrelrequtils::checkparms = (); |
%Apache::lonrelrequtils::checkparms = (); |
|
%Apache::lonrelrequtils::checkparmsmatch = (); |
%Apache::lonrelrequtils::checkresponsetypes = (); |
%Apache::lonrelrequtils::checkresponsetypes = (); |
%Apache::lonrelrequtils::checkcrstypes = (); |
%Apache::lonrelrequtils::checkcrstypes = (); |
%Apache::lonrelrequtils::anonsurvey = (); |
%Apache::lonrelrequtils::anonsurvey = (); |
%Apache::lonrelrequtils::randomizetry = (); |
%Apache::lonrelrequtils::randomizetry = (); |
|
|
foreach my $key (keys(%Apache::lonnet::needsrelease)) { |
foreach my $key (keys(%Apache::lonnet::needsrelease)) { |
my ($item,$name,$value) = split(/:/,$key); |
my ($item,$name,$value,$valuematch) = split(/:/,$key); |
if ($item eq 'parameter') { |
if ($item eq 'parameter') { |
if (ref($Apache::lonrelrequtils::checkparms{$name}) eq 'ARRAY') { |
if ($value ne '') { |
unless(grep(/^\Q$name\E$/,@{$Apache::lonrelrequtils::checkparms{$name}})) { |
if (ref($Apache::lonrelrequtils::checkparms{$name}) eq 'ARRAY') { |
|
unless(grep(/^\Q$name\E$/,@{$Apache::lonrelrequtils::checkparms{$name}})) { |
|
push(@{$Apache::lonrelrequtils::checkparms{$name}},$value); |
|
} |
|
} else { |
push(@{$Apache::lonrelrequtils::checkparms{$name}},$value); |
push(@{$Apache::lonrelrequtils::checkparms{$name}},$value); |
} |
} |
} else { |
} elsif ($valuematch ne '') { |
push(@{$Apache::lonrelrequtils::checkparms{$name}},$value); |
if (ref($Apache::lonrelrequtils::checkparmsmatch{$name}) eq 'ARRAY') { |
|
unless(grep(/^\Q$name\E$/,@{$Apache::lonrelrequtils::checkparmsmatch{$name}})) { |
|
push(@{$Apache::lonrelrequtils::checkparmsmatch{$name}},$valuematch); |
|
} |
|
} else { |
|
push(@{$Apache::lonrelrequtils::checkparmsmatch{$name}},$valuematch); |
|
} |
} |
} |
} elsif ($item eq 'resourcetag') { |
} elsif ($item eq 'resourcetag') { |
if ($name eq 'responsetype') { |
if ($name eq 'responsetype') { |
Line 291 sub init_global_hashes {
|
Line 302 sub init_global_hashes {
|
} |
} |
} |
} |
($Apache::lonrelrequtils::anonsurvey{major},$Apache::lonrelrequtils::anonsurvey{minor}) = |
($Apache::lonrelrequtils::anonsurvey{major},$Apache::lonrelrequtils::anonsurvey{minor}) = |
split(/\./,$Apache::lonnet::needsrelease{'parameter:type:anonsurvey'}); |
split(/\./,$Apache::lonnet::needsrelease{'parameter:type:anonsurvey:'}); |
($Apache::lonrelrequtils::randomizetry{major},$Apache::lonrelrequtils::randomizetry{minor}) = |
($Apache::lonrelrequtils::randomizetry{major},$Apache::lonrelrequtils::randomizetry{minor}) = |
split(/\./,$Apache::lonnet::needsrelease{'parameter:type:randomizetry'}); |
split(/\./,$Apache::lonnet::needsrelease{'parameter:type:randomizetry:'}); |
return; |
return; |
} |
} |
|
|
Line 350 sub parameter_constraints {
|
Line 361 sub parameter_constraints {
|
} |
} |
} |
} |
if (grep(/^\Q$value\E$/,@{$Apache::lonrelrequtils::checkparms{$item}})) { |
if (grep(/^\Q$value\E$/,@{$Apache::lonrelrequtils::checkparms{$item}})) { |
my ($major,$minor) = split(/\./,$Apache::lonnet::needsrelease{'parameter:'.$item.':'.$value}); |
my ($major,$minor) = |
|
split(/\./,$Apache::lonnet::needsrelease{'parameter:'.$item.':'.$value.':'}); |
($reqdmajor,$reqdminor) = |
($reqdmajor,$reqdminor) = |
&update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
&update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
} |
} |
} |
} |
} |
} |
} |
} |
|
foreach my $item (keys(%Apache::lonrelrequtils::checkparmsmatch)) { |
|
if ($key =~ /(\Q$item\E)$/) { |
|
if (ref($Apache::lonrelrequtils::checkparmsmatch{$item}) eq 'ARRAY') { |
|
my $value = $resourcedata->{$key}; |
|
foreach my $entry (@{$Apache::lonrelrequtils::checkparmsmatch{$item}}) { |
|
my $regexp; |
|
if (($item eq 'lenient') && ($entry eq 'weighted')) { |
|
$regexp = '^[\-\.\d]+,[\-\.\d]+,[\-\.\d]+,[\-\.\d]+$'; |
|
} elsif (($item eq 'acc') && ($entry eq '_denyfrom_')) { |
|
$regexp = '\!'; |
|
} elsif (($item eq 'interval') && ($entry eq 'done')) { |
|
$regexp = '^\d+_done$'; |
|
} |
|
if ($regexp ne '') { |
|
if ($value =~ /$regexp/) { |
|
my ($major,$minor) = |
|
split(/\./,$Apache::lonnet::needsrelease{'parameter:'.$item.'::'.$entry}); |
|
($reqdmajor,$reqdminor) = |
|
&update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
|
last; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
} |
} |
} |
} |
return ($reqdmajor,$reqdminor); |
return ($reqdmajor,$reqdminor); |
Line 379 sub commblock_constraints {
|
Line 417 sub commblock_constraints {
|
if (keys(%comm_blocks) > 0) { |
if (keys(%comm_blocks) > 0) { |
foreach my $block (keys(%comm_blocks)) { |
foreach my $block (keys(%comm_blocks)) { |
if ($block =~ /^firstaccess____(.+)$/) { |
if ($block =~ /^firstaccess____(.+)$/) { |
my ($major,$minor) = split(/\./,$Apache::lonnet::needsrelease{'course:commblock:timer'}); |
my ($major,$minor) = split(/\./,$Apache::lonnet::needsrelease{'course:commblock:timer:'}); |
($reqdmajor,$reqdminor) = &update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
($reqdmajor,$reqdminor) = &update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
last; |
last; |
} elsif ($block =~ /^(\d+)____(\d+)$/) { |
} elsif ($block =~ /^(\d+)____(\d+)$/) { |
Line 390 sub commblock_constraints {
|
Line 428 sub commblock_constraints {
|
if (ref($comm_blocks{$block}{'blocks'}) eq 'HASH') { |
if (ref($comm_blocks{$block}{'blocks'}) eq 'HASH') { |
if (ref($comm_blocks{$block}{'blocks'}{'docs'}) eq 'HASH') { |
if (ref($comm_blocks{$block}{'blocks'}{'docs'}) eq 'HASH') { |
if (keys(%{$comm_blocks{$block}{'blocks'}{'docs'}}) > 0) { |
if (keys(%{$comm_blocks{$block}{'blocks'}{'docs'}}) > 0) { |
my ($major,$minor) = split(/\./,$Apache::lonnet::needsrelease{'course:commblock:docs'}); |
my ($major,$minor) = split(/\./,$Apache::lonnet::needsrelease{'course:commblock:docs:'}); |
($reqdmajor,$reqdminor) = &update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
($reqdmajor,$reqdminor) = &update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
last; |
last; |
} |
} |
} |
} |
if ($comm_blocks{$block}{'blocks'}{'printout'} eq 'on') { |
if ($comm_blocks{$block}{'blocks'}{'printout'} eq 'on') { |
my ($major,$minor) = split(/\./,$Apache::lonnet::needsrelease{'course:commblock:printout'}); |
my ($major,$minor) = split(/\./,$Apache::lonnet::needsrelease{'course:commblock:printout:'}); |
($reqdmajor,$reqdminor) = &update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
($reqdmajor,$reqdminor) = &update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
last; |
last; |
} |
} |