version 1.60, 2013/09/01 01:12:01
|
version 1.69, 2015/03/07 23:17:15
|
Line 215 use Apache::lonnet;
|
Line 215 use Apache::lonnet;
|
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::lonhtmlcommon(); |
use Apache::lonhtmlcommon(); |
use Apache::lonconfigsettings; |
use Apache::lonconfigsettings; |
|
use Apache::lonrelrequtils; |
use Apache::lonparmset; |
use Apache::lonparmset; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use LONCAPA qw(:DEFAULT :match); |
use LONCAPA qw(:DEFAULT :match); |
|
|
|
my $registered_cleanup; |
|
my $modified_courses; |
|
|
sub handler { |
sub handler { |
my $r=shift; |
my $r=shift; |
if ($r->header_only) { |
if ($r->header_only) { |
Line 228 sub handler {
|
Line 232 sub handler {
|
} |
} |
my $context = 'course'; |
my $context = 'course'; |
my $cid = $env{'request.course.id'}; |
my $cid = $env{'request.course.id'}; |
my ($cnum,$cdom) = &get_course($cid); |
my ($cnum,$cdom,$chome) = &get_course($cid); |
my $crstype = &Apache::loncommon::course_type(); |
my $crstype = &Apache::loncommon::course_type(); |
my $parm_permission = &Apache::lonnet::allowed('opa',$cid); |
my $parm_permission = &Apache::lonnet::allowed('opa',$cid); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
Line 257 sub handler {
|
Line 261 sub handler {
|
return HTTP_NOT_ACCEPTABLE; |
return HTTP_NOT_ACCEPTABLE; |
} |
} |
|
|
|
$registered_cleanup=0; |
|
@{$modified_courses}=(); |
|
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['phase','actions','origin']); |
['phase','actions','origin']); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
Line 272 sub handler {
|
Line 279 sub handler {
|
edit => 'Edit Community Settings', |
edit => 'Edit Community Settings', |
gens => 'General community settings', |
gens => 'General community settings', |
idnu => 'Community ID or number', |
idnu => 'Community ID or number', |
|
unco => 'Unique code', |
desc => 'Community Description', |
desc => 'Community Description', |
ownr => 'Community Owner', |
ownr => 'Community Owner', |
cown => 'Community Co-owners', |
cown => 'Community Co-owners', |
Line 299 sub handler {
|
Line 307 sub handler {
|
edit => 'Edit Course Settings', |
edit => 'Edit Course Settings', |
gens => 'General course settings', |
gens => 'General course settings', |
idnu => 'Course ID or number', |
idnu => 'Course ID or number', |
|
unco => 'Unique code', |
desc => 'Course Description', |
desc => 'Course Description', |
cred => 'Student credits', |
cred => 'Student credits', |
ownr => 'Course Owner', |
ownr => 'Course Owner', |
Line 342 sub handler {
|
Line 351 sub handler {
|
if ($phase eq 'releaseinfo') { |
if ($phase eq 'releaseinfo') { |
my $loncaparev = $env{'course.'.$cid.'.internal.releaserequired'}; |
my $loncaparev = $env{'course.'.$cid.'.internal.releaserequired'}; |
if ($loncaparev) { |
if ($loncaparev) { |
&display_loncaparev_constraints($r,$navmap,$loncaparev,$crstype); |
if (&display_loncaparev_constraints($r,$navmap,$loncaparev,$crstype)) { |
|
push(@{$modified_courses},[$cdom,$cnum,$chome,$crstype]); |
|
unless ($registered_cleanup) { |
|
my $handlers = $r->get_handlers('PerlCleanupHandler'); |
|
$r->set_handlers('PerlCleanupHandler' => [\&update_releasereq,@{$handlers}]); |
|
$registered_cleanup=1; |
|
} |
|
} |
return OK; |
return OK; |
} |
} |
} |
} |
Line 357 sub handler {
|
Line 373 sub handler {
|
{ text => $lt{'gens'}, |
{ text => $lt{'gens'}, |
help => 'Course_Prefs_General', |
help => 'Course_Prefs_General', |
ordered => ['owner','co-owners','loncaparev','description', |
ordered => ['owner','co-owners','loncaparev','description', |
'courseid','categories','hidefromcat', |
'clonedfrom','courseid','uniquecode','categories', |
'externalsyllabus','cloners','url','rolenames'], |
'hidefromcat','externalsyllabus','cloners','url', |
|
'rolenames'], |
itemtext => { |
itemtext => { |
'owner' => $lt{'ownr'}, |
'owner' => $lt{'ownr'}, |
'co-owners' => $lt{'cown'}, |
'co-owners' => $lt{'cown'}, |
'description' => $lt{'desc'}, |
'description' => $lt{'desc'}, |
'courseid' => $lt{'idnu'}, |
'courseid' => $lt{'idnu'}, |
|
'uniquecode' => $lt{'unco'}, |
'categories' => $lt{'catg'}, |
'categories' => $lt{'catg'}, |
'hidefromcat' => $lt{'excc'}, |
'hidefromcat' => $lt{'excc'}, |
'cloners' => $lt{'clon'}, |
'cloners' => $lt{'clon'}, |
Line 371 sub handler {
|
Line 389 sub handler {
|
'url' => 'Top Level Map', |
'url' => 'Top Level Map', |
'rolenames' => $lt{'rept'}, |
'rolenames' => $lt{'rept'}, |
'loncaparev' => $lt{'lcrv'}, |
'loncaparev' => $lt{'lcrv'}, |
|
'clonedfrom' => 'Cloned from', |
}, |
}, |
}, |
}, |
'localization' => |
'localization' => |
Line 444 sub handler {
|
Line 463 sub handler {
|
help => 'Course_Prefs_Display', |
help => 'Course_Prefs_Display', |
ordered => ['default_xml_style','pageseparators', |
ordered => ['default_xml_style','pageseparators', |
'disable_receipt_display','texengine', |
'disable_receipt_display','texengine', |
'tthoptions'], |
'tthoptions','uselcmath','usejsme'], |
itemtext => { |
itemtext => { |
default_xml_style => 'Default XML style file', |
default_xml_style => 'Default XML style file', |
pageseparators => 'Visibly Separate Items on Pages', |
pageseparators => 'Visibly Separate Items on Pages', |
disable_receipt_display => 'Disable display of problem receipts', |
disable_receipt_display => 'Disable display of problem receipts', |
texengine => 'Force use of a specific math rendering engine', |
texengine => 'Force use of a specific math rendering engine', |
tthoptions => 'Default set of options to pass to tth/m when converting TeX', |
tthoptions => 'Default set of options to pass to tth/m when converting TeX', |
|
uselcmath => 'Student formula entry uses inline preview, not DragMath pop-up', |
|
usejsme => 'Molecule editor uses JSME (HTML5) in place of JME (Java)', |
}, |
}, |
}, |
}, |
'grading' => |
'grading' => |
Line 705 sub process_changes {
|
Line 726 sub process_changes {
|
next if (($entry eq 'categories') && |
next if (($entry eq 'categories') && |
(!$can_categorize)); |
(!$can_categorize)); |
next if (($entry eq 'loncaparev') || |
next if (($entry eq 'loncaparev') || |
($entry eq 'owner')); |
($entry eq 'owner') || |
|
($entry eq 'clonedfrom')); |
push(@ordered,$entry); |
push(@ordered,$entry); |
} |
} |
} elsif ($action eq 'classlists') { |
} elsif ($action eq 'classlists') { |
Line 1385 sub store_changes {
|
Line 1407 sub store_changes {
|
$displayval = &Apache::lonlocal::locallocaltime($displayval); |
$displayval = &Apache::lonlocal::locallocaltime($displayval); |
} elsif ($key eq 'categories') { |
} elsif ($key eq 'categories') { |
$displayval = $env{'form.categories_display'}; |
$displayval = $env{'form.categories_display'}; |
} elsif ($key eq 'canuse_pdfforms') { |
} elsif (($key eq 'canuse_pdfforms') || ($key eq 'usejsme') || ($key eq 'uselcmath')) { |
if ($changes->{$item}{$key} eq '1') { |
if ($changes->{$item}{$key} eq '1') { |
$displayval = &mt('Yes'); |
$displayval = &mt('Yes'); |
} elsif ($changes->{$item}{$key} eq '0') { |
} elsif ($changes->{$item}{$key} eq '0') { |
Line 1657 sub get_course {
|
Line 1679 sub get_course {
|
} |
} |
my $cdom=$env{'course.'.$courseid.'.domain'}; |
my $cdom=$env{'course.'.$courseid.'.domain'}; |
my $cnum=$env{'course.'.$courseid.'.num'}; |
my $cnum=$env{'course.'.$courseid.'.num'}; |
return ($cnum,$cdom); |
my $chome=$env{'course.'.$courseid.'.home'}; |
|
return ($cnum,$cdom,$chome); |
} |
} |
|
|
sub get_jscript { |
sub get_jscript { |
Line 1852 sub print_courseinfo {
|
Line 1875 sub print_courseinfo {
|
'co-owners' => { |
'co-owners' => { |
text => '<b>'.&mt($itemtext->{'co-owners'}).'</b>', |
text => '<b>'.&mt($itemtext->{'co-owners'}).'</b>', |
}, |
}, |
|
'clonedfrom' => { |
|
text => '<b>'.&mt($itemtext->{'clonedfrom'}).'</b>', |
|
}, |
'courseid' => { |
'courseid' => { |
text => '<b>'.&mt($itemtext->{'courseid'}).'</b><br />'.'('. |
text => '<b>'.&mt($itemtext->{'courseid'}).'</b><br />'.'('. |
&mt('internal, optional').')', |
&mt('internal, optional').')', |
input => 'textbox', |
input => 'textbox', |
size => '25', |
size => '25', |
}, |
}, |
|
'uniquecode' => { |
|
text => '<b>'.&mt($itemtext->{'uniquecode'}).'</b>', |
|
}, |
'cloners' => { |
'cloners' => { |
text => '<b>'.&mt($itemtext->{'cloners'}).'</b><br />'. |
text => '<b>'.&mt($itemtext->{'cloners'}).'</b><br />'. |
&mt('Owner and Coordinators included automatically'), |
&mt('Owner and Coordinators included automatically'), |
Line 1903 sub print_courseinfo {
|
Line 1932 sub print_courseinfo {
|
next if (!$can_toggle_cat); |
next if (!$can_toggle_cat); |
} elsif ($item eq 'categories') { |
} elsif ($item eq 'categories') { |
next if (!$can_categorize); |
next if (!$can_categorize); |
|
} elsif ($item eq 'uniquecode') { |
|
next if (!$env{'course.'.$env{'request.course.id'}.'.internal.uniquecode'}); |
} |
} |
unless (($item eq 'cloners') || ($item eq 'rolenames')) { |
unless (($item eq 'cloners') || ($item eq 'rolenames')) { |
$colspan = 2; |
$colspan = 2; |
Line 2038 sub print_courseinfo {
|
Line 2069 sub print_courseinfo {
|
$owner = &mt('None specified'); |
$owner = &mt('None specified'); |
} |
} |
$datatable .= $owner; |
$datatable .= $owner; |
|
} elsif ($item eq 'clonedfrom') { |
|
my $clonesrc = $env{'course.'.$env{'request.course.id'}.'.clonedfrom'}; |
|
my $clonedfrom = &mt('None'); |
|
if ($clonesrc =~ m{/$match_domain/$match_courseid}) { |
|
my %clonesrcinfo = &Apache::lonnet::coursedescription($clonesrc); |
|
if ($clonesrcinfo{'description'}) { |
|
$clonedfrom = $clonesrcinfo{'description'}.' '.($clonesrc); |
|
} |
|
} |
|
$datatable .= $clonedfrom; |
|
} elsif ($item eq 'uniquecode') { |
|
my $code = $env{'course.'.$env{'request.course.id'}.'.internal.uniquecode'}; |
|
if ($code) { |
|
$datatable .= $code; |
|
} |
} elsif ($item eq 'co-owners') { |
} elsif ($item eq 'co-owners') { |
my $coowners = $env{'course.'.$env{'request.course.id'}.'.internal.co-owners'}; |
my $coowners = $env{'course.'.$env{'request.course.id'}.'.internal.co-owners'}; |
my @currcoown; |
my @currcoown; |
Line 2256 ENDSCRIPT
|
Line 2302 ENDSCRIPT
|
|
|
sub display_loncaparev_constraints { |
sub display_loncaparev_constraints { |
my ($r,$navmap,$loncaparev,$crstype) = @_; |
my ($r,$navmap,$loncaparev,$crstype) = @_; |
|
my ($reqdmajor,$reqdminor); |
my $cid = $env{'request.course.id'}; |
my $cid = $env{'request.course.id'}; |
my $cdom = $env{'course.'.$cid.'.domain'}; |
my $cdom = $env{'course.'.$cid.'.domain'}; |
my $cnum = $env{'course.'.$cid.'.num'}; |
my $cnum = $env{'course.'.$cid.'.num'}; |
Line 2265 sub display_loncaparev_constraints {
|
Line 2312 sub display_loncaparev_constraints {
|
'section/group' => 'section/group', |
'section/group' => 'section/group', |
'user' => 'user', |
'user' => 'user', |
); |
); |
my (%checkparms,%checkresponsetypes,%checkcrstypes,%anonsurvey,%randomizetry); |
&Apache::lonrelrequtils::init_global_hashes(); |
&Apache::loncommon::build_release_hashes(\%checkparms,\%checkresponsetypes, |
if (defined($Apache::lonrelrequtils::checkcrstypes{$crstype})) { |
\%checkcrstypes,\%anonsurvey,\%randomizetry); |
($reqdmajor,$reqdminor) = split(/\./,$Apache::lonrelrequtils::checkcrstypes{$crstype}); |
if (defined($checkcrstypes{$crstype})) { |
|
$output .= '<h4>'.&mt('Course type: [_1] requires [_2] or newer',$crstype, |
$output .= '<h4>'.&mt('Course type: [_1] requires [_2] or newer',$crstype, |
$checkcrstypes{$crstype}).'</h4>'; |
$Apache::lonrelrequtils::checkcrstypes{$crstype}).'</h4>'; |
} |
} |
my (%fromparam,%rowspan,%bymap,%byresource,@scopeorder,%toshow,%allmaps, |
my (%fromparam,%rowspan,%bymap,%byresource,@scopeorder,%toshow,%allmaps, |
%byresponsetype,%bysubmission); |
%byresponsetype,%bysubmission,%fromblocks); |
@scopeorder = ('all','section/group','user'); |
@scopeorder = ('all','section/group','user'); |
|
my $now = time; |
my $resourcedata = &Apache::lonparmset::readdata($cnum,$cdom); |
my $resourcedata = &Apache::lonparmset::readdata($cnum,$cdom); |
if (ref($resourcedata) eq 'HASH') { |
if (ref($resourcedata) eq 'HASH') { |
foreach my $key (keys(%{$resourcedata})) { |
foreach my $key (keys(%{$resourcedata})) { |
foreach my $item (keys(%checkparms)) { |
foreach my $item (keys(%Apache::lonrelrequtils::checkparms)) { |
if ($key =~ /(\Q$item\E)$/) { |
if ($key =~ /(\Q$item\E)$/) { |
if (ref($checkparms{$item}) eq 'ARRAY') { |
if (ref($Apache::lonrelrequtils::checkparms{$item}) eq 'ARRAY') { |
my $value = $resourcedata->{$key}; |
my $value = $resourcedata->{$key}; |
if ($item eq 'examcode') { |
if ($item eq 'examcode') { |
if (&Apache::lonnet::validCODE($value)) { |
if (&Apache::lonnet::validCODE($value)) { |
Line 2288 sub display_loncaparev_constraints {
|
Line 2335 sub display_loncaparev_constraints {
|
} else { |
} else { |
$value = ''; |
$value = ''; |
} |
} |
|
} elsif ($item eq 'printstartdate') { |
|
if ($value =~ /^\d+$/) { |
|
if ($value > $now) { |
|
$value = 'future'; |
|
} |
|
} |
|
} elsif ($item eq 'printenddate') { |
|
if ($value =~ /^\d+$/) { |
|
if ($value < $now) { |
|
$value = 'past'; |
|
} |
|
} |
} |
} |
my ($middle,$scope,$which,$level,$map,$resource); |
my ($middle,$scope,$which,$level,$map,$resource); |
if (grep(/^\Q$value\E$/,@{$checkparms{$item}})) { |
if (grep(/^\Q$value\E$/,@{$Apache::lonrelrequtils::checkparms{$item}})) { |
my $stdtype = &Apache::lonparmset::standard_parameter_types($item); |
my $stdtype = &Apache::lonparmset::standard_parameter_types($item); |
my $stdname = &Apache::lonparmset::standard_parameter_names($item); |
my $stdname = &Apache::lonparmset::standard_parameter_names($item); |
my $valname = &get_param_description($stdtype,$value); |
my $valname = &get_param_description($stdtype,$value); |
Line 2382 sub display_loncaparev_constraints {
|
Line 2441 sub display_loncaparev_constraints {
|
'<th>'.&mt('Extent').'</th><th>'.&mt('Setting').'</th>'. |
'<th>'.&mt('Extent').'</th><th>'.&mt('Setting').'</th>'. |
&Apache::loncommon::end_data_table_header_row(); |
&Apache::loncommon::end_data_table_header_row(); |
foreach my $rev (keys(%fromparam)) { |
foreach my $rev (keys(%fromparam)) { |
|
my ($major,$minor) = split(/\./,$rev); |
|
($reqdmajor,$reqdminor) = |
|
&Apache::lonrelrequtils::update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
$output .= &Apache::loncommon::start_data_table_row(). |
$output .= &Apache::loncommon::start_data_table_row(). |
'<td rowspan="'.$rowspan{$rev}.'">'.$rev.'</td>'; |
'<td rowspan="'.$rowspan{$rev}.'">'.$rev.'</td>'; |
my $newrow; |
my $newrow; |
Line 2412 sub display_loncaparev_constraints {
|
Line 2474 sub display_loncaparev_constraints {
|
} |
} |
} |
} |
|
|
|
my %comm_blocks = &Apache::lonnet::dump('comm_block',$cdom,$cnum); |
|
my $now = time; |
|
if (keys(%comm_blocks) > 0) { |
|
foreach my $block (keys(%comm_blocks)) { |
|
if ($block =~ /^firstaccess____(.+)$/) { |
|
my $rev = $Apache::lonnet::needsrelease{'course:commblock:timer'}; |
|
if (ref($comm_blocks{$block}) eq 'HASH') { |
|
push(@{$fromblocks{'timer'}{$rev}},&unescape($comm_blocks{$block}{'event'}). |
|
' '.&mt('set by [_1]', |
|
&Apache::loncommon::plainname(split(/:/,$comm_blocks{$block}{'setter'})))); |
|
} |
|
next; |
|
} elsif ($block =~ /^(\d+)____(\d+)$/) { |
|
my ($start,$end) = ($1,$2); |
|
next if ($end < $now); |
|
} |
|
if (ref($comm_blocks{$block}) eq 'HASH') { |
|
if (ref($comm_blocks{$block}{'blocks'}) eq 'HASH') { |
|
if (ref($comm_blocks{$block}{'blocks'}{'docs'}) eq 'HASH') { |
|
if (keys(%{$comm_blocks{$block}{'blocks'}{'docs'}}) > 0) { |
|
my $rev = $Apache::lonnet::needsrelease{'course:commblock:docs'}; |
|
push(@{$fromblocks{'docs'}{$rev}},&unescape($comm_blocks{$block}{'event'}). |
|
' '. |
|
&mt('set by [_1]', |
|
&Apache::loncommon::plainname(split(/:/,$comm_blocks{$block}{'setter'})))); |
|
} |
|
} elsif ($comm_blocks{$block}{'blocks'}{'printout'} eq 'on') { |
|
my $rev = $Apache::lonnet::needsrelease{'course:commblock:printout'}; |
|
push(@{$fromblocks{'printout'}{$rev}},&unescape($comm_blocks{$block}{'event'}). |
|
' '. |
|
&mt('set by [_1]', |
|
&Apache::loncommon::plainname(split(/:/,$comm_blocks{$block}{'setter'})))); |
|
|
|
} |
|
} |
|
} |
|
} |
|
if (keys(%fromblocks)) { |
|
my %lt = ( |
|
docs => 'Content blocking', |
|
printout => 'Printout generation', |
|
timer => 'Timed quiz trigger', |
|
); |
|
$output .= '<h4>'.&mt('Requirements from exam blocking').'</h4>'. |
|
&Apache::loncommon::start_data_table(). |
|
&Apache::loncommon::start_data_table_header_row(). |
|
'<th>'.&mt('Release').'</th><th>'.&mt('Setting').'</th>'. |
|
'<th>'.&mt('Event(s)').'</th>'. |
|
&Apache::loncommon::end_data_table_header_row(); |
|
foreach my $type ('docs','printout','timer') { |
|
if (ref($fromblocks{$type}) eq 'HASH') { |
|
foreach my $rev (keys(%{$fromblocks{$type}})) { |
|
my ($major,$minor) = split(/\./,$rev); |
|
($reqdmajor,$reqdminor) = |
|
&Apache::lonrelrequtils::update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
|
$output .= &Apache::loncommon::start_data_table_row(). |
|
'<td>'.$rev.'</td><td>'.$lt{$type}.'</td><td>'; |
|
foreach my $event (sort(@{$fromblocks{$type}{$rev}})) { |
|
$output .= $event.'<br />'; |
|
} |
|
$output =~ s{\Q<br />\E$}{}; |
|
$output .= '</td>'.&Apache::loncommon::end_data_table_row(); |
|
} |
|
} |
|
} |
|
$output .= &Apache::loncommon::end_data_table().'<br />'; |
|
} |
|
} |
|
|
if (defined($navmap)) { |
if (defined($navmap)) { |
my %anonsubms=&Apache::lonnet::dump('nohist_anonsurveys',$cdom,$cnum); |
my %anonsubms=&Apache::lonnet::dump('nohist_anonsurveys',$cdom,$cnum); |
my $rev_anonsurv=$Apache::lonnet::needsrelease{'parameter:type:anonsurvey'}; |
my $rev_anonsurv=$Apache::lonnet::needsrelease{'parameter:type:anonsurvey'}; |
Line 2421 sub display_loncaparev_constraints {
|
Line 2552 sub display_loncaparev_constraints {
|
my $stdname=&Apache::lonparmset::standard_parameter_names('type'); |
my $stdname=&Apache::lonparmset::standard_parameter_names('type'); |
my $valanon=&get_param_description($stdtype,'anonsurvey'); |
my $valanon=&get_param_description($stdtype,'anonsurvey'); |
my $valrandtry=&get_param_description($stdtype,'randomizetry'); |
my $valrandtry=&get_param_description($stdtype,'randomizetry'); |
|
my %checkedrev; |
foreach my $res ($navmap->retrieveResources(undef,sub { $_[0]->is_problem() },1,0)) { |
foreach my $res ($navmap->retrieveResources(undef,sub { $_[0]->is_problem() },1,0)) { |
my @parts = @{$res->parts()}; |
my @parts = @{$res->parts()}; |
my $symb = $res->symb(); |
my $symb = $res->symb(); |
Line 2438 sub display_loncaparev_constraints {
|
Line 2569 sub display_loncaparev_constraints {
|
push(@{$bysubmission{$symb}{$rev}},$what); |
push(@{$bysubmission{$symb}{$rev}},$what); |
} |
} |
$allmaps{$enclosing_map} = 1; |
$allmaps{$enclosing_map} = 1; |
|
unless ($checkedrev{'anonsurvey'}) { |
|
my ($major,$minor) = split(/\./,$rev); |
|
($reqdmajor,$reqdminor) = |
|
&Apache::lonrelrequtils::update_reqd_loncaparev($major,$minor, |
|
$reqdmajor,$reqdminor); |
|
$checkedrev{'anonsurvey'} = 1; |
|
} |
} |
} |
if (exists($randtrysubms{$symb."\0".$part})) { |
if (exists($randtrysubms{$symb."\0".$part})) { |
my $rev = $rev_randtry; |
my $rev = $rev_randtry; |
Line 2450 sub display_loncaparev_constraints {
|
Line 2588 sub display_loncaparev_constraints {
|
push(@{$bysubmission{$symb}{$rev}},$what); |
push(@{$bysubmission{$symb}{$rev}},$what); |
} |
} |
$allmaps{$enclosing_map} = 1; |
$allmaps{$enclosing_map} = 1; |
|
unless ($checkedrev{'randomizetry'}) { |
|
my ($major,$minor) = split(/\./,$rev); |
|
($reqdmajor,$reqdminor) = |
|
&Apache::lonrelrequtils::update_reqd_loncaparev($major,$minor, |
|
$reqdmajor,$reqdminor); |
|
$checkedrev{'randomizetry'} = 1; |
|
} |
} |
} |
} |
} |
my %responses = $res->responseTypes(); |
my %responses = $res->responseTypes(); |
foreach my $key (keys(%responses)) { |
foreach my $key (keys(%responses)) { |
if (exists($checkresponsetypes{$key})) { |
if (exists($Apache::lonrelrequtils::checkresponsetypes{$key})) { |
push(@{$byresponsetype{$symb}{$checkresponsetypes{$key}}},$key); |
my $rev = $Apache::lonrelrequtils::checkresponsetypes{$key}; |
|
unless ($checkedrev{$key}) { |
|
my ($major,$minor) = split(/\./,$rev); |
|
($reqdmajor,$reqdminor) = |
|
&Apache::lonrelrequtils::update_reqd_loncaparev($major,$minor, |
|
$reqdmajor,$reqdminor); |
|
$checkedrev{$key} = 1; |
|
} |
|
push(@{$byresponsetype{$symb}{$rev}},$key); |
$allmaps{$enclosing_map} = 1; |
$allmaps{$enclosing_map} = 1; |
} |
} |
} |
} |
Line 2473 sub display_loncaparev_constraints {
|
Line 2626 sub display_loncaparev_constraints {
|
} |
} |
foreach my $map (keys(%allmaps)) { |
foreach my $map (keys(%allmaps)) { |
my $mapres = $navmap->getResourceByUrl($map); |
my $mapres = $navmap->getResourceByUrl($map); |
my $mapsymb = $mapres->symb(); |
|
$toshow{$mapsymb} = 1; |
|
if (ref($mapres)) { |
if (ref($mapres)) { |
|
my $mapsymb = $mapres->symb(); |
|
$toshow{$mapsymb} = 1; |
my $pcslist = $mapres->map_hierarchy(); |
my $pcslist = $mapres->map_hierarchy(); |
if ($pcslist ne '') { |
if ($pcslist ne '') { |
foreach my $pc (split(/,/,$pcslist)) { |
foreach my $pc (split(/,/,$pcslist)) { |
Line 2516 sub display_loncaparev_constraints {
|
Line 2669 sub display_loncaparev_constraints {
|
'</p>'); |
'</p>'); |
} |
} |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
|
my ($currmajor,$currminor) = split(/\./,$loncaparev); |
|
if (($currmajor != $reqdmajor) || ($currminor != $reqdminor)) { |
|
return 1; |
|
} |
return; |
return; |
} |
} |
|
|
Line 2657 sub show_contents_view {
|
Line 2814 sub show_contents_view {
|
} |
} |
$r->print(&Apache::loncommon::end_data_table()); |
$r->print(&Apache::loncommon::end_data_table()); |
} |
} |
|
return; |
} |
} |
|
|
sub releases_by_map { |
sub releases_by_map { |
Line 2710 sub get_param_description {
|
Line 2868 sub get_param_description {
|
return $name; |
return $name; |
} |
} |
|
|
|
sub update_releasereq { |
|
my $readmap = 1; |
|
my $getrelreq = 1; |
|
if (ref($modified_courses) eq 'ARRAY') { |
|
foreach my $item (@{$modified_courses}) { |
|
if (ref($item) eq 'ARRAY') { |
|
my ($cdom,$cnum,$chome,$crstype) = @{$item}; |
|
&Apache::lonrelrequtils::modify_course_relreq(undef,undef,$cnum,$cdom, |
|
$chome,$crstype,$cdom.'_'.$cnum, |
|
$readmap,$getrelreq); |
|
} |
|
} |
|
$modified_courses = []; |
|
} |
|
undef($registered_cleanup); |
|
return; |
|
} |
|
|
sub show_autocoowners { |
sub show_autocoowners { |
my (@currcoown) = @_; |
my (@currcoown) = @_; |
my $output = '<i><span class="LC_nobreak">'.&mt('Co-ownership is set automatically when a Course Coordinator role[_1] is assigned to official course personnel (from institutional data).','</span><br /><span class="LC_nobreak">').'</span></i>'; |
my $output = '<i><span class="LC_nobreak">'.&mt('Co-ownership is set automatically when a Course Coordinator role[_1] is assigned to official course personnel (from institutional data).','</span><br /><span class="LC_nobreak">').'</span></i>'; |
Line 3510 sub print_appearance {
|
Line 3686 sub print_appearance {
|
text => '<b>'.&mt($itemtext->{'texengine'}).'</b>', |
text => '<b>'.&mt($itemtext->{'texengine'}).'</b>', |
input => 'selectbox', |
input => 'selectbox', |
options => { |
options => { |
|
MathJax => 'MathJax', |
jsMath => 'jsMath', |
jsMath => 'jsMath', |
mimetex => &mt('Convert to Images'), |
mimetex => &mt('Convert to Images'), |
tth => &mt('TeX to HTML'), |
tth => &mt('TeX to HTML'), |
}, |
}, |
order => ['jsMath','mimetex','tth'], |
order => ['MathJax','jsMath','mimetex','tth'], |
nullval => $mathdef, |
nullval => $mathdef, |
}, |
}, |
'tthoptions' => { |
'tthoptions' => { |
Line 3522 sub print_appearance {
|
Line 3699 sub print_appearance {
|
input => 'textbox', |
input => 'textbox', |
size => 40, |
size => 40, |
}, |
}, |
|
'uselcmath' => { |
|
text => '<b>'.&mt($itemtext->{'uselcmath'}).'</b>', |
|
input => 'radio', |
|
}, |
|
'usejsme' => { |
|
text => '<b>'.&mt($itemtext->{'usejsme'}).'</b>', |
|
input => 'radio', |
|
}, |
); |
); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'appearance'); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'appearance'); |
} |
} |
Line 3753 sub get_other_items {
|
Line 3938 sub get_other_items {
|
($parameter =~ m/^selfenroll_/) || ($parameter =~ /_selfenroll$/) |
($parameter =~ m/^selfenroll_/) || ($parameter =~ /_selfenroll$/) |
|| ($parameter eq 'type') || |
|| ($parameter eq 'type') || |
($parameter =~ m/^(cc|co|in|ta|ep|ad|st)\.plaintext$/) |
($parameter =~ m/^(cc|co|in|ta|ep|ad|st)\.plaintext$/) |
|| ($parameter =~ m/^discussion_post_fonts/)) { |
|| ($parameter =~ m/^discussion_post_fonts/) || |
|
($parameter =~ m{^(minimal|updated|uploaded|external)syllabus$}) || |
|
($parameter eq 'clonedfrom')) { |
push(@ordered,$parameter); |
push(@ordered,$parameter); |
} |
} |
} |
} |
Line 3782 sub item_table_row_end {
|
Line 3969 sub item_table_row_end {
|
} |
} |
|
|
sub yesno_radio { |
sub yesno_radio { |
my ($item,$settings) = @_; |
my ($item,$settings,$unsetdefault,$valueyes,$valueno) = @_; |
my $itemon = ' '; |
my $itemon = ' '; |
my $itemoff = ' checked="checked" '; |
my $itemoff = ' checked="checked" '; |
|
if (($valueyes eq '') && ($valueno eq '')) { |
|
$valueyes = 'yes'; |
|
$valueno = ''; |
|
} |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if ($settings->{$item} eq 'yes') { |
if ($settings->{$item} eq $valueyes) { |
$itemon = $itemoff; |
$itemon = $itemoff; |
$itemoff = ' '; |
$itemoff = ' '; |
} |
} |
|
unless (exists($settings->{$item})) { |
|
if ($unsetdefault eq $valueyes) { |
|
$itemon = $itemoff; |
|
$itemoff = ' '; |
|
} |
|
} |
} |
} |
return '<span class="LC_nobreak"><label>'. |
return '<span class="LC_nobreak"><label>'. |
'<input type="radio" name="'.$item.'"'. |
'<input type="radio" name="'.$item.'"'. |
$itemon.' value="yes" />'.&mt('Yes').'</label> '. |
$itemon.' value="'.$valueyes.'" />'.&mt('Yes').'</label> '. |
'<label><input type="radio" name="'.$item.'"'. |
'<label><input type="radio" name="'.$item.'"'. |
$itemoff.' value="" />'.&mt('No').'</label></span>'; |
$itemoff.' value="'.$valueno.'" />'.&mt('No').'</label></span>'; |
} |
} |
|
|
sub select_from_options { |
sub select_from_options { |
Line 3880 sub make_item_rows {
|
Line 4077 sub make_item_rows {
|
&Apache::lonhtmlcommon::date_setter('display',$item, |
&Apache::lonhtmlcommon::date_setter('display',$item, |
$settings->{$item}); |
$settings->{$item}); |
} elsif ($items->{$item}{input} eq 'radio') { |
} elsif ($items->{$item}{input} eq 'radio') { |
$datatable .= &yesno_radio($item,$settings); |
my ($unsetdefault,$valueyes,$valueno); |
|
if (($item eq 'usejsme') || ($item eq 'uselcmath')) { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($cdom); |
|
unless ($domdefs{$item} eq '0') { |
|
$unsetdefault = 1; |
|
} |
|
$valueyes = "1"; |
|
$valueno = "0"; |
|
} |
|
$datatable .= &yesno_radio($item,$settings,$unsetdefault,$valueyes,$valueno); |
} elsif ($items->{$item}{input} eq 'selectbox') { |
} elsif ($items->{$item}{input} eq 'selectbox') { |
my $curr = $settings->{$item}; |
my $curr = $settings->{$item}; |
$datatable .= |
$datatable .= |
Line 3956 sub nothidepriv_row {
|
Line 4162 sub nothidepriv_row {
|
'<span class="LC_nobreak"><label>'. |
'<span class="LC_nobreak"><label>'. |
'<input type="radio" name="'.$item.'_'.$user.'"'. |
'<input type="radio" name="'.$item.'_'.$user.'"'. |
$hideon.' value="" />'.&mt('Hidden').'</label> '. |
$hideon.' value="" />'.&mt('Hidden').'</label> '. |
'<label><input type="radio" name="'.$item.'_'.$user.'"'. $hideoff.' value="yes" />'.&mt('Shown').'</label></span></td>'. |
'<label><input type="radio" name="'.$item.'_'.$user.'"'. |
|
$hideoff.' value="yes" />'.&mt('Shown').'</label></span></td>'. |
'</tr>'; |
'</tr>'; |
} |
} |
$datatable .= '</table>'; |
$datatable .= '</table>'; |