Closed (fixed)
Project:
Views Calc
Version:
6.x-1.x-dev
Component:
Code
Priority:
Normal
Category:
Bug report
Assigned:
Unassigned
Reporter:
Created:
9 Feb 2009 at 02:29 UTC
Updated:
6 Mar 2009 at 21:25 UTC
Calculations in admin/settings/views_calc are not working, I have created a test content type to help others reproduce this. I tested this on another setup and it seems to be attributed to views-2.3. The current setup that is causing this uses drupal-6.9, views-6.x-2.3, & views_calc-6.x-1.0.
The Content Type:
$content[type] = array (
'name' => 'test',
'type' => 'test',
'description' => '',
'title_label' => 'Title',
'body_label' => 'Body',
'min_word_count' => '0',
'help' => '',
'node_options' =>
array (
'status' => true,
'promote' => true,
'sticky' => false,
'revision' => false,
),
'old_type' => 'test',
'orig_type' => '',
'module' => 'node',
'custom' => '1',
'modified' => '1',
'locked' => '0',
'comment' => '2',
'comment_default_mode' => '4',
'comment_default_order' => '1',
'comment_default_per_page' => '50',
'comment_controls' => '3',
'comment_anonymous' => 0,
'comment_subject_field' => '1',
'comment_preview' => '1',
'comment_form_location' => '0',
);
$content[fields] = array (
0 =>
array (
'label' => 'one',
'field_name' => 'field_one',
'type' => 'text',
'widget_type' => 'text_textfield',
'change' => 'Change basic information',
'weight' => '1',
'rows' => 5,
'size' => '60',
'description' => '',
'default_value' =>
array (
0 =>
array (
'value' => '',
'_error_element' => 'default_value_widget][field_one][0][value',
),
),
'default_value_php' => '',
'default_value_widget' => NULL,
'required' => 0,
'multiple' => '0',
'text_processing' => '0',
'max_length' => '',
'allowed_values' => '',
'allowed_values_php' => '',
'op' => 'Save field settings',
'module' => 'text',
'widget_module' => 'text',
'columns' =>
array (
'value' =>
array (
'type' => 'text',
'size' => 'big',
'not null' => false,
'sortable' => true,
'views' => true,
),
),
'display_settings' =>
array (
'label' =>
array (
'format' => 'above',
'exclude' => 0,
),
'teaser' =>
array (
'format' => 'default',
'exclude' => 0,
),
'full' =>
array (
'format' => 'default',
'exclude' => 0,
),
4 =>
array (
'format' => 'default',
'exclude' => 0,
),
2 =>
array (
'format' => 'default',
'exclude' => 0,
),
3 =>
array (
'format' => 'default',
'exclude' => 0,
),
'token' =>
array (
'format' => 'default',
'exclude' => 0,
),
),
),
1 =>
array (
'label' => 'two',
'field_name' => 'field_two',
'type' => 'text',
'widget_type' => 'text_textfield',
'change' => 'Change basic information',
'weight' => '2',
'rows' => 5,
'size' => '60',
'description' => '',
'default_value' =>
array (
0 =>
array (
'value' => '',
'_error_element' => 'default_value_widget][field_two][0][value',
),
),
'default_value_php' => '',
'default_value_widget' =>
array (
'field_two' =>
array (
0 =>
array (
'value' => '',
'_error_element' => 'default_value_widget][field_two][0][value',
),
),
),
'required' => 0,
'multiple' => '0',
'text_processing' => '0',
'max_length' => '',
'allowed_values' => '',
'allowed_values_php' => '',
'op' => 'Save field settings',
'module' => 'text',
'widget_module' => 'text',
'columns' =>
array (
'value' =>
array (
'type' => 'text',
'size' => 'big',
'not null' => false,
'sortable' => true,
'views' => true,
),
),
'display_settings' =>
array (
'label' =>
array (
'format' => 'above',
'exclude' => 0,
),
'teaser' =>
array (
'format' => 'default',
'exclude' => 0,
),
'full' =>
array (
'format' => 'default',
'exclude' => 0,
),
4 =>
array (
'format' => 'default',
'exclude' => 0,
),
2 =>
array (
'format' => 'default',
'exclude' => 0,
),
3 =>
array (
'format' => 'default',
'exclude' => 0,
),
'token' =>
array (
'format' => 'default',
'exclude' => 0,
),
),
),
2 =>
array (
'label' => 'three',
'field_name' => 'field_three',
'type' => 'text',
'widget_type' => 'text_textfield',
'change' => 'Change basic information',
'weight' => '3',
'rows' => 5,
'size' => '60',
'description' => '',
'default_value' =>
array (
0 =>
array (
'value' => '',
'_error_element' => 'default_value_widget][field_three][0][value',
),
),
'default_value_php' => '',
'default_value_widget' =>
array (
'field_three' =>
array (
0 =>
array (
'value' => '',
'_error_element' => 'default_value_widget][field_three][0][value',
),
),
),
'required' => 0,
'multiple' => '0',
'text_processing' => '0',
'max_length' => '',
'allowed_values' => '',
'allowed_values_php' => '',
'op' => 'Save field settings',
'module' => 'text',
'widget_module' => 'text',
'columns' =>
array (
'value' =>
array (
'type' => 'text',
'size' => 'big',
'not null' => false,
'sortable' => true,
'views' => true,
),
),
'display_settings' =>
array (
'label' =>
array (
'format' => 'above',
'exclude' => 0,
),
'teaser' =>
array (
'format' => 'default',
'exclude' => 0,
),
'full' =>
array (
'format' => 'default',
'exclude' => 0,
),
4 =>
array (
'format' => 'default',
'exclude' => 0,
),
2 =>
array (
'format' => 'default',
'exclude' => 0,
),
3 =>
array (
'format' => 'default',
'exclude' => 0,
),
'token' =>
array (
'format' => 'default',
'exclude' => 0,
),
),
),
);
$content[extra] = array (
'title' => '-5',
'body_field' => '0',
'menu' => '-2',
);
The View:
$view = new view;
$view->name = 'test';
$view->description = 'test';
$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(
'field_one_value' => array(
'label' => 'one',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
),
'link_to_node' => 0,
'label_type' => 'widget',
'format' => 'default',
'multiple' => array(
'group' => TRUE,
'multiple_number' => '',
'multiple_from' => '',
'multiple_reversed' => FALSE,
),
'exclude' => 0,
'id' => 'field_one_value',
'table' => 'node_data_field_one',
'field' => 'field_one_value',
'relationship' => 'none',
),
'field_two_value' => array(
'id' => 'field_two_value',
'table' => 'node_data_field_two',
'field' => 'field_two_value',
),
'field_three_value' => array(
'id' => 'field_three_value',
'table' => 'node_data_field_three',
'field' => 'field_three_value',
),
));
$handler->override_option('filters', array(
'type' => array(
'operator' => 'in',
'value' => array(
'test' => 'test',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'type',
'table' => 'node',
'field' => 'type',
'relationship' => 'none',
),
));
$handler->override_option('access', array(
'type' => 'none',
));
$handler->override_option('style_plugin', 'views_calc');
$handler->override_option('style_options', array(
'grouping' => '',
'override' => 1,
'sticky' => 0,
'order' => 'asc',
'columns' => array(
'field_one_value' => 'field_one_value',
'field_two_value' => 'field_two_value',
'field_three_value' => 'field_three_value',
'field_total_value' => 'field_total_value',
),
'info' => array(
'field_one_value' => array(
'sortable' => 0,
'separator' => '',
'has_calc' => 1,
'calc' => array(
'SUM' => 'SUM',
),
),
'field_two_value' => array(
'sortable' => 0,
'separator' => '',
'has_calc' => 1,
'calc' => array(
'COUNT' => 'COUNT',
),
),
'field_three_value' => array(
'sortable' => 0,
'separator' => '',
'has_calc' => 1,
'calc' => array(
'AVG' => 'AVG',
),
),
'field_total_value' => array(
'sortable' => 0,
'separator' => '',
'has_calc' => 1,
'calc' => array(
'MIN' => 'MIN',
),
),
),
'default' => '-1',
));
$handler = $view->new_display('page', 'Page', 'page_1');
$handler->override_option('path', 'test');
$handler->override_option('menu', array(
'type' => 'none',
'title' => '',
'description' => '',
'weight' => 0,
'name' => 'navigation',
));
$handler->override_option('tab_options', array(
'type' => 'none',
'title' => '',
'description' => '',
'weight' => 0,
));
Finaly the Views Calculation that breaks the query.
Label: Grand Total
Calculation: %node_data_field_one.field_one_value * %node_data_field_three.field_three_value
Error output when adding this views_calc field to the view.
user warning: Unknown column 'node_data_field_three.field_three_value' in 'field list' query: SELECT node.nid AS nid, node_data_field_one.field_one_value AS node_data_field_one_field_one_value, node.type AS node_type, node.vid AS node_vid, node_data_field_one.field_two_value AS node_data_field_one_field_two_value, node_data_field_one.field_three_value AS node_data_field_one_field_three_value, (node_data_field_one.field_one_value * node_data_field_three.field_three_value) AS cid1 FROM node node LEFT JOIN content_type_test node_data_field_one ON node.vid = node_data_field_one.vid WHERE node.type in ('test') LIMIT 0, 10 in /home/localhost/htdocs/sites/all/modules/views/includes/view.inc on line 731.
The same setup works on another system with views-2.2 and -dev views_calc. Thanks Karen for this valuable module keep up the good work.
Comments
Comment #1
likewhoa commented