Add result list date and test filters

This commit is contained in:
Wojtek
2026-10-15 21:41:34 +02:00
parent 301f322017
commit 3fd488e19e
6 changed files with 39 additions and 3 deletions
@@ -13,6 +13,9 @@ class ResultsModel extends ListModel
{
parent::populateState($ordering, $direction);
$this->setState('filter.search', $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search', '', 'string'));
$this->setState('filter.test_name', $this->getUserStateFromRequest($this->context . '.filter.test_name', 'filter_test_name', '', 'string'));
$this->setState('filter.date_from', $this->getUserStateFromRequest($this->context . '.filter.date_from', 'filter_date_from', '', 'string'));
$this->setState('filter.date_to', $this->getUserStateFromRequest($this->context . '.filter.date_to', 'filter_date_to', '', 'string'));
}
protected function getListQuery()
@@ -30,6 +33,22 @@ class ResultsModel extends ListModel
$query->where('(r.participant_name LIKE ' . $needle . ' OR s.title LIKE ' . $needle . ')');
}
$testName = trim((string) $this->getState('filter.test_name'));
if ($testName !== '') {
$needle = $db->quote('%' . $db->escape($testName, true) . '%', false);
$query->where('s.title LIKE ' . $needle);
}
$dateFrom = (string) $this->getState('filter.date_from');
if (preg_match('/^\d{4}-\d{2}-\d{2}$/', $dateFrom)) {
$query->where('r.created >= ' . $db->quote($dateFrom . ' 00:00:00'));
}
$dateTo = (string) $this->getState('filter.date_to');
if (preg_match('/^\d{4}-\d{2}-\d{2}$/', $dateTo)) {
$query->where('r.created <= ' . $db->quote($dateTo . ' 23:59:59'));
}
return $query->order('r.created DESC, r.id DESC');
}
}