Several disparate changes needed for vendor catalog improvements
- invoke vendor handler where appropriate, e.g. for parsers - reverse "polarity" of dropdown chooser setting; rename it - tweak autocomplete behavior yet again, for dynamic values - auto-select vendor upon parser selection, when possible
This commit is contained in:
parent
ab61778d35
commit
88b3279e63
12 changed files with 164 additions and 93 deletions
|
@ -2,7 +2,7 @@
|
|||
################################################################################
|
||||
#
|
||||
# Rattail -- Retail Software Framework
|
||||
# Copyright © 2010-2021 Lance Edgar
|
||||
# Copyright © 2010-2022 Lance Edgar
|
||||
#
|
||||
# This file is part of Rattail.
|
||||
#
|
||||
|
@ -29,7 +29,6 @@ from __future__ import unicode_literals, absolute_import
|
|||
import six
|
||||
|
||||
from rattail.db import model, api
|
||||
from rattail.time import localtime
|
||||
|
||||
import colander
|
||||
from deform import widget as dfwidget
|
||||
|
@ -230,7 +229,8 @@ class PurchasingBatchView(BatchMasterView):
|
|||
super(PurchasingBatchView, self).configure_form(f)
|
||||
model = self.model
|
||||
batch = f.model_instance
|
||||
today = localtime(self.rattail_config).date()
|
||||
app = self.get_rattail_app()
|
||||
today = app.localtime().date()
|
||||
use_buefy = self.get_use_buefy()
|
||||
|
||||
# mode
|
||||
|
@ -265,9 +265,15 @@ class PurchasingBatchView(BatchMasterView):
|
|||
if self.creating:
|
||||
f.replace('vendor', 'vendor_uuid')
|
||||
f.set_label('vendor_uuid', "Vendor")
|
||||
use_autocomplete = self.rattail_config.getbool(
|
||||
'rattail', 'vendor.use_autocomplete', default=True)
|
||||
if use_autocomplete:
|
||||
vendor_handler = app.get_vendor_handler()
|
||||
use_dropdown = vendor_handler.choice_uses_dropdown()
|
||||
if use_dropdown:
|
||||
vendors = self.Session.query(model.Vendor)\
|
||||
.order_by(model.Vendor.id)
|
||||
vendor_values = [(vendor.uuid, "({}) {}".format(vendor.id, vendor.name))
|
||||
for vendor in vendors]
|
||||
f.set_widget('vendor_uuid', dfwidget.SelectWidget(values=vendor_values))
|
||||
else:
|
||||
vendor_display = ""
|
||||
if self.request.method == 'POST':
|
||||
if self.request.POST.get('vendor_uuid'):
|
||||
|
@ -277,12 +283,6 @@ class PurchasingBatchView(BatchMasterView):
|
|||
vendors_url = self.request.route_url('vendors.autocomplete')
|
||||
f.set_widget('vendor_uuid', forms.widgets.JQueryAutocompleteWidget(
|
||||
field_display=vendor_display, service_url=vendors_url))
|
||||
else:
|
||||
vendors = self.Session.query(model.Vendor)\
|
||||
.order_by(model.Vendor.id)
|
||||
vendor_values = [(vendor.uuid, "({}) {}".format(vendor.id, vendor.name))
|
||||
for vendor in vendors]
|
||||
f.set_widget('vendor_uuid', dfwidget.SelectWidget(values=vendor_values))
|
||||
elif self.editing:
|
||||
f.set_readonly('vendor')
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
################################################################################
|
||||
#
|
||||
# Rattail -- Retail Software Framework
|
||||
# Copyright © 2010-2021 Lance Edgar
|
||||
# Copyright © 2010-2022 Lance Edgar
|
||||
#
|
||||
# This file is part of Rattail.
|
||||
#
|
||||
|
@ -200,9 +200,19 @@ class CostingBatchView(PurchasingBatchView):
|
|||
form.set_default('workflow', valid_workflows[0])
|
||||
|
||||
# configure vendor field
|
||||
use_autocomplete = self.rattail_config.getbool(
|
||||
'rattail', 'vendor.use_autocomplete', default=True)
|
||||
if use_autocomplete:
|
||||
app = self.get_rattail_app()
|
||||
vendor_handler = app.get_vendor_handler()
|
||||
use_dropdown = vendor_handler.choice_uses_dropdown()
|
||||
if use_dropdown:
|
||||
vendors = self.Session.query(model.Vendor)\
|
||||
.order_by(model.Vendor.id)
|
||||
vendor_values = [(vendor.uuid, "({}) {}".format(vendor.id, vendor.name))
|
||||
for vendor in vendors]
|
||||
if use_buefy:
|
||||
form.set_widget('vendor', dfwidget.SelectWidget(values=vendor_values))
|
||||
else:
|
||||
form.set_widget('vendor', forms.widgets.JQuerySelectWidget(values=vendor_values))
|
||||
else:
|
||||
vendor_display = ""
|
||||
if self.request.method == 'POST':
|
||||
if self.request.POST.get('vendor'):
|
||||
|
@ -212,15 +222,6 @@ class CostingBatchView(PurchasingBatchView):
|
|||
vendors_url = self.request.route_url('vendors.autocomplete')
|
||||
form.set_widget('vendor', forms.widgets.JQueryAutocompleteWidget(
|
||||
field_display=vendor_display, service_url=vendors_url))
|
||||
else:
|
||||
vendors = self.Session.query(model.Vendor)\
|
||||
.order_by(model.Vendor.id)
|
||||
vendor_values = [(vendor.uuid, "({}) {}".format(vendor.id, vendor.name))
|
||||
for vendor in vendors]
|
||||
if use_buefy:
|
||||
form.set_widget('vendor', dfwidget.SelectWidget(values=vendor_values))
|
||||
else:
|
||||
form.set_widget('vendor', forms.widgets.JQuerySelectWidget(values=vendor_values))
|
||||
|
||||
# configure workflow field
|
||||
values = [(workflow['workflow_key'], workflow['display'])
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
################################################################################
|
||||
#
|
||||
# Rattail -- Retail Software Framework
|
||||
# Copyright © 2010-2021 Lance Edgar
|
||||
# Copyright © 2010-2022 Lance Edgar
|
||||
#
|
||||
# This file is part of Rattail.
|
||||
#
|
||||
|
@ -294,9 +294,19 @@ class ReceivingBatchView(PurchasingBatchView):
|
|||
use_buefy=use_buefy)
|
||||
|
||||
# configure vendor field
|
||||
use_autocomplete = self.rattail_config.getbool(
|
||||
'rattail', 'vendor.use_autocomplete', default=True)
|
||||
if use_autocomplete:
|
||||
app = self.get_rattail_app()
|
||||
vendor_handler = app.get_vendor_handler()
|
||||
use_dropdown = vendor_handler.choice_uses_dropdown()
|
||||
if use_dropdown:
|
||||
vendors = self.Session.query(model.Vendor)\
|
||||
.order_by(model.Vendor.id)
|
||||
vendor_values = [(vendor.uuid, "({}) {}".format(vendor.id, vendor.name))
|
||||
for vendor in vendors]
|
||||
if use_buefy:
|
||||
form.set_widget('vendor', dfwidget.SelectWidget(values=vendor_values))
|
||||
else:
|
||||
form.set_widget('vendor', forms.widgets.JQuerySelectWidget(values=vendor_values))
|
||||
else:
|
||||
vendor_display = ""
|
||||
if self.request.method == 'POST':
|
||||
if self.request.POST.get('vendor'):
|
||||
|
@ -306,15 +316,6 @@ class ReceivingBatchView(PurchasingBatchView):
|
|||
vendors_url = self.request.route_url('vendors.autocomplete')
|
||||
form.set_widget('vendor', forms.widgets.JQueryAutocompleteWidget(
|
||||
field_display=vendor_display, service_url=vendors_url))
|
||||
else:
|
||||
vendors = self.Session.query(model.Vendor)\
|
||||
.order_by(model.Vendor.id)
|
||||
vendor_values = [(vendor.uuid, "({}) {}".format(vendor.id, vendor.name))
|
||||
for vendor in vendors]
|
||||
if use_buefy:
|
||||
form.set_widget('vendor', dfwidget.SelectWidget(values=vendor_values))
|
||||
else:
|
||||
form.set_widget('vendor', forms.widgets.JQuerySelectWidget(values=vendor_values))
|
||||
|
||||
# configure workflow field
|
||||
values = [(workflow['workflow_key'], workflow['display'])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue