Skip to content

Commit

Permalink
WIP: Bugfix/table decimals and line type (#518)
Browse files Browse the repository at this point in the history
  • Loading branch information
mpolidori committed Feb 7, 2022
1 parent 1cdeaf0 commit 0b3eb46
Show file tree
Hide file tree
Showing 12 changed files with 361 additions and 30 deletions.
20 changes: 19 additions & 1 deletion ckanext/querytool/controllers/querytool.py
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,24 @@ def edit_visualizations(self, querytool=None, data=None,
visualization['plotly'] = \
data.get('chart_field_plotly_{}'.format(id))

def line_type_search(data, id):
base_id = 'chart_field_line_type_{}_'.format(id)
line_count = len([
True for key, value in data.items()
if base_id in key
])
line_types = []

for i in range(1, line_count + 1):
line_type_id = base_id + str(i)

if line_type_id in data:
line_types.append(data[line_type_id])

return ','.join(line_types)

visualization['line_types'] = line_type_search(data, id)

bar_width = data.get('chart_field_bar_width_{}'.format(id))

if not bar_width or bar_width == 'None':
Expand Down Expand Up @@ -526,7 +544,7 @@ def edit_visualizations(self, querytool=None, data=None,
else:
visualization['category_name'] = ''

print data
#print data

visualizations.append(visualization)

Expand Down
2 changes: 1 addition & 1 deletion ckanext/querytool/fanstatic/css/main.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion ckanext/querytool/fanstatic/css/public-query-tool.css

Large diffs are not rendered by default.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

223 changes: 216 additions & 7 deletions ckanext/querytool/fanstatic/javascript/dist/modules/viz-preview.js

Large diffs are not rendered by default.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 6 additions & 1 deletion ckanext/querytool/fanstatic/javascript/vitals.js
Original file line number Diff line number Diff line change
Expand Up @@ -746,6 +746,12 @@ $(document).ready(function(){
$(this).closest('.accordion').find(".color-accordion").removeClass('hidden')
}

if(['line', 'area', 'spline'].includes(selected)) {
$(this).closest('.accordion').find(".line-accordion").removeClass('hidden')
} else {
$(this).closest('.accordion').find(".line-accordion").addClass('hidden')
}

//Hide seqeuntial if not bar chart
if(selected=='line' || selected=='area' || selected=='spline' || selected=='donut' || selected=='pie' || selected=='scatter'){
$(`#chart_field_color_type_${chart_number}`).val("1");
Expand Down Expand Up @@ -1290,4 +1296,3 @@ $(".filter-item-value").tooltip({
return $(this).find('.active').attr('value');
}
});

17 changes: 16 additions & 1 deletion ckanext/querytool/fanstatic/less/main.less
Original file line number Diff line number Diff line change
Expand Up @@ -236,4 +236,19 @@ body {

.textbox_info {
width:393px !important;
}
}

.line-row {
p {
}

select {
width:150px;
}


padding-bottom: 13px;
border-bottom: 1px solid #eee;
margin-bottom: 10px;
}

4 changes: 2 additions & 2 deletions ckanext/querytool/logic/action/get.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ def querytool_get(context, data_dict):
# check_access('',
# context, data_dict)

log.info('Querytool : %r', data_dict)
#log.info('Querytool : %r', data_dict)
name = data_dict['name']

querytool = CkanextQueryTool.get(name=name)
Expand All @@ -133,7 +133,7 @@ def querytool_get_visualizations(context, data_dict):
# check_access('',
# context, data_dict)

log.info('Querytool visualizations: %r', data_dict)
#log.info('Querytool visualizations: %r', data_dict)
name = data_dict['name']
visualizations = CkanextQueryToolVisualizations.get(name=name)
if visualizations:
Expand Down
65 changes: 64 additions & 1 deletion ckanext/querytool/templates/ajax_snippets/chart_item.html
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,67 @@
</div>
</div>

{# Line Chart additional setup #}
{% if selected_chart_type in ['line', 'spline', 'area'] %}
{% set hide_line_options = '' %}
{% else %}
{% set hide_line_options = 'hidden' %}
{% endif %}
<div class="accordion-group {{ hide_line_options }} line-accordion">
<div class="accordion-heading">
<a href="#accordion_{{ chart_id }}_line_plotly" class="accordion-toggle" data-toggle="collapse" data-parent="#accordion_{{ chart_id }}">
{{ _('Line Options') }}
</a>
</div>
{% if chart %}
{% if chart.plotly %}
{% set plotly = h.querytool_get_chart_colors(chart.plotly) %}
{% endif %}
{% endif %}



<div id="accordion_{{ chart_id }}_line_plotly" class="accordion-body collapse">
<div class="accordion-inner">

{% set line_types = '' %}
{% set line_types_selection = [] %}

{% if chart %}
{% if chart.line_types %}
{% set line_types = chart.line_types %}
{% set line_types_selection = chart.line_types.split(',') %}
{% endif %}
{% else %}
<p id="line_type_empty_text">Select and update data to list lines.</p>
{% endif %}

{% set line_count = 1 %}
<input type="hidden" id="chart_field_plotly_line_{{ n }}" name="chart_field_plotly_line_{{ n }}" {% if chart %} value="{{ chart.plotly }}" {% endif %} />
{% for line in plotly %}
{% if line['x'] %}
{% set line_type_title = line['x'][line_count - 1] %}
{% else %}
{% set line_type_title = 'Line Type' %}
{% endif %}

<div class="control-group control-select">
<label class="control-label" for="chart_field_line_type_{{ n }}_{{ line_count }}">{{ line_type_title }}</label>
<select id='chart_field_line_type_{{ n }}_{{ line_count }}' name='chart_field_line_type_{{ n }}_{{ line_count }}'>
<option value="solid" {% if line_types %}{{ 'selected' if plotly|length >= line_count and line_types_selection[line_count - 1] == 'solid' }}{{ else }}{{ 'selected' }}{% endif %}>Solid</option>
<option value="dashdot" {% if line_types %}{{ 'selected' if plotly|length >= line_count and line_types_selection[line_count - 1] == 'dashdot' }}{% endif %}>Dashed</option>
<option value="dot" {% if line_types %}{{ 'selected' if plotly|length >= line_count and line_types_selection[line_count - 1] == 'dot' }}{% endif %}>Dotted</option>
</select>
</div>

{% set line_count = line_count + 1 %}
{% endfor %}

</div>
</div>

</div>

{# Chart additional color setup #}
{% if selected_chart_type in ['donut', 'pie'] %}
{% set hide_color_picker = 'hidden' %}
Expand Down Expand Up @@ -962,6 +1023,7 @@
{% set show_bounds = chart.show_bounds %}
{% set axis_min = chart.axis_min %}
{% set axis_max = chart.axis_max %}
{% set line_types = chart.line_types %}
{% endif %}
{% snippet 'ajax_snippets/visualization_item.html',
type='chart',
Expand Down Expand Up @@ -1015,7 +1077,8 @@
show_bounds = show_bounds,
axis_range = axis_range,
axis_min = axis_min,
axis_max = axis_max
axis_max = axis_max,
line_types = line_types
%}
</div>
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -53,5 +53,6 @@
data-module-axis_range="{{ axis_range or 'false' }}"
data-module-axis_min="{{ axis_min }}"
data-module-axis_max="{{ axis_max }}"
data-module-line_types="{{ line_types }}"
>
</div>
3 changes: 2 additions & 1 deletion ckanext/querytool/templates/querytool/public/read.html
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,8 @@ <h3 id="item-title-{{chart_id}}" style="display:none">{{ item.map_custom_title_f
show_bounds = item.show_bounds,
axis_range = item.axis_range,
axis_min = item.axis_min,
axis_max = item.axis_max
axis_max = item.axis_max,
line_types = item.line_types
%}
{% endif %}
{% if item.type == 'text_box' %}
Expand Down

0 comments on commit 0b3eb46

Please sign in to comment.