mirror of
https://github.com/moodle/moodle.git
synced 2025-04-13 04:22:07 +02:00
MDL-60357 search: Ensure that the document is valid
We were previously testing tha the parent is valid, which it was, and then fetching the current record, before fetching data from it. However, the way in which the recordset walk works, the valid function checks whether the _record_ itself is valid, whilst the current allows for a callback to be applied. In this instance, the data-entry was failing because the count of indexfields was < 2. The recordset data itself was valid, but the view was not, and as a result, the current() function returned false. This false was not previously handled. I've changed the logic so that we handle this case, and have removed a double-negative in the process.
This commit is contained in:
parent
131e60741a
commit
0049244893
@ -74,18 +74,18 @@ class skip_future_documents_iterator implements \Iterator {
|
||||
}
|
||||
|
||||
public function valid() {
|
||||
// Check parent.
|
||||
// Check that the parent is valid.
|
||||
if (!$this->parent->valid()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// See if document is after the cut-off time.
|
||||
$doc = $this->parent->current();
|
||||
if ($doc->get('modified') > $this->cutoff) {
|
||||
return false;
|
||||
if ($doc = $this->parent->current()) {
|
||||
// This document is valid if the modification date is before the cutoff.
|
||||
return $doc->get('modified') <= $this->cutoff;
|
||||
}
|
||||
|
||||
return true;
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
public function rewind() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user