ENDONE
foreach my $task (@{$tasksref}) {
if ($task eq $action) {
@@ -272,9 +272,7 @@ ENDONE
$r->print("
-
-
-
");
+
");
}
###############################################################
@@ -429,7 +427,7 @@ Note: Any students added manually by cou
}
my $dateshow;
if ( ($oldendshow eq '') && ($oldstartshow eq '') ) {
- $dateshow = " Warning. Currently NO first enrollment or last enrollment dates are set. You must use this menu to set a start date and an end date if you plan to utilise automated adds and/or drops in this course.\n";
+ $dateshow = " Warning. Currently NO first enrollment or last enrollment dates are set. You must use this menu to set a start date and an end date if you plan to utilise automated adds and/or drops in this course.\n";
} else {
$dateshow = "Currently: First enrollment: $oldstartshow, Last enrollment: $oldendshow\n";
}
@@ -508,8 +506,7 @@ ENDTWO
} elsif ($action eq "notify") {
my $notifycount = 0;
my @notified = split(/,/,$enrollvar{notifylist});
- my @domcoord;
- my @showdom;
+ my (@domcoord,@showdom,@olddomcoord,@futuredomcoord);
for (my $i=0; $i<@notified; $i++) {
if ($notified[$i] !~ /:/) {
$notified[$i] =~ s/\@/:/;
@@ -522,12 +519,26 @@ ENDTWO
} else {
$noteset = "OFF";
}
+ my $now = time;
my %dompersonnel = &Apache::lonnet::get_domain_roles($dom,['dc']);
foreach my $server (keys(%dompersonnel)) {
foreach my $user (sort(keys(%{$dompersonnel{$server}}))) {
my ($trole,$uname,$udom,$runame,$rudom,$rsec) = split(/:/,$user);
- if (!grep(/^$uname:$udom$/,@domcoord)) {
- push(@domcoord,$uname.':'.$udom);
+ my ($end,$start) = split(':',$dompersonnel{$server}{$user});
+ if (($end eq '') || ($end == 0) || ($end > $now)) {
+ if ($start > $now) {
+ if (!grep(/^\Q$uname\E:\Q$udom\E$/,@futuredomcoord)) {
+ push(@futuredomcoord,$uname.':'.$udom);
+ }
+ } else {
+ if (!grep(/^\Q$uname\E:\Q$udom\E$/,@domcoord)) {
+ push(@domcoord,$uname.':'.$udom);
+ }
+ }
+ } else {
+ if (!grep(/^\Q$uname\E:\Q$udom\E$/,@olddomcoord)) {
+ push(@olddomcoord,$uname.':'.$udom);
+ }
}
}
}
@@ -565,7 +576,6 @@ ENDTWO
my %pname;
my %notifystate;
my %status;
- my $now = time;
foreach my $person (sort(keys(%coursepersonnel))) {
my $match = 0;
my ($role,$user,$usec) = ($person =~ /^([^:]+):([^:]+:[^:]+):([^:]*)/);
@@ -601,6 +611,7 @@ ENDTWO
usnm => 'username:domain',
coac => 'Course Access',
curn => 'Current notification status',
+ doms => 'Domain Coordinator status',
notf => 'Notification?',
ntac => 'Notification active',
ntin => 'Notification inactive',
@@ -630,7 +641,7 @@ ENDTWO
if (grep(/^$viewer$/,@domcoord)) {
$showalldc = 1;
}
- foreach my $dc (@domcoord) {
+ foreach my $dc (@domcoord,@futuredomcoord) {
if (!grep(/^$dc$/,@ccs)) {
if (grep(/^$dc$/,@notified)) {
$notifystate{$dc} = 1;
@@ -645,6 +656,16 @@ ENDTWO
push(@showdom,$dc);
}
}
+ foreach my $olddc (@olddomcoord) {
+ if (grep(/^$olddc$/,@notified)) {
+ if (!grep(/^\Q$olddc\E$/,@ccs)) {
+ $notifystate{$olddc} = 1;
+ my ($dcname,$dcdom) = split(/:/,$olddc);
+ $pname{$olddc} = &Apache::loncommon::plainname($dcname,$dcdom);
+ push(@showdom,$olddc);
+ }
+ }
+ }
my $showdomnum = scalar(@showdom);
if ($showdomnum) {
$r->print("
@@ -662,8 +683,8 @@ ENDTWO
");
if ($notifycount) {
- $r->print(&mt("Uncheck the checkbox(es) to terminate notification for people currently informed of roster changes from the nightly enrollment update. "));
+ $r->print(&mt('Uncheck the checkbox(es) to terminate notification for people currently informed of roster changes from the nightly enrollment update.').' ');
}
if ((@ccs + @showdom) > $notifycount) {
- $r->print(&mt("Check the checkbox(es) to initiate notification for people not currently informed of roster changes from the nightly enrollment update. "));
+ $r->print(&mt('Check the checkbox(es) to initiate notification for people not currently informed of roster changes from the nightly enrollment update.').' ');
}
$r->print(&mt("Click 'Go' to save your changes.")."
@@ -1132,7 +1153,8 @@ onclick="javascript:document.photoupdate
my ($indexhash,$keylist) = &Apache::lonuserutils::make_keylist_array();
my $classlist = &Apache::loncoursedata::get_classlist();
my $secidx = &Apache::loncoursedata::CL_SECTION();
- my ($permission,$allowed) = &Apache::lonuserutils::get_permission();
+ my $crstype =&Apache::loncommon::course_type();
+ my ($permission,$allowed) = &Apache::lonuserutils::get_permission('course',$crstype);
foreach my $student (keys(%{$classlist})) {
if (exists($permission->{'view_section'})) {
if ($classlist->{$student}[$secidx] ne $permission->{'view_section'}) {
@@ -1168,14 +1190,14 @@ onclick="javascript:document.photoupdate
if ($autocount > 0) {
$cellcount ++;
$r->print(<