--- loncom/interface/lonrequestcourse.pm 2009/12/15 13:36:16 1.41.2.1 +++ loncom/interface/lonrequestcourse.pm 2009/12/20 01:58:48 1.41.2.2 @@ -1,7 +1,7 @@ # The LearningOnline Network # Request a course # -# $Id: lonrequestcourse.pm,v 1.41.2.1 2009/12/15 13:36:16 raeburn Exp $ +# $Id: lonrequestcourse.pm,v 1.41.2.2 2009/12/20 01:58:48 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -627,6 +627,9 @@ sub onload_action { } else { $loaditems{'onload'} = 'javascript:setFormElements(document.requestcrs)'; } + if (($state eq 'process') && ($env{'form.concepttest'} eq 'editmyown')) { + $loaditems{'onload'} = 'javascript:setInitialVisibility()'; + } } return \%loaditems; } @@ -893,6 +896,8 @@ END } } elsif ($state eq 'personnel') { $js .= "\n".§ion_check_javascript()."\n".&personnel_lcsec_js(); + } elsif (($state eq 'process') && ($env{'form.concepttest'} eq 'editmyown')) { + $js .= "\n".&Apache::londocsgci::builder_javascript()."\n"; } my $title; if ($env{'form.crstype'} eq 'community') { @@ -1437,7 +1442,9 @@ sub print_request_form { $r->print(''. &mt('Modify this request').''.(' 'x4)); } - $r->print(''.&mt('Make another request').'

'); + unless ($env{'form.concepttest'}) { + $r->print(''.&mt('Make another request').'

'); + } return; } } @@ -2888,6 +2895,16 @@ sub print_request_outcome { accessend => $accessend, personnel => \%personnel, }; + if ($dom eq 'gcitest') { + if ($env{'form.concepttest'} eq 'editmyown') { + $details->{'firstres'} = 'nav'; + } else { + $details->{'firstres'} = 'blank'; + } + $details->{'clonedom'} = 'gci'; + $details->{'clonecrs'} = '8v226795a882b4bcagcil1'; + $details->{'datemode'} = 'delete'; + } my (@inststatuses,$storeresult,$creationresult); my $val = &get_processtype($dom,$crstype,\@inststatuses,\%domconfig); if ($val eq '') { @@ -2973,18 +2990,6 @@ sub print_request_outcome { if ($result eq 'created') { $disposition = 'created'; $reqstatus = 'created'; - my $parmoutput; - if ($dom eq 'gcitest') { - my $caller = 'requestcrs'; - if ($env{'form.concepttest'} eq 'defchosen') { - &Apache::londocsgci::setdefaults(); - &Apache::londocsgci::evaluate($caller); - &Apache::londocsgci::store($r,$caller,$dom,$cnum); - } - my ($furl,$ferr)= &Apache::lonuserstate::readmap($dom.'/'.$cnum); - my %parmresult = - &store_crsparms($dom,$cnum,$now,$accessstart,$accessend); - } my $role_result = &update_requestors_roles($dom,$cnum,$crstype,$details, \%longroles); if ($crstype eq 'community') { @@ -2992,7 +2997,41 @@ sub print_request_outcome { } else { $output = '

'.&mt('Your course request has been processed and the course has been created.'); } - $output .= '
'.$role_result.'

'; + if ($dom eq 'gcitest') { + my $caller = 'requestcrs'; + &acquire_cc_role($dom,$cnum,'cc./'.$dom.'/'.$cnum); + my %parmresult = + &store_crsparms($dom,$cnum,$now,$accessstart,$accessend); + &Apache::londocsgci::setdefaults(); + if ($env{'form.concepttest'} eq 'defchosen') { + $output .= '
'; + my $error = &Apache::londocsgci::store($caller,$dom,$cnum); + if ($error) { + $output .= ''. + &mt('An error occurred saving an auto-generated concept test: [_1].',$error). + ''; + } else { + &Apache::lonuserstate::readmap($dom.'/'.$cnum); + $output .= &mt('A concept test has also been generated.'); + } + $output .= '

'. + '

'.&mt('If you have a text file available containing student e-mail addresses and initial passwords, you may upload it now.').'
'. + &mt('You may also enroll students at a later date by visiting the [_1]"Menu"[_2] page and choosing: [_1]"Manage Enrollment"[_2].','','').'

'. + '
'."\n"; + $r->print($output); + &Apache::lonuserutils::print_first_users_upload_form($r,'course'); + $r->print('
'); + $output = ''; + } else { + $output .= '
'.&mt('The next step is to chose which questions are to be included in the Concept Test.').'

'; + $r->print($output); + &Apache::londocsgci::editor($r,'requestcrs',$dom,$cnum); + $output = ''; + } + } else { + $output .= '
'.$role_result.'

'; + } $creationresult = 'created'; } else { $output = ''; @@ -3218,6 +3257,43 @@ sub update_requestors_roles { return $output; } +sub acquire_cc_role { + my ($cdom,$cnum,$trolecode,$csec) = @_; + my %coursegroups = &Apache::lonnet::get_active_groups( + $env{'user.domain'},$env{'user.name'},$cdom, $cnum); + my $cgrps = join(':',keys(%coursegroups)); + if ($env{'environment.recentroles'}) { + my %frozen_roles = + &Apache::lonhtmlcommon::get_recent_frozen('roles',$env{'environment.recentrolesn'}); + &Apache::lonhtmlcommon::store_recent('roles',$trolecode,' ', + $frozen_roles{$trolecode}); + } + + &Apache::lonnet::appenv({"request.course.id" => '', + "request.course.fn" => '', + "request.course.uri" => '', + "request.course.sec" => '', + "request.role" => 'cm', + "request.role.adv" => $env{'user.adv'}, + "request.role.domain" => $env{'user.domain'}}); + + &Apache::lonnet::log($env{'user.domain'}, + $env{'user.name'}, + $env{'user.home'}, + "Role ".$trolecode); + + &Apache::lonnet::appenv( + {'request.role' => $trolecode, + 'request.role.domain' => $cdom, + 'request.course.sec' => $csec, + 'request.course.groups' => $cgrps}); + my ($furl,$ferr) = &Apache::lonuserstate::readmap($cdom.'/'.$cnum); + my $tadv; + if (&Apache::lonnet::allowed('adv') eq 'F') { $tadv=1; } + &Apache::lonnet::appenv({'request.role.adv'=>$tadv}); + return; +} + sub store_crsparms { my ($cdom,$cnum,$now,$accessstart,$accessend) = @_; my $topsymb = '___0___uploaded/'.$cdom.'/'.$cnum.'/default.sequence';