--- loncom/interface/Attic/londropadd.pm 2004/06/09 17:08:27 1.113 +++ loncom/interface/Attic/londropadd.pm 2004/09/13 16:21:30 1.118 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to drop and add students in courses # -# $Id: londropadd.pm,v 1.113 2004/06/09 17:08:27 raeburn Exp $ +# $Id: londropadd.pm,v 1.118 2004/09/13 16:21:30 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -786,7 +786,7 @@ sub setup_date_selectors { my ($starttime,$endtime,$mode) = @_; if (! defined($starttime)) { $starttime = time; - unless ($mode eq 'createcourse') { + unless ($mode eq 'create_enrolldates' || $mode eq 'create_defaultdates') { if (exists($ENV{'course.'.$ENV{'request.course.id'}. '.default_enrollment_start_date'})) { $starttime = $ENV{'course.'.$ENV{'request.course.id'}. @@ -810,12 +810,20 @@ sub setup_date_selectors { my $enddateform = &Apache::lonhtmlcommon::date_setter('studentform', 'enddate', $endtime); - if ($mode eq 'createcourse') { + if ($mode eq 'create_enrolldates') { $startdateform = &Apache::lonhtmlcommon::date_setter('ccrs', - 'startdate', + 'startenroll', $starttime); $enddateform = &Apache::lonhtmlcommon::date_setter('ccrs', - 'enddate', + 'endenroll', + $endtime); + } + if ($mode eq 'create_defaultdates') { + $startdateform = &Apache::lonhtmlcommon::date_setter('ccrs', + 'startaccess', + $starttime); + $enddateform = &Apache::lonhtmlcommon::date_setter('ccrs', + 'endaccess', $endtime); } return ($startdateform,$enddateform); @@ -836,7 +844,7 @@ sub date_setting_table { my $dateDefault = ''. ' '. &mt('make these dates the default for future enrollment'); - if ($mode eq 'createcourse') { + if ($mode eq 'create_enrolldates' || $mode eq 'create_defaultdates') { $dateDefault = ' '; } my $perpetual = ''; + if ($mode eq 'create_enrolldates') { + $perpetual = ' '; + } my $result = ''; $result .= "\n"; $result .= ''. @@ -913,6 +924,8 @@ sub print_enroll_single_student_form { # my $username = $ENV{'form.cuname'}; my $domain = $ENV{'form.cudomain'}; + $username=~s/[\W|_]//gs; + $domain=~s/[\W|_]//gs; 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; @@ -1195,16 +1208,19 @@ sub show_class_list { my ($CSVfile,$CSVfilename); # my $sortby = $ENV{'form.sortby'}; - if ($sortby !~ /^(username|domain|section|fullname|id|start|end)$/) { + if ($sortby !~ /^(username|domain|section|fullname|id|start|end|type)$/) { $sortby = 'username'; } # Print out header - $r->print(<print(< +END + } + $r->print(< END - if ($mode eq 'html' || $mode eq 'view') { + if ($mode eq 'html' || $mode eq 'view' || $mode eq 'autoenroll') { if ($linkto eq 'aboutme') { $r->print(&mt('Select a user name to view the users personal page.')); } elsif ($linkto eq 'modify') { @@ -1217,14 +1233,30 @@ END 'sec' => "section", 'start' => "start date", 'end' => "end date", + 'type' => "enroll type/action" ); - $r->print(<print(< +END + } + $r->print("

'.&mt('Starting Date').'
- + "); + if ($mode eq 'autoenroll') { + $r->print(" + + "); + } else { + $r->print(" + + "); + } + $r->print(< $lt{'usrn'} - + END } elsif ($mode eq 'csv') { # @@ -1309,6 +1341,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'}]; @@ -1319,11 +1355,43 @@ END my $status = $sdata->[$index{'status'}]; my $start = $sdata->[$index{'start'}]; my $end = $sdata->[$index{'end'}]; + my $type = $sdata->[$index{'type'}]; next if (($statusmode ne 'Any') && ($status ne $statusmode)); - if ($mode eq 'view' || $mode eq 'html') { - $start = &Apache::lonlocal::locallocaltime($start); - $end = &Apache::lonlocal::locallocaltime($end); - $r->print("\n \n "); + if ($mode eq 'autoenroll') { + my $lockedtype = $sdata->[$index{'lockedtype'}]; + $studentcount++; + my $cellentry; + if ($type eq 'auto') { + $cellentry = ''.&mt('auto').'  Change'; + $autocount ++; + } else { + $cellentry = '
Count - +
$lt{'type'}Count $lt{'dom'} @@ -1239,7 +1271,7 @@ END $lt{'end'}
".(++$studentcount)."\n "); + if ($mode eq 'view' || $mode eq 'html' || $mode eq 'autoenroll') { + if (! defined($start) || $start == 0) { + $start = &mt('none'); + } else { + $start = &Apache::lonlocal::locallocaltime($start); + } + if (! defined($end) || $end == 0) { + $end = &mt('none'); + } else { + $end = &Apache::lonlocal::locallocaltime($end); + } + $r->print("
'.&mt('manual').' Change
'; + $manualcount ++; + if ($lockedtype) { + $cellentry .= ' '.&mt('Unlock'); + $unlockcount ++; + } else { + $cellentry .= ' '.&mt('Lock'); + $lockcount ++; + } + $cellentry .= '
'; + } + $r->print("$cellentry\n "); + } else { + $r->print("".(++$studentcount)."\n "); + } if ($linkto eq 'nothing') { $r->print($username); } elsif ($linkto eq 'aboutme') { @@ -1347,13 +1415,21 @@ END $section $start $end - + END } elsif ($mode eq 'csv') { next if (! defined($CSVfile)); # no need to bother with $linkto - $start = &Apache::lonlocal::locallocaltime($start); - $end = &Apache::lonlocal::locallocaltime($end); + if (! defined($start) || $start == 0) { + $start = &mt('none'); + } else { + $start = &Apache::lonlocal::locallocaltime($start); + } + if (! defined($end) || $end == 0) { + $end = &mt('none'); + } else { + $end = &Apache::lonlocal::locallocaltime($end); + } my @line = (); foreach ($username,$domain,$id,$name,$section,$start,$end) { push @line,&Apache::loncommon::csv_translate($_); @@ -1375,7 +1451,7 @@ END $row++; } } - if ($mode eq 'view' || $mode eq 'html') { + if ($mode eq 'view' || $mode eq 'html' || $mode eq 'autoenroll') { $r->print('
'); } elsif ($mode eq 'excel') { $excel_workbook->close(); @@ -1388,6 +1464,10 @@ END "\n"); $r->rflush(); } + if ($mode eq 'autoenroll') { + return ($studentcount,$autocount,$manualcount,$lockcount,$unlockcount); + } + return; } @@ -2211,7 +2291,7 @@ sub handler { ({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') { @@ -2230,7 +2310,7 @@ sub handler { ({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') { @@ -2243,7 +2323,7 @@ sub handler { ({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') { @@ -2258,7 +2338,7 @@ sub handler { ({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') { @@ -2273,7 +2353,7 @@ sub handler { ({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') {