mirror of
https://github.com/moodle/moodle.git
synced 2025-04-13 04:22:07 +02:00
Merge branch 'MDL-81126' of https://github.com/paulholden/moodle
This commit is contained in:
commit
278ccdb7c4
@ -122,6 +122,7 @@ $string['errorsourceinvalid'] = 'Could not find valid report source';
|
||||
$string['errorsourceunavailable'] = 'Report source is not available';
|
||||
$string['filteradded'] = 'Added filter \'{$a}\'';
|
||||
$string['filtercontains'] = 'Contains';
|
||||
$string['filterdateafter'] = 'After';
|
||||
$string['filterdatebefore'] = 'Before';
|
||||
$string['filterdatecurrent'] = 'Current';
|
||||
$string['filterdatedays'] = 'day(s)';
|
||||
|
@ -67,6 +67,9 @@ class date extends base {
|
||||
/** @var int Date before [X relative date unit(s)] */
|
||||
public const DATE_BEFORE = 9;
|
||||
|
||||
/** @var int Date after [X relative date unit(s)] */
|
||||
public const DATE_AFTER = 10;
|
||||
|
||||
/** @var int Relative date unit for an hour */
|
||||
public const DATE_UNIT_HOUR = 0;
|
||||
|
||||
@ -94,6 +97,7 @@ class date extends base {
|
||||
self::DATE_EMPTY => new lang_string('filterisempty', 'core_reportbuilder'),
|
||||
self::DATE_RANGE => new lang_string('filterrange', 'core_reportbuilder'),
|
||||
self::DATE_BEFORE => new lang_string('filterdatebefore', 'core_reportbuilder'),
|
||||
self::DATE_AFTER => new lang_string('filterdateafter', 'core_reportbuilder'),
|
||||
self::DATE_LAST => new lang_string('filterdatelast', 'core_reportbuilder'),
|
||||
self::DATE_CURRENT => new lang_string('filterdatecurrent', 'core_reportbuilder'),
|
||||
self::DATE_NEXT => new lang_string('filterdatenext', 'core_reportbuilder'),
|
||||
@ -209,6 +213,13 @@ class date extends base {
|
||||
$sql = "{$fieldsql} < :{$param}";
|
||||
$params[$param] = self::get_relative_timeframe(self::DATE_LAST, $dateunitvalue, $dateunit)[0];
|
||||
break;
|
||||
case self::DATE_AFTER:
|
||||
$param = database::generate_param_name();
|
||||
|
||||
// We can use the end date of the "Next" operator as the start date here.
|
||||
$sql = "{$fieldsql} > :{$param}";
|
||||
$params[$param] = self::get_relative_timeframe(self::DATE_NEXT, $dateunitvalue, $dateunit)[1];
|
||||
break;
|
||||
// Relative helper method can handle these three cases.
|
||||
case self::DATE_LAST:
|
||||
case self::DATE_CURRENT:
|
||||
|
@ -232,6 +232,17 @@ class date_test extends advanced_testcase {
|
||||
'Before two months' => [date::DATE_BEFORE, 2, date::DATE_UNIT_MONTH, '-15 week'],
|
||||
'Before two years' => [date::DATE_BEFORE, 2, date::DATE_UNIT_YEAR, '-30 month'],
|
||||
|
||||
'After hour' => [date::DATE_AFTER, 1, date::DATE_UNIT_HOUR, '+90 minute'],
|
||||
'After day' => [date::DATE_AFTER, 1, date::DATE_UNIT_DAY, '+25 hour'],
|
||||
'After week' => [date::DATE_AFTER, 1, date::DATE_UNIT_WEEK, '+10 day'],
|
||||
'After month' => [date::DATE_AFTER, 1, date::DATE_UNIT_MONTH, '+7 week'],
|
||||
'After year' => [date::DATE_AFTER, 1, date::DATE_UNIT_YEAR, '+15 month'],
|
||||
'After two hours' => [date::DATE_AFTER, 2, date::DATE_UNIT_HOUR, '+150 minute'],
|
||||
'After two days' => [date::DATE_AFTER, 2, date::DATE_UNIT_DAY, '+50 hour'],
|
||||
'After two weeks' => [date::DATE_AFTER, 2, date::DATE_UNIT_WEEK, '+20 day'],
|
||||
'After two months' => [date::DATE_AFTER, 2, date::DATE_UNIT_MONTH, '+15 week'],
|
||||
'After two years' => [date::DATE_AFTER, 2, date::DATE_UNIT_YEAR, '+30 month'],
|
||||
|
||||
'Last hour' => [date::DATE_LAST, 1, date::DATE_UNIT_HOUR, '-30 minute'],
|
||||
'Last day' => [date::DATE_LAST, 1, date::DATE_UNIT_DAY, '-6 hour'],
|
||||
'Last week' => [date::DATE_LAST, 1, date::DATE_UNIT_WEEK, '-3 day'],
|
||||
|
Loading…
x
Reference in New Issue
Block a user