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.

    1: <helper title="Course Initialization Helper" requiredpriv='opa'>
    2: 
    3:   <exec>
    4:     $helper->{DATA}->{DOM} = $ENV{'course.'.$ENV{'request.course.id'}.'.domain'};
    5:     $helper->{DATA}->{CRS} = $ENV{'course.'.$ENV{'request.course.id'}.'.num'};
    6: 
    7:     $helper->{DATA}->{GETVAL} = sub {
    8:         my @resultlist = &Apache::lonnet::get('environment', [shift()], 
    9:                                               $helper->{DATA}->{DOM},
   10:                                               $helper->{DATA}->{CRS}); 
   11:         return $resultlist[1]; };
   12:     $helper->{DATA}->{SETVAL} = sub {
   13:         my $name = shift;
   14:         my $val = shift;
   15:         if (&{$helper->{DATA}->{GETVAL}}($name) ne $val) {
   16:             &Apache::lonnet::put('environment', {$name=>$val}, 
   17:                                  $helper->{DATA}->{DOM},
   18:                                  $helper->{DATA}->{CRS}); 
   19:             return 1;
   20:         } else {
   21:             return 0;
   22:         }
   23:     }
   24:   </exec>
   25: 
   26:   <state name="START" title="Welcome to Your New LON-CAPA Course">
   27:     <message nextstate="COURSE_DESCRIPTION">
   28:          This Helper will help you set up your new LON-CAPA course and choose
   29:          which LON-CAPA features will be active in your course. You can 
   30:          re-visit it later to change settings in your course.
   31: 
   32:       <p><b>FIXME:</b> Figure out some way to detect whether this has been
   33:          run, and change that paragraph appropriatly.</p>
   34: 
   35:       <p>If you have previous experience with coordinating LON-CAPA courses and
   36:          prefer not to use the Helper,
   37:          <a href="/adm/menu">click here</a> to leave this Helper.</p>
   38: 
   39:       <p>All settings which you can change with this Helper can also be changed while the
   40:          course is running by going to the PARM screen and clicking on the &quot;Set
   41:          course environment&quot; button.</p>
   42: 
   43:       <p>If you do not have experience coordinating LON-CAPA courses, or if you
   44:          prefer the Helper interface, please click <nobr><b>Next -&gt;</b></nobr>.</p>
   45:       </message>
   46:     </state>
   47: 
   48:   <state name="COURSE_DESCRIPTION">
   49:     <message nextstate="FORBID_DISCUSSION">
   50:       The &quot;Course Description&quot; is the name of the course that will be
   51:       seen by the students. This should have been set up correctly when the
   52:       course was created, but please confirm that it is correct, or change it
   53:       if neccessary. Hit a <nobr>&quot;<b>Next -&gt</b>;&quot;</nobr> to continue.
   54:       </message>
   55:     <string variable='description' size='60' >
   56:       <defaultvalue>
   57:         return &{$helper->{DATA}->{GETVAL}}('description');
   58:       </defaultvalue>
   59:       <finalcode>
   60:         if (&{$helper->{DATA}->{SETVAL}}('description', $element->getValue())) {
   61:           return 'Course description changed to <b>' . $element->getValue() . 
   62:                  '</b>.';
   63:         }
   64:         </finalcode>
   65:       </string>
   66:     </state>
   67: 
   68:   <state name="FORBID_DISCUSSION" title="Discussion Participation">
   69:     <message nextstate="DISCUSSION_HTML">
   70:          LON-CAPA hosts discussions on all resources in a course. By default,
   71:          all users are allowed to participate in these discussions.
   72: 
   73:       <p>For more information about discussion and the abilities available
   74:          to you as a course coordinator, such as banning abusive users or
   75:          hiding discussion postings, please see <b>link</b>.</p>
   76: 
   77:       <p>If you do not wish certain classes of users to be able to use the 
   78:          discussion features, select those classes below. Note your class
   79:          may not have all of these roles; you may safely ignore roles you
   80:          do not intend to use. (For instance, &quot;Exam Proctor&quot; is
   81:          generally useful only for large courses.)</p>
   82: 
   83:       <p><b>Question: Does inability to use discussion mean they simply can't
   84:             post, or that they can't see the discussion at all?</b></p>
   85:       </message>
   86:     <choices variable="BANNED_DISCUSSION_ROLES" multichoice="1" allowempty='1'>
   87:       <choice computer="st"><b>Students</b> - students will not be able to participate in discussions</choice>
   88:       <choice computer="ta"><b>Teaching Assistants</b> - teaching assistants will not be able to participate in discussions</choice>
   89:       <choice computer="in"><b>Instructor</b> - instructors will not be able to participate in discussions</choice>
   90:       <choice computer="ep"><b>Exam Proctor</b> - exam proctors will not be able to participate in discussions</choice>
   91:       <defaultvalue>
   92:         my $denied = &{$helper->{DATA}->{GETVAL}}('pch.roles.denied');
   93:         $denied =~ s/,/\|\|\|/g;
   94:         return $denied;
   95:       </defaultvalue>
   96:       <finalcode>
   97:         my $denied = $element->getValue();
   98:         $denied =~ s/\|\|\|/,/g;
   99:         if (&{$helper->{DATA}->{SETVAL}}('pch.roles.denied', $denied)) {
  100:             $denied =~ s/st/ students/;
  101:             $denied =~ s/in/ instructors/;
  102:             $denied =~ s/ta/ teaching assistants/;
  103:             $denied =~ s/ep/ exam proctors/;
  104:             if ($denied =~ /^[^,]*,[^,]*$/) { # only one comma
  105:                 $denied =~ s/,/ and/g;
  106:             } else { # add "and" to last comma
  107:                 $denied =~ s/,([^,]*)$/, and\1/;
  108:             }
  109:             if ($denied) {
  110:                 $denied = substr($denied, 1) . ' not allowed to participate in discussion.';
  111:                 $denied = ucfirst($denied);
  112:             } else {
  113:                 $denied = 'Everyone can participate in discussion.';
  114:             }
  115:             return $denied;
  116:         } else {
  117:             return '';
  118:         }
  119:       </finalcode>
  120:       </choices>
  121:     </state>
  122: 
  123:   <state name="DISCUSSION_HTML" title="HTML in Discussions">
  124:     <message nextstate="FEEDBACK_ADDRESSES">
  125:       <p>If you like, limited HTML can be allowed in the course discussions.</p>
  126:       </message>
  127:     <choices variable="HTML_ALLOWED">
  128:       <choice computer=""><b>HTML banned</b>: HTML will not be allowed in discussion postings.</choice>
  129:       <choice computer="yes"><b>HTML allowed</b>: Discussion participants can use limited HTML in their postings.</choice>
  130:       <defaultvalue>
  131:         return &{$helper->{DATA}->{GETVAL}}('allow_limited_html_in_feedback');
  132:       </defaultvalue>
  133:       <finalcode>
  134:         if (&{$helper->{DATA}->{SETVAL}}('allow_limited_html_in_feedback', $element->getValue())) {
  135:           if ($element->getValue() eq 'yes') {
  136:             return 'Limited HTML allowed in feedback.';
  137:           } else {
  138:             return 'HTML not allowed in feedback.';
  139:           }
  140:         }
  141:         </finalcode>
  142:       </choices>
  143:     </state>
  144: 
  145:   <state name="FEEDBACK_ADDRESSES" title="Feedback Addresses for Course Content">
  146:     <message nextstate="FINAL">
  147:       People in the course can provide feedback about the resources used in
  148:       the course by using the <b>FDBK</b> button while viewing a resource. If
  149:       the user labels the feedback as a &quot;question about course content&quot;,
  150:       it is sent to the course coordinator of that course.
  151: 
  152:       <p>If you'd like that feedback to be sent to someone else, such as a
  153:       different instructor, please enter their LON-CAPA address below, in the
  154:       form <b>user:domain</b>, where &quot;user&quot; and &quot;domain&quot;
  155:       are both the LON-CAPA username and LON-CAPA domain, not an email
  156:       address.</p> 
  157:       </message>
  158:     <eval>return '<p>Your current LON-CAPA domain is &quot;<b>' 
  159:                  . $helper->{DATA}->{DOM} .
  160:                  '</b>&quot;.</p>';
  161:       </eval>
  162:     <string variable='feedback_addresses' size='60' >
  163:       <defaultvalue>
  164:         return &{$helper->{DATA}->{GETVAL}}('comment.email');
  165:       </defaultvalue>
  166:       <finalcode>
  167:         if (&{$helper->{DATA}->{SETVAL}}('comment.email', $element->getValue())) {
  168:           return 'Comment address(es) updated to <b>' . $element->getValue() . 
  169:                  '</b>.';
  170:         }
  171:         </finalcode>
  172:       </string>
  173:     <message>
  174:       <p><b>Advanced Functionality</b>: If you'd like to redirect different 
  175:          section's feedback to different people, you can enter it as follows:</p>
  176: 
  177:       <ul><li>Seperate each entry with a comma.</li>
  178:           <li>To send feedback to a certain address for different sections,
  179:               append the section name or names (seperated by semi-colons)
  180:               in a parenthesized list after the <b>user:domain</b>.</li></ul>
  181: 
  182:       <p>For example,</p>
  183: 
  184:       <p><b>john102:msu(001;002;003),bob293:msu(004;005;006),madeupname:here(007;008;009)</b></p>
  185: 
  186:       <p>will route course feedback to &quot;john102&quot; for sections 1, 2, and 3, to
  187:          &quot;bob293&quot; for 4, 5, and 6, and to &quot;madeupname:here&quot; for
  188:          7, 8, and 9. Note there is no requirement that the addresses be in any
  189:          particular domain.</p>
  190:       </message>
  191:     </state>
  192: 
  193:   <state name="FINAL" title="Completed">
  194:     <message>Your course is now set up. Please select the <b>Finish Course 
  195:       Initialization</b> button to re-intialize the course with your chosen
  196:       settings. You will be taken to the <b>NAV</b> screen for your course.
  197: 
  198:       <p>Remember that all of these settings can be modified in the <b>PARMS</b>
  199:          screen, by pushing the <b>Course Environment</b> button.</p>
  200:       </message>
  201:     <final restartCourse='1' />
  202:     </state>
  203:   </helper>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>