<helper title="Course Initialization Helper" requiredpriv='opa'>
<exec>
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.
'.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'});
$helper->{DATA}->{GETVAL} = sub {
my @resultlist = &Apache::lonnet::get('environment', [shift()],
$helper->{DATA}->{DOM},
$helper->{DATA}->{CRS});
return $resultlist[1]; };
$helper->{DATA}->{SETVAL} = sub {
my $name = shift;
my $val = shift;
if (&{$helper->{DATA}->{GETVAL}}($name) ne $val) {
&Apache::lonnet::put('environment', {$name=>$val},
$helper->{DATA}->{DOM},
$helper->{DATA}->{CRS});
# Try to fix bug 1757
Apache::lonnet::coursedescription($ENV{'request.course.id'});
return 1;
} else {
return 0;
}
}
</exec>
<state name="START" title="Welcome to Your New LON-CAPA Course">
<eval>
return $helper->{DATA}->{FIRST_RUN} ?
'This Helper will set up your new LON-CAPA course and choose '.
'which features will be active. You can '.
're-visit it later to change settings in your course.' .
'<p>If you have previous experience with coordinating LON-CAPA courses and '.
'prefer not to use the helper, <a href="/adm/menu">click here</a> to leave.'
:
'This helper will set up your LON-CAPA course and choose ' .
'which features will be active.';
</eval>
<message nextstate="COURSE_DESCRIPTION">
<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
course environment" button.</p>
<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>
</message>
</state>
<state name="COURSE_DESCRIPTION" title="Course Description">
<message nextstate="FORBID_DISCUSSION">
The "Course Description" is the name of the course that will be
seen by the students. You may now modify the description and hit
<nobr>"<b>Next -></b>"</nobr> to continue.<br />
</message>
<string variable='description' size='60' >
<defaultvalue>
return &{$helper->{DATA}->{GETVAL}}('description');
</defaultvalue>
<finalcode>
if (&{$helper->{DATA}->{SETVAL}}('description', $element->getValue())) {
return 'Course description changed to <b>' . $element->getValue() .
'</b>.';
}
</finalcode>
</string>
</state>
<state name="FORBID_DISCUSSION" title="Discussion Participation">
<message nextstate="DISCUSSION_HTML">
LON-CAPA hosts discussions on all resources in a course. By default,
all users are allowed to participate in these discussions.
<p>If you do not wish certain types of users to be able to use the
discussion features, select those types below. Note your class
may not have all of these roles; you may safely ignore roles you
do not intend to use. (For instance, "Exam Proctor" is
generally useful only for large courses.)</p>
<p>Types of users not allowed to participate in discussion can
still view any discussion that other users post.</p>
</message>
<choices variable="BANNED_DISCUSSION_ROLES" multichoice="1" allowempty='1'>
<choice computer="st"><b>Students</b> - students will not be able to participate in discussions</choice>
<choice computer="ta"><b>Teaching Assistants</b> - teaching assistants will not be able to participate in discussions</choice>
<choice computer="in"><b>Instructor</b> - instructors will not be able to participate in discussions</choice>
<defaultvalue>
my $denied = &{$helper->{DATA}->{GETVAL}}('pch.roles.denied');
$denied =~ s/,/\|\|\|/g;
return $denied;
</defaultvalue>
<finalcode>
my $denied = $element->getValue();
$denied =~ s/\|\|\|/,/g;
if (&{$helper->{DATA}->{SETVAL}}('pch.roles.denied', $denied)) {
$denied =~ s/st/ students/;
$denied =~ s/in/ instructors/;
$denied =~ s/ta/ teaching assistants/;
$denied =~ s/ep/ exam proctors/;
if ($denied =~ /^[^,]*,[^,]*$/) { # only one comma
$denied =~ s/,/ and/g;
} else { # add "and" to last comma
$denied =~ s/,([^,]*)$/, and\1/;
}
if ($denied) {
$denied = substr($denied, 1) . ' not allowed to participate in discussion.';
$denied = ucfirst($denied);
} else {
$denied = 'Everyone can participate in discussion.';
}
return $denied;
} else {
return '';
}
</finalcode>
</choices>
</state>
<state name="DISCUSSION_HTML" title="HTML in Discussions">
<message nextstate="FEEDBACK_ADDRESSES">
<p>HTML can be allowed or banned inside of course discussion.</p>
</message>
<choices variable="HTML_ALLOWED">
<choice computer=""><b>HTML banned</b>: HTML will not be allowed in discussion postings.</choice>
<choice computer="yes"><b>HTML allowed</b>: Discussion participants can use limited HTML in their postings.</choice>
<defaultvalue>
return &{$helper->{DATA}->{GETVAL}}('allow_limited_html_in_feedback');
</defaultvalue>
<finalcode>
if (&{$helper->{DATA}->{SETVAL}}('allow_limited_html_in_feedback', $element->getValue())) {
if ($element->getValue() eq 'yes') {
return 'Limited HTML allowed in feedback.';
} else {
return 'HTML not allowed in feedback.';
}
}
</finalcode>
</choices>
</state>
<state name="FEEDBACK_ADDRESSES" title="Feedback Addresses for Course Content">
<message nextstate="FINAL">
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 <b>user:domain</b>, where "user" and "domain"
are both the LON-CAPA username and LON-CAPA domain, not an email
address.</p>
</message>
<eval>return '<p>Your current LON-CAPA domain is "<b>'
. $helper->{DATA}->{DOM} .
'</b>".</p>';
</eval>
<string variable='feedback_addresses' size='60' >
<defaultvalue>
return &{$helper->{DATA}->{GETVAL}}('comment.email');
</defaultvalue>
<finalcode>
if (&{$helper->{DATA}->{SETVAL}}('comment.email', $element->getValue())) {
return 'Comment address(es) updated to <b>' . $element->getValue() .
'</b>.';
}
</finalcode>
</string>
<message>
<p><b>Advanced</b>: You can send the feedback from different sections
to different people, by doing the following:</p>
<ul><li>Seperate each entry with a comma.</li>
<li>To send feedback to a certain address for different sections,
append the section name or names (seperated by semi-colons)
in a parenthesized list after the <b>user:domain</b>.</li></ul>
<p>For example,</p>
<p><b>john102:msu(001;002;003),bob293:msu(004;005;006),madeupname:here(007;008;009)</b></p>
<p>will route course feedback to "john102" for sections 1, 2, and 3, to
"bob293" for 4, 5, and 6, and to "madeupname:here" for
7, 8, and 9. Note there is no requirement that the addresses be in any
particular domain.</p>
</message>
</state>
<state name="FINAL" title="Completed">
<message>Your course is now set up. Please select the <b>Finish Course
Initialization</b> button to re-intialize the course with your chosen
settings.
<p>Remember that all of these settings can be modified in the <b>PARMS</b>
screen, by pushing the <b>Course Environment</b> button.</p>
</message>
<final restartCourse='1' />
</state>
</helper>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>