--- loncom/interface/londocs.pm 2009/11/02 12:10:34 1.410 +++ loncom/interface/londocs.pm 2010/12/05 16:40:11 1.411.2.7 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.410 2009/11/02 12:10:34 wenzelju Exp $ +# $Id: londocs.pm,v 1.411.2.7 2010/12/05 16:40:11 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -41,6 +41,7 @@ use Apache::lonratedt(); use Apache::lonxml; use Apache::lonclonecourse; use Apache::lonnavmaps; +use Apache::londocsgci; use HTML::Entities; use GDBM_File; use Apache::lonlocal; @@ -2478,7 +2479,7 @@ ENDHEADERS ('select_form_order' => ['',1..$currentversion,'mostrecent'], '' => '', - 'mostrecent' => 'most recent', + 'mostrecent' => &mt('most recent'), map {$_,$_} (1..$currentversion)))); $r->print(''); my $lastold=1; @@ -2618,6 +2619,15 @@ sub handler { return OK if $r->header_only; my $crstype = &Apache::loncommon::course_type(); + my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'}; + if ($coursedom =~ /^\w+citest$/) { + my $coursenum = $env{'course.'.$env{'request.course.id'}.'.num'}; + my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'}); + if ($allowed) { + &concept_test_builder($r,$coursedom,$coursenum); + return OK; + } + } # --------------------------------------------- Initialize help topics for this foreach my $topic ('Adding_Course_Doc','Main_Course_Documents', @@ -3532,6 +3542,74 @@ sub generate_edit_table { return $form; } +sub concept_test_builder { + my ($r,$cdom,$cnum) = @_; + &Apache::londocsgci::setdefaults($cdom); + if ($env{'form.context'} eq 'requestcrs') { + if ($env{'form.phase'} eq 'storemap') { + &Apache::londocsgci::evaluate(); + my $error = &Apache::londocsgci::store('requestcrs',$cdom,$cnum); + my $output = '

'; + if ($error) { + $output .= ''. + &mt('An error occurred saving your concept test: [_1].',$error). + ''; + } else { + &Apache::lonuserstate::readmap($cdom.'/'.$cnum); + $output .= &mt('Your concept test has been saved.'); + } + $output .= '

'; + if (&Apache::lonrequestcourse::generate_page($r,'new','chooseitems')) { + my $formname = 'requestcrs'; + $r->print('
'); + my $title = &mt('Concept Test Created'); + &Apache::lonrequestcourse::roster_upload_form($r,$output,$formname,$title); + } + $r->print(&Apache::loncommon::end_page()); + return; + } + } + my $js = ' + +'; + $r->print(&Apache::loncommon::start_page('Assemble Test',$js)); + &Apache::lonhtmlcommon::clear_breadcrumbs(); + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>'/adm/coursedocs', + text=>"Assemble Test"}); + if ($env{'form.phase'} eq 'storemap') { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>'/adm/coursedocs?phase=storemap', + text=>"Validate Test"}); + &Apache::londocsgci::evaluate(); + $r->print(&Apache::lonhtmlcommon::breadcrumbs + ('Build Concept Test','Concept_Test_Assembly')); + $r->print(&Apache::londocsgci::store('edit',$cdom,$cnum)); + } elsif ($env{'form.phase'} eq 'storeparms') { + &Apache::lonhtmlcommon::add_breadcrumb + ({href=>'/adm/coursedocs?phase=storeparms', + text=>"Set Availability"}); + $r->print(&Apache::lonhtmlcommon::breadcrumbs + ('Build Concept Test','Concept_Test_Assembly')); + $r->print(&Apache::londocsgci::store_dates_parms($cdom,$cnum)); + $r->print(&Apache::loncommon::end_page()); + return; + } else { + $r->print(&Apache::lonhtmlcommon::breadcrumbs + ('Build Concept Test','Concept_Test_Assembly')); + } + &Apache::londocsgci::load($cdom); + &Apache::londocsgci::listresources($r,'edit',$cdom,$cnum); + $r->print(&Apache::loncommon::end_page()); + return; +} + sub editing_js { my ($udom,$uname) = @_; my $now = time();