--- loncom/html/adm/helper/resettimes.helper 2009/02/16 15:47:21 1.8
+++ loncom/html/adm/helper/resettimes.helper 2016/03/17 15:10:10 1.10
@@ -72,13 +72,45 @@
&Apache::lonnet::logthis($helper->{'VARS'}{'delete'});
foreach my $escsymb (split(/\|\|\|/,$helper->{'VARS'}{'delete'})) {
my $symb=&Apache::lonnet::unescape($escsymb);
+ my $key = "$courseid\0$symb";
+ my $title =
+ ($symb ne 'course') ? &Apache::lonnet::gettitle($symb)
+ : $env{'course.'.$courseid.'.description'};
my $res=&Apache::lonnet::del('firstaccesstimes',
- ["$courseid\0$symb"],$udom,$uname);
- my $title =
- ($symb ne 'course') ? &Apache::lonnet::gettitle($symb)
- : $env{'course.'.$env{'request.course.id'}.'.description'};
- $result.="Removing access time from ".
- $title.": ".$res.'
';
+ [$key],$udom,$uname);
+ $result.="Removing access time from ".
+ $title.": ".$res.'';
+ if ($res eq 'ok') {
+ if ($symb ne 'course') {
+ my $what = [];
+ my ($storeunder,@recurseup,$recursed);
+ my $mapp = &Apache::lonnet::deversion((
+ &Apache::lonnet::decode_symb($symb))[2]);
+ if ($symb =~ /\.(page|sequence)$/) {
+ $storeunder = $env{'request.course.id'}.'.'.$mapp.'___(all).0.interval';
+ $what = [$storeunder,'map'];
+ } else {
+ $storeunder = $env{'request.course.id'}.'.'.$symb.'.0.interval';
+ $what = [$storeunder,'resource'];
+ }
+ &Apache::lonnet::del('timerinterval',[$key],$udom,$uname);
+ my $userreply=&Apache::lonnet::resdata($uname,$udom,'user',$mapp,
+ \$recursed,\@recurseup,
+ $env{'request.course.id'},
+ '.','0.interval',($what));
+ if (ref($userreply) eq 'ARRAY') {
+ if ($userreply->[0] =~ /^\d+$/) {
+ if (($userreply->[1] eq 'map') || ($userreply->[1] eq 'resource')) {
+ my %storecontent=($storeunder => $userreply->[0],
+ $storeunder.'.type' => 'date_interval');
+ &Apache::lonnet::del
+ ('resourcedata',[keys(%storecontent)],$udom,$uname);
+ &Apache::lonparmset::log_parmset(\%storecontent,1,$uname,$udom);
+ }
+ }
+ }
+ }
+ }
}
$result=~s/$//;
return $result;
@@ -129,6 +161,17 @@
my $symb=$helper->{'VARS'}{'res2'};
my $key=$env{'request.course.id'}."\0".$symb;
my @names=split(/\|\|\|/,$helper->{'VARS'}{'stu1'});
+ my $what = [];
+ my ($storeunder,@recurseup,$recursed);
+ my $mapp = &Apache::lonnet::deversion((
+ &Apache::lonnet::decode_symb($symb))[2]);
+ if ($symb =~ /\.(page|sequence)$/) {
+ $storeunder = $env{'request.course.id'}.'.'.$mapp.'___(all).0.interval';
+ $what = [$storeunder,'map'];
+ } else {
+ $storeunder = $env{'request.course.id'}.'.'.$symb.'.0.interval';
+ $what = [$storeunder,'resource'];
+ }
foreach my $name (@names) {
my ($uname,$udom,$sec,$fullname)=split(':',$name);
if (!$fullname) { $fullname="$uname\@$udom"; }
@@ -140,8 +183,28 @@
$result.="Removing access times ".
&Apache::lonlocal::locallocaltime($times{$key}).
" found for student ".$fullname.": ";
- $result.=&Apache::lonnet::del('firstaccesstimes',
+ my $delres=&Apache::lonnet::del('firstaccesstimes',
[$key],$udom,$uname);
+ $result.=$delres;
+ if ($delres eq 'ok') {
+ &Apache::lonnet::del('timerinterval',
+ [$key],$udom,$uname);
+ my $userreply=&Apache::lonnet::resdata($uname,$udom,'user',$mapp,
+ \$recursed,\@recurseup,
+ $env{'request.course.id'},
+ '.','0.interval',($what));
+ if (ref($userreply) eq 'ARRAY') {
+ if ($userreply->[0] =~ /^\d+$/) {
+ if (($userreply->[1] eq 'map') || ($userreply->[1] eq 'resource')) {
+ my %storecontent=($storeunder => $userreply->[0],
+ $storeunder.'.type' => 'date_interval');
+ my $reply = &Apache::lonnet::del
+ ('resourcedata',[keys(%storecontent)],$udom,$uname);
+ &Apache::lonparmset::log_parmset(\%storecontent,1,$uname,$udom);
+ }
+ }
+ }
+ }
}
$result.="\n";
}