Changeset b3bdee60 in tailbone


Ignore:
Timestamp:
11/28/2022 05:55:08 PM (2 months ago)
Author:
Lance Edgar <lance@…>
Branches:
master
Children:
94fa038
Parents:
4346339
Message:

Add way to quickly re-run "any" report

Location:
tailbone
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • tailbone/templates/reports/generated/view.mako

    r4346339 rb3bdee60  
    11## -*- coding: utf-8; -*-
    22<%inherit file="/master/view.mako" />
     3
     4<%def name="object_helpers()">
     5  % if master.has_perm('create'):
     6      <nav class="panel">
     7        <p class="panel-heading">Tools</p>
     8        <div class="panel-block buttons">
     9          <div style="display: flex; flex-direction: column;">
     10          <once-button type="is-primary"
     11                       % if rerun_report_url:
     12                       tag="a" href="${rerun_report_url}"
     13                       % else:
     14                       disabled title="Unknown report type"
     15                       % endif
     16                       text="Re-run This Report"
     17                       icon-pack="fas"
     18                       icon-left="arrow-circle-right">
     19          </once-button>
     20          </div>
     21        </div>
     22      </nav>
     23  % endif
     24</%def>
    325
    426<%def name="modify_this_page_vars()">
  • tailbone/views/reports.py

    r4346339 rb3bdee60  
    317317    def template_kwargs_view(self, **kwargs):
    318318        kwargs = super(ReportOutputView, self).template_kwargs_view(**kwargs)
     319        output = kwargs['instance']
    319320
    320321        if self.get_use_buefy():
    321             report = kwargs['instance']
    322             kwargs['params_data'] = self.get_params_context(report)
     322            kwargs['params_data'] = self.get_params_context(output)
     323
     324        # build custom URL to re-build this report
     325        url = None
     326        if output.report_type:
     327            url = self.request.route_url('generate_specific_report',
     328                                         type_key=output.report_type,
     329                                         _query=output.params)
     330        kwargs['rerun_report_url'] = url
    323331
    324332        return kwargs
     
    387395        and redirects user to view the output.
    388396        """
     397        app = self.get_rattail_app()
    389398        use_buefy = self.get_use_buefy()
    390399        type_key = self.request.matchdict['type_key']
     
    445454                if len(values) == 1:
    446455                    form.set_default(param.name, values[0][0])
     456
     457        # set default field values according to query string, if applicable
     458        if self.request.GET:
     459            for param in report_params:
     460                if param.name in self.request.GET:
     461                    value = self.request.GET[param.name]
     462                    if param.type is datetime.date:
     463                        value = app.parse_date(value)
     464                    form.set_default(param.name, value)
    447465
    448466        # if form validates, start generating new report output; show progress page
Note: See TracChangeset for help on using the changeset viewer.