File:  [LON-CAPA] / loncom / html / adm / helper / course.initialization.helper
Revision 1.4: download - view: text, annotated - select for diffs
Fri May 30 14:00:21 2003 UTC (21 years, 1 month ago) by bowersj2
Branches: MAIN
CVS tags: conference_2003, HEAD
Now that we have a "menu" screen, we can use that as a "default" screen
for the course when we want to do things like "leave this helper",
instead of just going out to an essentially random thing like navmaps.

<helper title="Course Initialization Helper" requiredpriv='opa'>

  <exec>
    $helper->{DATA}->{DOM} = $ENV{'course.'.$ENV{'request.course.id'}.'.domain'};
    $helper->{DATA}->{CRS} = $ENV{'course.'.$ENV{'request.course.id'}.'.num'};

    $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}); 
            return 1;
        } else {
            return 0;
        }
    }
  </exec>

  <state name="START" title="Welcome to Your New LON-CAPA Course">
    <message nextstate="COURSE_DESCRIPTION">
         This Helper will help you set up your new LON-CAPA course and choose
         which LON-CAPA features will be active in your course. You can 
         re-visit it later to change settings in your course.

      <p><b>FIXME:</b> Figure out some way to detect whether this has been
         run, and change that paragraph appropriatly.</p>

      <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.</p>

      <p>All settings which you can change with this Helper can also be changed while the
         course is running by going to the PARM screen and clicking on the &quot;Set
         course environment&quot; 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 -&gt;</b></nobr>.</p>
      </message>
    </state>

  <state name="COURSE_DESCRIPTION">
    <message nextstate="FORBID_DISCUSSION">
      The &quot;Course Description&quot; is the name of the course that will be
      seen by the students. This should have been set up correctly when the
      course was created, but please confirm that it is correct, or change it
      if neccessary. Hit a <nobr>&quot;<b>Next -&gt</b>;&quot;</nobr> to continue.
      </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>For more information about discussion and the abilities available
         to you as a course coordinator, such as banning abusive users or
         hiding discussion postings, please see <b>link</b>.</p>

      <p>If you do not wish certain classes of users to be able to use the 
         discussion features, select those classes below. Note your class
         may not have all of these roles; you may safely ignore roles you
         do not intend to use. (For instance, &quot;Exam Proctor&quot; is
         generally useful only for large courses.)</p>

      <p><b>Question: Does inability to use discussion mean they simply can't
            post, or that they can't see the discussion at all?</b></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>
      <choice computer="ep"><b>Exam Proctor</b> - exam proctors 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>If you like, limited HTML can be allowed in the course discussions.</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">
      People in the course can provide feedback about the resources used in
      the course by using the <b>FDBK</b> button while viewing a resource. If
      the user labels the feedback as a &quot;question about course content&quot;,
      it is sent to the course coordinator of that course.

      <p>If you'd like that feedback to be sent to someone else, such as a
      different instructor, please enter their LON-CAPA address below, in the
      form <b>user:domain</b>, where &quot;user&quot; and &quot;domain&quot;
      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 &quot;<b>' 
                 . $helper->{DATA}->{DOM} .
                 '</b>&quot;.</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 Functionality</b>: If you'd like to redirect different 
         section's feedback to different people, you can enter it as follows:</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 &quot;john102&quot; for sections 1, 2, and 3, to
         &quot;bob293&quot; for 4, 5, and 6, and to &quot;madeupname:here&quot; 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. You will be taken to the <b>NAV</b> screen for your course.

      <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>