File:  [LON-CAPA] / loncom / html / adm / helper / course.initialization.helper
Revision 1.7: download - view: text, annotated - select for diffs
Wed Jun 25 16:50:50 2003 UTC (21 years ago) by bowersj2
Branches: MAIN
CVS tags: version_0_99_3, HEAD
Remove a little white lie; they're now taken to the main menu, not the
NAV screen.

<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 help you set up your new LON-CAPA course and choose '.
        'which LON-CAPA features will be active in your new course. 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.' 
        :
        'This helper will help you set up your LON-CAPA course and choose ' .
        'which LON-CAPA features will be active in your course.';
      </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 &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" title="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.<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>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.

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