--- loncom/html/adm/helper/course.initialization.helper 2006/10/17 15:04:59 1.17 +++ loncom/html/adm/helper/course.initialization.helper 2010/03/15 22:44:40 1.31 @@ -28,6 +28,16 @@ $helper->{DATA}->{CRS}); # Try to fix bug 1757 Apache::lonnet::coursedescription($env{'request.course.id'}); + if (($name eq 'description') || ($name eq 'cloners')) { + my %crsinfo = &Apache::lonnet::courseiddump($crsdom,'.',1,'.','.',$crsnum,undef,undef,'.'); + if (ref($crsinfo{$courseid}) eq 'HASH') { + $crsinfo{$courseid}{$name} = $val; + my $crshome = &Apache::lonnet::homeserver($crsnum,$crsdom); + unless ($crshome eq 'no_host') { + my $putresult = &Apache::lonnet::courseidput($crsdom,\%crsinfo,$crshome,'notime'); + } + } + } return 1; } else { return 0; @@ -49,19 +59,18 @@

All settings which you can change with this Helper can also be changed - by going to the PARM screen and clicking on the "Set - course environment" button.

+ by going to the "Modify parameter settings" screen and clicking on the "Course Configuration" button.

If you do not have experience coordinating LON-CAPA courses or if you - prefer the Helper interface, please click Next ->.

+ prefer the Helper interface, please click "Next".

- + - The "Course Description" is the name of the course that will be + The "Course Title" is the name of the course that will be seen by the students. You may now modify the description and hit - "Next ->" to continue.
+ "Next" to continue.
@@ -76,10 +85,10 @@
- + -

LON-CAPA has live chat functionality. This course will receive - its own chat room. You may deny students, TAs, or instructors +

LON-CAPA has chat room functionality. This course will receive + its own chat room. You may deny students, TAs, or instructors the right to access the chat room.

@@ -105,10 +114,10 @@ $denied =~ s/,([^,]*)$/, and\1/; } if ($denied) { - $denied = substr($denied, 1) . ' not allowed to participate in live chatroom.'; + $denied = substr($denied, 1) . ' not allowed to participate in chat room.'; $denied = ucfirst($denied); } else { - $denied = 'Everyone can participate in live chatroom.'; + $denied = 'Everyone can participate in chat room.'; } return $denied; } else { @@ -192,15 +201,15 @@
- + 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 form user:domain, where "user" and "domain" - are both the LON-CAPA username and LON-CAPA domain, not an email + are both the LON-CAPA username and LON-CAPA domain, not an e-mail address.

- return &mt('

Your current LON-CAPA domain is "[_1]".

',"$helper->{DATA}->{DOM}"); + return '

'.&mt('Your current LON-CAPA domain is [_1].','"'.$helper->{DATA}->{DOM}.'"').'

';
@@ -233,13 +242,96 @@
+ + + Existing courses can be cloned when creating new courses.
+ Cloning will copy the course structure, contents, and most settings. For dates (open dates, due dates etc.) a choice is provided to: (a) omit, (b) copy as-is or (c) shift by a specified number of days.

+ Usernames 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 + Your course is now set up. Please select the Save + button to re-intialize the course with your chosen settings. -

Remember that all of these settings can be modified in the PARMS - screen, by pushing the Course Environment button.

+

Remember that all of these settings can be modified in the Modify parameter settings + screen (Course Configuration).

$env{'course.'.$env{'request.course.id'}.'.clonedfrom'}