'.&mt('Creation of a course "container" and setting of access dates').'
'.
'
'.&mt('Assembly of a valid test from Concept Inventory questions').'
'.
'
'.&mt('Enrollment of students').'
'.
- '
'.&mt('When assembling a test you may either:').
- ' '.&mt('(a) have a valid test built automatically by the WebCenter, or').' '.&mt('(b) select the questions to include by combining questions chosen from eleven bins with four mandatory questions.').'
'.&mt('The most efficient way to enroll students is to upload a text file containing usernames and passwords.').' '.&mt("Students' full e-mail addresses should be used as their usernames to ensure uniqueness.").'
'.
+ '
'.&mt('When assembling a test you may:').
+ ' '.&mt('(a) have a valid test built automatically by the WebCenter, or').' '.&mt('(b) select the questions to include by combining questions chosen from eleven bins with four mandatory questions, or').
+ ' '.&mt('(c) copy one of your existing tests (including optional copying of the student roster)').'
'.&mt('The most efficient way to enroll students is to upload a text file containing usernames and passwords.').' '.&mt("Students' e-mail addresses must be used as their usernames to ensure uniqueness.").'
'.
'
'.
@@ -811,7 +897,7 @@ END
my $nexttext = &mt('Next');
$r->print(&Apache::lonhtmlcommon::row_title(&mt('Action')).'
'.&mt('The following management tools are available via the "[_1]Manage Tests[_2]" tab, or from the toolbar on the [_3]Concept Test Contents[_4] page.[_5]',
+ '','','','',' ').
+ '
'.
+ '
'.&mt('Concept Test Contents').'
'.
+ '
'.&mt('Display the Table of Contents for your Concept Test.').'
'.
+ '
'.&mt('Assemble Concept Test').'
'.
+ '
'.&mt('If no students have attempted the Concept Test you will be able to modify it. You can also change the start and end date of the test itself.').'
'.
+ '
'.
+ '
'.&mt('Enrollment and Student Activity').'
'.
+ '
'.&mt('Display or download a course roster, and view information about completion status and last login. You can also add new students, or change access dates for existing students.').'
'.
+ '
'.&mt("What's New?").'
'.
+ '
'.&mt('View information about changes in your Concept Test course.').'
'.
+ '
'.
+ '
'.&mt('Prepare Printable Concept Test').'
'.
+ '
'.&mt('Create a PDF which you can send to a printer to create a hardcopy of the Concept Test.').'
'.
+ '
'.&mt('Concept Test Statistics').'
'.
+ '
'.&mt('After the closing date of the Concept Test you can view and download statistics for the test, as well as anonymized submission data.').'
'.
+ '
';
+}
+
sub get_cancreate_status {
my ($persondom,$personname,$dom) = @_;
my ($rules,$ruleorder) =
@@ -1544,16 +1672,25 @@ sub get_excluded_elements {
if (grep(/^instcode_/,@excluded)) {
push(@excluded,'instcode');
}
+ if ($env{'form.initmap'}) {
+ push(@excluded,'initmap');
+ }
+ if ($env{'form.output'}) {
+ push(@excluded,'output');
+ }
return @excluded;
}
sub print_enrollment_menu {
- my ($formname,$instcode,$dom,$codetitles,$cat_titles,$cat_order,$code_order,
- $invalidcrosslist) =@_;
+ my ($formname,$state,$instcode,$dom,$codetitles,$cat_titles,$cat_order,
+ $code_order,$invalidcrosslist) =@_;
my ($sections,$autoenroll,$access_dates,$output,$hasauto);
my $starttime = time;
- my $endtime = time+(6*30*24*60*60); # 6 months from now, approx
-
+ my $diff = 6*30*24*60*60; # 6 months from now, approx
+ if (&Apache::loncommon::needs_gci_custom()) {
+ $diff = 7*24*60*60; # 7 days from now, approx
+ }
+ my $endtime = $starttime+$diff;
my %accesstitles = (
'start' => 'Default start access',
'end' => 'Default end access',
@@ -1590,7 +1727,7 @@ sub print_enrollment_menu {
&Apache::lonhtmlcommon::row_title(&mt('Add another')).
''.
''.&mt('Add?').&Apache::lonhtmlcommon::row_closure();
$sections .= &Apache::lonhtmlcommon::row_headline.
'
'.&mt('Crosslisted courses for auto-enrollment').'
'.
@@ -1601,16 +1738,16 @@ sub print_enrollment_menu {
$autoenroll =
&Apache::lonhtmlcommon::row_title(&Apache::loncommon::help_open_topic('Course_Request_Autoadd').' '.&mt('Add registered students automatically')).
''.(' 'x3).''.
&Apache::lonhtmlcommon::row_closure(1).
&Apache::lonhtmlcommon::row_title(&Apache::loncommon::help_open_topic('Course_Request_Autodrop').' '.&mt('Drop unregistered students automatically')).
''.(' 'x3).''.
&Apache::lonhtmlcommon::row_closure(1).
&date_setting_table($starttime,$endtime,$formname,'enroll',
@@ -1637,7 +1774,7 @@ sub print_enrollment_menu {
$output .= &Apache::lonhtmlcommon::row_headline('Access').
'
'.$header.'
'.
&Apache::lonhtmlcommon::row_closure(1).
- $access_dates
+ $access_dates;
}
if ($dom eq 'gcitest') {
return $output;
@@ -1708,15 +1845,21 @@ sub inst_section_selector {
sub date_setting_table {
my ($starttime,$endtime,$formname,$prefix,$hasauto,%datetitles) = @_;
my ($perpetual,$table);
+ my $no_hh_mm_ss = 1;
+ if (&Apache::loncommon::needs_gci_custom()) {
+ $no_hh_mm_ss = '';
+ }
my $startform = &Apache::lonhtmlcommon::date_setter($formname,$prefix.'start',
- $starttime,'','','',1,'','','',1);
+ $starttime,'','','',$no_hh_mm_ss,'','','',1);
my $endform = &Apache::lonhtmlcommon::date_setter($formname,$prefix.'end',
- $endtime,'','','',1,'','','',1);
+ $endtime,'','','',$no_hh_mm_ss,'','','',1);
my $closure = '';
if ($prefix eq 'access') {
- $perpetual = ' ';
+ unless (&Apache::loncommon::needs_gci_custom()) {
+ $perpetual = ' ';
+ }
$closure = '1';
}
@@ -1745,7 +1888,7 @@ sub date_setting_table {
}
sub print_personnel_menu {
- my ($dom,$formname,$crstype,$invalidcrosslist) = @_;
+ my ($dom,$formname,$state,$crstype,$invalidcrosslist) = @_;
my $output;
if ($crstype eq 'official') {
if (&Apache::lonnet::auto_run('',$dom)) {
@@ -1858,7 +2001,7 @@ sub print_personnel_menu {
$output .= &Apache::lonhtmlcommon::row_title(&mt('Add another')).
''.
''.&mt('Add?').&Apache::lonhtmlcommon::row_closure(1).
&Apache::lonhtmlcommon::end_pick_box().'';
if ($crstype eq 'community') {
@@ -1887,7 +2030,7 @@ sub current_lc_sections {
}
sub print_request_status {
- my ($dom) = @_;
+ my ($dom,$action,$state) = @_;
my %statusinfo = &Apache::lonnet::dump('courserequests',$env{'user.domain'},
$env{'user.name'},'^status:'.$dom);
my ($output,$formname,%queue_by_date);
@@ -1930,9 +2073,9 @@ sub print_request_status {
}
$formname = 'requestcrs';
my @sortedtimes = sort {$a <=> $b} (keys(%queue_by_date));
- $output = ''."\n".
+ $output = ''."\n".
- ''."\n".
+ ''."\n".
''."\n".
''."\n".
''."\n";
@@ -2079,7 +2222,7 @@ sub viewdetails_javascript {
function nextPage(formname,nextstate) {
if (nextstate == "modify") {
formname.state.value = "personnel";
- formname.action.value = "new";
+ formname.reqaction.value = "new";
} else {
formname.state.value = nextstate;
}
@@ -2243,11 +2386,16 @@ sub print_review {
$concepttest = 'Auto-generated';
} elsif ($env{'form.concepttest'} eq 'editmyown') {
$concepttest = 'Manually selected';
+ } elsif ($env{'form.concepttest'} eq 'cloning') {
+ $concepttest = 'Copied from existing test';
}
- $inst_values .= '
';
} else {
@@ -2413,7 +2575,7 @@ sub dates_from_form {
}
sub courseinfo_form {
- my ($dom,$formname,$crstype,$next,$description) = @_;
+ my ($dom,$formname,$state,$crstype,$next,$description) = @_;
my %lt = &Apache::lonlocal::texthash(
official => 'You must provide a (brief) course description.',
community => 'You must provide a (brief) community description.'
@@ -2430,6 +2592,24 @@ function validateForm() {
}
nextPage(document.$formname,'$next');
}
+
+function toggleCloning() {
+ var willclone;
+ if (document.$formname.cloning.length > 1) {
+ for (var i=0; i
@@ -2440,20 +2620,26 @@ ENDJS
$title = &mt('Concept Test Course Information');
$desctitle = &mt('Concept Test Title');
}
- my $clonetitle = &mt('Clone content and settings from an existing course?');
+ my $clonetitle = &mt('Copy content and settings from an existing course?');
if ($crstype eq 'community') {
$title = &mt('Brief Community Description');
- $clonetitle = &mt('Clone content and settings from an existing community?');
+ $clonetitle = &mt('Copy content and settings from an existing community?');
}
- my $output .= $js_validate."\n".'
'.&Apache::lonhtmlcommon::start_pick_box().
+ my $output .= $js_validate."\n".&Apache::lonhtmlcommon::start_pick_box().
&Apache::lonhtmlcommon::row_headline().
'