Diff for /loncom/interface/Attic/londropadd.pm between versions 1.162 and 1.165

version 1.162, 2007/07/02 21:12:06 version 1.165, 2007/07/26 23:56:35
Line 133  sub domain_form { Line 133  sub domain_form {
 ###############################################################  ###############################################################
 #  Menu Phase One  #  Menu Phase One
 sub print_main_menu {  sub print_main_menu {
     my ($r,$enrl_permission,$view_permission,$grp_manage_permission,      my ($r,$permission)=@_;
         $grp_view_permission)=@_;  
     #      #
     my $cid =$env{'request.course.id'};      my $cid =$env{'request.course.id'};
     my $cdom=$env{'course.'.$cid.'.domain'};      my $cdom=$env{'course.'.$cid.'.domain'};
Line 144  sub print_main_menu { Line 143  sub print_main_menu {
           { text => 'Upload a class list',             { text => 'Upload a class list', 
             help => 'Course_Create_Class_List',              help => 'Course_Create_Class_List',
             action => 'upload',              action => 'upload',
             permission => $enrl_permission,              permission => $permission->{'enrl'},
             },              },
           { text => 'Enroll a single student',             { text => 'Enroll a single student', 
             help => 'Course_Add_Student',              help => 'Course_Add_Student',
             action => 'enrollstudent',              action => 'enrollstudent',
             permission => $enrl_permission,              permission => $permission->{'enrl'},
             },              },
           { text => 'Modify student data',             { text => 'Modify student data', 
             help => 'Course_Modify_Student_Data',              help => 'Course_Modify_Student_Data',
             action => 'modifystudent',              action => 'modifystudent',
             permission => $enrl_permission,              permission => $permission->{'enrl'},
             },              },
           { text => 'View Class List',             { text => 'View Class List', 
             help => 'Course_View_Class_List',              help => 'Course_View_Class_List',
             action => 'classlist',              action => 'classlist',
             permission => $view_permission,              permission => $permission->{'view'},
             },              },
           { text => 'Drop Students',             { text => 'Drop Students', 
             help => 'Course_Drop_Student',              help => 'Course_Drop_Student',
             action => 'drop',              action => 'drop',
             permission => $enrl_permission,              permission => $permission->{'enrl'},
             },              },
           { text => 'Automated Enrollment Manager',             { text => 'Automated Enrollment Manager', 
             permission => &Apache::lonnet::auto_run($cnum,$cdom),              permission => (&Apache::lonnet::auto_run($cnum,$cdom) 
      && $permission->{'enrl'}),
             url  => '/adm/populate',              url  => '/adm/populate',
             },              },
           { text => 'Create a new group',            { text => 'Create a new group',
             help => 'Course_Create_Group',              help => 'Course_Create_Group',
             permission => $grp_manage_permission,              permission => $permission->{'grp_manage'},
             url => '/adm/coursegroups?refpage=enrl&action=create',              url => '/adm/coursegroups?refpage=enrl&action=create',
             },              },
           { text => 'Modify an existing group',            { text => 'Modify an existing group',
             help => 'Course_Modify_Group',              help => 'Course_Modify_Group',
             permission => $grp_manage_permission,              permission => $permission->{'grp_manage'},
             url => '/adm/coursegroups?refpage=enrl&action=modify',              url => '/adm/coursegroups?refpage=enrl&action=modify',
             },              },
           { text => 'Delete an existing group',            { text => 'Delete an existing group',
             help => 'Course_Delete_Group',              help => 'Course_Delete_Group',
             permission => $grp_manage_permission,              permission => $permission->{'grp_manage'},
             url => '/adm/coursegroups?refpage=enrl&action=delete',              url => '/adm/coursegroups?refpage=enrl&action=delete',
             },              },
           { text => 'Re-enable a deleted group',            { text => 'Re-enable a deleted group',
             help => 'Course_Reenable_Group',              help => 'Course_Reenable_Group',
             permission => $grp_manage_permission,              permission => $permission->{'grp_manage'},
             url => '/adm/coursegroups?refpage=enrl&action=reenable',              url => '/adm/coursegroups?refpage=enrl&action=reenable',
             },              },
           { text => 'Enter an existing group',            { text => 'Enter an existing group',
             help => 'Course_Display_Group',              help => 'Course_Display_Group',
             permission => $grp_view_permission,              permission => $permission->{'grp_view'},
             url => '/adm/coursegroups?refpage=enrl&action=view',              url => '/adm/coursegroups?refpage=enrl&action=view',
             },              },
           );            );
Line 1169  sub print_drop_menu { Line 1169  sub print_drop_menu {
   
 # ============================================== view classlist  # ============================================== view classlist
 sub print_html_classlist {  sub print_html_classlist {
     my ($r,$mode) = @_;      my ($r,$mode,$permission) = @_;
     if (! exists($env{'form.sortby'})) {      if (! exists($env{'form.sortby'})) {
         $env{'form.sortby'} = 'username';          $env{'form.sortby'} = 'username';
     }      }
Line 1233  sub print_html_classlist { Line 1233  sub print_html_classlist {
     # Print the classlist      # Print the classlist
     $r->print('<h2>'.&mt('Current Class List').'</h2>');      $r->print('<h2>'.&mt('Current Class List').'</h2>');
     my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist();      my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist();
   
       if (exists($permission->{'view_section'})) {
    my $sec = &Apache::loncoursedata::CL_SECTION();
    foreach my $student (keys(%{$classlist})) {
       if ($classlist->{$student}[$sec] ne $permission->{'view_section'}) {
    delete($classlist->{$student});
       }
    }
       }
   
     if (! defined($classlist)) {      if (! defined($classlist)) {
         $r->print(&mt('There are no students currently enrolled.')."\n");          $r->print(&mt('There are no students currently enrolled.')."\n");
     } else {      } else {
Line 1296  END Line 1306  END
                                            'start'  => "start date",                                             'start'  => "start date",
                                            'end'    => "end date",                                             'end'    => "end date",
                                            'type'   => "enroll type/action",                                             'type'   => "enroll type/action",
      'email'  => "email address",
                                            'photo'  => "photo",                                             'photo'  => "photo",
    );     );
         unless ($mode eq 'autoenroll') {          unless ($mode eq 'autoenroll') {
Line 1348  function photowindow(photolink) { Line 1359  function photowindow(photolink) {
        <a href="javascript:document.studentform.sortby.value='end';document.studentform.submit();">$lt{'end'}</a>         <a href="javascript:document.studentform.sortby.value='end';document.studentform.submit();">$lt{'end'}</a>
     </th><th>      </th><th>
        <a href="javascript:document.studentform.sortby.value='groups';document.studentform.submit();">$lt{'grp'}</a>         <a href="javascript:document.studentform.sortby.value='groups';document.studentform.submit();">$lt{'grp'}</a>
       </th><th>
          <a href="javascript:document.studentform.sortby.value='email';document.studentform.submit();">$lt{'email'}</a>
     </th>      </th>
 END  END
         if ($env{'course.'.$env{'request.course.id'}.'.internal.showphoto'}) {          if ($env{'course.'.$env{'request.course.id'}.'.internal.showphoto'}) {
Line 1391  END Line 1404  END
             print $CSVfile '"'.join('","',map {              print $CSVfile '"'.join('","',map {
  &Apache::loncommon::csv_translate(&mt($_))   &Apache::loncommon::csv_translate(&mt($_))
                 } ("username","domain","ID","student name",                  } ("username","domain","ID","student name",
                    "section","start date","end date","status","active groups"))                     "section","start date","end date","status",
      "active groups","email address"))
                   .'"'."\n";                    .'"'."\n";
         } else {          } else {
             print $CSVfile '"'.join('","',map {              print $CSVfile '"'.join('","',map {
  &Apache::loncommon::csv_translate(&mt($_))   &Apache::loncommon::csv_translate(&mt($_))
                 } ("username","domain","ID","student name",                  } ("username","domain","ID","student name",
                    "section","start date","end date","active groups")).'"'."\n";                     "section","start date","end date",
      "active groups","email address")).'"'."\n";
         }          }
     } elsif ($mode eq 'excel') {      } elsif ($mode eq 'excel') {
         # Create the excel spreadsheet          # Create the excel spreadsheet
Line 1413  END Line 1428  END
         $excel_sheet->write($row++,0,["username","domain","ID",          $excel_sheet->write($row++,0,["username","domain","ID",
                                       "student name","section",                                        "student name","section",
                                       "start date","end date","status",                                        "start date","end date","status",
                                       "active groups"],                                        "active groups","email address"],
                             $format->{'bold'});                              $format->{'bold'});
     }      }
     #      #
Line 1452  END Line 1467  END
         my $name     = $sdata->[$index{'fullname'}];          my $name     = $sdata->[$index{'fullname'}];
         my $id       = $sdata->[$index{'id'}];          my $id       = $sdata->[$index{'id'}];
         my $status   = $sdata->[$index{'status'}];          my $status   = $sdata->[$index{'status'}];
           next if (($statusmode ne 'Any') && ($status ne $statusmode));
         my $start    = $sdata->[$index{'start'}];          my $start    = $sdata->[$index{'start'}];
         my $end      = $sdata->[$index{'end'}];          my $end      = $sdata->[$index{'end'}];
         my $type     = $sdata->[$index{'type'}];          my $type     = $sdata->[$index{'type'}];
         next if (($statusmode ne 'Any') && ($status ne $statusmode));  
    my %emails   = &Apache::loncommon::getemails($username,$domain);
    my $email;
    foreach my $type ('critnotification', 'permanentemail',
     'notification') {
       if ($emails{$type} =~ /\S/) {
    $email = $emails{$type};
    last;
       }
    }
   
         if ($mode eq 'view' || $mode eq 'html' || $mode eq 'autoenroll') {          if ($mode eq 'view' || $mode eq 'html' || $mode eq 'autoenroll') {
             if (! defined($start) || $start == 0) {              if (! defined($start) || $start == 0) {
                 $start = &mt('none');                  $start = &mt('none');
Line 1515  END Line 1541  END
     <td>$start</td>      <td>$start</td>
     <td>$end</td>      <td>$end</td>
     <td>$active_groups</td>      <td>$active_groups</td>
       <td>$email</td>
 END  END
             if ($env{'course.'.$env{'request.course.id'}.              if ($env{'course.'.$env{'request.course.id'}.
  '.internal.showphoto'}) {   '.internal.showphoto'}) {
Line 1551  END Line 1578  END
                 push @line,&Apache::loncommon::csv_translate($status);                  push @line,&Apache::loncommon::csv_translate($status);
             }              }
             push @line,&Apache::loncommon::csv_translate($active_groups);              push @line,&Apache::loncommon::csv_translate($active_groups);
               push @line,&Apache::loncommon::csv_translate($email);
             print $CSVfile '"'.join('","',@line).'"'."\n";              print $CSVfile '"'.join('","',@line).'"'."\n";
         } elsif ($mode eq 'excel') {          } elsif ($mode eq 'excel') {
             $excel_sheet->write($row,0,[$username,$domain,$id,              $excel_sheet->write($row,0,[$username,$domain,$id,
Line 1567  END Line 1595  END
             }              }
             $excel_sheet->write($row,$col++,$status);              $excel_sheet->write($row,$col++,$status);
             $excel_sheet->write($row,$col++,$active_groups);              $excel_sheet->write($row,$col++,$active_groups);
               $excel_sheet->write($row,$col++,$email);
             $row++;              $row++;
         }          }
     }      }
Line 2400  function validate(caller) { Line 2429  function validate(caller) {
 END  END
 }  }
   
   sub get_permission {
       my %permission;
       $permission{'view'} = 
           &Apache::lonnet::allowed('vcl',$env{'request.course.id'});
       if (!$permission{'view'}) {
    my $scope = $env{'request.course.id'}.'/'.$env{'request.course.sec'};
    $permission{'view'} =  &Apache::lonnet::allowed('vcl',$scope);
    if ($permission{'view'}) {
       $permission{'view_section'} = $env{'request.course.sec'};
    }
       }
   
       $permission{'enrl'} = 
           &Apache::lonnet::allowed('cst',$env{'request.course.id'});
   
       $permission{'grp_view'} =
           &Apache::lonnet::allowed('vcg',$env{'request.course.id'});
       $permission{'grp_manage'} =
           &Apache::lonnet::allowed('mdg',$env{'request.course.id'});
       my $allowed = 0;
       foreach my $perm (values(%permission)) {
    if ($perm) { $allowed=1; last; }
       }
       return (\%permission,$allowed);
   }
   
 ###################################################################  ###################################################################
 ###################################################################  ###################################################################
   
Line 2458  sub handler { Line 2513  sub handler {
         return HTTP_NOT_ACCEPTABLE;           return HTTP_NOT_ACCEPTABLE; 
     }      }
     #      #
     my $view_permission =   
         &Apache::lonnet::allowed('vcl',$env{'request.course.id'});  
     my $enrl_permission =   
         &Apache::lonnet::allowed('cst',$env{'request.course.id'});  
   
     my $grp_view_permission =  
         &Apache::lonnet::allowed('vcg',$env{'request.course.id'});  
     my $grp_manage_permission =  
         &Apache::lonnet::allowed('mdg',$env{'request.course.id'});  
   
       my ($permission,$allowed) = &get_permission();
   
     if (! $grp_view_permission && ! $grp_manage_permission &&       if (!$allowed) {
                                   ! $view_permission && ! $enrl_permission) {  
         $env{'user.error.msg'}=          $env{'user.error.msg'}=
      "/adm/coursegroups:cst:0:0:Cannot manage or view course groups, ".      "/adm/dropadd:cst:0:0:Cannot manage or view course groups, ".
                                  "or drop or add students";                           "or drop or add students";
         return HTTP_NOT_ACCEPTABLE;          return HTTP_NOT_ACCEPTABLE;
     }      }
   
Line 2488  sub handler { Line 2534  sub handler {
     # Main switch on form.action and form.state, as appropriate      # Main switch on form.action and form.state, as appropriate
     if (! exists($env{'form.action'})) {      if (! exists($env{'form.action'})) {
         $r->print(&Apache::lonhtmlcommon::breadcrumbs('Enrollment Manager'));          $r->print(&Apache::lonhtmlcommon::breadcrumbs('Enrollment Manager'));
         &print_main_menu($r,$enrl_permission,$view_permission,$grp_manage_permission,          my $action = &print_main_menu($r,$permission);
                          $grp_view_permission);      } elsif ($env{'form.action'} eq 'upload' && $permission->{'enrl'}) {
     } elsif ($env{'form.action'} eq 'upload' && $enrl_permission) {  
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>'/adm/dropadd?action=upload&state=',              ({href=>'/adm/dropadd?action=upload&state=',
               text=>"Upload Classlist"});                text=>"Upload Classlist"});
Line 2509  sub handler { Line 2554  sub handler {
         } else {          } else {
             &print_first_courselist_upload_form($r);                          &print_first_courselist_upload_form($r);            
         }          }
     } elsif ($env{'form.action'} eq 'drop' && $enrl_permission) {      } elsif ($env{'form.action'} eq 'drop' && $permission->{'enrl'}) {
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>'/adm/dropadd?action=drop',              ({href=>'/adm/dropadd?action=drop',
               text=>"Drop Students"});                text=>"Drop Students"});
Line 2522  sub handler { Line 2567  sub handler {
         } else {          } else {
             &print_drop_menu($r);              &print_drop_menu($r);
         }          }
     } elsif ($env{'form.action'} eq 'enrollstudent' && $enrl_permission) {      } elsif ($env{'form.action'} eq 'enrollstudent' && $permission->{'enrl'}) {
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>'/adm/dropadd?action=enrollstudent',              ({href=>'/adm/dropadd?action=enrollstudent',
               text=>"Enroll Student"});                text=>"Enroll Student"});
Line 2537  sub handler { Line 2582  sub handler {
         } else {          } else {
             &get_student_username_domain_form($r);              &get_student_username_domain_form($r);
         }          }
     } elsif ($env{'form.action'} eq 'classlist' && $view_permission) {      } elsif ($env{'form.action'} eq 'classlist' && $permission->{'view'}) {
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>'/adm/dropadd?action=classlist',              ({href=>'/adm/dropadd?action=classlist',
               text=>"View Classlist"});                text=>"View Classlist"});
         $r->print(&Apache::lonhtmlcommon::breadcrumbs('View Classlist',          $r->print(&Apache::lonhtmlcommon::breadcrumbs('View Classlist',
       'Course_View_Class_List'));        'Course_View_Class_List'));
         if (! exists($env{'form.state'})) {          if (! exists($env{'form.state'})) {
             &print_html_classlist($r,undef);              &print_html_classlist($r,undef,$permission);
         } elsif ($env{'form.state'} eq 'csv') {          } elsif ($env{'form.state'} eq 'csv') {
             &print_html_classlist($r,'csv');              &print_html_classlist($r,'csv',$permission);
         } elsif ($env{'form.state'} eq 'excel') {          } elsif ($env{'form.state'} eq 'excel') {
             &print_html_classlist($r,'excel');              &print_html_classlist($r,'excel',$permission);
         } else {          } else {
             &print_html_classlist($r,undef);              &print_html_classlist($r,undef,$permission);
         }          }
     } elsif ($env{'form.action'} eq 'modifystudent' && $enrl_permission) {      } elsif ($env{'form.action'} eq 'modifystudent' && $permission->{'enrl'}) {
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>'/adm/dropadd?action=modifystudent',              ({href=>'/adm/dropadd?action=modifystudent',
               text=>"Modify Student Data"});                text=>"Modify Student Data"});
         $r->print(&Apache::lonhtmlcommon::breadcrumbs('Modify Student Data',          $r->print(&Apache::lonhtmlcommon::breadcrumbs('Modify Student Data',
       'Course_Modify_Student_Data'));        'Course_Modify_Student_Data'));
         if (! exists($env{'form.state'})) {          if (! exists($env{'form.state'})) {
             &print_html_classlist($r);              &print_html_classlist($r,undef,$permission);
         } elsif ($env{'form.state'} eq 'selected') {          } elsif ($env{'form.state'} eq 'selected') {
             &print_modify_student_form($r);              &print_modify_student_form($r);
         } elsif ($env{'form.state'} eq 'done') {          } elsif ($env{'form.state'} eq 'done') {
             &modify_single_student($r);              &modify_single_student($r);
         } else {          } else {
             &print_html_classlist($r);              &print_html_classlist($r,undef,$permission);
         }                  }        
     } else {      } else {
         # We should not end up here, but I guess it is possible          # We should not end up here, but I guess it is possible
Line 2573  sub handler { Line 2618  sub handler {
                                  "form.action = ".$env{'form.action'}.                                   "form.action = ".$env{'form.action'}.
                                  "Someone should fix this.");                                   "Someone should fix this.");
         $r->print(&Apache::lonhtmlcommon::breadcrumbs('Enrollment Manager'));          $r->print(&Apache::lonhtmlcommon::breadcrumbs('Enrollment Manager'));
         &print_main_menu($r,$enrl_permission,$view_permission);          &print_main_menu($r,$permission);
     }      }
     #      #
     # Finish up      # Finish up

Removed from v.1.162  
changed lines
  Added in v.1.165


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