I'm getting an error that "An illegal choice has been detected." when I try to do a 'between' exposed filter on two date fields with relative dates. Other filter options - greater than, less than, etc. work normally, it's just switching to 'between' that breaks it.
Working view:
$view = new view;
$view->name = 'stories_all';
$view->description = '';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('fields', array(
'title' => array(
'label' => 'Slug',
'link_to_node' => 1,
'exclude' => 0,
'id' => 'title',
'table' => 'node',
'field' => 'title',
'relationship' => 'none',
),
'field_description_value' => array(
'label' => '',
'link_to_node' => 0,
'label_type' => 'widget',
'format' => 'trimmed',
'multiple' => array(
'group' => TRUE,
'multiple_number' => '',
'multiple_from' => '',
'multiple_reversed' => FALSE,
),
'exclude' => 0,
'id' => 'field_description_value',
'table' => 'node_data_field_description',
'field' => 'field_description_value',
'relationship' => 'none',
),
'field_ready_print_value' => array(
'id' => 'field_ready_print_value',
'table' => 'node_data_field_ready_print',
'field' => 'field_ready_print_value',
),
'field_ready_web_value' => array(
'id' => 'field_ready_web_value',
'table' => 'node_data_field_ready_web',
'field' => 'field_ready_web_value',
),
'edit_node' => array(
'label' => 'edit',
'text' => '',
'exclude' => 0,
'id' => 'edit_node',
'table' => 'node',
'field' => 'edit_node',
'relationship' => 'none',
),
));
$handler->override_option('filters', array(
'status' => array(
'operator' => '=',
'value' => 1,
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'status',
'table' => 'node',
'field' => 'status',
'relationship' => 'none',
),
'date_filter' => array(
'operator' => '>=',
'value' => array(
'value' => NULL,
'min' => NULL,
'max' => NULL,
'default_date' => 'now',
'default_to_date' => 'now +1 month',
),
'group' => '0',
'exposed' => TRUE,
'expose' => array(
'use_operator' => 0,
'operator' => 'date_filter_op',
'identifier' => 'date_filter',
'label' => 'Ready date',
'optional' => 0,
'remember' => 0,
),
'date_fields' => array(
'node_data_field_ready_print.field_ready_print_value' => 'node_data_field_ready_print.field_ready_print_value',
'node_data_field_ready_web.field_ready_web_value' => 'node_data_field_ready_web.field_ready_web_value',
),
'granularity' => 'day',
'form_type' => 'date_select',
'default_date' => 'now',
'default_to_date' => 'now +1 month',
'id' => 'date_filter',
'table' => 'node',
'field' => 'date_filter',
'override' => array(
'button' => 'Override',
),
'relationship' => 'none',
),
));
$handler->override_option('access', array(
'type' => 'none',
'role' => array(),
'perm' => '',
));
$handler->override_option('items_per_page', 50);
$handler->override_option('use_pager', '1');
$handler->override_option('style_plugin', 'table');
$handler->override_option('style_options', array(
'grouping' => '',
'override' => 1,
'sticky' => 1,
'order' => 'asc',
'columns' => array(
'field_ready_print_value' => 'field_ready_print_value',
'field_ready_web_value' => 'field_ready_web_value',
'edit_node' => 'edit_node',
'title' => 'title',
),
'info' => array(
'field_ready_print_value' => array(
'sortable' => 0,
'separator' => '',
),
'field_ready_web_value' => array(
'sortable' => 0,
'separator' => '',
),
'edit_node' => array(
'separator' => '',
),
'title' => array(
'sortable' => 0,
'separator' => '',
),
),
'default' => '-1',
));
$handler = $view->new_display('page', 'Page', 'page_1');
$handler->override_option('path', 'stories/all');
$handler->override_option('menu', array(
'type' => 'tab',
'title' => 'All stories',
'weight' => '0',
));
$handler->override_option('tab_options', array(
'type' => 'normal',
'title' => 'Stories',
'weight' => '0',
));
Non-functional view:
$view = new view;
$view->name = 'stories_all';
$view->description = '';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('fields', array(
'title' => array(
'label' => 'Slug',
'link_to_node' => 1,
'exclude' => 0,
'id' => 'title',
'table' => 'node',
'field' => 'title',
'relationship' => 'none',
),
'field_description_value' => array(
'label' => '',
'link_to_node' => 0,
'label_type' => 'widget',
'format' => 'trimmed',
'multiple' => array(
'group' => TRUE,
'multiple_number' => '',
'multiple_from' => '',
'multiple_reversed' => FALSE,
),
'exclude' => 0,
'id' => 'field_description_value',
'table' => 'node_data_field_description',
'field' => 'field_description_value',
'relationship' => 'none',
),
'field_ready_print_value' => array(
'id' => 'field_ready_print_value',
'table' => 'node_data_field_ready_print',
'field' => 'field_ready_print_value',
),
'field_ready_web_value' => array(
'id' => 'field_ready_web_value',
'table' => 'node_data_field_ready_web',
'field' => 'field_ready_web_value',
),
'edit_node' => array(
'label' => 'edit',
'text' => '',
'exclude' => 0,
'id' => 'edit_node',
'table' => 'node',
'field' => 'edit_node',
'relationship' => 'none',
),
));
$handler->override_option('filters', array(
'status' => array(
'operator' => '=',
'value' => 1,
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'status',
'table' => 'node',
'field' => 'status',
'relationship' => 'none',
),
'date_filter' => array(
'operator' => 'between',
'value' => array(
'value' => NULL,
'min' => NULL,
'max' => NULL,
'default_date' => 'now',
'default_to_date' => 'now +1 month',
),
'group' => '0',
'exposed' => TRUE,
'expose' => array(
'use_operator' => 0,
'operator' => 'date_filter_op',
'identifier' => 'date_filter',
'label' => 'Ready date',
'optional' => 0,
'remember' => 0,
),
'date_fields' => array(
'node_data_field_ready_print.field_ready_print_value' => 'node_data_field_ready_print.field_ready_print_value',
'node_data_field_ready_web.field_ready_web_value' => 'node_data_field_ready_web.field_ready_web_value',
),
'granularity' => 'day',
'form_type' => 'date_select',
'default_date' => 'now',
'default_to_date' => 'now +1 month',
'id' => 'date_filter',
'table' => 'node',
'field' => 'date_filter',
'override' => array(
'button' => 'Override',
),
'relationship' => 'none',
),
));
$handler->override_option('access', array(
'type' => 'none',
'role' => array(),
'perm' => '',
));
$handler->override_option('items_per_page', 50);
$handler->override_option('use_pager', '1');
$handler->override_option('style_plugin', 'table');
$handler->override_option('style_options', array(
'grouping' => '',
'override' => 1,
'sticky' => 1,
'order' => 'asc',
'columns' => array(
'field_ready_print_value' => 'field_ready_print_value',
'field_ready_web_value' => 'field_ready_web_value',
'edit_node' => 'edit_node',
'title' => 'title',
),
'info' => array(
'field_ready_print_value' => array(
'sortable' => 0,
'separator' => '',
),
'field_ready_web_value' => array(
'sortable' => 0,
'separator' => '',
),
'edit_node' => array(
'separator' => '',
),
'title' => array(
'sortable' => 0,
'separator' => '',
),
),
'default' => '-1',
));
$handler = $view->new_display('page', 'Page', 'page_1');
$handler->override_option('path', 'stories/all');
$handler->override_option('menu', array(
'type' => 'tab',
'title' => 'All stories',
'weight' => '0',
));
$handler->override_option('tab_options', array(
'type' => 'normal',
'title' => 'Stories',
'weight' => '0',
));
Diff:
74c74
< 'operator' => '>=',
---
> 'operator' => 'between',
Comments
Comment #1
merlinofchaos commentedDoes this only happen on date fields? If so, please redirect this to the date.module.
Comment #2
merlinofchaos commentedComment #3
karens commentedI committed a number of fixes to the filter today and as far as I can see it is working correctly now.