When viewing report output, show params as proper buefy table
plus couple of other random tweaks
This commit is contained in:
parent
092f1cda0c
commit
5a4abbb163
|
@ -8,4 +8,16 @@
|
||||||
% endif
|
% endif
|
||||||
</%def>
|
</%def>
|
||||||
|
|
||||||
|
<%def name="modify_this_page_vars()">
|
||||||
|
${parent.modify_this_page_vars()}
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
% if params_data is not Undefined:
|
||||||
|
${form.component_studly}Data.paramsData = ${json.dumps(params_data)|n}
|
||||||
|
% endif
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</%def>
|
||||||
|
|
||||||
|
|
||||||
${parent.body()}
|
${parent.body()}
|
||||||
|
|
|
@ -224,7 +224,6 @@ class DataSyncChangeView(MasterView):
|
||||||
url_prefix = '/datasync/changes'
|
url_prefix = '/datasync/changes'
|
||||||
permission_prefix = 'datasync_changes'
|
permission_prefix = 'datasync_changes'
|
||||||
creatable = False
|
creatable = False
|
||||||
editable = False
|
|
||||||
bulk_deletable = True
|
bulk_deletable = True
|
||||||
|
|
||||||
labels = {
|
labels = {
|
||||||
|
@ -256,6 +255,12 @@ class DataSyncChangeView(MasterView):
|
||||||
kwargs['allow_filemon_restart'] = bool(self.rattail_config.get('tailbone', 'filemon.restart'))
|
kwargs['allow_filemon_restart'] = bool(self.rattail_config.get('tailbone', 'filemon.restart'))
|
||||||
return kwargs
|
return kwargs
|
||||||
|
|
||||||
|
def configure_form(self, f):
|
||||||
|
super(DataSyncChangeView, self).configure_form(f)
|
||||||
|
|
||||||
|
f.set_readonly('obtained')
|
||||||
|
|
||||||
|
|
||||||
# TODO: deprecate / remove this
|
# TODO: deprecate / remove this
|
||||||
DataSyncChangesView = DataSyncChangeView
|
DataSyncChangesView = DataSyncChangeView
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ from mako.template import Template
|
||||||
from pyramid.response import Response
|
from pyramid.response import Response
|
||||||
from webhelpers2.html import HTML
|
from webhelpers2.html import HTML
|
||||||
|
|
||||||
from tailbone import forms, grids
|
from tailbone import forms
|
||||||
from tailbone.db import Session
|
from tailbone.db import Session
|
||||||
from tailbone.views import View
|
from tailbone.views import View
|
||||||
from tailbone.views.exports import ExportMasterView
|
from tailbone.views.exports import ExportMasterView
|
||||||
|
@ -257,18 +257,39 @@ class ReportOutputView(ExportMasterView):
|
||||||
params.sort(key=lambda param: param['key'])
|
params.sort(key=lambda param: param['key'])
|
||||||
|
|
||||||
route_prefix = self.get_route_prefix()
|
route_prefix = self.get_route_prefix()
|
||||||
g = grids.Grid(
|
factory = self.get_grid_factory()
|
||||||
|
g = factory(
|
||||||
key='{}.params'.format(route_prefix),
|
key='{}.params'.format(route_prefix),
|
||||||
data=params,
|
data=params,
|
||||||
columns=['key', 'value'],
|
columns=['key', 'value'],
|
||||||
|
labels={'key': "Name"},
|
||||||
)
|
)
|
||||||
return HTML.literal(g.render_grid())
|
if self.get_use_buefy():
|
||||||
|
return HTML.literal(
|
||||||
|
g.render_buefy_table_element(data_prop='paramsData'))
|
||||||
|
else:
|
||||||
|
return HTML.literal(g.render_grid())
|
||||||
|
|
||||||
def render_download(self, report, field):
|
def render_download(self, report, field):
|
||||||
path = report.filepath(self.rattail_config)
|
path = report.filepath(self.rattail_config)
|
||||||
url = self.get_action_url('download', report)
|
url = self.get_action_url('download', report)
|
||||||
return self.render_file_field(path, url=url)
|
return self.render_file_field(path, url=url)
|
||||||
|
|
||||||
|
def template_kwargs_view(self, **kwargs):
|
||||||
|
use_buefy = self.get_use_buefy()
|
||||||
|
if use_buefy:
|
||||||
|
|
||||||
|
report = kwargs['instance']
|
||||||
|
params_data = []
|
||||||
|
for name, value in report.params.items():
|
||||||
|
params_data.append({
|
||||||
|
'name': name,
|
||||||
|
'value': value,
|
||||||
|
})
|
||||||
|
kwargs['params_data'] = params_data
|
||||||
|
|
||||||
|
return kwargs
|
||||||
|
|
||||||
def download(self):
|
def download(self):
|
||||||
report = self.get_instance()
|
report = self.get_instance()
|
||||||
path = report.filepath(self.rattail_config)
|
path = report.filepath(self.rattail_config)
|
||||||
|
@ -387,6 +408,13 @@ class GenerateReport(View):
|
||||||
if param.type is datetime.date:
|
if param.type is datetime.date:
|
||||||
form.set_type(param.name, 'date_jquery')
|
form.set_type(param.name, 'date_jquery')
|
||||||
|
|
||||||
|
# auto-select default choice for fields which have only one
|
||||||
|
for param in report_params:
|
||||||
|
if param.type == 'choice' and param.required:
|
||||||
|
values = form.schema[param.name].widget.values
|
||||||
|
if len(values) == 1:
|
||||||
|
form.set_default(param.name, values[0][0])
|
||||||
|
|
||||||
# if form validates, start generating new report output; show progress page
|
# if form validates, start generating new report output; show progress page
|
||||||
if form.validate(newstyle=True):
|
if form.validate(newstyle=True):
|
||||||
key = 'report_output.generate'
|
key = 'report_output.generate'
|
||||||
|
|
|
@ -42,6 +42,7 @@ class StoreView(MasterView):
|
||||||
"""
|
"""
|
||||||
model_class = model.Store
|
model_class = model.Store
|
||||||
has_versions = True
|
has_versions = True
|
||||||
|
touchable = True
|
||||||
|
|
||||||
grid_columns = [
|
grid_columns = [
|
||||||
'id',
|
'id',
|
||||||
|
|
Loading…
Reference in a new issue