public function process_approved_deletions() : array {
        $this->trace->output('Checking requirements');
        if (!$this->check_requirements()) {
            $this->trace->output('Requirements not met. Cannot process expired retentions.', 1);
            return [0, 0];
        }

        $this->trace->output('Fetching all approved and expired contexts for deletion.');
        $expiredcontexts = expired_context::get_records(['status' => expired_context::STATUS_APPROVED]);
        $this->trace->output('Done.', 1);
        $totalprocessed = 0;
        $usercount = 0;
        $coursecount = 0;
        foreach ($expiredcontexts as $expiredctx) {
            $context = \context::instance_by_id($expiredctx->get('contextid'), IGNORE_MISSING);

            if (empty($context)) {
                // Unable to process this request further.
                // We have no context to delete.
                $expiredctx->delete();
                continue;
            }

            $this->trace->output("Deleting data for " . $context->get_context_name(), 2);
            if ($this->delete_expired_context($expiredctx)) {
                $this->trace->output("Done.", 3);
                if ($context instanceof \context_user) {
                    $usercount++;
                } else {
                    $coursecount++;
                }

                $totalprocessed++;
                if ($totalprocessed >= $this->get_delete_limit()) {
                    break;
                }
            }
        }

        return [$coursecount, $usercount];
    }
public function process_approved_deletions() : array {
        $this->trace->output('Checking requirements');
        if (!$this->check_requirements()) {
            $this->trace->output('Requirements not met. Cannot process expired retentions.', 1);
            return [0, 0];
        }

        $this->trace->output('Fetching all approved and expired contexts for deletion.');
        $expiredcontexts = expired_context::get_records(['status' => expired_context::STATUS_APPROVED]);
        $this->trace->output('Done.', 1);
        $totalprocessed = 0;
        $usercount = 0;
        $coursecount = 0;
        foreach ($expiredcontexts as $expiredctx) {
            $context = \context::instance_by_id($expiredctx->get('contextid'), IGNORE_MISSING);

            if (empty($context)) {
                // Unable to process this request further.
                // We have no context to delete.
                $expiredctx->delete();
                continue;
            }

            $this->trace->output("Deleting data for " . $context->get_context_name(), 2);
            if ($this->delete_expired_context($expiredctx)) {
                $this->trace->output("Done.", 3);
                if ($context instanceof \context_user) {
                    $usercount++;
                } else {
                    $coursecount++;
                }

                $totalprocessed++;
                if ($totalprocessed >= $this->get_delete_limit()) {
                    break;
                }
            }
        }

        return [$coursecount, $usercount];
    }
public function process_approved_deletions ( ) : array { $ this -> trace -> output ( 'Checking requirements' ) ; if ( ! $ this -> check_requirements ( ) ) { $ this -> trace -> output ( 'Requirements not met. Cannot process expired retentions.' , 1 ) ; return [ 0 , 0 ] ; } $ this -> trace -> output ( 'Fetching all approved and expired contexts for deletion.' ) ; $ expiredcontexts = expired_context :: get_records ( [ 'status' => expired_context :: STATUS_APPROVED ] ) ; $ this -> trace -> output ( 'Done.' , 1 ) ; $ totalprocessed = 0 ; $ usercount = 0 ; $ coursecount = 0 ; foreach ( $ expiredcontexts as $ expiredctx ) { $ context = \ context :: instance_by_id ( $ expiredctx -> get ( 'contextid' ) , IGNORE_MISSING ) ; if ( empty ( $ context ) ) { // Unable to process this request further. // We have no context to delete. $ expiredctx -> delete ( ) ; continue ; } $ this -> trace -> output ( "Deleting data for " . $ context -> get_context_name ( ) , 2 ) ; if ( $ this -> delete_expired_context ( $ expiredctx ) ) { $ this -> trace -> output ( "Done." , 3 ) ; if ( $ context instanceof \ context_user ) { $ usercount ++ ; } else { $ coursecount ++ ; } $ totalprocessed ++ ; if ( $ totalprocessed >= $ this -> get_delete_limit ( ) ) { break ; } } } return [ $ coursecount , $ usercount ] ; }
Deletes the expired contexts.

@return  int[]       The number of deleted contexts.
Deletes the expired contexts .