Show help link when generating or viewing report, if applicable
This commit is contained in:
parent
31b213610f
commit
db62bd20b3
|
@ -7,8 +7,19 @@
|
||||||
|
|
||||||
<%def name="render_buefy_form()">
|
<%def name="render_buefy_form()">
|
||||||
<div class="form">
|
<div class="form">
|
||||||
<p style="padding: 1em;">${report.__doc__}</p>
|
<p class="block">
|
||||||
<br />
|
${report.__doc__}
|
||||||
|
</p>
|
||||||
|
% if report.help_url:
|
||||||
|
<p class="block">
|
||||||
|
<b-button icon-pack="fas"
|
||||||
|
icon-left="question-circle"
|
||||||
|
tag="a" target="_blank"
|
||||||
|
href="${report.help_url}">
|
||||||
|
Help for this report
|
||||||
|
</b-button>
|
||||||
|
</p>
|
||||||
|
% endif
|
||||||
<tailbone-form></tailbone-form>
|
<tailbone-form></tailbone-form>
|
||||||
</div>
|
</div>
|
||||||
</%def>
|
</%def>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Rattail -- Retail Software Framework
|
# Rattail -- Retail Software Framework
|
||||||
# Copyright © 2010-2022 Lance Edgar
|
# Copyright © 2010-2023 Lance Edgar
|
||||||
#
|
#
|
||||||
# This file is part of Rattail.
|
# This file is part of Rattail.
|
||||||
#
|
#
|
||||||
|
@ -2643,6 +2643,47 @@ class MasterView(View):
|
||||||
normal.append(button)
|
normal.append(button)
|
||||||
return normal
|
return normal
|
||||||
|
|
||||||
|
def make_buefy_button(self, label, is_primary=False,
|
||||||
|
url=None, is_external=False,
|
||||||
|
**kwargs):
|
||||||
|
"""
|
||||||
|
Make and return a HTML ``<b-button>`` literal.
|
||||||
|
"""
|
||||||
|
btn_kw = dict(c=label, icon_pack='fas')
|
||||||
|
|
||||||
|
if 'type' in kwargs:
|
||||||
|
btn_kw['type'] = kwargs['type']
|
||||||
|
elif is_primary:
|
||||||
|
btn_kw['type'] = 'is-primary'
|
||||||
|
|
||||||
|
if url:
|
||||||
|
btn_kw['href'] = url
|
||||||
|
|
||||||
|
if 'icon_left' in kwargs:
|
||||||
|
btn_kw['icon_left'] = kwargs['icon_left']
|
||||||
|
elif is_external:
|
||||||
|
btn_kw['icon_left'] = 'external-link-alt'
|
||||||
|
else:
|
||||||
|
btn_kw['icon_left'] = 'eye'
|
||||||
|
|
||||||
|
if 'target' in kwargs:
|
||||||
|
btn_kw['target'] = kwargs['target']
|
||||||
|
elif is_external:
|
||||||
|
btn_kw['target'] = '_blank'
|
||||||
|
|
||||||
|
button = HTML.tag('b-button', **btn_kw)
|
||||||
|
|
||||||
|
if url:
|
||||||
|
# nb. unfortunately HTML.tag() calls its first arg 'tag' and
|
||||||
|
# so we can't pass a kwarg with that name...so instead we
|
||||||
|
# patch that into place manually
|
||||||
|
button = six.text_type(button)
|
||||||
|
button = button.replace('<b-button ',
|
||||||
|
'<b-button tag="a"')
|
||||||
|
button = HTML.literal(button)
|
||||||
|
|
||||||
|
return button
|
||||||
|
|
||||||
def make_xref_button(self, **kwargs):
|
def make_xref_button(self, **kwargs):
|
||||||
"""
|
"""
|
||||||
Make and return a HTML ``<b-button>`` literal, for display in
|
Make and return a HTML ``<b-button>`` literal, for display in
|
||||||
|
@ -2655,6 +2696,8 @@ class MasterView(View):
|
||||||
assumed to be external, which affects the icon and causes
|
assumed to be external, which affects the icon and causes
|
||||||
button click to open link in a new tab.
|
button click to open link in a new tab.
|
||||||
"""
|
"""
|
||||||
|
# TODO: this should call make_buefy_button()
|
||||||
|
|
||||||
# nb. unfortunately HTML.tag() calls its first arg 'tag' and
|
# nb. unfortunately HTML.tag() calls its first arg 'tag' and
|
||||||
# so we can't pass a kwarg with that name...so instead we
|
# so we can't pass a kwarg with that name...so instead we
|
||||||
# patch that into place manually
|
# patch that into place manually
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Rattail -- Retail Software Framework
|
# Rattail -- Retail Software Framework
|
||||||
# Copyright © 2010-2022 Lance Edgar
|
# Copyright © 2010-2023 Lance Edgar
|
||||||
#
|
#
|
||||||
# This file is part of Rattail.
|
# This file is part of Rattail.
|
||||||
#
|
#
|
||||||
|
@ -267,6 +267,9 @@ class ReportOutputView(ExportMasterView):
|
||||||
def render_report_type(self, output, field):
|
def render_report_type(self, output, field):
|
||||||
type_key = getattr(output, field)
|
type_key = getattr(output, field)
|
||||||
|
|
||||||
|
# just show type key by default
|
||||||
|
rendered = type_key
|
||||||
|
|
||||||
# (try to) show link to poser report if applicable
|
# (try to) show link to poser report if applicable
|
||||||
if type_key and type_key.startswith('poser_'):
|
if type_key and type_key.startswith('poser_'):
|
||||||
app = self.get_rattail_app()
|
app = self.get_rattail_app()
|
||||||
|
@ -276,10 +279,20 @@ class ReportOutputView(ExportMasterView):
|
||||||
if not report.get('error'):
|
if not report.get('error'):
|
||||||
url = self.request.route_url('poser_reports.view',
|
url = self.request.route_url('poser_reports.view',
|
||||||
report_key=poser_key)
|
report_key=poser_key)
|
||||||
return tags.link_to(type_key, url)
|
rendered = tags.link_to(type_key, url)
|
||||||
|
|
||||||
# fallback to showing value as-is
|
# add help button if report has a link
|
||||||
return type_key
|
report = self.report_handler.get_report(type_key)
|
||||||
|
if report and report.help_url:
|
||||||
|
button = self.make_buefy_button("Help for this report",
|
||||||
|
url=report.help_url,
|
||||||
|
is_external=True,
|
||||||
|
icon_left='question-circle')
|
||||||
|
button = HTML.tag('div', class_='level-item', c=[button])
|
||||||
|
rendered = HTML.tag('div', class_='level-item', c=[rendered])
|
||||||
|
rendered = HTML.tag('div', class_='level-left', c=[rendered, button])
|
||||||
|
|
||||||
|
return rendered
|
||||||
|
|
||||||
def render_params(self, report, field):
|
def render_params(self, report, field):
|
||||||
params = report.params
|
params = report.params
|
||||||
|
|
Loading…
Reference in a new issue