--- loncom/interface/Attic/londropadd.pm 2004/06/17 18:31:24 1.114
+++ loncom/interface/Attic/londropadd.pm 2005/03/10 17:33:57 1.126
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to drop and add students in courses
#
-# $Id: londropadd.pm,v 1.114 2004/06/17 18:31:24 raeburn Exp $
+# $Id: londropadd.pm,v 1.126 2005/03/10 17:33:57 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -43,10 +43,11 @@ use Apache::lonlocal;
###############################################################
###############################################################
sub header {
+ my $html=&Apache::lonxml::xmlbegin();
my $bodytag=&Apache::loncommon::bodytag('Enrollment Manager');
my $title = &mt('LON-CAPA Enrollment Manager');
return(<
- - $Text{'enrollone'} - $help{'Course_Add_Student'} -
- - $Text{'modify'} - $help{'Course_Modify_Student_Data'} -
- - $Text{'view'} - $help{'Course_View_Class_List'} -
- - $Text{'drop'} - $help{'Course_Drop_Student'} -
-END
+ my ($r,$enrl_permission,$view_permission)=@_;
+ #
my ($cdom,$cnum) = split/_/,$ENV{'request.course.id'};
- if (&Apache::lonnet::auto_run($cnum,$cdom) ) {
- $r->print(< ';
+ $menu_html.='';
+ if (exists($menu_item->{'url'})) {
+ $menu_html.=qq{};
+ } else {
+ $menu_html.=
+ qq{};
+ }
+ $menu_html.= &mt($menu_item->{'text'}).'';
+ if (exists($menu_item->{'help'})) {
+ $menu_html.=
+ &Apache::loncommon::help_open_topic($menu_item->{'help'});
+ }
+ $menu_html.=' ".&mt('If active, the new role will be available when the student next logs in to LON-CAPA.')."
+$lt{'hs'}:
$homeserver_form $lt{'mail'}:
+ $lt{'pswd'}
$lt{'psam'}
@@ -1004,6 +1023,7 @@ END
'mn' => "Middle Name",
'ln' => "Last Name",
'gen' => "Generation",
+ 'mail' => "Email Address",
);
$user_data_html = <
+
END
}
@@ -1231,8 +1255,7 @@ END
'sec' => "section",
'start' => "start date",
'end' => "end date",
- 'type' => "enroll type",
- 'chan' => "change"
+ 'type' => "enroll type/action"
);
unless ($mode eq 'autoenroll') {
$r->print(<$lt{'mail'}:
+
+
+
-
Count
-
+
+ ");
+ if ($mode eq 'autoenroll') {
+ $r->print("
+
END
- if ($mode eq 'autoenroll') {
- $r->print(" $lt{'type'}
+ ");
+ } else {
+ $r->print("
+Count
+ ");
+ }
+ $r->print(<
$lt{'dom'}
@@ -1259,16 +1293,8 @@ END
$lt{'end'}
+
- $lt{'type'}
-
- $lt{'chan'}? ");
- }
- $r->print("
-
- ");
} elsif ($mode eq 'csv') {
#
# Open a file
@@ -1300,14 +1326,9 @@ END
}
} elsif ($mode eq 'excel') {
# Create the excel spreadsheet
- $excel_filename = '/prtspool/'.
- $ENV{'user.name'}.'_'.$ENV{'user.domain'}.'_'.
- time.'_'.rand(1000000000).'.xls';
- $excel_workbook = Spreadsheet::WriteExcel->new('/home/httpd'.
- $excel_filename);
- $excel_workbook->set_tempdir('/home/httpd/perl/tmp');
- #
- $format = &Apache::loncommon::define_excel_formats($excel_workbook);
+ ($excel_workbook,$excel_filename,$format) =
+ &Apache::loncommon::create_workbook($r);
+ return if (! defined($excel_workbook));
$excel_sheet = $excel_workbook->addworksheet('classlist');
#
my $description = 'Class List for '.
@@ -1337,6 +1358,10 @@ END
lc($classlist->{$a}->[$third]) cmp lc($classlist->{$b}->[$third])
} (keys(%$classlist));
my $studentcount = 0;
+ my $autocount = 0;
+ my $manualcount = 0;
+ my $unlockcount = 0;
+ my $lockcount = 0;
foreach my $student (@Sorted_Students) {
my $sdata = $classlist->{$student};
my $username = $sdata->[$index{'username'}];
@@ -1347,7 +1372,7 @@ END
my $status = $sdata->[$index{'status'}];
my $start = $sdata->[$index{'start'}];
my $end = $sdata->[$index{'end'}];
- my $type = $sdata->[$index{'type'}];
+ my $type = $sdata->[$index{'type'}];
next if (($statusmode ne 'Any') && ($status ne $statusmode));
if ($mode eq 'view' || $mode eq 'html' || $mode eq 'autoenroll') {
if (! defined($start) || $start == 0) {
@@ -1360,7 +1385,30 @@ END
} else {
$end = &Apache::lonlocal::locallocaltime($end);
}
- $r->print("\n ".(++$studentcount)." \n ");
+ $r->print(" \n ");
+ if ($mode eq 'autoenroll') {
+ my $lockedtype = $sdata->[$index{'lockedtype'}];
+ $studentcount++;
+ my $cellentry;
+ if ($type eq 'auto') {
+ $cellentry = ''.&mt('auto').' Change';
+ $autocount ++;
+ } else {
+ $cellentry = '
END
- if ($mode eq 'autoenroll') {
- my $longtype = &mt('manual').' ';
- if ($type eq 'auto') {
- $longtype = &mt('auto').' ';
- }
- $r->print("
';
+ }
+ $r->print("'.&mt('manual').' $cellentry \n ");
+ } else {
+ $r->print(" ".(++$studentcount)." \n ");
+ }
if ($linkto eq 'nothing') {
$r->print($username);
} elsif ($linkto eq 'aboutme') {
@@ -1384,17 +1432,8 @@ END
$section
$start
$end
+ $longtype ");
- }
- $r->print("
-
- ");
} elsif ($mode eq 'csv') {
next if (! defined($CSVfile));
# no need to bother with $linkto
@@ -1443,8 +1482,9 @@ END
$r->rflush();
}
if ($mode eq 'autoenroll') {
- return $studentcount;
+ return ($studentcount,$autocount,$manualcount,$lockcount,$unlockcount);
}
+ return;
}
@@ -2241,14 +2281,23 @@ sub handler {
text=>"Enrollment Manager",
faq=>9,bug=>'Instructor Interface',});
# Needs to be in a course
- if (! (($ENV{'request.course.fn'}) &&
- (&Apache::lonnet::allowed('cst',$ENV{'request.course.id'})))) {
- # Not in a course, or not allowed to modify parms
+ if (! ($ENV{'request.course.fn'})) {
+ # Not in a course
$ENV{'user.error.msg'}=
"/adm/dropadd:cst:0:0:Cannot drop or add students";
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'});
+ if (! $view_permission && ! $enrl_permission) {
+ $ENV{'user.error.msg'}=
+ "/adm/dropadd:cst:0:0:Cannot drop or add students";
+ return HTTP_NOT_ACCEPTABLE;
+ }
+ #
# Only output the header information if they did not request csv format
#
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
@@ -2262,13 +2311,13 @@ sub handler {
if (! exists($ENV{'form.action'})) {
$r->print(&Apache::lonhtmlcommon::breadcrumbs
(undef,'Enrollment Manager'));
- &print_main_menu($r);
- } elsif ($ENV{'form.action'} eq 'upload') {
+ &print_main_menu($r,$enrl_permission,$view_permission);
+ } elsif ($ENV{'form.action'} eq 'upload' && $enrl_permission) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>'/adm/dropadd?action=upload&state=',
text=>"Upload Classlist"});
$r->print(&Apache::lonhtmlcommon::breadcrumbs
- (undef,'Upload Classlist'));
+ (undef,'Upload Classlist','Course_Create_Class_List'));
if (! exists($ENV{'form.state'})) {
&print_first_courselist_upload_form($r);
} elsif ($ENV{'form.state'} eq 'got_file') {
@@ -2282,12 +2331,12 @@ sub handler {
} else {
&print_first_courselist_upload_form($r);
}
- } elsif ($ENV{'form.action'} eq 'drop') {
+ } elsif ($ENV{'form.action'} eq 'drop' && $enrl_permission) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>'/adm/dropadd?action=drop',
text=>"Drop Students"});
$r->print(&Apache::lonhtmlcommon::breadcrumbs
- (undef,'Drop Students'));
+ (undef,'Drop Students','Course_Drop_Student'));
if (! exists($ENV{'form.state'})) {
&print_drop_menu($r);
} elsif ($ENV{'form.state'} eq 'done') {
@@ -2295,12 +2344,12 @@ sub handler {
} else {
&print_drop_menu($r);
}
- } elsif ($ENV{'form.action'} eq 'enrollstudent') {
+ } elsif ($ENV{'form.action'} eq 'enrollstudent' && $enrl_permission) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>'/adm/dropadd?action=enrollstudent',
text=>"Enroll Student"});
$r->print(&Apache::lonhtmlcommon::breadcrumbs
- (undef,'Enroll Student'));
+ (undef,'Enroll Student','Course_Add_Student'));
if (! exists($ENV{'form.state'})) {
&get_student_username_domain_form($r);
} elsif ($ENV{'form.state'} eq 'gotusername') {
@@ -2310,12 +2359,12 @@ sub handler {
} else {
&get_student_username_domain_form($r);
}
- } elsif ($ENV{'form.action'} eq 'classlist') {
+ } elsif ($ENV{'form.action'} eq 'classlist' && $view_permission) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>'/adm/dropadd?action=classlist',
text=>"View Classlist"});
$r->print(&Apache::lonhtmlcommon::breadcrumbs
- (undef,'View Classlist'));
+ (undef,'View Classlist','Course_View_Class_List'));
if (! exists($ENV{'form.state'})) {
&print_html_classlist($r,undef);
} elsif ($ENV{'form.state'} eq 'csv') {
@@ -2325,12 +2374,12 @@ sub handler {
} else {
&print_html_classlist($r,undef);
}
- } elsif ($ENV{'form.action'} eq 'modifystudent') {
+ } elsif ($ENV{'form.action'} eq 'modifystudent' && $enrl_permission) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>'/adm/dropadd?action=modifystudent',
text=>"Modify Student Data"});
$r->print(&Apache::lonhtmlcommon::breadcrumbs
- (undef,'Modify Student Data'));
+ (undef,'Modify Student Data','Course_Modify_Student_Data'));
if (! exists($ENV{'form.state'})) {
&print_html_classlist($r);
} elsif ($ENV{'form.state'} eq 'selected') {
@@ -2347,7 +2396,7 @@ sub handler {
"Someone should fix this.");
$r->print(&Apache::lonhtmlcommon::breadcrumbs
(undef,'Enrollment Manager'));
- &print_main_menu($r);
+ &print_main_menu($r,$enrl_permission,$view_permission);
}
#
# Finish up