--- loncom/interface/loncommon.pm 2016/03/04 21:43:15 1.1236
+++ loncom/interface/loncommon.pm 2016/04/04 00:56:04 1.1238
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.1236 2016/03/04 21:43:15 raeburn Exp $
+# $Id: loncommon.pm,v 1.1238 2016/04/04 00:56:04 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -590,7 +590,10 @@ sub coursebrowser_javascript {
if (formname == 'ccrs') {
var ownername = document.forms[formid].ccuname.value;
var ownerdom = document.forms[formid].ccdomain.options[document.forms[formid].ccdomain.selectedIndex].value;
- url += '&cloner='+ownername+':'+ownerdom+'&crscode='+document.forms[formid].crscode.value;
+ url += '&cloner='+ownername+':'+ownerdom;
+ if (type == 'Course') {
+ url += '&crscode='+document.forms[formid].crscode.value;
+ }
}
if (formname == 'requestcrs') {
url += '&crsdom=$domainfilter&crscode=$instcode';
@@ -5573,7 +5576,17 @@ sub bodytag {
$dc_info =~ s/\s+$//;
}
- $role = '('.$role.')' if $role;
+ my $crstype;
+ if ($env{'request.course.id'}) {
+ $crstype = $env{'course.'.$env{'request.course.id'}.'.type'};
+ } elsif ($args->{'crstype'}) {
+ $crstype = $args->{'crstype'};
+ }
+ if (($crstype eq 'Placement') && (!$env{'request.role.adv'})) {
+ undef($role);
+ } else {
+ $role = '('.$role.')' if $role;
+ }
if ($env{'request.state'} eq 'construct') { $forcereg=1; }
@@ -5584,7 +5597,7 @@ sub bodytag {
$bodytag .= Apache::lonhtmlcommon::scripttag(
Apache::lonmenu::utilityfunctions($httphost), 'start');
- my ($left,$right) = Apache::lonmenu::primary_menu();
+ my ($left,$right) = Apache::lonmenu::primary_menu($crstype);
if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) {
if ($dc_info) {
@@ -8193,7 +8206,10 @@ sub start_page {
#if bread_crumbs_component exists show it as headline else show only the breadcrumbs
if(exists($args->{'bread_crumbs_component'})){
$result .= &Apache::lonhtmlcommon::breadcrumbs($args->{'bread_crumbs_component'});
- }else{
+ } elsif ($args->{'crstype'} eq 'Placement') {
+ $result .= &Apache::lonhtmlcommon::breadcrumbs('','','','','','','','','',
+ $args->{'crstype'});
+ } else {
$result .= &Apache::lonhtmlcommon::breadcrumbs();
}
}
@@ -9310,8 +9326,8 @@ Incoming parameters:
2. user's domain
3. quota name - portfolio, author, or course
(if no quota name provided, defaults to portfolio).
-4. crstype - official, unofficial, textbook or community, if quota name is
- course
+4. crstype - official, unofficial, textbook, placement or community,
+ if quota name is course
Returns:
1. Disk quota (in MB) assigned to student.
@@ -9385,7 +9401,8 @@ sub get_user_quota {
if ($quotaname eq 'course') {
my %domdefs = &Apache::lonnet::get_domain_defaults($udom);
if (($crstype eq 'official') || ($crstype eq 'unofficial') ||
- ($crstype eq 'community') || ($crstype eq 'textbook')) {
+ ($crstype eq 'community') || ($crstype eq 'textbook') ||
+ ($crstype eq 'placement')) {
$defquota = $domdefs{$crstype.'quota'};
}
if ($defquota eq '') {
@@ -9533,7 +9550,7 @@ Inputs: 7
4. filename of file for which action is being requested
5. filesize (kB) of file
6. action being taken: copy or upload.
-7. quotatype (in course context -- official, unofficial, community or textbook).
+7. quotatype (in course context -- official, unofficial, textbook, placement or community).
Returns: 1 scalar: HTML to display containing warning if quota would be exceeded,
otherwise return null.
@@ -15183,6 +15200,17 @@ sub construct_course {
$outcome .= ($fatal?$errtext:'write ok').$linefeed;
}
+#
+# Set params for Placement Tests
+#
+ if ($crstype eq 'Placement') {
+ my $storeunder=$$crsudom.'_'.$$crsunum.'.0.buttonshide';
+ my %storecontent = ($storeunder => 'yes',
+ $storeunder.'.type' => 'string_yesno');
+ &Apache::lonnet::cput
+ ('resourcedata',\%storecontent,$$crsudom,$$crsunum);
+ }
+
return (1,$outcome);
}
@@ -15243,8 +15271,7 @@ sub generate_code {
############################################################
############################################################
-#SD
-# only Community and Course, or anything else?
+# Community, Course and Placement Test
sub course_type {
my ($cid) = @_;
if (!defined($cid)) {
@@ -15262,17 +15289,19 @@ sub group_term {
my %names = (
'Course' => 'group',
'Community' => 'group',
+ 'Placement' => 'group',
);
return $names{$crstype};
}
sub course_types {
- my @types = ('official','unofficial','community','textbook');
+ my @types = ('official','unofficial','community','textbook','placement');
my %typename = (
official => 'Official course',
unofficial => 'Unofficial course',
community => 'Community',
textbook => 'Textbook course',
+ placement => 'Placement test',
);
return (\@types,\%typename);
}
@@ -15487,7 +15516,7 @@ sub init_user_environment {
undef,\%userenv,\%domdef,\%is_adv);
}
- foreach my $crstype ('official','unofficial','community','textbook') {
+ foreach my $crstype ('official','unofficial','community','textbook','placement') {
$userenv{'canrequest.'.$crstype} =
&Apache::lonnet::usertools_access($username,$domain,$crstype,
'reload','requestcourses',
@@ -15759,7 +15788,7 @@ sub build_filters {
$typeselectform .= ' onchange="'.$onchange.'"';
}
$typeselectform .= '>'."\n";
- foreach my $posstype ('Course','Community') {
+ foreach my $posstype ('Course','Community','Placement') {
$typeselectform.='\n";
}