[LON-CAPA-cvs] cvs: loncom /html/adm/helper course.initialization.helper parameter.helper

bowersj2 lon-capa-cvs@mail.lon-capa.org
Fri, 16 May 2003 17:21:33 -0000


bowersj2		Fri May 16 13:21:33 2003 EDT

  Modified files:              
    /loncom/html/adm/helper	parameter.helper 
                           	course.initialization.helper 
  Log:
  Require the users of the parameter helper and course initialization helper
  to have the 'opa' priviledge of setting parameters.
  
  
Index: loncom/html/adm/helper/parameter.helper
diff -u loncom/html/adm/helper/parameter.helper:1.1 loncom/html/adm/helper/parameter.helper:1.2
--- loncom/html/adm/helper/parameter.helper:1.1	Fri Apr 18 13:32:26 2003
+++ loncom/html/adm/helper/parameter.helper	Fri May 16 13:21:33 2003
@@ -1,4 +1,4 @@
-<helper title="Course Parameter Helper">
+<helper title="Course Parameter Helper" requiredpriv='opa'>
 
   <exec>
     my %dateTypeHash = ('open_date' => "opening date",
@@ -39,7 +39,6 @@
 
   <state name="CHOOSE_LEVEL" title="Which Problem or Problems?">
     <message>Which problems do you wish to change a date for?</message>
-
     <choices variable="GRANULARITY">
       <choice computer="whole_course" nextstate="CHOOSE_ACTION">
         <b>Every problem</b> in the course
Index: loncom/html/adm/helper/course.initialization.helper
diff -u loncom/html/adm/helper/course.initialization.helper:1.1 loncom/html/adm/helper/course.initialization.helper:1.2
--- loncom/html/adm/helper/course.initialization.helper:1.1	Thu May  8 15:53:11 2003
+++ loncom/html/adm/helper/course.initialization.helper	Fri May 16 13:21:33 2003
@@ -1,56 +1,120 @@
-<helper title="Course Initialization Helper">
+<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="FORBID_DISCUSSION">
-      <p>This helper will help you set up your new LON-CAPA course and choose
+         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>
+         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 to use the in-course interface to change these settings, 
-         <a href="/adm/navmaps">click here</a> to leave this helper.</p>
+         prefer not to use the Helper,
+         <a href="/adm/navmaps">click here</a> to leave this Helper.</p>
 
-      <p>All settings you can change with this helper can also be changed while the
+      <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 <b>Next -&gt;</b>.</p>
+         prefer the Helper interface, please click <nobr><b>Next -&gt;</b></nobr>.</p>
       </message>
     </state>
 
   <state name="FORBID_DISCUSSION" title="Discussion Participation">
     <message nextstate="DISCUSSION_HTML">
-      <p>LON-CAPA hosts discussions on all resources in a course. By default,
-         all users are allowed to participate in these discussions.</p>
+         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.</p>
+         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">
+    <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">
+    <message nextstate="FINAL">
       <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>
+      <finalcode>return 'Choices finalcode.';</finalcode>
       </choices>
+    </state>
+
+  
+
+  <state name="FINAL" title="Completed">
+    <message>Your course is now set up.</message>
+    <final />
     </state>
   </helper>