Add custom Stores master view, plus master for CORE Stores
This commit is contained in:
parent
5269aaa610
commit
21465c1600
|
@ -2,7 +2,7 @@
|
|||
################################################################################
|
||||
#
|
||||
# Rattail -- Retail Software Framework
|
||||
# Copyright © 2010-2020 Lance Edgar
|
||||
# Copyright © 2010-2021 Lance Edgar
|
||||
#
|
||||
# This file is part of Rattail.
|
||||
#
|
||||
|
@ -123,6 +123,11 @@ def make_corepos_menu(request):
|
|||
'url': url('corepos.parameters'),
|
||||
'perm': 'corepos.parameters.list',
|
||||
},
|
||||
{
|
||||
'title': "Stores",
|
||||
'url': url('corepos.stores'),
|
||||
'perm': 'corepos.stores.list',
|
||||
},
|
||||
{'type': 'sep'},
|
||||
{
|
||||
'title': "Transaction Details",
|
||||
|
@ -134,13 +139,13 @@ def make_corepos_menu(request):
|
|||
|
||||
office_url = core_office_url(request.rattail_config)
|
||||
if office_url:
|
||||
corepos_menu['items'].extend([
|
||||
{'type': 'sep'},
|
||||
{
|
||||
corepos_menu['items'].insert(
|
||||
0, {
|
||||
'title': "Go to CORE Office",
|
||||
'url': '{}/'.format(office_url),
|
||||
'target': '_blank',
|
||||
},
|
||||
])
|
||||
})
|
||||
corepos_menu['items'].insert(
|
||||
1, {'type': 'sep'})
|
||||
|
||||
return corepos_menu
|
||||
|
|
|
@ -29,6 +29,7 @@ from .master import CoreOfficeMasterView
|
|||
|
||||
def includeme(config):
|
||||
config.include('tailbone_corepos.views.corepos.parameters')
|
||||
config.include('tailbone_corepos.views.corepos.stores')
|
||||
config.include('tailbone_corepos.views.corepos.departments')
|
||||
config.include('tailbone_corepos.views.corepos.subdepartments')
|
||||
config.include('tailbone_corepos.views.corepos.superdepartments')
|
||||
|
|
88
tailbone_corepos/views/corepos/stores.py
Normal file
88
tailbone_corepos/views/corepos/stores.py
Normal file
|
@ -0,0 +1,88 @@
|
|||
# -*- coding: utf-8; -*-
|
||||
################################################################################
|
||||
#
|
||||
# Rattail -- Retail Software Framework
|
||||
# Copyright © 2010-2021 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 store views
|
||||
"""
|
||||
|
||||
from corepos.db.office_op import model as corepos
|
||||
|
||||
from .master import CoreOfficeMasterView
|
||||
|
||||
|
||||
class StoreView(CoreOfficeMasterView):
|
||||
"""
|
||||
Base class for store views.
|
||||
"""
|
||||
model_class = corepos.Store
|
||||
model_title = "CORE-POS Store"
|
||||
url_prefix = '/core-pos/stores'
|
||||
route_prefix = 'corepos.stores'
|
||||
|
||||
labels = {
|
||||
'db_host': "DB Host",
|
||||
'db_driver': "DB Driver",
|
||||
'db_user': "DB User",
|
||||
'db_password': "DB Password",
|
||||
'trans_db': "Transactions DB",
|
||||
'op_db': "Operational DB",
|
||||
'web_service_url': "Web Service URL",
|
||||
}
|
||||
|
||||
grid_columns = [
|
||||
'id',
|
||||
'description',
|
||||
'push',
|
||||
'pull',
|
||||
'has_own_items',
|
||||
]
|
||||
|
||||
form_fields = [
|
||||
'id',
|
||||
'description',
|
||||
'db_host',
|
||||
'db_driver',
|
||||
# TODO: should maybe expose these for admin only?
|
||||
# 'db_user',
|
||||
# 'db_password',
|
||||
'trans_db',
|
||||
'op_db',
|
||||
'push',
|
||||
'pull',
|
||||
'has_own_items',
|
||||
'web_service_url',
|
||||
]
|
||||
|
||||
def configure_grid(self, g):
|
||||
super(StoreView, self).configure_grid(g)
|
||||
|
||||
# must add this b/c id is technically just a synonym
|
||||
g.set_sorter('id', corepos.Store.storeID)
|
||||
|
||||
g.set_sort_defaults('id')
|
||||
|
||||
g.set_link('id')
|
||||
g.set_link('description')
|
||||
|
||||
|
||||
def includeme(config):
|
||||
StoreView.defaults(config)
|
63
tailbone_corepos/views/stores.py
Normal file
63
tailbone_corepos/views/stores.py
Normal file
|
@ -0,0 +1,63 @@
|
|||
# -*- coding: utf-8; -*-
|
||||
################################################################################
|
||||
#
|
||||
# Rattail -- Retail Software Framework
|
||||
# Copyright © 2010-2021 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/>.
|
||||
#
|
||||
################################################################################
|
||||
"""
|
||||
Store Views
|
||||
"""
|
||||
|
||||
from tailbone.views import stores as base
|
||||
|
||||
|
||||
class StoreView(base.StoresView):
|
||||
"""
|
||||
Master view for the Store class.
|
||||
"""
|
||||
labels = {
|
||||
'corepos_id': "CORE-POS ID",
|
||||
}
|
||||
|
||||
@property
|
||||
def form_fields(self):
|
||||
fields = super(StoreView, self).form_fields
|
||||
return fields + [
|
||||
'corepos_id',
|
||||
]
|
||||
|
||||
def query(self, session):
|
||||
query = super(StoreView, self).query(session)
|
||||
model = self.model
|
||||
return query.outerjoin(model.CoreStore)
|
||||
|
||||
def configure_grid(self, g):
|
||||
super(StoreView, self).configure_grid(g)
|
||||
model = self.model
|
||||
g.set_filter('corepos_id', model.CoreStore.corepos_id)
|
||||
|
||||
def get_version_child_classes(self):
|
||||
model = self.model
|
||||
return super(StoreView, self).get_version_child_classes() + [
|
||||
model.CoreStore,
|
||||
]
|
||||
|
||||
|
||||
def includeme(config):
|
||||
StoreView.defaults(config)
|
Loading…
Reference in a new issue