[LON-CAPA-cvs] cvs: loncom(version_2_10_X) /interface domainprefs.pm

raeburn raeburn@source.lon-capa.org
Thu, 26 Aug 2010 08:07:42 -0000


raeburn		Thu Aug 26 08:07:42 2010 EDT

  Modified files:              (Branch: version_2_10_X)
    /loncom/interface	domainprefs.pm 
  Log:
  - Backport 1.139 (part).
  
  
Index: loncom/interface/domainprefs.pm
diff -u loncom/interface/domainprefs.pm:1.138.2.1 loncom/interface/domainprefs.pm:1.138.2.2
--- loncom/interface/domainprefs.pm:1.138.2.1	Fri Aug 13 05:45:05 2010
+++ loncom/interface/domainprefs.pm	Thu Aug 26 08:07:42 2010
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Handler to set domain-wide configuration settings
 #
-# $Id: domainprefs.pm,v 1.138.2.1 2010/08/13 05:45:05 raeburn Exp $
+# $Id: domainprefs.pm,v 1.138.2.2 2010/08/26 08:07:42 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -202,12 +202,13 @@
                 'quotas','autoenroll','autoupdate','autocreate',
                 'directorysrch','usercreation','usermodification',
                 'contacts','defaults','scantron','coursecategories',
-                'serverstatuses','requestcourses','usersessions'],$dom);
+                'serverstatuses','requestcourses','coursedefaults',
+                'usersessions'],$dom);
     my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll',
                        'autoupdate','autocreate','directorysrch','contacts',
                        'usercreation','usermodification','scantron',
                        'requestcourses','coursecategories','serverstatuses',
-                       'usersessions');
+                       'coursedefaults','usersessions');
     my %prefs = (
         'rolecolors' =>
                    { text => 'Default color schemes',
@@ -336,11 +337,11 @@
                              {col1 => 'Unauthenticated Help Settings',
                               col2 => ''}],
                  },
-        'coursedefaults' => 
+        'coursedefaults' =>
                  {text => 'Course/Community defaults',
                   help => 'Domain_Configuration_Course_Defaults',
-                  header => [{col1 => 'Setting',
-                              col2 => 'Value',}],
+                  header => [{col1 => 'Defaults which can be overridden for each course by a DC',
+                              col2 => 'Value',},
                  },
         'privacy' => 
                  {text   => 'User Privacy',
@@ -454,6 +455,8 @@
         $output = &modify_serverstatuses($dom,%domconfig);
     } elsif ($action eq 'requestcourses') {
         $output = &modify_quotas($dom,$action,%domconfig);
+    } elsif ($action eq 'coursedefaults') {
+        $output = &modify_coursedefaults($dom,%domconfig);
     } elsif ($action eq 'usersessions') {
         $output = &modify_usersessions($dom,%domconfig);
     }
@@ -661,6 +664,8 @@
             $output .= &print_scantronformat($r,$dom,$confname,$settings,\$rowtotal);
         } elsif ($action eq 'serverstatuses') {
             $output .= &print_serverstatuses($dom,$settings,\$rowtotal);
+        } elsif ($action eq 'coursedefaults') {
+            $output .= &print_coursedefaults('bottom',$dom,$settings,\$rowtotal);
         }
     }
     $output .= '
@@ -2231,19 +2236,43 @@
 }
 
 sub print_coursedefaults {
-    my ($dom,$settings,$rowtotal) = @_;
+    my ($position,$dom,$settings,$rowtotal) = @_;
     my ($css_class,$datatable);
     my $itemcount = 1;
-    my (%checkedon,%checkedoff,%choices,%defaultchecked,@toggles);
-    %choices =
-        &Apache::lonlocal::texthash (
-            canuse_pdfforms => 'Course/Community users can create/upload PDF forms',
-    );
-    %defaultchecked = ('canuse_pdfforms' => 'off');
-    @toggles = ('canuse_pdfforms',);
-    ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
+    if ($position eq 'top') {
+        my (%checkedon,%checkedoff,%choices,%defaultchecked,@toggles);
+        %choices =
+            &Apache::lonlocal::texthash (
+                canuse_pdfforms => 'Course/Community users can create/upload PDF forms',
+        );
+        %defaultchecked = ('canuse_pdfforms' => 'off');
+        @toggles = ('canuse_pdfforms',);
+        ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
                                                  \%choices,$itemcount);
-    $$rowtotal += $itemcount;
+        $$rowtotal += $itemcount;
+    } else {
+        $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
+        my %choices =
+            &Apache::lonlocal::texthash (
+                anonsurvey_threshold => 'Responder count needed before showing submissions for anonymous surveys',
+        );
+        my $currdefresponder;
+        if (ref($settings) eq 'HASH') {
+            $currdefresponder = $settings->{'anonsurvey_threshold'};
+        }
+        if (!$currdefresponder) {
+            $currdefresponder = 10;
+        } elsif ($currdefresponder < 1) {
+            $currdefresponder = 1;
+        }
+        $datatable .=
+               '<tr'.$css_class.'><td><span class="LC_nobreak">'.$choices{'anonsurvey_threshold'}.
+                '</span></td>'.
+                '<td class="LC_right_item"><span class="LC_nobreak">'.
+                '<input type="text" name="anonsurvey_threshold"'.
+                ' value="'.$currdefresponder.'" size="5" /></span>'.
+                '</td></tr>';
+    }
     return $datatable;
 }
 
@@ -6626,7 +6655,7 @@
     my ($resulttext,$errors,%changes,%defaultshash);
     my %defaultchecked = ('canuse_pdfforms' => 'off');
     my @offon = ('off','on');
-    my @toggles = ('canuse_pdfforms');
+    my @toggles = ();
 
     $defaultshash{'coursedefaults'} = {};
 
@@ -6655,6 +6684,18 @@
             }
             $defaultshash{'coursedefaults'}{$item} = $env{'form.'.$item};
         }
+        my $currdefresponder = $domconfig{'coursedefaults'}{'anonsurvey_threshold'};
+        my $newdefresponder = $env{'form.anonsurvey_threshold'};
+        $newdefresponder =~ s/\D//g;
+        if ($newdefresponder eq '' || $newdefresponder < 1) {
+            $newdefresponder = 1;
+        }
+        $defaultshash{'coursedefaults'}{'anonsurvey_threshold'} = $newdefresponder;
+        if ($currdefresponder ne $newdefresponder) {
+            unless ($currdefresponder eq '' && $newdefresponder == 10) {
+                $changes{'anonsurvey_threshold'} = 1;
+            }
+        }
     }
     my $putresult = &Apache::lonnet::put_dom('configuration',\%defaultshash,
                                              $dom);
@@ -6674,6 +6715,8 @@
                     } else {
                         $resulttext .= '<li>'.&mt('Course/Community users can create/upload PDF forms set to "off"').'</li>';
                     }
+                } elsif ($item eq 'anonsurvey_threshold') {
+                        $resulttext .= '<li>'.&mt('Responder count required for display of anonymous survey submissions set to [_1].',$defaultshash{'coursedefaults'}{'anonsurvey_threshold'}).'</li>';
                 }
             }
             $resulttext .= '</ul>';