Improve integration for Catapult somewhat

custom schema, importers, web views
This commit is contained in:
Lance Edgar 2020-07-05 22:23:04 -05:00
parent dd4226fcd6
commit 77102fb3ac
6 changed files with 111 additions and 16 deletions

View file

@ -38,13 +38,18 @@ class TheoConfig(ConfigExtension):
# call the app "Theo" by default # call the app "Theo" by default
config.setdefault('rattail', 'app_title', "Theo") config.setdefault('rattail', 'app_title', "Theo")
# Theo may define a custom data model
if integrate_corepos(config):
config.setdefault('rattail', 'model', 'theo.db.model_corepos')
# Theo comes with its own menu for web app # Theo comes with its own menu for web app
config.setdefault('tailbone', 'menus', 'theo.web.menus') config.setdefault('tailbone', 'menus', 'theo.web.menus')
# do we integrate w/ Catapult?
if integrate_catapult(config):
config.setdefault('rattail', 'model', 'theo.db.model_catapult')
config.setdefault('rattail.importing', 'versions.handler', 'theo.importing.versions_catapult:FromTheoToTheoVersions')
# do we integrate w/ CORE-POS?
elif integrate_corepos(config):
config.setdefault('rattail', 'model', 'theo.db.model_corepos')
def integrate_catapult(config): def integrate_catapult(config):
return config.getbool('theo', 'integrate_catapult', default=False, return config.getbool('theo', 'integrate_catapult', default=False,

31
theo/db/model_catapult.py Normal file
View file

@ -0,0 +1,31 @@
# -*- 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 <http://www.gnu.org/licenses/>.
#
################################################################################
"""
Theo data model w/ Catapult integration
"""
# bring in all the normal stuff from Rattail
from rattail.db.model import *
# also bring in Catapult integration models
from rattail_onager.db.model import *

View file

View file

@ -0,0 +1,35 @@
# -*- 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 <http://www.gnu.org/licenses/>.
#
################################################################################
"""
Theo -> Theo "versions" data import, w/ Catapult integration
"""
from rattail_onager.importing import versions as onager_base
class FromTheoToTheoVersions(onager_base.FromRattailToRattailVersions):
"""
Handler for Theo -> Theo "versions" data import
"""
host_title = "Theo"
local_title = "Theo (Versions)"

View file

@ -112,6 +112,11 @@ def simple_menus(request):
'url': url('vendors'), 'url': url('vendors'),
'perm': 'vendors.list', 'perm': 'vendors.list',
}, },
{
'title': "Taxes",
'url': url('taxes'),
'perm': 'taxes.list',
},
], ],
} }

View file

@ -38,29 +38,48 @@ def includeme(config):
config.include('tailbone.views.progress') config.include('tailbone.views.progress')
# main table views # main table views
config.include('tailbone.views.brands')
config.include('tailbone.views.customers')
config.include('tailbone.views.customergroups') config.include('tailbone.views.customergroups')
config.include('tailbone.views.custorders') config.include('tailbone.views.custorders')
config.include('tailbone.views.datasync') config.include('tailbone.views.datasync')
config.include('tailbone.views.departments')
config.include('tailbone.views.email') config.include('tailbone.views.email')
config.include('tailbone.views.employees')
config.include('tailbone.views.messages') config.include('tailbone.views.messages')
config.include('tailbone.views.people') config.include('tailbone.views.people')
config.include('tailbone.views.products')
config.include('tailbone.views.reportcodes') config.include('tailbone.views.reportcodes')
config.include('tailbone.views.roles') config.include('tailbone.views.roles')
config.include('tailbone.views.settings') config.include('tailbone.views.settings')
config.include('tailbone.views.stores')
config.include('tailbone.views.subdepartments') config.include('tailbone.views.subdepartments')
config.include('tailbone.views.users') config.include('tailbone.views.users')
config.include('tailbone.views.vendors')
# catapult views # do we integrate w/ Catapult?
if integrate_catapult(rattail_config): if integrate_catapult(rattail_config):
config.include('tailbone_onager.views') config.include('tailbone_onager.views.stores')
config.include('tailbone_onager.views.customers')
config.include('tailbone_onager.views.employees')
config.include('tailbone_onager.views.taxes')
config.include('tailbone_onager.views.departments')
config.include('tailbone_onager.views.brands')
config.include('tailbone_onager.views.vendors')
config.include('tailbone_onager.views.products')
config.include('tailbone_onager.views.catapult')
# corepos views # do we integrate w/ CORE-POS?
if integrate_corepos(rattail_config): elif integrate_corepos(rattail_config):
config.include('tailbone_corepos.views') config.include('tailbone.views.stores')
config.include('tailbone.views.customers')
config.include('tailbone.views.employees')
config.include('tailbone.views.taxes')
config.include('tailbone.views.departments')
config.include('tailbone.views.brands')
config.include('tailbone.views.vendors')
config.include('tailbone.views.products')
config.include('tailbone_corepos.views.corepos')
else: # no POS integration
config.include('tailbone.views.stores')
config.include('tailbone.views.customers')
config.include('tailbone.views.employees')
config.include('tailbone.views.taxes')
config.include('tailbone.views.departments')
config.include('tailbone.views.brands')
config.include('tailbone.views.vendors')
config.include('tailbone.views.products')