'.&mt('Search for a placement test in the [_1] domain',$domdesc).'
');
} else {
$r->print('
'.&mt('Search for a course in the [_1] domain',$domdesc).'
');
}
$r->print(&Apache::loncommon::build_filters($filterlist,$type,undef,undef,$filter,$action,
\$numtitles,'modifycourse',undef,undef,undef,
\@codetitles,$dom));
-
+
my ($actiontext,$roleoption,$settingsoption);
if ($type eq 'Community') {
$actiontext = &mt('Actions available after searching for a community:');
+ } elsif ($type eq 'Placement') {
+ $actiontext = &mt('Actions available after searching for a placement test:')
} else {
$actiontext = &mt('Actions available after searching for a course:');
}
@@ -184,6 +195,9 @@ sub print_course_search_page {
if ($type eq 'Community') {
$roleoption = &mt('Enter the community with the role of [_1]',$cctitle);
$settingsoption = &mt('View or modify community settings which only a [_1] may modify.',$dctitle);
+ } elsif ($type eq 'Placement') {
+ $roleoption = &mt('Enter the placement test with the role of [_1]',$cctitle);
+ $settingsoption = &mt('View or modify placement test settings which only a [_1] may modify.',$dctitle);
} else {
$roleoption = &mt('Enter the course with the role of [_1]',$cctitle);
$settingsoption = &mt('View or modify course settings which only a [_1] may modify.',$dctitle);
@@ -197,6 +211,9 @@ sub print_course_search_page {
if ($type eq 'Community') {
$roleoption = &mt('Enter the community with one of the available ad hoc roles: [_1].',
join(', ',@adhoc));
+ } elsif ($type eq 'Placement') {
+ $roleoption = &mt('Enter the placement test with one of the available ad hoc roles: [_1].',
+ join(', ',@adhoc));
} else {
$roleoption = &mt('Enter the course with one of the available ad hoc roles: [_1].',
join(', ',@adhoc));
@@ -204,6 +221,8 @@ sub print_course_search_page {
} else {
if ($type eq 'Community') {
$roleoption = &mt('Enter the community with the ad hoc role of: [_1]',$adhoc[0]);
+ } elsif ($type eq 'Placement') {
+ $roleoption = &mt('Enter the placement test with the ad hoc role of: [_1]',$adhoc[0]);
} else {
$roleoption = &mt('Enter the course with the ad hoc role of: [_1]',$adhoc[0]);
}
@@ -211,6 +230,8 @@ sub print_course_search_page {
}
if ($type eq 'Community') {
$settingsoption = &mt('View community settings which only a [_1] may modify.',$dctitle);
+ } elsif ($type eq 'Placement') {
+ $settingsoption = &mt('View placement test settings which only a [_1] may modify.',$dctitle);
} else {
$settingsoption = &mt('View course settings which only a [_1] may modify.',$dctitle);
}
@@ -290,7 +311,7 @@ sub print_modification_menu {
$categorytitle = 'View/Modify Course Settings';
$setquota_text = &mt('Total disk space allocated for storage of portfolio files in all groups in a course.');
$setuploadquota_text = &mt('Disk space allocated for storage of content uploaded directly to a course via Content Editor.');
- if (&showcredits($dom)) {
+ if (($type ne 'Placement') && (&showcredits($dom))) {
$setparams_text = 'View/Modify course owner, institutional code, default authentication, credits, self-enrollment and table lifetime';
} else {
$setparams_text = 'View/Modify course owner, institutional code, default authentication, self-enrollment and table lifetime';
@@ -311,7 +332,7 @@ sub print_modification_menu {
if (ref($managed_by_dc) eq 'ARRAY') {
if (@{$managed_by_dc}) {
return 1;
- }
+ }
}
}
return 0;
@@ -359,7 +380,7 @@ sub print_modification_menu {
{
linktext => 'Display current settings for automated enrollment',
url => &phaseurl('viewparms'),
- permission => ($permission->{'viewparms'} && ($type ne 'Community')),
+ permission => ($permission->{'viewparms'} && ($type ne 'Community') && ($type ne 'Placement')),
#help => '',
icon => 'roles.png',
linktitle => ''
@@ -401,7 +422,7 @@ sub print_modification_menu {
} else {
$menu_html .= '
'.&mt('Course owner (permitted to assign Course Coordinator roles in the course).').'
'."\n".
'
'.&mt("Institutional code and default authentication (both required for auto-enrollment of students from institutional datafeeds).").'
'."\n";
- if (&showcredits($dom)) {
+ if (($type ne 'Placement') && &showcredits($dom)) {
$menu_html .= '
'.&mt('Default credits earned by student on course completion.').'
'."\n";
}
$menu_html .= '
'.&mt('Override defaults for who configures self-enrollment for this specific course.').'
'."\n";
@@ -459,7 +480,7 @@ sub print_adhocrole_selected {
my %adhocroles = &Apache::lonnet::userenvironment($env{'user.domain'},$env{'user.name'},
'adhocroles.'.$cdom);
if (keys(%adhocroles)) {
- my $possrole = $env{'form.adhocrole'};
+ my $possrole = $env{'form.adhocrole'};
if ($possrole ne '') {
my @adhoc = split(',',$adhocroles{'adhocroles.'.$cdom});
if (grep(/^\Q$possrole\E$/,@adhoc)) {
@@ -718,7 +739,7 @@ sub domain_postsubtimeout {
my ($cdom,$type,$settings) = @_;
return unless (ref($settings) eq 'HASH');
my $lctype = lc($type);
- unless ($type eq 'Community') {
+ unless (($type eq 'Community') || ($type eq 'Placement')) {
$lctype = 'unofficial';
if ($settings->{'internal.coursecode'}) {
$lctype = 'official';
@@ -777,6 +798,8 @@ sub print_catsettings {
'
');
if ($type eq 'Community') {
$r->print(&mt("If a community has been categorized using at least one of the categories defined for communities in the domain, it will be listed in the domain's publicly accessible Course/Community Catalog, unless excluded."));
+ } elsif ($type eq 'Placement') {
+ $r->print(&mt("If a placement test has been categorized using at least one of the categories defined for placement tests in the domain, it will be listed in the domain's publicly accessible Course/Community Catalog, unless excluded."));
} else {
$r->print(&mt("Unless excluded, a course will be listed in the domain's publicly accessible Course/Community Catalog, if at least one of the following applies").':
'.
'
'.&mt('Auto-cataloging is enabled and the course is assigned an institutional code.').'
'.
@@ -798,7 +821,7 @@ sub print_catsettings {
} else {
$r->print(&mt('No categories defined for this domain'));
}
- unless ($type eq 'Community') {
+ unless (($type eq 'Community') || ($type eq 'Placement')) {
$r->print('
'.&mt('If auto-cataloging based on institutional code is enabled in the domain, a course will continue to be listed in the catalog of official courses, in addition to receiving a listing under any manually assigned categor(ies).').'
');
}
}
@@ -838,7 +861,8 @@ sub print_course_modification_page {
my %enrollvar = &get_enrollment_settings($cdom,$cnum);
my %settings = &Apache::lonnet::get('environment',['internal.coursecode','internal.textbook',
'internal.selfenrollmgrdc','internal.selfenrollmgrcc',
- 'internal.mysqltables'],$cdom,$cnum);
+ 'internal.mysqltables'],
+ $cdom,$cnum);
my $type = &Apache::lonuserutils::get_extended_type($cdom,$cnum,$crstype,\%settings);
my @specific_managebydc = split(/,/,$settings{'internal.selfenrollmgrdc'});
my @specific_managebycc = split(/,/,$settings{'internal.selfenrollmgrcc'});
@@ -921,7 +945,7 @@ sub print_course_modification_page {
' '.&mt('Course Code'))."\n".
''.
&Apache::lonhtmlcommon::row_closure());
- if (&showcredits($cdom)) {
+ if (($crstype eq 'Course') && (&showcredits($cdom))) {
$r->print(&Apache::lonhtmlcommon::row_title(
&Apache::loncommon::help_open_topic('Modify_Course_Credithours').
' '.&mt('Credits (students)'))."\n".
@@ -1115,7 +1139,7 @@ sub modify_course {
'internal.pendingco-owners','internal.selfenrollmgrdc',
'internal.selfenrollmgrcc','internal.mysqltables');
my ($selfenrollrows,$selfenrolltitles) = &Apache::lonuserutils::get_selfenroll_titles();
- unless ($type eq 'Community') {
+ unless (($type eq 'Community') || ($type eq 'Placement')) {
push(@items,('internal.coursecode','internal.authtype','internal.autharg',
'internal.sectionnums','internal.crosslistings'));
if (&showcredits($cdom)) {
@@ -1188,7 +1212,7 @@ sub modify_course {
$newattr{'mysqltables'} = $env{'form.mysqltables'};
$newattr{'mysqltables'} =~ s/\D+//g;
}
- if (&showcredits($cdom) && exists($env{'form.defaultcredits'})) {
+ if (($type ne 'Placement') && (&showcredits($cdom) && exists($env{'form.defaultcredits'}))) {
$newattr{'defaultcredits'}=$env{'form.defaultcredits'};
$newattr{'defaultcredits'} =~ s/[^\d\.]//g;
}
@@ -1300,7 +1324,7 @@ sub modify_course {
$nochgresponse .= '
'.&mt('[_1] still set to: [_2]',$longtype{$attr},$shown).'
';
}
}
- if (($type ne 'Community') && ($changed{'code'} || $changed{'owner'})) {
+ if (($type ne 'Community') && ($type ne 'Placement') && ($changed{'code'} || $changed{'owner'})) {
if ( $newattr{'courseowner'} eq '') {
push(@warnings,&mt('There is no owner associated with this LON-CAPA course.').
' '.&mt('If automated enrollment at your institution requires validation of course owners, automated enrollment will fail.'));
@@ -2139,6 +2163,8 @@ ENDSCRIPT
my $bread_text = "View/Modify Courses/Communities";
if ($type eq 'Community') {
$bread_text = 'Community Settings';
+ } elsif ($type eq 'Placement') {
+ $bread_text = 'Placement Test Settings';
} else {
$bread_text = 'Course Settings';
}
@@ -2307,6 +2333,8 @@ sub handler {
}
if ($type eq 'Community') {
$choose_text = "Choose a community";
+ } elsif ($type eq 'Placement') {
+ $choose_text = "Choose a placement test";
} else {
$choose_text = "Choose a course";
}
@@ -2323,6 +2351,8 @@ sub handler {
my $enter_text;
if ($type eq 'Community') {
$enter_text = 'Enter community';
+ } elsif ($type eq 'Placement') {
+ $enter_text = 'Enter placement test';
} else {
$enter_text = 'Enter course';
}
@@ -2346,7 +2376,7 @@ sub handler {
if (($phase eq 'setquota') && ($permission->{'setquota'})) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"javascript:changePage(document.$phase,'$phase')",
- text=>"Set quota"});
+ text=>"Set quota",});
&print_setquota($r,$cdom,$cnum,$cdesc,$type);
} elsif (($phase eq 'processquota') && ($permission->{'processquota'})) {
&Apache::lonhtmlcommon::add_breadcrumb
@@ -2428,6 +2458,8 @@ sub handler {
$r->print('');
if ($type eq 'Community') {
$r->print(&mt('The community you selected is not a valid community in this domain'));
+ } elsif ($type eq 'Placement') {
+ $r->print(&mt('The course you selected is not a valid placement test in this domain'));
} else {
$r->print(&mt('The course you selected is not a valid course in this domain'));
}