--- loncom/interface/lonparmset.pm 2005/06/06 21:28:55 1.216 +++ loncom/interface/lonparmset.pm 2005/06/17 18:29:45 1.225 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.216 2005/06/06 21:28:55 www Exp $ +# $Id: lonparmset.pm,v 1.225 2005/06/17 18:29:45 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -70,6 +70,8 @@ my $parmhashid; my %parmhash; my $symbsid; my %symbs; +my $rulesid; +my %rules; # --- end local caches @@ -240,6 +242,24 @@ sub symbcache { return $symbs{$id}; } +sub resetrulescache { + $rulesid=''; +} + +sub rulescache { + my $id=shift; + if ($rulesid ne $env{'request.course.id'}) { + %rules=(); + } + unless (defined($rules{$id})) { + my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; + %rules=&Apache::lonnet::dump('parmdefactions',$dom,$crs); + $rulesid=$env{'request.course.id'}; + } + return $rules{$id}; +} + ################################################## ################################################## # @@ -776,8 +796,18 @@ sub parmmenu { checkthis('duedate','pscat'); checkthis('opendate','pscat'); checkthis('answerdate','pscat'); - checkthis('interval','pscat'); - } + } + + function checkdisset() { + checkthis('discussend','pscat'); + checkthis('discusshide','pscat'); + } + + function checkcontdates() { + checkthis('contentopen','pscat'); + checkthis('contentclose','pscat'); + } + function checkvisi() { checkthis('hiddenresource','pscat'); @@ -820,12 +850,14 @@ ENDSCRIPT } $r->print(' -Select All -Select Standard +Select All
+Select Common Only -Select Dates -Select Visibilities -Select Part Parameters +Add Problem Dates +Add Content Dates
+Add Discussion Settings +Add Visibilities
+Add Part Parameters Unselect All @@ -1004,7 +1036,9 @@ sub standardkeyorder { 'parameter_0_ordered' => 15, 'parameter_0_tol' => 16, 'parameter_0_sig' => 17, - 'parameter_0_turnoffunit' => 18); + 'parameter_0_turnoffunit' => 18, + 'parameter_0_discussend' => 19, + 'parameter_0_discusshide' => 20); } ################################################## @@ -1780,8 +1814,8 @@ sub crsenv { 'anonymous_quiz' => ''.&mt('Anonymous quiz/exam').'
'. ' ('.&mt('yes').' '.&mt('to avoid print students names').' )', - 'default_enrollment_start_date' => ''.&mt('Default beginning date when enrolling students').'', - 'default_enrollment_end_date' => ''.&mt('Default ending date when enrolling students').'', + 'default_enrollment_start_date' => ''.&mt('Default beginning date for student access.').'', + 'default_enrollment_end_date' => ''.&mt('Default ending date for student access.').'', 'nothideprivileged' => ''.&mt('Privileged users that should not be hidden on staff listings').''. '
(user:domain,user:domain,...)', 'languages' => ''.&mt('Languages used').'', @@ -2135,9 +2169,23 @@ sub listdata { $r->print( &Apache::lonhtmlcommon::date_setter('overviewform', $jskey, - $$resourcedata{$thiskey}). + $$resourcedata{$thiskey}, + '',1). '' ); + } elsif ($thistype eq 'string_yesno') { + $r->print(' '); + $r->print(''); } else { $r->print(''); @@ -2477,11 +2525,10 @@ ENDMAINFORMHEAD permission => $parm_permission, help => 'Cascading_Parameters', }, -# { text => 'Set Parameter Default Preferences', -# help => 'Course_View_Class_List', -# action => 'setdefaults', -# permission => $parm_permission, -# }, + { text => 'Set Parameter Setting Default Actions', + action => 'setdefaults', + permission => $parm_permission, + }, ); my $menu_html = ''; foreach my $menu_item (@menu) { @@ -2506,7 +2553,143 @@ ENDMAINFORMHEAD } +################################################## +sub defaultsetter { + my $r=shift; + my $bodytag=&Apache::loncommon::bodytag('Parameter Setting Default Actions'); + my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; + my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(undef,'Defaults'); + my $html=&Apache::lonxml::xmlbegin(); + $r->print(< +LON-CAPA Parameters + +$bodytag +$breadcrumbs +
+ENDDEFHEAD + my @ids=(); + my %typep=(); + my %keyp=(); + my %allparms=(); + my %allparts=(); + my %allmaps=(); + my %mapp=(); + my %symbp=(); + my %maptitles=(); + my %uris=(); + my %keyorder=&standardkeyorder(); + my %defkeytype=(); + + &extractResourceInformation(\@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allmaps, + \%mapp, \%symbp,\%maptitles,\%uris, + \%keyorder,\%defkeytype); + if ($env{'form.storerules'}) { + my %newrules=(); + my @delrules=(); + foreach my $key (keys(%env)) { + if ($key=~/^form\.(\w+)\_action$/) { + my $tempkey=$1; + if ($env{$key}) { + $newrules{$tempkey.'_action'}=$env{$key}; + if (&isdateparm($defkeytype{$tempkey})) { + $newrules{$tempkey.'_hours'}=$env{'form.'.$tempkey.'_hours'}; + $newrules{$tempkey.'_min'}=$env{'form.'.$tempkey.'_min'}; + $newrules{$tempkey.'_sec'}=$env{'form.'.$tempkey.'_sec'}; + } else { + $newrules{$tempkey.'_value'}=$env{'form.'.$tempkey.'_value'}; + } + } else { + push(@delrules,$tempkey.'_action'); + push(@delrules,$tempkey.'_hours'); + push(@delrules,$tempkey.'_min'); + push(@delrules,$tempkey.'_sec'); + push(@delrules,$tempkey.'_value'); + } + } + } + &Apache::lonnet::put('parmdefactions',\%newrules,$dom,$crs); + &Apache::lonnet::del('parmdefactions',\@delrules,$dom,$crs); + &resetrulescache(); + } + my %lt=&Apache::lonlocal::texthash('hours' => 'Hours', + 'min' => 'Minutes', + 'sec' => 'Seconds', + 'yes' => 'Yes', + 'no' => 'No'); + my @standardoptions=('','default'); + my @standarddisplay=('',&mt('Default value when manually setting')); + my @dateoptions=('','default'); + my @datedisplay=('',&mt('Default value when manually setting')); + foreach my $tempkey (&keysindisplayorder(\%allparms,\%keyorder)) { + unless ($tempkey) { next; } + push @standardoptions,'when_setting_'.$tempkey; + push @standarddisplay,&mt('Automatically set when setting ').$tempkey; + if (&isdateparm($defkeytype{$tempkey})) { + push @dateoptions,'later_than_'.$tempkey; + push @datedisplay,&mt('Automatically set later than ').$tempkey; + push @dateoptions,'earlier_than_'.$tempkey; + push @datedisplay,&mt('Automatically set earlier than ').$tempkey; + } + } + $r->print("\n'); + foreach my $tempkey (&keysindisplayorder(\%allparms,\%keyorder)) { + unless ($tempkey) { next; } + $r->print("\n'); + } + $r->print("
".&mt('Rule for parameter').''. + &mt('Action').''.&mt('Value').'
".$allparms{$tempkey}."\n
(".$tempkey.')
'); + my $action=&rulescache($tempkey.'_action'); + $r->print(''); + + + $r->print("\n\n"); + + if (&isdateparm($defkeytype{$tempkey})) { + my $hours=&rulescache($tempkey.'_hours'); + my $min=&rulescache($tempkey.'_min'); + my $sec=&rulescache($tempkey.'_sec'); + $r->print(<$lt{'hours'}
+$lt{'min'}
+$lt{'sec'} +ENDINPUTDATE + } elsif ($defkeytype{$tempkey} eq 'string_yesno') { + my $yeschecked=''; + my $nochecked=''; + if (&rulescache($tempkey.'_value') eq 'yes') { $yeschecked='checked="checked"'; } + if (&rulescache($tempkey.'_value') eq 'no') { $nochecked='checked="checked"'; } + + $r->print(< $lt{'yes'}
+ +ENDYESNO + } else { + $r->print(''); + } + $r->print('
\n
\n\n"); + return; +} ################################################## ################################################## @@ -2520,7 +2703,8 @@ Main handler. Calls &assessparms and &c =cut ################################################## ################################################## - use Data::Dumper; +# use Data::Dumper; + sub handler { my $r=shift; @@ -2576,8 +2760,6 @@ sub handler { } elsif ($env{'form.action'} eq 'crsenv' && $parm_permission) { &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=crsenv', text=>"Course Environment"}); - $r->print(&Apache::lonhtmlcommon::breadcrumbs(undef, - 'Edit Course Environment')); &crsenv($r); } elsif ($env{'form.action'} eq 'setoverview' && $parm_permission) { &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview', @@ -2587,7 +2769,11 @@ sub handler { &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview', text=>"Overview Mode"}); &newoverview($r); - } elsif ($env{'form.action'} eq 'settable' && $parm_permission) { + } elsif ($env{'form.action'} eq 'setdefaults' && $parm_permission) { + &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setdefaults', + text=>"Set Defaults"}); + &defaultsetter($r); + } elsif ($env{'form.action'} eq 'settable' && $parm_permission) { &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=settable', text=>"Table Mode", help => 'Course_Setting_Parameters'});