--- 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 .= ''.
'- '.&mt('Access starts:').' '.
- &Apache::lonlocal::locallocaltime($accessstart).'
'.
- '- '.&mt('Access ends:').' '.&Apache::lonlocal::locallocaltime($accessend).'
'.
+ &Apache::lonlocal::locallocaltime($accessstart,$timezone).''.
+ '- '.&mt('Access ends:').' '.&Apache::lonlocal::locallocaltime($accessend,$timezone).'
'.
'
';
$r->print($output);
$output = '';