Diff for /loncom/html/adm/helper/course.initialization.helper between versions 1.13 and 1.29

version 1.13, 2003/09/05 16:16:17 version 1.29, 2010/02/11 01:30:52
Line 1 Line 1
 <helper title="Course Initialization Helper" requiredpriv='opa'>  <helper title="Course Initialization Helper" requiredpriv='opa'>
   
   <exec>    <exec>
     my $courseid = $ENV{'request.course.id'};      my $courseid = $env{'request.course.id'};
     my $crsdom = $ENV{'course.'.$courseid.'.domain'};      my $crsdom = $env{'course.'.$courseid.'.domain'};
     my $crsnum = $ENV{'course.'.$courseid.'.num'};      my $crsnum = $env{'course.'.$courseid.'.num'};
     $helper->{DATA}->{DOM} = $crsdom;      $helper->{DATA}->{DOM} = $crsdom;
     $helper->{DATA}->{CRS} = $crsnum;      $helper->{DATA}->{CRS} = $crsnum;
   
     $helper->{DATA}->{FIRST_RUN} = $ENV{'course.'.$crsnum.      $helper->{DATA}->{FIRST_RUN} = $env{'course.'.$crsnum.
                                         '.course.intialization.not.run'};                                          '.course.intialization.not.run'};
     # Delete the 'course.initialization.not.run' course environment      # Delete the 'course.initialization.not.run' course environment
     Apache::lonnet::put('environment', {'course.helper.not.run' => 0},       Apache::lonnet::put('environment', {'course.helper.not.run' => 0}, 
                         $crsdom, $crsnum);                          $crsdom, $crsnum);
     Apache::lonnet::coursedescription($ENV{'request.course.id'});      Apache::lonnet::coursedescription($env{'request.course.id'});
   
     $helper->{DATA}->{GETVAL} = sub {      $helper->{DATA}->{GETVAL} = sub {
         my @resultlist = &Apache::lonnet::get('environment', [shift()],           my @resultlist = &Apache::lonnet::get('environment', [shift()], 
Line 27 Line 27
                                  $helper->{DATA}->{DOM},                                   $helper->{DATA}->{DOM},
                                  $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'});
             return 1;              return 1;
         } else {          } else {
             return 0;              return 0;
Line 37 Line 37
   
   <state name="START" title="Welcome to Your New LON-CAPA Course">    <state name="START" title="Welcome to Your New LON-CAPA Course">
     <eval>      <eval>
       return $helper->{DATA}->{FIRST_RUN} ?        return $helper->{DATA}->{FIRST_RUN} ? 
         'This Helper will set up your new LON-CAPA course and choose '.          'This Helper will set up your new LON-CAPA course and choose '.
         'which features will be active. You can '.          'which features will be active. You can '.
         're-visit it later to change settings in your course.' .          're-visit it later to change settings in your course.' .
Line 45 Line 45
         '<p>If you have previous experience with coordinating LON-CAPA courses and '.          '<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.'          '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 ' .          &mt('This helper will set up your LON-CAPA course and choose which features will be active.');
         'which features will be active.';  
       </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 &quot;Set           by going to the &quot;Modify parameter settings&quot; screen and clicking on the &quot;Course Configuration&quot; button.</p>
          course environment&quot; 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 -&gt;</b></nobr>.</p>           prefer the Helper interface, please click &quot;Next&quot;.</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 &quot;Course Description&quot; is the name of the course that will be        The &quot;Course Title&quot; 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>&quot;<b>Next -&gt;</b>&quot;</nobr> to continue.<br />        &quot;Next&quot; to continue.<br />
       </message>        </message>
     <string variable='description' size='60' >      <string variable='description' size='60' >
       <defaultvalue>        <defaultvalue>
Line 77 Line 75
       </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 88 Line 86
       <choice computer="ta"><b>Teaching Assistants</b> - teaching assistants will not be able use or view the chat room</choice>        <choice computer="ta"><b>Teaching Assistants</b> - teaching assistants will not be able use or view the chat room</choice>
       <choice computer="in"><b>Instructor</b> - instructors will not be able to use or view the chat room</choice>        <choice computer="in"><b>Instructor</b> - instructors will not be able to use or view the chat room</choice>
       <defaultvalue>        <defaultvalue>
         my $denied = &{$helper->{DATA}->{GETVAL}}('plch.roles.denied');          my $denied = &{$helper->{DATA}->{GETVAL}}('plc.roles.denied');
         $denied =~ s/,/\|\|\|/g;          $denied =~ s/,/\|\|\|/g;
         return $denied;          return $denied;
       </defaultvalue>        </defaultvalue>
Line 106 Line 104
                 $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 193 Line 191
     </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 &quot;user&quot; and &quot;domain&quot;        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        are both the LON-CAPA username and LON-CAPA domain, not an e-mail
       address.</p>         address.</p> 
       </message>        </message>
     <eval>return '<p>Your current LON-CAPA domain is &quot;<b>'       <eval>return '<p>'.&mt('Your current LON-CAPA domain is [_1].','&quot;<b>'.$helper->{DATA}->{DOM}.'</b>&quot;').'</p>'; 
                  . $helper->{DATA}->{DOM} .  
                  '</b>&quot;.</p>';  
       </eval>        </eval>
     <string variable='feedback_addresses' size='60' >      <string variable='feedback_addresses' size='60' >
       <defaultvalue>        <defaultvalue>
Line 236 Line 232
       </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='can_clone' 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 &quot;user&quot; and &quot;domain&quot;
         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-intialize 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>
       <message>After you select <b>Finish Course Initialization</b>,        <message>After you select <b>Finish Course Initialization</b>,
                you will be taken to the Parameter Overview screen to                 you will be taken to the Parameter Overview screen to
                update the dates for this cloned course.</message>                 update the dates for this cloned course.</message>

Removed from v.1.13  
changed lines
  Added in v.1.29


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