Diff for /loncom/html/adm/helper/course.initialization.helper between versions 1.12 and 1.20

version 1.12, 2003/07/24 17:53:59 version 1.20, 2007/09/05 12:46:21
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
Line 88 Line 87
       <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 105
                 $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 live chatroom.';
                 $denied = ucfirst($denied);                  $denied = ucfirst($denied);
             } else {              } else {
                 $denied = 'Everyone can participate in discussion.';                  $denied = 'Everyone can participate in live chatroom.';
             }              }
             return $denied;              return $denied;
         } else {          } else {
Line 193 Line 192
     </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
Line 201 Line 200
       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 email
       address.</p>         address.</p> 
       </message>        </message>
     <eval>return '<p>Your current LON-CAPA domain is &quot;<b>'       <eval>return &mt('<p>Your current LON-CAPA domain is &quot;<b>[_1]</b>&quot;.</p>',"$helper->{DATA}->{DOM}"); 
                  . $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 233
       </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 parameters (automatically advancing any date parameters by six months).<br /><br />
         Names 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) {
             if ($item ne '*') {
                 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>Finish Course 
       Initialization</b> button to re-intialize the course with your chosen        Initialization</b> button to re-intialize the course with your chosen
Line 244 Line 318
       <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>PARMS</b>
          screen, by pushing the <b>Course Environment</b> button.</p>           screen, by pushing the <b>Course Environment</b> button.</p>
       </message>        </message>
       <condition>
         <clause>$env{'course.'.$env{'request.course.id'}.'.clonedfrom'}</clause>
         <message>After you select <b>Finish Course Initialization</b>,
                  you will be taken to the Parameter Overview screen to
                  update the dates for this cloned course.</message>
       </condition>
     <final restartCourse='1' />      <final restartCourse='1' />
     </state>      </state>
   </helper>    </helper>

Removed from v.1.12  
changed lines
  Added in v.1.20


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