Some aesthetic improvements for vendor catalog batch
hopefully they're improvements...
This commit is contained in:
parent
f89dc88c0e
commit
ab61778d35
13
tailbone/templates/batch/vendorcatalog/view_row.mako
Normal file
13
tailbone/templates/batch/vendorcatalog/view_row.mako
Normal file
|
@ -0,0 +1,13 @@
|
|||
## -*- coding: utf-8; -*-
|
||||
<%inherit file="/master/view_row.mako" />
|
||||
|
||||
<%def name="render_buefy_form()">
|
||||
<div class="form">
|
||||
<tailbone-form></tailbone-form>
|
||||
<br />
|
||||
${catalog_entry_diff.render_html()}
|
||||
</div>
|
||||
</%def>
|
||||
|
||||
|
||||
${parent.body()}
|
|
@ -351,6 +351,58 @@
|
|||
</div>
|
||||
</%def>
|
||||
|
||||
<%def name="render_row_grid_tools()">
|
||||
${parent.render_row_grid_tools()}
|
||||
% if use_buefy and master.rows_bulk_deletable and not batch.executed and master.has_perm('delete_rows'):
|
||||
<b-button type="is-danger"
|
||||
@click="deleteResultsInit()"
|
||||
icon-pack="fas"
|
||||
icon-left="trash">
|
||||
Delete Results
|
||||
</b-button>
|
||||
<b-modal has-modal-card
|
||||
:active.sync="deleteResultsShowDialog">
|
||||
<div class="modal-card">
|
||||
|
||||
<header class="modal-card-head">
|
||||
<p class="modal-card-title">Delete Results</p>
|
||||
</header>
|
||||
|
||||
<section class="modal-card-body">
|
||||
<p class="block">
|
||||
This batch has
|
||||
<span class="has-text-weight-bold">${batch.rowcount}</span>
|
||||
total rows.
|
||||
</p>
|
||||
<p class="block">
|
||||
Your current filters have returned
|
||||
<span class="has-text-weight-bold">{{ total }}</span>
|
||||
results.
|
||||
</p>
|
||||
<p class="block">
|
||||
Would you like to
|
||||
<span class="has-text-danger has-text-weight-bold">
|
||||
delete all {{ total }}
|
||||
</span>
|
||||
results?
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<footer class="modal-card-foot">
|
||||
<b-button @click="deleteResultsShowDialog = false">
|
||||
Cancel
|
||||
</b-button>
|
||||
<once-button type="is-danger"
|
||||
tag="a" href="${url('{}.delete_rows'.format(route_prefix), uuid=batch.uuid)}"
|
||||
icon-left="trash"
|
||||
text="Delete Results">
|
||||
</once-button>
|
||||
</footer>
|
||||
</div>
|
||||
</b-modal>
|
||||
% endif
|
||||
</%def>
|
||||
|
||||
<%def name="modify_this_page_vars()">
|
||||
${parent.modify_this_page_vars()}
|
||||
<script type="text/javascript">
|
||||
|
@ -395,6 +447,17 @@
|
|||
}
|
||||
|
||||
% endif
|
||||
|
||||
% if master.rows_bulk_deletable and not batch.executed and master.has_perm('delete_rows'):
|
||||
|
||||
${rows_grid.component_studly}Data.deleteResultsShowDialog = false
|
||||
|
||||
${rows_grid.component_studly}.methods.deleteResultsInit = function() {
|
||||
this.deleteResultsShowDialog = true
|
||||
}
|
||||
|
||||
% endif
|
||||
|
||||
</script>
|
||||
</%def>
|
||||
|
||||
|
|
|
@ -71,16 +71,32 @@
|
|||
% if master.touchable and request.has_perm('{}.touch'.format(permission_prefix)):
|
||||
<li>${h.link_to("\"Touch\" this {}".format(model_title), url('{}.touch'.format(route_prefix), uuid=instance.uuid))}</li>
|
||||
% endif
|
||||
% if master.has_rows and master.rows_downloadable_csv and request.has_perm('{}.row_results_csv'.format(permission_prefix)):
|
||||
<li>${h.link_to("Download row results as CSV", url('{}.row_results_csv'.format(route_prefix), uuid=instance.uuid))}</li>
|
||||
% if not use_buefy and master.has_rows and master.rows_downloadable_csv and master.has_perm('row_results_csv'):
|
||||
<li>${h.link_to("Download row results as CSV", master.get_action_url('row_results_csv', instance))}</li>
|
||||
% endif
|
||||
% if master.has_rows and master.rows_downloadable_xlsx and master.has_perm('row_results_xlsx'):
|
||||
% if not use_buefy and master.has_rows and master.rows_downloadable_xlsx and master.has_perm('row_results_xlsx'):
|
||||
<li>${h.link_to("Download row results as XLSX", master.get_action_url('row_results_xlsx', instance))}</li>
|
||||
% endif
|
||||
</%def>
|
||||
|
||||
<%def name="render_row_grid_tools()">
|
||||
${rows_grid_tools}
|
||||
% if use_buefy:
|
||||
% if master.rows_downloadable_xlsx and master.has_perm('row_results_xlsx'):
|
||||
<b-button tag="a" href="${master.get_action_url('row_results_xlsx', instance)}"
|
||||
icon-pack="fas"
|
||||
icon-left="download">
|
||||
Download Results XLSX
|
||||
</b-button>
|
||||
% endif
|
||||
% if master.rows_downloadable_csv and master.has_perm('row_results_csv'):
|
||||
<b-button tag="a" href="${master.get_action_url('row_results_csv', instance)}"
|
||||
icon-pack="fas"
|
||||
icon-left="download">
|
||||
Download Results CSV
|
||||
</b-button>
|
||||
% endif
|
||||
% endif
|
||||
</%def>
|
||||
|
||||
<%def name="render_this_page()">
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
################################################################################
|
||||
#
|
||||
# Rattail -- Retail Software Framework
|
||||
# Copyright © 2010-2021 Lance Edgar
|
||||
# Copyright © 2010-2022 Lance Edgar
|
||||
#
|
||||
# This file is part of Rattail.
|
||||
#
|
||||
|
@ -686,6 +686,8 @@ class BatchMasterView(MasterView):
|
|||
return HTML.tag('p', c=[link])
|
||||
|
||||
def make_batch_row_grid_tools(self, batch):
|
||||
if self.get_use_buefy():
|
||||
return
|
||||
if self.rows_bulk_deletable and not batch.executed and self.request.has_perm('{}.delete_rows'.format(self.get_permission_prefix())):
|
||||
url = self.request.route_url('{}.delete_rows'.format(self.get_route_prefix()), uuid=batch.uuid)
|
||||
return HTML.tag('p', c=[tags.link_to("Delete all rows matching current search", url)])
|
||||
|
|
|
@ -40,6 +40,7 @@ from webhelpers2.html import tags
|
|||
from tailbone import forms
|
||||
from tailbone.db import Session
|
||||
from tailbone.views.batch import FileBatchMasterView
|
||||
from tailbone.diffs import Diff
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
@ -76,11 +77,12 @@ class VendorCatalogView(FileBatchMasterView):
|
|||
|
||||
form_fields = [
|
||||
'id',
|
||||
'description',
|
||||
'vendor',
|
||||
'filename',
|
||||
'parser_key',
|
||||
'vendor',
|
||||
'future',
|
||||
'effective',
|
||||
'description',
|
||||
'notes',
|
||||
'created',
|
||||
'created_by',
|
||||
|
@ -114,16 +116,6 @@ class VendorCatalogView(FileBatchMasterView):
|
|||
'description',
|
||||
'size',
|
||||
'is_preferred_vendor',
|
||||
'old_vendor_code',
|
||||
'vendor_code',
|
||||
'old_case_size',
|
||||
'case_size',
|
||||
'old_case_cost',
|
||||
'case_cost',
|
||||
'case_cost_diff',
|
||||
'old_unit_cost',
|
||||
'unit_cost',
|
||||
'unit_cost_diff',
|
||||
'suggested_retail',
|
||||
'starts',
|
||||
'ends',
|
||||
|
@ -131,6 +123,8 @@ class VendorCatalogView(FileBatchMasterView):
|
|||
'discount_ends',
|
||||
'discount_amount',
|
||||
'discount_percent',
|
||||
'case_cost_diff',
|
||||
'unit_cost_diff',
|
||||
'status_code',
|
||||
'status_text',
|
||||
]
|
||||
|
@ -228,7 +222,7 @@ class VendorCatalogView(FileBatchMasterView):
|
|||
|
||||
# starts
|
||||
if not batch.future:
|
||||
g.hide_column('starts')
|
||||
g.remove('starts')
|
||||
|
||||
g.set_type('old_unit_cost', 'currency')
|
||||
g.set_type('unit_cost', 'currency')
|
||||
|
@ -262,6 +256,25 @@ class VendorCatalogView(FileBatchMasterView):
|
|||
f.set_type('upc', 'gpc')
|
||||
f.set_type('discount_percent', 'percent')
|
||||
|
||||
def template_kwargs_view_row(self, **kwargs):
|
||||
row = kwargs['instance']
|
||||
batch = row.batch
|
||||
|
||||
fields = [
|
||||
'vendor_code',
|
||||
'case_size',
|
||||
'case_cost',
|
||||
'unit_cost',
|
||||
]
|
||||
old_data = dict([(field, getattr(row, 'old_{}'.format(field)))
|
||||
for field in fields])
|
||||
new_data = dict([(field, getattr(row, field))
|
||||
for field in fields])
|
||||
kwargs['catalog_entry_diff'] = Diff(old_data, new_data, fields=fields,
|
||||
monospace=True)
|
||||
|
||||
return kwargs
|
||||
|
||||
def template_kwargs_create(self, **kwargs):
|
||||
parsers = self.get_parsers()
|
||||
for parser in parsers:
|
||||
|
|
Loading…
Reference in a new issue