version 1.16, 2005/08/01 18:04:09
|
version 1.32, 2014/02/28 19:20:01
|
Line 28
|
Line 28
|
$helper->{DATA}->{CRS}); |
$helper->{DATA}->{CRS}); |
# Try to fix bug 1757 |
# Try to fix bug 1757 |
Apache::lonnet::coursedescription($env{'request.course.id'}); |
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; |
return 1; |
} else { |
} else { |
return 0; |
return 0; |
Line 49
|
Line 59
|
</eval> |
</eval> |
<message nextstate="COURSE_DESCRIPTION"> |
<message nextstate="COURSE_DESCRIPTION"> |
<p>All settings which you can change with this Helper can also be changed |
<p>All settings which you can change with this Helper can also be changed |
by going to the PARM screen and clicking on the "Set |
by going to the "Modify parameter settings" screen and clicking on the "Course Configuration" button.</p> |
course environment" button.</p> |
|
|
|
<p>If you do not have experience coordinating LON-CAPA courses or if you |
<p>If you do not have experience coordinating LON-CAPA courses or if you |
prefer the Helper interface, please click <nobr><b>Next -></b></nobr>.</p> |
prefer the Helper interface, please click "Next".</p> |
</message> |
</message> |
</state> |
</state> |
|
|
<state name="COURSE_DESCRIPTION" title="Course Description"> |
<state name="COURSE_DESCRIPTION" title="Course Title"> |
<message nextstate="FORBID_CHAT"> |
<message nextstate="FORBID_CHAT"> |
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 |
seen by the students. You may now modify the description and hit |
<nobr>"<b>Next -></b>"</nobr> to continue.<br /> |
"Next" to continue.<br /> |
</message> |
</message> |
<string variable='description' size='60' > |
<string variable='description' size='60' > |
<defaultvalue> |
<defaultvalue> |
Line 76
|
Line 85
|
</string> |
</string> |
</state> |
</state> |
|
|
<state name="FORBID_CHAT" title="Chat Participation"> |
<state name="FORBID_CHAT" title="Chat Room Participation"> |
<message nextstate="FORBID_DISCUSSION"> |
<message nextstate="FORBID_DISCUSSION"> |
<p>LON-CAPA has live chat functionality. This course will receive |
<p>LON-CAPA has chat room functionality. This course will receive |
its own chat room. You may deny students, TAs, or instructors |
its own chat room. You may deny students, TAs, or instructors |
the right to access the chat room.</p> |
the right to access the chat room.</p> |
</message> |
</message> |
<choices variable="BANNED_CHAT_ROLES" multichoice="1" allowempty='1'> |
<choices variable="BANNED_CHAT_ROLES" multichoice="1" allowempty='1'> |
Line 105
|
Line 114
|
$denied =~ s/,([^,]*)$/, and\1/; |
$denied =~ s/,([^,]*)$/, and\1/; |
} |
} |
if ($denied) { |
if ($denied) { |
$denied = substr($denied, 1) . ' not allowed to participate in discussion.'; |
$denied = substr($denied, 1) . ' not allowed to participate in chat room.'; |
$denied = ucfirst($denied); |
$denied = ucfirst($denied); |
} else { |
} else { |
$denied = 'Everyone can participate in discussion.'; |
$denied = 'Everyone can participate in chat room.'; |
} |
} |
return $denied; |
return $denied; |
} else { |
} else { |
Line 192
|
Line 201
|
</state> |
</state> |
|
|
<state name="FEEDBACK_ADDRESSES" title="Feedback Addresses for Course Content"> |
<state name="FEEDBACK_ADDRESSES" title="Feedback Addresses for Course Content"> |
<message nextstate="FINAL"> |
<message nextstate="USERS_ALLOWED_TO_CLONE"> |
Course members can provide feedback about the course. You can choose |
Course members can provide feedback about the course. You can choose |
who will receive the feedback, such as a different instructor or a |
who will receive the feedback, such as a different instructor or a |
TA. Please enter their LON-CAPA address below, in the |
TA. Please enter their LON-CAPA address below, in the |
form <b>user:domain</b>, where "user" and "domain" |
form <b>user:domain</b>, 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.</p> |
address.</p> |
</message> |
</message> |
<eval>return &mt('<p>Your current LON-CAPA domain is "<b>[_1]</b>".</p>',"$helper->{DATA}->{DOM}"); |
<eval>return '<p>'.&mt('Your current LON-CAPA domain is [_1].','"<b>'.$helper->{DATA}->{DOM}.'</b>"').'</p>'; |
</eval> |
</eval> |
<string variable='feedback_addresses' size='60' > |
<string variable='feedback_addresses' size='60' > |
<defaultvalue> |
<defaultvalue> |
Line 233
|
Line 242
|
</message> |
</message> |
</state> |
</state> |
|
|
|
<state name="USERS_ALLOWED_TO_CLONE" title="Granting permission to clone course"> |
|
<message nextstate="FINAL"> |
|
Existing courses can be cloned when creating new courses.<br /> |
|
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.<br /><br /> |
|
Usernames of owners of other courses permitted to clone this course:<br /> |
|
</message> |
|
<string variable='cloners' size='60' > |
|
<defaultvalue> |
|
return &{$helper->{DATA}->{GETVAL}}('cloners'); |
|
</defaultvalue> |
|
<validator> |
|
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:<ul>'; |
|
if (defined($disallowed{'format'})) { |
|
$output .= '<li>Invalid format: '. |
|
'<b>'.$disallowed{'format'}.'</b></li>'; |
|
} |
|
if (defined($disallowed{'domain'})) { |
|
$output .= '<li>Domain(s) do(es) not exist: '. |
|
'<b>'.$disallowed{'domain'}.'</b></li>'; |
|
} |
|
if (defined($disallowed{'newuser'})) { |
|
$output .= '<li>LON-CAPA user(s) do(es) not exist: '. |
|
'<b>'.$disallowed{'newuser'}.'</b></li>'; |
|
} |
|
$output .= '</ul>'; |
|
} |
|
return $output; |
|
</validator> |
|
<finalcode> |
|
if (&{$helper->{DATA}->{SETVAL}}('cloners', $element->getValue())) { |
|
|
|
|
|
return 'Users allowed to clone course updated to <b>' . $element->getValue() . |
|
'</b>.'; |
|
} |
|
</finalcode> |
|
</string> |
|
<message> |
|
<br />(Course Coordinators automatically have the right to clone their own courses.) |
|
<ul> |
|
<li>Format: <b>user:domain</b>, where "user" and "domain" |
|
are the LON-CAPA username and domain of the user.</li> |
|
<li>Separate different users with a comma.</li> |
|
<li>Use *:domain to allow course to be cloned by any course owner in the specified domain.</li> |
|
<li>Use * to allow unrestricted cloning by all course owners in all domains.</li> |
|
</ul> |
|
</message> |
|
</state> |
<state name="FINAL" title="Completed"> |
<state name="FINAL" title="Completed"> |
<message>Your course is now set up. Please select the <b>Finish Course |
<message>Your course is now set up. Please select the <b>Save</b> |
Initialization</b> button to re-intialize the course with your chosen |
button to re-initialize the course with your chosen |
settings. |
settings. |
|
|
<p>Remember that all of these settings can be modified in the <b>PARMS</b> |
<p>Remember that all of these settings can be modified in the <b>Modify parameter settings</b> |
screen, by pushing the <b>Course Environment</b> button.</p> |
screen (<b>Course Configuration</b>).</p> |
</message> |
</message> |
<condition> |
<condition> |
<clause>$env{'course.'.$env{'request.course.id'}.'.clonedfrom'}</clause> |
<clause>$env{'course.'.$env{'request.course.id'}.'.clonedfrom'}</clause> |