version 1.163, 2007/07/17 21:24:17
|
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 2419 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 2477 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 2507 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 2528 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 2541 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 2556 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 2592 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 |