Overhaul product views a little, per customization needs
This commit is contained in:
parent
f7267597ee
commit
9a6ad16e2f
5 changed files with 94 additions and 54 deletions
|
@ -61,6 +61,7 @@ class MasterView(View):
|
|||
viewing = False
|
||||
editing = False
|
||||
deleting = False
|
||||
has_pk_fields = False
|
||||
|
||||
row_attrs = {}
|
||||
cell_attrs = {}
|
||||
|
@ -1292,6 +1293,9 @@ class MasterView(View):
|
|||
if cls.viewable:
|
||||
config.add_tailbone_permission(permission_prefix, '{}.view'.format(permission_prefix),
|
||||
"View details for {}".format(model_title))
|
||||
if cls.has_pk_fields:
|
||||
config.add_tailbone_permission(permission_prefix, '{}.view_pk_fields'.format(permission_prefix),
|
||||
"View all PK-type fields for {}".format(model_title_plural))
|
||||
|
||||
# view by grid index
|
||||
config.add_route('{}.view_index'.format(route_prefix), '{}/view'.format(url_prefix))
|
||||
|
|
|
@ -132,8 +132,7 @@ class ProductsView(MasterView):
|
|||
|
||||
return query
|
||||
|
||||
def configure_grid(self, g):
|
||||
|
||||
def _preconfigure_grid(self, g):
|
||||
def join_vendor(q):
|
||||
return q.outerjoin(model.ProductCost,
|
||||
sa.and_(
|
||||
|
@ -202,35 +201,38 @@ class ProductsView(MasterView):
|
|||
g.filters['vendor_code'] = g.make_filter('vendor_code', ProductCostCode.code)
|
||||
g.filters['vendor_code_any'] = g.make_filter('vendor_code_any', ProductCostCodeAny.code)
|
||||
|
||||
g.default_sortkey = 'upc'
|
||||
|
||||
product_link = lambda p: self.get_action_url('view', p)
|
||||
|
||||
g.upc.set(renderer=forms.renderers.GPCFieldRenderer)
|
||||
g.upc.set(label="UPC", renderer=forms.renderers.GPCFieldRenderer)
|
||||
g.upc.attrs(link=product_link)
|
||||
|
||||
g.description.set(renderer=DescriptionFieldRenderer)
|
||||
g.description.attrs(link=product_link)
|
||||
|
||||
g.regular_price.set(renderer=forms.renderers.PriceFieldRenderer)
|
||||
g.current_price.set(renderer=forms.renderers.PriceFieldRenderer)
|
||||
g.regular_price.set(label="Reg. Price", renderer=forms.renderers.PriceFieldRenderer)
|
||||
g.current_price.set(label="Cur. Price", renderer=forms.renderers.PriceFieldRenderer)
|
||||
|
||||
g.vendor.set(label="Pref. Vendor")
|
||||
|
||||
g.default_sortkey = 'upc'
|
||||
|
||||
if self.print_labels and self.request.has_perm('products.print_labels'):
|
||||
g.more_actions.append(grids.GridAction('print_label', icon='print'))
|
||||
|
||||
def configure_grid(self, g):
|
||||
g.configure(
|
||||
include=[
|
||||
g.upc.label("UPC"),
|
||||
g.upc,
|
||||
g.brand,
|
||||
g.description,
|
||||
g.size,
|
||||
g.subdepartment,
|
||||
g.vendor.label("Pref. Vendor"),
|
||||
g.regular_price.label("Reg. Price"),
|
||||
g.current_price.label("Cur. Price"),
|
||||
],
|
||||
g.vendor,
|
||||
g.regular_price,
|
||||
g.current_price,
|
||||
],
|
||||
readonly=True)
|
||||
|
||||
# TODO: need to check for 'print labels' permission here also
|
||||
if self.print_labels:
|
||||
g.more_actions.append(grids.GridAction('print_label', icon='print'))
|
||||
|
||||
def template_kwargs_index(self, **kwargs):
|
||||
if self.print_labels:
|
||||
kwargs['label_profiles'] = Session.query(model.LabelProfile)\
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue