Add views for CORE lanes, tenders

This commit is contained in:
Lance Edgar 2023-09-15 12:44:45 -05:00
parent b125b3f35c
commit 84ffd788b4
4 changed files with 160 additions and 3 deletions

View file

@ -171,6 +171,11 @@ def make_corepos_menu(request):
'title': "Transactions", 'title': "Transactions",
'type': 'menu', 'type': 'menu',
'items': [ 'items': [
{
'title': "House Coupons",
'route': 'corepos.house_coupons',
'perm': 'corepos.house_coupons.list',
},
{ {
'title': "Stock Purchases", 'title': "Stock Purchases",
'route': 'corepos.stock_purchases', 'route': 'corepos.stock_purchases',
@ -182,9 +187,9 @@ def make_corepos_menu(request):
'perm': 'corepos.taxrates.list', 'perm': 'corepos.taxrates.list',
}, },
{ {
'title': "House Coupons", 'title': "Tenders",
'route': 'corepos.house_coupons', 'route': 'corepos.tenders',
'perm': 'corepos.house_coupons.list', 'perm': 'corepos.tenders.list',
}, },
{ {
'title': "Transaction Details", 'title': "Transaction Details",
@ -202,6 +207,11 @@ def make_corepos_menu(request):
'route': 'corepos.stores', 'route': 'corepos.stores',
'perm': 'corepos.stores.list', 'perm': 'corepos.stores.list',
}, },
{
'title': "Lanes",
'route': 'corepos.lanes',
'perm': 'corepos.lanes.list',
},
{ {
'title': "Parameters", 'title': "Parameters",
'route': 'corepos.parameters', 'route': 'corepos.parameters',

View file

@ -48,11 +48,13 @@ def defaults(config, **kwargs):
config.include(mod('tailbone_corepos.views.corepos.customers')) config.include(mod('tailbone_corepos.views.corepos.customers'))
config.include(mod('tailbone_corepos.views.corepos.employees')) config.include(mod('tailbone_corepos.views.corepos.employees'))
config.include(mod('tailbone_corepos.views.corepos.coupons')) config.include(mod('tailbone_corepos.views.corepos.coupons'))
config.include(mod('tailbone_corepos.views.corepos.tenders'))
config.include(mod('tailbone_corepos.views.corepos.stockpurchases')) config.include(mod('tailbone_corepos.views.corepos.stockpurchases'))
config.include(mod('tailbone_corepos.views.corepos.taxrates')) config.include(mod('tailbone_corepos.views.corepos.taxrates'))
config.include(mod('tailbone_corepos.views.corepos.transactions')) config.include(mod('tailbone_corepos.views.corepos.transactions'))
config.include(mod('tailbone_corepos.views.corepos.batches')) config.include(mod('tailbone_corepos.views.corepos.batches'))
config.include(mod('tailbone_corepos.views.corepos.purchaseorders')) config.include(mod('tailbone_corepos.views.corepos.purchaseorders'))
config.include(mod('tailbone_corepos.views.corepos.lanes'))
def includeme(config): def includeme(config):

View file

@ -0,0 +1,79 @@
# -*- coding: utf-8; -*-
################################################################################
#
# Rattail -- Retail Software Framework
# Copyright © 2010-2023 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 <http://www.gnu.org/licenses/>.
#
################################################################################
"""
CORE POS "lane" views
"""
from rattail_corepos.corepos.office.util import get_fannie_config_value
from .master import CoreOfficeMasterView
class LaneView(CoreOfficeMasterView):
"""
Master view for CORE lanes
"""
model_key = 'number'
model_title = "CORE-POS Lane"
url_prefix = '/core-pos/lanes'
route_prefix = 'corepos.lanes'
filterable = False
pageable = False
creatable = False
viewable = False
editable = False
deletable = False
results_downloadable = False
grid_columns = [
'number',
'host',
'type',
'op',
'trans',
'offline',
]
def get_data(self, session=None):
data = []
lanes = get_fannie_config_value(self.rattail_config, 'LANES')
for i, lane in enumerate(lanes, 1):
lane_data = dict(lane)
lane_data['number'] = i
del lane_data['user']
del lane_data['pw']
data.append(lane_data)
return data
def defaults(config, **kwargs):
base = globals()
LaneView = kwargs.get('LaneView', base['LaneView'])
LaneView.defaults(config)
def includeme(config):
defaults(config)

View file

@ -0,0 +1,66 @@
# -*- coding: utf-8; -*-
################################################################################
#
# Rattail -- Retail Software Framework
# Copyright © 2010-2023 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 <http://www.gnu.org/licenses/>.
#
################################################################################
"""
CORE POS tender views
"""
from corepos.db.office_op.model import Tender
from .master import CoreOfficeMasterView
class TenderView(CoreOfficeMasterView):
"""
Master view for tenders
"""
model_class = Tender
model_title = "CORE-POS Tender"
url_prefix = '/core-pos/tenders'
route_prefix = 'corepos.tenders'
labels = {
'tender_id': "Tender ID",
}
def configure_grid(self, g):
super().configure_grid(g)
g.set_link('tender_id')
g.set_sort_defaults('tender_id')
g.set_link('tender_name')
g.set_type('min_amount', 'currency')
g.set_type('max_amount', 'currency')
g.set_type('max_refund', 'currency')
def defaults(config, **kwargs):
base = globals()
TenderView = kwargs.get('TenderView', base['TenderView'])
TenderView.defaults(config)
def includeme(config):
defaults(config)