--- loncom/interface/Attic/londropadd.pm 2006/11/23 00:17:01 1.149
+++ loncom/interface/Attic/londropadd.pm 2007/07/26 23:56:35 1.165
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to drop and add students in courses
#
-# $Id: londropadd.pm,v 1.149 2006/11/23 00:17:01 albertel Exp $
+# $Id: londropadd.pm,v 1.165 2007/07/26 23:56:35 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -40,6 +40,7 @@ use Spreadsheet::WriteExcel;
use Apache::lonstathelpers();
use Apache::lonlocal;
use Apache::longroup;
+use LONCAPA();
###############################################################
###############################################################
@@ -60,8 +61,8 @@ sub modifystudent {
# if $csec is undefined, drop the student from all the courses matching
# this one. If $csec is defined, drop them from all other sections of
# this course and add them to section $csec
- $courseid=~s/\_/\//g;
- $courseid=~s/^(\w)/\/$1/;
+ my $cdom = $env{'course.'.$courseid.'.domain'};
+ my $cnum = $env{'course.'.$courseid.'.num'};
my %roles = &Apache::lonnet::dump('roles',$udom,$unam);
my ($tmp) = keys(%roles);
# Bail out if we were unable to get the students roles
@@ -69,10 +70,10 @@ sub modifystudent {
# Go through the roles looking for enrollment in this course
my $result = '';
foreach my $course (keys(%roles)) {
- if ($course=~/^$courseid(?:\/)*(?:\s+)*(\w+)*\_st$/) {
+ if ($course=~m{^/\Q$cdom\E/\Q$cnum\E(?:\/)*(?:\s+)*(\w+)*\_st$}) {
# We are in this course
my $section=$1;
- $section='' if ($course eq $courseid.'_st');
+ $section='' if ($course eq "/$cdom/$cnum".'_st');
if (defined($csec) && $section eq $csec) {
$result .= 'ok:';
} elsif ( ((!$section) && (!$csec)) || ($section ne $csec) ) {
@@ -105,7 +106,7 @@ sub domain_form {
# Set up domain and server selection forms
#
# Get the domains
- my @domains = &Apache::loncommon::get_domains();
+ my @domains = &Apache::lonnet::all_domains();
# build up the menu information to be passed to
# &Apache::loncommon::linked_select_forms
my %select_menus;
@@ -116,7 +117,7 @@ sub domain_form {
$select_menus{$dom}->{'default'}= 'default';
$select_menus{$dom}->{'select2'}->{'default'} = 'default';
# Now build up the other items in the second menu
- my %servers = &Apache::loncommon::get_library_servers($dom);
+ my %servers = &Apache::lonnet::get_servers($dom,'library');
foreach my $server (keys(%servers)) {
$select_menus{$dom}->{'select2'}->{$server}
= "$server $servers{$server}";
@@ -132,59 +133,66 @@ sub domain_form {
###############################################################
# Menu Phase One
sub print_main_menu {
- my ($r,$enrl_permission,$view_permission,$grp_manage_permission,
- $grp_view_permission)=@_;
+ my ($r,$permission)=@_;
#
- my ($cdom,$cnum) = split/_/,$env{'request.course.id'};
+ my $cid =$env{'request.course.id'};
+ my $cdom=$env{'course.'.$cid.'.domain'};
+ my $cnum=$env{'course.'.$cid.'.num'};
my @menu =
(
{ text => 'Upload a class list',
help => 'Course_Create_Class_List',
action => 'upload',
- permission => $enrl_permission,
+ permission => $permission->{'enrl'},
},
{ text => 'Enroll a single student',
help => 'Course_Add_Student',
action => 'enrollstudent',
- permission => $enrl_permission,
+ permission => $permission->{'enrl'},
},
{ text => 'Modify student data',
help => 'Course_Modify_Student_Data',
action => 'modifystudent',
- permission => $enrl_permission,
+ permission => $permission->{'enrl'},
},
{ text => 'View Class List',
help => 'Course_View_Class_List',
action => 'classlist',
- permission => $view_permission,
+ permission => $permission->{'view'},
},
{ text => 'Drop Students',
help => 'Course_Drop_Student',
action => 'drop',
- permission => $enrl_permission,
+ permission => $permission->{'enrl'},
},
{ text => 'Automated Enrollment Manager',
- permission => &Apache::lonnet::auto_run($cnum,$cdom),
+ permission => (&Apache::lonnet::auto_run($cnum,$cdom)
+ && $permission->{'enrl'}),
url => '/adm/populate',
},
{ text => 'Create a new group',
help => 'Course_Create_Group',
- permission => $grp_manage_permission,
+ permission => $permission->{'grp_manage'},
url => '/adm/coursegroups?refpage=enrl&action=create',
},
{ text => 'Modify an existing group',
help => 'Course_Modify_Group',
- permission => $grp_manage_permission,
+ permission => $permission->{'grp_manage'},
url => '/adm/coursegroups?refpage=enrl&action=modify',
},
-# { text => 'Delete an existing group',
-# help => 'Course_Delete_Group',
-# permission => $grp_manage_permission,
-# url => '/adm/coursegroups?refpage=enrl&action=delete',
-# },
+ { text => 'Delete an existing group',
+ help => 'Course_Delete_Group',
+ permission => $permission->{'grp_manage'},
+ url => '/adm/coursegroups?refpage=enrl&action=delete',
+ },
+ { text => 'Re-enable a deleted group',
+ help => 'Course_Reenable_Group',
+ permission => $permission->{'grp_manage'},
+ url => '/adm/coursegroups?refpage=enrl&action=reenable',
+ },
{ text => 'Enter an existing group',
help => 'Course_Display_Group',
- permission => $grp_view_permission,
+ permission => $permission->{'grp_view'},
url => '/adm/coursegroups?refpage=enrl&action=view',
},
);
@@ -744,17 +752,21 @@ sub enroll_single_student {
}
$r->print('
");
}
sub setup_date_selectors {
@@ -873,7 +886,8 @@ sub date_setting_table {
my ($startform,$endform)=&setup_date_selectors($starttime,$endtime,$mode);
my $dateDefault = ''.
'';
+ &mt('make these dates the default for future enrollment').
+ '';
if ($mode eq 'create_enrolldates' || $mode eq 'create_defaultdates') {
$dateDefault = ' ';
}
@@ -936,11 +950,11 @@ sub get_student_username_domain_form {
$lt{'eos'}
-
$lt{'usr'}:
+
:
-
$lt{'dom'}:
+
:
$domform
-
+
@@ -957,10 +971,8 @@ sub print_enroll_single_student_form {
my $r=shift;
$r->print("
".&mt('Enroll One Student')."
");
#
- my $username = $env{'form.cuname'};
- my $domain = $env{'form.cudomain'};
- $username=~s/\W//gs;
- $domain=~s/\W//gs;
+ my $username = &LONCAPA::clean_username($env{'form.cuname'});
+ my $domain = &LONCAPA::clean_domain($env{'form.cudomain'});
my $home = &Apache::lonnet::homeserver($username,$domain);
# $new_user flags whether we are creating a new user or using an old one
my $new_user = 1;
@@ -986,7 +998,7 @@ sub print_enroll_single_student_form {
#
# Set up domain selection form
my $homeserver_form = '';
- my %servers = &Apache::loncommon::get_library_servers($domain);
+ my %servers = &Apache::lonnet::get_servers($domain,'library');
$homeserver_form = '';
- $r->print(&mt('Output Format: [_1]',$output_selector).(' 'x3));
+ $r->print(''.(' 'x3));
}
- $r->print(&mt('Student Status: [_1]',$status_select)."\n");
+ $r->print('\n");
$r->print(''.
"\n\n");
#
# Print the classlist
$r->print('
'.&mt('Current Class List').'
');
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)) {
$r->print(&mt('There are no students currently enrolled.')."\n");
} else {
@@ -1295,6 +1306,7 @@ END
'start' => "start date",
'end' => "end date",
'type' => "enroll type/action",
+ 'email' => "email address",
'photo' => "photo",
);
unless ($mode eq 'autoenroll') {
@@ -1347,6 +1359,8 @@ function photowindow(photolink) {
$lt{'end'}