version 1.177, 2008/12/05 19:19:28
|
version 1.179, 2012/04/24 21:05:15
|
Line 74 ENDHEAD
|
Line 74 ENDHEAD
|
|
|
=pod |
=pod |
|
|
=item modifystudent() |
|
|
|
Drop student from all sections of a course, except optional $csec |
|
|
|
=cut |
|
|
|
sub modifystudent { |
|
my ($udom,$unam,$courseid,$csec,$desiredhost)=@_; |
|
# 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 |
|
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 |
|
return "$1" if ($tmp =~ /^(con_lost|error|no_such_host)/i); |
|
# Go through the roles looking for enrollment in this course |
|
my $result = ''; |
|
foreach my $course (keys(%roles)) { |
|
if ($course=~m{^/\Q$cdom\E/\Q$cnum\E(?:\/)*(?:\s+)*(\w+)*\_st$}) { |
|
# We are in this course |
|
my $section=$1; |
|
$section='' if ($course eq "/$cdom/$cnum".'_st'); |
|
if (defined($csec) && $section eq $csec) { |
|
$result .= 'ok:'; |
|
} elsif ( ((!$section) && (!$csec)) || ($section ne $csec) ) { |
|
my (undef,$end,$start)=split(/\_/,$roles{$course}); |
|
my $now=time; |
|
# if this is an active role |
|
if (!($start && ($now<$start)) || !($end && ($now>$end))) { |
|
my $reply=&Apache::lonnet::modifystudent |
|
# dom name id mode pass f m l g |
|
($udom,$unam,'', '', '',undef,undef,undef,undef, |
|
$section,time,undef,undef,$desiredhost); |
|
$result .= $reply.':'; |
|
} |
|
} |
|
} |
|
} |
|
if ($result eq '') { |
|
$result = 'Unable to find section for this student'; |
|
} else { |
|
$result =~ s/(ok:)+/ok/g; |
|
} |
|
return $result; |
|
} |
|
|
|
=pod |
|
|
|
=item domain_form() |
=item domain_form() |
|
|
build a domain and server selection form |
build a domain and server selection form |
Line 2625 sub upfile_drop_add {
|
Line 2575 sub upfile_drop_add {
|
} |
} |
} |
} |
} # end of foreach (@studentdata) |
} # end of foreach (@studentdata) |
$r->print("</p>\n<p>\n".&mt('Processed [_1] student(s).',$count). |
$r->print("</p>\n<p>\n".&mt('Processed [quant,_1,student].',$count). |
"</p>\n"); |
"</p>\n"); |
$r->print("<p>\n". |
$r->print("<p>\n". |
&mt('If active, the new role will be available when the '. |
&mt('If active, the new role will be available when the '. |
Line 2676 sub drop_student_list {
|
Line 2626 sub drop_student_list {
|
'<br />'); |
'<br />'); |
} |
} |
} |
} |
$r->print('<p><b>'.&mt('Dropped [_1] student(s).',$count).'</b></p>'); |
$r->print('<p><b>'.&mt('Dropped [quant,_1,student].',$count).'</b></p>'); |
$r->print('<p>'.&mt('Re-enrollment will re-activate data.')) if ($count); |
$r->print('<p>'.&mt('Re-enrollment will re-activate data.')) if ($count); |
} |
} |
|
|