--- loncom/interface/lonmodifycourse.pm 2007/09/24 23:29:53 1.32 +++ loncom/interface/lonmodifycourse.pm 2007/12/14 00:24:11 1.36 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # handler for DC-only modifiable course settings # -# $Id: lonmodifycourse.pm,v 1.32 2007/09/24 23:29:53 raeburn Exp $ +# $Id: lonmodifycourse.pm,v 1.36 2007/12/14 00:24:11 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -33,7 +33,7 @@ use Apache::lonnet; use Apache::loncommon; use Apache::lonhtmlcommon; use Apache::lonlocal; -use Apache::londropadd; +use Apache::lonuserutils; use Apache::lonpickcourse; use LONCAPA::Enrollment; use lib '/home/httpd/lib/perl'; @@ -368,9 +368,9 @@ all settings except course code, course } unless ($curr_authtype eq '') { $curr_authfield = $curr_authtype.'arg'; - } - my $javascript_validations=&Apache::londropadd::javascript_validations('modifycourse',$krbdefdom,$curr_authtype,$curr_authfield); - my %param = ( formname => 'document.cmod', + } + my $javascript_validations=&Apache::lonuserutils::javascript_validations('modifycourse',$krbdefdom,$curr_authtype,$curr_authfield); + my %param = ( formname => 'document.'.$env{'form.phase'}, kerb_def_dom => $krbdefdom, kerb_def_auth => $krbdef, mode => 'modifycourse', @@ -437,7 +437,7 @@ all settings except course code, course my $mainheader = &mt('Course settings modifiable by [_1] only.',$dctitle); my $hidden_elements = &hidden_form_elements(); $r->print(< +

$mainheader

@@ -561,9 +561,17 @@ sub modify_course { } if ($changeowner == 1 || $changecode == 1) { my $courseid_entry = &escape($cdom.'_'.$cnum).'='.&escape($description).':'.&escape($env{'form.coursecode'}).':'.&escape($env{'form.courseowner'}).':'.&escape($type); - &Apache::lonnet::courseidput($cdom,$courseid_entry,&Apache::lonnet::homeserver($cnum,$cdom)); + my %courseid_entry = ( + $cdom.'_'.$cnum => { + description => $description, + inst_code => $env{'form.coursecode'}, + owner => $env{'form.courseowner'}, + type => $type, + }, + ); + &Apache::lonnet::courseidput($cdom,\%courseid_entry, + &Apache::lonnet::homeserver($cnum,$cdom),'notime'); } - foreach my $param (@modifiable_params) { if ($currattr{$param} eq $newattr{$param}) { push(@nochanges,$param); @@ -573,17 +581,16 @@ sub modify_course { push(@changes,$param); } } - if (@changes > 0) { $chgresponse = &mt("The following automated enrollment parameters have been changed:
    "); } if (@nochanges > 0) { $nochgresponse = &mt("The following automated enrollment parameters remain unchanged:
      "); } - if (@changes > 0) { + if (@changes > 0) { my $putreply = &Apache::lonnet::put('environment',\%cenv,$cdom,$cnum); if ($putreply !~ /^ok$/) { - $response = &mt("There was a problem processing your requested changes. The automated enrollment settings for this course have been left unchanged.
      "); + $response = &mt("There was a problem processing your requested changes. The automated enrollment settings for this course have been left unchanged.
      ").&mt('Error: ').$putreply; } else { foreach my $attr (@modifiable_params) { if (grep/^$attr$/,@changes) { @@ -800,28 +807,36 @@ sub print_footer { sub check_course { my ($r,$dom,$domdesc) = @_; my ($ok_course,$description,$instcode,$owner); - if (defined($env{'form.pickedcourse'})) { - my ($cdom,$cnum) = split(/_/,$env{'form.pickedcourse'}); - if ($cdom eq $dom) { - my %courseIDs = &Apache::lonnet::courseiddump($cdom,'.',1,'.','.', - $cnum,undef,undef,'.'); - if (keys(%courseIDs) > 0) { - $ok_course = 'ok'; + my %args = ( + one_time => 1, + ); + my %coursehash = + &Apache::lonnet::coursedescription($env{'form.pickedcourse'},\%args); + my $cnum = $coursehash{'num'}; + my $cdom = $coursehash{'domain'}; + if ($cdom eq $dom) { + my $description; + my %courseIDs = &Apache::lonnet::courseiddump($cdom,'.',1,'.','.', + $cnum,undef,undef,'.'); + if (keys(%courseIDs) > 0) { + $ok_course = 'ok'; + my ($instcode,$owner); + if (ref($courseIDs{$cdom.'_'.$cnum}) eq 'HASH') { + $description = $courseIDs{$cdom.'_'.$cnum}{'description'}; + $instcode = $courseIDs{$cdom.'_'.$cnum}{'inst_code'}; + $owner = $courseIDs{$cdom.'_'.$cnum}{'owner'}; + } else { ($description,$instcode,$owner) = - split(/:/,$courseIDs{$cdom.'_'.$cnum}); - $description = &unescape($description); - $instcode = &unescape($instcode); - if ($instcode) { - $description .= " ($instcode)"; - } + split(/:/,$courseIDs{$cdom.'_'.$cnum}); + } + $description = &unescape($description); + $instcode = &unescape($instcode); + if ($instcode) { + $description .= " ($instcode)"; } + return ($ok_course,$description); } } - - if ($ok_course ne 'ok') { - $r->print('
      '.&mt('The LON-CAPA course selected was not a valid course for the [_1] domain',$domdesc)); - } - return ($ok_course,$description); } sub course_settings_descrip { @@ -926,7 +941,7 @@ sub handler { } } } else { - $r->print(&mt('The course you selected is not a valid course in this domain')." ($domdesc)"); + $r->print(''.&mt('The course you selected is not a valid course in this domain')." ($domdesc)".''); } } } 500 Internal Server Error

      Internal Server Error

      The server encountered an internal error or misconfiguration and was unable to complete your request.

      Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

      More information about this error may be available in the server error log.