diff --git a/tailbone_corepos/views/corepos/__init__.py b/tailbone_corepos/views/corepos/__init__.py index d293096..a9610f2 100644 --- a/tailbone_corepos/views/corepos/__init__.py +++ b/tailbone_corepos/views/corepos/__init__.py @@ -35,6 +35,7 @@ def includeme(config): config.include('tailbone_corepos.views.corepos.vendors') config.include('tailbone_corepos.views.corepos.origins') config.include('tailbone_corepos.views.corepos.products') + config.include('tailbone_corepos.views.corepos.scaleitems') config.include('tailbone_corepos.views.corepos.members') config.include('tailbone_corepos.views.corepos.customers') config.include('tailbone_corepos.views.corepos.employees') diff --git a/tailbone_corepos/views/corepos/master.py b/tailbone_corepos/views/corepos/master.py index 534ddf3..7cb5c7a 100644 --- a/tailbone_corepos/views/corepos/master.py +++ b/tailbone_corepos/views/corepos/master.py @@ -94,6 +94,14 @@ class CoreOfficeMasterView(MasterView): url = self.request.route_url('corepos.vendors.view', id=vendor.id) return tags.link_to(text, url) + def render_corepos_product(self, obj, field): + product = getattr(obj, field) + if not product: + return "" + text = str(product) + url = self.request.route_url('corepos.products.view', id=product.id) + return tags.link_to(text, url) + def template_kwargs_view(self, **kwargs): """ Adds the URL for viewing the record/object within CORE Office, or else diff --git a/tailbone_corepos/views/corepos/scaleitems.py b/tailbone_corepos/views/corepos/scaleitems.py new file mode 100644 index 0000000..80087b4 --- /dev/null +++ b/tailbone_corepos/views/corepos/scaleitems.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8; -*- +################################################################################ +# +# Rattail -- Retail Software Framework +# Copyright © 2010-2020 Lance Edgar +# +# This file is part of Rattail. +# +# Rattail is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# Rattail is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# Rattail. If not, see . +# +################################################################################ +""" +CORE-POS scale item views +""" + +from corepos.db.office_op import model as corepos + +from .master import CoreOfficeMasterView + + +class ScaleItemView(CoreOfficeMasterView): + """ + Base class for scale item views. + """ + model_class = corepos.ScaleItem + model_title = "CORE-POS Scale Item" + url_prefix = '/core-pos/scale-items' + route_prefix = 'corepos.scale_items' + results_downloadable = True + + labels = { + 'plu': "PLU", + } + + grid_columns = [ + 'plu', + 'product', + 'price', + 'origin_text', + 'modified', + ] + + def configure_grid(self, g): + super(ScaleItemView, self).configure_grid(g) + + g.filters['plu'].default_active = True + g.filters['plu'].default_verb = 'contains' + + g.set_type('price', 'currency') + + g.set_sort_defaults('plu') + + g.set_link('plu') + g.set_link('product') + + def configure_form(self, f): + super(ScaleItemView, self).configure_form(f) + + f.set_renderer('product', self.render_corepos_product) + + +def includeme(config): + ScaleItemView.defaults(config)