--- loncom/interface/loncreateuser.pm 2008/08/27 22:00:11 1.249.2.7 +++ loncom/interface/loncreateuser.pm 2008/07/07 23:54:27 1.250 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.249.2.7 2008/08/27 22:00:11 raeburn Exp $ +# $Id: loncreateuser.pm,v 1.250 2008/07/07 23:54:27 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -967,7 +967,7 @@ sub display_existing_roles { if (defined($coursedata{'description'})) { $carea=$coursedata{'description'}. '
'.&mt('Domain').': '.$coursedom.(' 'x8). - &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$coursedir,$coursedom); + &Apache::loncommon::syllabuswrapper('Syllabus',$coursedir,$coursedom); $sortkey.="\0".$coursedata{'description'}; $class=$coursedata{'type'}; } else { @@ -1396,12 +1396,10 @@ sub modify_login_block { } sub personal_data_display { - my ($ccuname,$ccdomain,$newuser,$context,$inst_results,$rolesarray) = @_; + my ($ccuname,$ccdomain,$newuser,$context,$inst_results) = @_; my ($output,$showforceid,%userenv,%canmodify); my @userinfo = ('firstname','middlename','lastname','generation', 'permanentemail','id'); - my $rowcount = 0; - my $editable = 0; if (!$newuser) { # Get the users information %userenv = &Apache::lonnet::get('environment', @@ -1409,10 +1407,7 @@ sub personal_data_display { 'permanentemail','id'],$ccdomain,$ccuname); %canmodify = &Apache::lonuserutils::can_modify_userinfo($context,$ccdomain, - \@userinfo,$rolesarray); - } elsif ($context eq 'selfcreate') { - %canmodify = &selfcreate_canmodify($context,$ccdomain,\@userinfo, - $inst_results,$rolesarray); + \@userinfo); } my %lt=&Apache::lonlocal::texthash( 'pd' => "Personal Data", @@ -1421,7 +1416,7 @@ sub personal_data_display { 'lastname' => "Last Name", 'generation' => "Generation", 'permanentemail' => "Permanent e-mail address", - 'id' => "Student/Employee ID", + 'id' => "ID/Student Number", 'lg' => "Login Data" ); my %textboxsize = ( @@ -1437,93 +1432,40 @@ sub personal_data_display { &Apache::lonhtmlcommon::start_pick_box(); foreach my $item (@userinfo) { my $rowtitle = $lt{$item}; - my $hiderow = 0; if ($item eq 'generation') { $rowtitle = $genhelp.$rowtitle; } - my $row = &Apache::lonhtmlcommon::row_title($rowtitle,undef,'LC_oddrow_value')."\n"; + $output .= &Apache::lonhtmlcommon::row_title($rowtitle,undef,'LC_oddrow_value')."\n"; if ($newuser) { if (ref($inst_results) eq 'HASH') { if ($inst_results->{$item} ne '') { - $row .= ''.$inst_results->{$item}; + $output .= ''.$inst_results->{$item}; } else { - if ($context eq 'selfcreate') { - if ($canmodify{$item}) { - $row .= ''; - $editable ++; - } else { - $hiderow = 1; - } - } else { - $row .= ''; - } + $output .= ''; } } else { - if ($context eq 'selfcreate') { - if ($canmodify{$item}) { - $row .= ''; - $editable ++; - } else { - $hiderow = 1; - } - } else { - $row .= ''; - } + $output .= ''; } } else { if ($canmodify{$item}) { - $row .= ''; + $output .= ''; } else { - $row .= $userenv{$item}; + $output .= $userenv{$item}; } if ($item eq 'id') { $showforceid = $canmodify{$item}; } } - $row .= &Apache::lonhtmlcommon::row_closure(1); - if (!$hiderow) { - $output .= $row; - $rowcount ++; - } + $output .= &Apache::lonhtmlcommon::row_closure(1); } $output .= &Apache::lonhtmlcommon::end_pick_box(); if (wantarray) { - if ($context eq 'selfcreate') { - return($output,$rowcount,$editable); - } else { - return ($output,$showforceid); - } + return ($output,$showforceid); } else { return $output; } } -sub selfcreate_canmodify { - my ($context,$dom,$userinfo,$inst_results,$rolesarray) = @_; - if (ref($inst_results) eq 'HASH') { - my @inststatuses = &get_inststatuses($inst_results); - if (@inststatuses == 0) { - @inststatuses = ('default'); - } - $rolesarray = \@inststatuses; - } - my %canmodify = - &Apache::lonuserutils::can_modify_userinfo($context,$dom,$userinfo, - $rolesarray); - return %canmodify; -} - -sub get_inststatuses { - my ($insthashref) = @_; - my @inststatuses = (); - if (ref($insthashref) eq 'HASH') { - if (ref($insthashref->{'inststatus'}) eq 'ARRAY') { - @inststatuses = @{$insthashref->{'inststatus'}}; - } - } - return @inststatuses; -} - # ================================================================= Phase Three sub update_user_data { my ($r,$context) = @_; @@ -1847,7 +1789,7 @@ sub update_user_data { $env{'form.c'.$item} = $userenv{$item}; } } - # Check to see if we can change the Student/Employee ID + # Check to see if we can change the ID/student number my $forceid = $env{'form.forceid'}; my $recurseid = $env{'form.recurseid'}; my (%alerts,%rulematch,%idinst_results,%curr_rules,%got_rules); @@ -1858,10 +1800,7 @@ sub update_user_data { (!$forceid)) { if ($env{'form.cid'} ne $uidhash{$env{'form.ccuname'}}) { $env{'form.cid'} = $userenv{'id'}; - $no_forceid_alert = &mt('New Student/Employee ID does not match existing ID for this user.') - .'
' - .&mt("Change is not permitted without checking the 'Force ID change' checkbox on the previous page.") - .'
'."\n"; + $no_forceid_alert = &mt('New student/employeeID does not match existing ID for this user.').'
'.&mt('Change is not permitted without checking the \'Force ID change\' checkbox on the previous page.').'
'."\n"; } } if ($env{'form.cid'} ne $userenv{'id'}) { @@ -1975,7 +1914,7 @@ sub update_user_data { 'mddl' => "middle", 'lst' => "last", 'gen' => "generation", - 'id' => "Student/Employee ID", + 'id' => "ID/Student number", 'mail' => "permanent e-mail", 'disk' => "disk space allocated to portfolio files", 'prvs' => "Previous", @@ -2058,7 +1997,7 @@ END # They did not want to change the users name or quota but we can # still tell them what the name and quota are my %lt=&Apache::lonlocal::texthash( - 'id' => "Student/Employee ID", + 'id' => "ID/Student number", 'mail' => "Permanent e-mail", 'disk' => "Disk space allocated to user's portfolio files", ); @@ -2101,10 +2040,8 @@ END $r->print(''.$rolestr.'
'. &mt('Contact your helpdesk for more information.',"javascript:helpMenu('display')").'
'); } - $r->print('' - .$no_forceid_alert - .&Apache::lonuserutils::print_namespacing_alerts($env{'form.ccdomain'},\%alerts,\%curr_rules) - .''); + $r->print($no_forceid_alert. + &Apache::lonuserutils::print_namespacing_alerts($env{'form.ccdomain'},\%alerts,\%curr_rules)); } if ($env{'form.action'} eq 'singlestudent') { &enroll_single_student($r,$uhome,$amode,$genpwd,$now,$newuser,$context); @@ -3412,32 +3349,14 @@ function getIndexByName(item) { return -1; } ENDSCRIPT - my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; - my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; - my $output = ''."\n". - '

'.$lt->{'selfenroll'}.'

'."\n"; - my ($visible,$cansetvis,$vismsgs,$visactions) = &visible_in_cat($cdom,$cnum); - if (ref($visactions) eq 'HASH') { - if ($visible) { - $output .= '

'.$visactions->{'vis'}.'

'; - } else { - $output .= $visactions->{'miss'}.'
'.$visactions->{'yous'}. - '

'.$visactions->{'gen'}.'
'.$visactions->{'coca'}; - if (ref($vismsgs) eq 'ARRAY') { - $output .= '
'.$visactions->{'make'}.'

'; - } - $output .= '

'; - } - } - $output .= '
'."\n". - &Apache::lonhtmlcommon::start_pick_box(); + '

'.$lt->{'selfenroll'}.'

'."\n". + ''."\n". + &Apache::lonhtmlcommon::start_pick_box(); + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $cnum = $env{'course.'.$env{'request.course.id'},'.num'}; if (ref($row) eq 'ARRAY') { foreach my $item (@{$row}) { my $title = $item; @@ -3589,128 +3508,6 @@ ENDSCRIPT return; } -sub visible_in_cat { - my ($cdom,$cnum) = @_; - my %domconf = &Apache::lonnet::get_dom('configuration',['coursecategories'],$cdom); - my ($cathash,%settable,@vismsgs,$cansetvis); - my %visactions = &Apache::lonlocal::texthash( - vis => 'Your course currently appears in the Course Catalog for this domain.', - gen => 'Courses can be both self-cataloging, based on an institutional code (e.g., fs08phy231), or can be assigned categories from a hierarchy defined for the domain.', - miss => 'Your course does not currently appear in the Course Catalog for this domain.', - yous => 'You should remedy this if you plan to allow self-enrollment, otherwise students will have difficulty finding your course.', - coca => 'Courses can be absent from the Catalog, because they do not have an institutional code, have no assigned category, or have been specifically excluded.', - make => 'Make any changes to self-enrollment settings below, click "Save changes", then take action to include the course in the Catalog:', - take => 'Take the following action to ensure the course appears in the Catalog:', - dc_unhide => 'Ask a domain coordinator to change the "Exclude from course catalog" setting.', - dc_addinst => 'Ask a domain coordinator to enable display the catalog of "Official courses (with institutional codes)".', - dc_instcode => 'Ask a domain coordinator to assign an institutional code (if this is an official course).', - dc_catalog => 'Ask a domain coordinator to enable or create at least one course category in the domain.', - dc_categories => 'Ask a domain coordinator to create a hierarchy of categories and sub categories for courses in the domain.', - dc_chgcat => 'Ask a domain coordinator to change the category assigned to the course, as the one currently assigned is no longer used in the domain', - dc_addcat => 'Ask a domain coordinator to assign a category to the course.', - ); - $visactions{'unhide'} = &mt('Use [_1]Set course environment[_2] to change the "Exclude from course catalog" setting.','"','"'); - $visactions{'chgcat'} = &mt('Use [_1]Set course environment[_2] to change the category assigned to the course, as the one currently assigned is no longer used in the domain.','"','"'); - $visactions{'addcat'} = &mt('Use [_1]Set course environment[_2] to assign a category to the course.','"','"'); - if (ref($domconf{'coursecategories'}) eq 'HASH') { - if ($domconf{'coursecategories'}{'togglecats'} eq 'crs') { - $settable{'togglecats'} = 1; - } - if ($domconf{'coursecategories'}{'categorize'} eq 'crs') { - $settable{'categorize'} = 1; - } - $cathash = $domconf{'coursecategories'}{'cats'}; - } - if ($settable{'togglecats'} && $settable{'categorize'}) { - $cansetvis = &mt('You are able to both assign a course category and choose to exclude this course from the catalog.'); - } elsif ($settable{'togglecats'}) { - $cansetvis = &mt('You are able to choose to exclude this course from the catalog, but only a Domain Coordinator may assign a course category.'); - } elsif ($settable{'categorize'}) { - $cansetvis = &mt('You may assign a course category, but only a Domain Coordinator may choose to exclude this course from the catalog.'); - } else { - $cansetvis = &mt('Only a Domain Coordinator may assign a course category or choose to exclude this course from the catalog.'); - } - - my %currsettings = - &Apache::lonnet::get('environment',['hidefromcat','categories','internal.coursecode'], - $cdom,$cnum); - my $visible = 0; - if ($currsettings{'internal.coursecode'} ne '') { - if (ref($domconf{'coursecategories'}) eq 'HASH') { - $cathash = $domconf{'coursecategories'}{'cats'}; - if (ref($cathash) eq 'HASH') { - if ($cathash->{'instcode::0'} eq '') { - push(@vismsgs,'dc_addinst'); - } else { - $visible = 1; - } - } else { - $visible = 1; - } - } else { - $visible = 1; - } - } else { - if (ref($cathash) eq 'HASH') { - if ($cathash->{'instcode::0'} ne '') { - push(@vismsgs,'dc_instcode'); - } - } else { - push(@vismsgs,'dc_instcode'); - } - } - if ($currsettings{'categories'} ne '') { - my $cathash; - if (ref($domconf{'coursecategories'}) eq 'HASH') { - $cathash = $domconf{'coursecategories'}{'cats'}; - if (ref($cathash) eq 'HASH') { - if (keys(%{$cathash}) == 0) { - push(@vismsgs,'dc_catalog'); - } elsif ((keys(%{$cathash}) == 1) && ($cathash->{'instcode::0'} ne '')) { - push(@vismsgs,'dc_categories'); - } else { - my @currcategories = split('&',$currsettings{'categories'}); - my $matched = 0; - foreach my $cat (@currcategories) { - if ($cathash->{$cat} ne '') { - $visible = 1; - $matched = 1; - last; - } - } - if (!$matched) { - if ($settable{'categorize'}) { - push(@vismsgs,'chgcat'); - } else { - push(@vismsgs,'dc_chgcat'); - } - } - } - } - } - } else { - if (ref($cathash) eq 'HASH') { - if ((keys(%{$cathash}) > 1) || - (keys(%{$cathash}) == 1) && ($cathash->{'instcode::0'} eq '')) { - if ($settable{'categorize'}) { - push(@vismsgs,'addcat'); - } else { - push(@vismsgs,'dc_addcat'); - } - } - } - } - if ($currsettings{'hidefromcat'} eq 'yes') { - $visible = 0; - if ($settable{'togglecats'}) { - unshift(@vismsgs,'unhide'); - } else { - unshift(@vismsgs,'dc_unhide') - } - } - return ($visible,$cansetvis,\@vismsgs,\%visactions); -} - sub new_selfenroll_dom_row { my ($newdom,$num) = @_; my $domdesc = &Apache::lonnet::domain($newdom); @@ -3741,7 +3538,7 @@ sub selfenroll_inst_types { my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($currdom); my $othervalue = 'any'; if ((ref($types) eq 'ARRAY') && (ref($usertypes) eq 'HASH')) { - if (keys(%{$usertypes}) > 0) { + if (@{$types} > 0) { $othervalue = 'other'; } $output .= ''; @@ -3750,14 +3547,13 @@ sub selfenroll_inst_types { $output .= ''; } if (defined($usertypes->{$type})) { - my $esc_type = &escape($type); $output .= ''. &Apache::loncommon::end_data_table_header_row(); my ($minshown,$maxshown); - $minshown = 1; + my $minshown = 1; my $count = 0; if ($curr{'show'} ne &mt('all')) { $maxshown = $curr{'page'} * $curr{'show'}; @@ -4747,9 +4543,8 @@ sub update_selfenroll_config { my $othervalue = 'any'; if ((ref($types) eq 'ARRAY') && (ref($usertypes) eq 'HASH')) { if (@{$types} > 0) { - my @esc_types = map { &escape($_); } @{$types}; $othervalue = 'other'; - $typestr = join(',',(@esc_types,$othervalue)); + $typestr = join(',',(@{$types},$othervalue)); } $typestr = $othervalue; } else { @@ -4871,21 +4666,6 @@ sub update_selfenroll_config { } else { $r->print(&mt('No changes were made to the existing self-enrollment settings in this course.')); } - my ($visible,$cansetvis,$vismsgs,$visactions) = &visible_in_cat($cdom,$cnum); - if (ref($visactions) eq 'HASH') { - if (!$visible) { - $r->print('
'.$visactions->{'miss'}.'
'.$visactions->{'yous'}. - '
'); - if (ref($vismsgs) eq 'ARRAY') { - $r->print('
'.$visactions->{'take'}.''); - } - $r->print($cansetvis); - } - } return; } @@ -4895,8 +4675,8 @@ sub get_selfenroll_titles { types => 'Users allowed to self-enroll in this course', registered => 'Restrict self-enrollment to students officially registered for the course', enroll_dates => 'Dates self-enrollment available', - access_dates => 'Course access dates assigned to self-enrolling users', - section => 'Section assigned to self-enrolling users', + access_dates => 'Course access dates for self-enrolled users', + section => 'Section assigned to self-enrolled users', ); return (\@row,\%lt); }
'.&mt('Start').''.&mt('End').'