Refactor ordering worksheet to use shared logic
This commit is contained in:
parent
b529a005d8
commit
1b059c5293
|
@ -6,8 +6,8 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(function() {
|
$(function() {
|
||||||
|
|
||||||
$('#order-form').click(function() {
|
$('.load-worksheet').click(function() {
|
||||||
% if vendor_cost_count > vendor_cost_threshold:
|
% if vendor_cost_count is not Undefined and vendor_cost_threshold is not Undefined and vendor_cost_count > vendor_cost_threshold:
|
||||||
if (! confirm("This vendor has ${'{:,d}'.format(vendor_cost_count)} cost records.\n\n" +
|
if (! confirm("This vendor has ${'{:,d}'.format(vendor_cost_count)} cost records.\n\n" +
|
||||||
"It is not recommended to use Order Form mode for such a large catalog.\n\n" +
|
"It is not recommended to use Order Form mode for such a large catalog.\n\n" +
|
||||||
"Are you sure you wish to do it anyway?")) {
|
"Are you sure you wish to do it anyway?")) {
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
}
|
}
|
||||||
% endif
|
% endif
|
||||||
$(this).button('disable').button('option', 'label', "Working, please wait...");
|
$(this).button('disable').button('option', 'label', "Working, please wait...");
|
||||||
location.href = '${url('ordering.order_form', uuid=batch.uuid)}';
|
location.href = '${url('ordering.worksheet', uuid=batch.uuid)}';
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -34,10 +34,4 @@
|
||||||
% endif
|
% endif
|
||||||
</%def>
|
</%def>
|
||||||
|
|
||||||
<%def name="leading_buttons()">
|
|
||||||
% if not batch.complete and not batch.executed and request.has_perm('ordering.order_form'):
|
|
||||||
<button type="button" id="order-form">Edit as Worksheet</button>
|
|
||||||
% endif
|
|
||||||
</%def>
|
|
||||||
|
|
||||||
${parent.body()}
|
${parent.body()}
|
||||||
|
|
|
@ -158,7 +158,7 @@
|
||||||
|
|
||||||
${self.order_form_grid()}
|
${self.order_form_grid()}
|
||||||
|
|
||||||
${h.form(url('ordering.order_form_update', uuid=batch.uuid), id='item-update-form', style='display: none;')}
|
${h.form(url('ordering.worksheet_update', uuid=batch.uuid), id='item-update-form', style='display: none;')}
|
||||||
${h.csrf_token(request)}
|
${h.csrf_token(request)}
|
||||||
${h.hidden('product_uuid')}
|
${h.hidden('product_uuid')}
|
||||||
${h.hidden('cases_ordered')}
|
${h.hidden('cases_ordered')}
|
|
@ -245,7 +245,7 @@ class PurchaseView(MasterView):
|
||||||
url = self.request.route_url(routes[batch.mode], uuid=batch.uuid)
|
url = self.request.route_url(routes[batch.mode], uuid=batch.uuid)
|
||||||
return tags.link_to(text, url)
|
return tags.link_to(text, url)
|
||||||
|
|
||||||
items = [HTML.tag('li', c=render(batch)) for batch in batches]
|
items = [HTML.tag('li', c=[render(batch)]) for batch in batches]
|
||||||
return HTML.tag('ul', c=items)
|
return HTML.tag('ul', c=items)
|
||||||
|
|
||||||
def delete_instance(self, purchase):
|
def delete_instance(self, purchase):
|
||||||
|
|
|
@ -53,6 +53,7 @@ class OrderingBatchView(PurchasingBatchView):
|
||||||
mobile_creatable = True
|
mobile_creatable = True
|
||||||
rows_editable = True
|
rows_editable = True
|
||||||
mobile_rows_editable = True
|
mobile_rows_editable = True
|
||||||
|
has_worksheet = True
|
||||||
|
|
||||||
mobile_form_fields = [
|
mobile_form_fields = [
|
||||||
'vendor',
|
'vendor',
|
||||||
|
@ -106,9 +107,9 @@ class OrderingBatchView(PurchasingBatchView):
|
||||||
# purchase
|
# purchase
|
||||||
f.remove_field('purchase')
|
f.remove_field('purchase')
|
||||||
|
|
||||||
def order_form(self):
|
def worksheet(self):
|
||||||
"""
|
"""
|
||||||
View for editing batch row data as an order form.
|
View for editing batch row data as an order form worksheet.
|
||||||
"""
|
"""
|
||||||
batch = self.get_instance()
|
batch = self.get_instance()
|
||||||
if batch.executed:
|
if batch.executed:
|
||||||
|
@ -116,8 +117,7 @@ class OrderingBatchView(PurchasingBatchView):
|
||||||
|
|
||||||
# organize existing batch rows by product
|
# organize existing batch rows by product
|
||||||
order_items = {}
|
order_items = {}
|
||||||
for row in batch.data_rows:
|
for row in batch.active_rows():
|
||||||
if not row.removed:
|
|
||||||
order_items[row.product_uuid] = row
|
order_items[row.product_uuid] = row
|
||||||
|
|
||||||
# organize vendor catalog costs by dept / subdept
|
# organize vendor catalog costs by dept / subdept
|
||||||
|
@ -164,7 +164,7 @@ class OrderingBatchView(PurchasingBatchView):
|
||||||
history = list(reversed(history))
|
history = list(reversed(history))
|
||||||
|
|
||||||
title = self.get_instance_title(batch)
|
title = self.get_instance_title(batch)
|
||||||
return self.render_to_response('order_form', {
|
return self.render_to_response('worksheet', {
|
||||||
'batch': batch,
|
'batch': batch,
|
||||||
'instance': batch,
|
'instance': batch,
|
||||||
'instance_title': title,
|
'instance_title': title,
|
||||||
|
@ -212,7 +212,7 @@ class OrderingBatchView(PurchasingBatchView):
|
||||||
def decorate_order_form_cost(self, cost):
|
def decorate_order_form_cost(self, cost):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def order_form_update(self):
|
def worksheet_update(self):
|
||||||
"""
|
"""
|
||||||
Handles AJAX requests to update current batch, from Order Form view.
|
Handles AJAX requests to update current batch, from Order Form view.
|
||||||
"""
|
"""
|
||||||
|
@ -354,16 +354,6 @@ class OrderingBatchView(PurchasingBatchView):
|
||||||
cls._batch_defaults(config)
|
cls._batch_defaults(config)
|
||||||
cls._defaults(config)
|
cls._defaults(config)
|
||||||
|
|
||||||
# ordering form
|
|
||||||
config.add_tailbone_permission(permission_prefix, '{}.order_form'.format(permission_prefix),
|
|
||||||
"Edit {} data as worksheet".format(model_title))
|
|
||||||
config.add_route('{}.order_form'.format(route_prefix), '{}/{{{}}}/order-form'.format(url_prefix, model_key))
|
|
||||||
config.add_view(cls, attr='order_form', route_name='{}.order_form'.format(route_prefix),
|
|
||||||
permission='{}.order_form'.format(permission_prefix))
|
|
||||||
config.add_route('{}.order_form_update'.format(route_prefix), '{}/{{{}}}/order-form/update'.format(url_prefix, model_key))
|
|
||||||
config.add_view(cls, attr='order_form_update', route_name='{}.order_form_update'.format(route_prefix),
|
|
||||||
renderer='json', permission='{}.order_form'.format(permission_prefix))
|
|
||||||
|
|
||||||
# download as Excel
|
# download as Excel
|
||||||
config.add_route('{}.download_excel'.format(route_prefix), '{}/{{uuid}}/excel'.format(url_prefix))
|
config.add_route('{}.download_excel'.format(route_prefix), '{}/{{uuid}}/excel'.format(url_prefix))
|
||||||
config.add_view(cls, attr='download_excel', route_name='{}.download_excel'.format(route_prefix),
|
config.add_view(cls, attr='download_excel', route_name='{}.download_excel'.format(route_prefix),
|
||||||
|
|
Loading…
Reference in a new issue