diff --git a/core/modules/datetime_range/datetime_range.install b/core/modules/datetime_range/datetime_range.install index df02d38..dc16c24 100644 --- a/core/modules/datetime_range/datetime_range.install +++ b/core/modules/datetime_range/datetime_range.install @@ -46,17 +46,38 @@ function datetime_range_update_8001(&$sandbox) { // Set datetime plugin_id. $view->set($base . '.plugin_id', 'datetime'); - // Set datetime value. + // Create datetime value array. $datetime_value = [ 'min' => '', 'max' => '', 'value' => $filter['value'], 'type' => 'date', ]; - $view->set($base . '.value', $datetime_value); - // Default to '=' operator. - $view->set($base . '.operator', '='); + // Map string operator/value to numeric equivalent. + switch ($view->get($base . '.operator')) { + case '=': + $operator = '='; + break; + case '!=': + case 'not': + $operator = '!='; + break; + case 'starts': + $operator = 'regular_expression'; + $datetime_value['value'] = '^' . $datetime_value['value']; + break; + case 'ends': + $operator = 'regular_expression'; + $datetime_value['value'] = $datetime_value['value'] . '$'; + break; + default: + $operator = 'regular_expression'; + } + + // Set value and operator. + $view->set($base . '.value', $datetime_value); + $view->set($base . '.operator', $operator); // Store the changes. $view->save(TRUE);