--- loncom/html/adm/helper/course.initialization.helper 2004/06/02 17:31:03 1.14 +++ loncom/html/adm/helper/course.initialization.helper 2007/10/29 19:26:48 1.21 @@ -1,18 +1,18 @@ - my $courseid = $ENV{'request.course.id'}; - my $crsdom = $ENV{'course.'.$courseid.'.domain'}; - my $crsnum = $ENV{'course.'.$courseid.'.num'}; + my $courseid = $env{'request.course.id'}; + my $crsdom = $env{'course.'.$courseid.'.domain'}; + my $crsnum = $env{'course.'.$courseid.'.num'}; $helper->{DATA}->{DOM} = $crsdom; $helper->{DATA}->{CRS} = $crsnum; - $helper->{DATA}->{FIRST_RUN} = $ENV{'course.'.$crsnum. + $helper->{DATA}->{FIRST_RUN} = $env{'course.'.$crsnum. '.course.intialization.not.run'}; # Delete the 'course.initialization.not.run' course environment Apache::lonnet::put('environment', {'course.helper.not.run' => 0}, $crsdom, $crsnum); - Apache::lonnet::coursedescription($ENV{'request.course.id'}); + Apache::lonnet::coursedescription($env{'request.course.id'}); $helper->{DATA}->{GETVAL} = sub { my @resultlist = &Apache::lonnet::get('environment', [shift()], @@ -27,7 +27,7 @@ $helper->{DATA}->{DOM}, $helper->{DATA}->{CRS}); # Try to fix bug 1757 - Apache::lonnet::coursedescription($ENV{'request.course.id'}); + Apache::lonnet::coursedescription($env{'request.course.id'}); return 1; } else { return 0; @@ -87,7 +87,7 @@ Teaching Assistants - teaching assistants will not be able use or view the chat room Instructor - instructors will not be able to use or view the chat room - my $denied = &{$helper->{DATA}->{GETVAL}}('plch.roles.denied'); + my $denied = &{$helper->{DATA}->{GETVAL}}('plc.roles.denied'); $denied =~ s/,/\|\|\|/g; return $denied; @@ -105,10 +105,10 @@ $denied =~ s/,([^,]*)$/, and\1/; } if ($denied) { - $denied = substr($denied, 1) . ' not allowed to participate in discussion.'; + $denied = substr($denied, 1) . ' not allowed to participate in live chatroom.'; $denied = ucfirst($denied); } else { - $denied = 'Everyone can participate in discussion.'; + $denied = 'Everyone can participate in live chatroom.'; } return $denied; } else { @@ -192,7 +192,7 @@ - + Course members can provide feedback about the course. You can choose who will receive the feedback, such as a different instructor or a TA. Please enter their LON-CAPA address below, in the @@ -233,6 +233,84 @@ + + + Existing courses can be cloned when creating new courses.
Cloning will copy the course structure, contents, and most parameters (automatically advancing any date parameters by six months).

+ Names of owners of other courses permitted to clone this course:
+
+ + + return &{$helper->{DATA}->{GETVAL}}('cloners'); + + + my ($output,@cloners,%disallowed); + my $match_dom = $LONCAPA::match_domain; + my $match_uname = $LONCAPA::match_username; + if ($val =~ /,/) { + @cloners = split(/,/,$val); + } else { + $cloners[0] = $val; + } + foreach my $item (@cloners) { + next if ($item =~ /^\s*$/); + next if ($item eq '*'); + + my ($clname,$cldom) = split(/:/,$item); + if ($clname eq '*') { + if ($cldom =~ /^$match_dom$/) { + if (!&Apache::lonnet::domain($cldom)) { + $disallowed{'domain'} .= $item.','; + } + } else { + $disallowed{'format'} .= $item.','; + } + } elsif ($item !~/^($match_uname)\:($match_dom)$/) { + $disallowed{'format'} .= $item.','; + } else { + if (!&Apache::lonnet::domain($cldom)) { + $disallowed{'domain'} .= $item.','; + } elsif (&Apache::lonnet::homeserver($clname,$cldom) eq 'no_host') { + $disallowed{'newuser'} .= $item.','; + } + } + } + foreach my $key (keys(%disallowed)) { + $disallowed{$key} =~ s/,$//; + } + if (keys(%disallowed) > 0) { + $output.= 'Your input contained the following errors:
    '; + if (defined($disallowed{'format'})) { + $output .= '
  • Invalid format: '. + ''.$disallowed{'format'}.'
  • '; + } + if (defined($disallowed{'domain'})) { + $output .= '
  • Domain(s) do(es) not exist: '. + ''.$disallowed{'domain'}.'
  • '; + } + if (defined($disallowed{'newuser'})) { + $output .= '
  • LON-CAPA user(s) do(es) not exist: '. + ''.$disallowed{'newuser'}.'
  • '; + } + $output .= '
'; + } + return $output; +
+ + if (&{$helper->{DATA}->{SETVAL}}('cloners', $element->getValue())) { + + + return 'Users allowed to clone course updated to ' . $element->getValue() . + '.'; + } + +
+ +
(Course Coordinators automatically have the right to clone their own courses.) +
    +
  • Format: user:domain, where "user" and "domain" + are the LON-CAPA username and domain of the user.
  • Separate different users with a comma.
  • Use *:domain to allow course to be cloned by any course owner in the specified domain.
  • Use * to allow unrestricted cloning by all course owners in all domains.
+
+
Your course is now set up. Please select the Finish Course Initialization button to re-intialize the course with your chosen @@ -242,7 +320,7 @@ screen, by pushing the Course Environment button.

- $ENV{'course.'.$ENV{'request.course.id'}.'.clonedfrom'} + $env{'course.'.$env{'request.course.id'}.'.clonedfrom'} After you select Finish Course Initialization, you will be taken to the Parameter Overview screen to update the dates for this cloned course.