--- loncom/interface/lonrequestcourse.pm 2010/11/08 21:44:55 1.41.2.8 +++ loncom/interface/lonrequestcourse.pm 2010/11/29 04:40:12 1.41.2.9 @@ -1,7 +1,7 @@ # The LearningOnline Network # Request a course # -# $Id: lonrequestcourse.pm,v 1.41.2.8 2010/11/08 21:44:55 raeburn Exp $ +# $Id: lonrequestcourse.pm,v 1.41.2.9 2010/11/29 04:40:12 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -600,6 +600,7 @@ sub form_elements { cdescr => 'text', concepttest => 'radio', ); + $elements{'new'}{'enrollment'}{'timezone'} = 'selectbox'; if (&show_cloneable()) { $elements{'new'}{'courseinfo'}{'clonecrs'} = 'selectbox'; $elements{'new'}{'courseinfo'}{'clonedom'} = 'hidden'; @@ -1751,12 +1752,12 @@ sub print_enrollment_menu { &mt('No').''. &Apache::lonhtmlcommon::row_closure(1). &date_setting_table($starttime,$endtime,$formname,'enroll', - $hasauto,%enrolltitles); + $hasauto,$dom,%enrolltitles); } } my $access_dates = &date_setting_table($starttime,$endtime,$formname,'access',$hasauto, - %accesstitles); + $dom,%accesstitles); if ($sections) { $output .= $sections; } @@ -1773,8 +1774,16 @@ sub print_enrollment_menu { } $output .= &Apache::lonhtmlcommon::row_headline('Access'). '

'.$header.'

'. - &Apache::lonhtmlcommon::row_closure(1). - $access_dates; + &Apache::lonhtmlcommon::row_closure(1); + if ($dom eq 'gcitest') { + my $includeempty = 1; + my $timezone = &Apache::lonlocal::gettimezone(); + $output .= &Apache::lonhtmlcommon::row_title('Time zone'). + &Apache::loncommon::select_timezone('timezone',$timezone, + undef,$includeempty). + &Apache::lonhtmlcommon::row_closure(1); + } + $output .= $access_dates; } if ($dom eq 'gcitest') { return $output; @@ -1843,16 +1852,22 @@ sub inst_section_selector { } sub date_setting_table { - my ($starttime,$endtime,$formname,$prefix,$hasauto,%datetitles) = @_; + my ($starttime,$endtime,$formname,$prefix,$hasauto,$dom,%datetitles) = @_; my ($perpetual,$table); my $no_hh_mm_ss = 1; + my $hide_timezone; if (&Apache::loncommon::needs_gci_custom()) { $no_hh_mm_ss = ''; + if ($dom eq 'gcitest') { + if ($prefix eq 'access') { + $hide_timezone = 1; + } + } } my $startform = &Apache::lonhtmlcommon::date_setter($formname,$prefix.'start', - $starttime,'','','',$no_hh_mm_ss,'','','',1); + $starttime,'','','',$no_hh_mm_ss,'','','',1,$hide_timezone); my $endform = &Apache::lonhtmlcommon::date_setter($formname,$prefix.'end', - $endtime,'','','',$no_hh_mm_ss,'','','',1); + $endtime,'','','',$no_hh_mm_ss,'','','',1,$hide_timezone); my $closure = ''; if ($prefix eq 'access') { unless (&Apache::loncommon::needs_gci_custom()) { @@ -2445,14 +2460,26 @@ sub print_review { $inst_values .= ''.&mt('None').''; } } + my $tz; + if ($dom eq 'gcitest') { + if (&Apache::lonlocal::gettimezone($env{'form.timezone'}) ne 'local') { + $tz = $env{'form.timezone'}; + } else { + $tz = &Apache::lonlocal::gettimezone(); + } + $enroll_headers .= ''.&mt('Time Zone').''; + } $enroll_headers .= ''.&mt('Access Starts').''. ''.&mt('Access Ends').''; - my ($accessstart,$accessend) = &dates_from_form('accessstart','accessend'); - $enroll_values .= ''.&Apache::lonlocal::locallocaltime($accessstart).''; + my ($accessstart,$accessend) = &dates_from_form('accessstart','accessend',$tz); + if ($dom eq 'gcitest') { + $enroll_values .= ''.$tz.''; + } + $enroll_values .= ''.&Apache::lonlocal::locallocaltime($accessstart,$tz).''; if ($accessend == 0) { $enroll_values .= ''.&mt('No end date').''; } else { - $enroll_values .= ''.&Apache::lonlocal::locallocaltime($accessend).''; + $enroll_values .= ''.&Apache::lonlocal::locallocaltime($accessend,$tz).''; } my $container = 'Course'; @@ -2563,9 +2590,9 @@ sub print_review { } sub dates_from_form { - my ($startname,$endname) = @_; - my $startdate = &Apache::lonhtmlcommon::get_date_from_form($startname); - my $enddate = &Apache::lonhtmlcommon::get_date_from_form($endname); + my ($startname,$endname,$timezone) = @_; + my $startdate = &Apache::lonhtmlcommon::get_date_from_form($startname,$timezone); + my $enddate = &Apache::lonhtmlcommon::get_date_from_form($endname,$timezone); if ($endname eq 'accessend') { if (exists($env{'form.no_end_date'}) ) { $enddate = 0; @@ -2630,7 +2657,7 @@ ENDJS '

'.&Apache::loncommon::help_open_topic('Course_Request_Description').' '.$title.'

'. &Apache::lonhtmlcommon::row_closure(1). &Apache::lonhtmlcommon::row_title($desctitle). - ''; + ''; my $showclone; if ($dom eq 'gcitest') { $showclone = &show_cloneable(); @@ -3072,7 +3099,7 @@ sub print_request_outcome { push(@baduname,$uname.':'.$udom); } } - my ($accessstart,$accessend) = &dates_from_form('accessstart','accessend'); + my ($accessstart,$accessend) = &dates_from_form('accessstart','accessend',$env{'form.timezone'}); my $autodrops = 0; if ($env{'form.autodrops'}) { $autodrops = $env{'form.autodrops'}; @@ -3136,6 +3163,7 @@ sub print_request_outcome { personnel => \%personnel, }; if ($dom eq 'gcitest') { + if ($env{'form.concepttest'} eq 'editmyown') { $details->{'firstres'} = 'nav'; } else { @@ -3248,12 +3276,19 @@ sub print_request_outcome { } if ($dom eq 'gcitest') { my $caller = 'requestcrs'; + my $timezone; + if (&Apache::lonlocal::gettimezone($env{'form.timezone'}) ne 'local') { + $timezone = $env{'form.timezone'}; + } else { + $timezone = Apache::lonlocal::gettimezone(); + } &acquire_cc_role($dom,$cnum,'cc./'.$dom.'/'.$cnum); my %parmresult = &store_crsparms($dom,$cnum,$now,$accessstart,$accessend); &Apache::londocsgci::setdefaults(); my %crsenvhash = ( suppress_tries => 'yes', + timezone => $timezone, ); my $putresult = &Apache::lonnet::put('environment',\%crsenvhash,$dom,$cnum); if ($env{'form.concepttest'} eq 'cloning') { @@ -3273,8 +3308,8 @@ sub print_request_outcome { } $output .= '
'; $r->print($output); $output = '';