Add initial support for WooCommerce integration
This commit is contained in:
parent
05ac07d2e6
commit
25bf17715c
|
@ -14,6 +14,8 @@ class DemoConfigExtension(ConfigExtension):
|
||||||
|
|
||||||
def configure(self, config):
|
def configure(self, config):
|
||||||
|
|
||||||
|
config.setdefault('rattail', 'app_package', 'rattail_demo')
|
||||||
|
|
||||||
# tell rattail where our stuff lives
|
# tell rattail where our stuff lives
|
||||||
config.setdefault('rattail', 'model', 'rattail_demo.db.model')
|
config.setdefault('rattail', 'model', 'rattail_demo.db.model')
|
||||||
config.setdefault('rattail.mail', 'emails', 'rattail_demo.emails')
|
config.setdefault('rattail.mail', 'emails', 'rattail_demo.emails')
|
||||||
|
|
|
@ -6,8 +6,11 @@ Rattail Demo data model
|
||||||
# bring in all the normal stuff from Rattail
|
# bring in all the normal stuff from Rattail
|
||||||
from rattail.db.model import *
|
from rattail.db.model import *
|
||||||
|
|
||||||
# also bring in CORE integration models
|
# also bring in CORE-POS integration models
|
||||||
from rattail_corepos.db.model import *
|
from rattail_corepos.db.model import *
|
||||||
|
|
||||||
|
# also bring in WooCommerce integration models
|
||||||
|
from rattail_woocommerce.db.model import *
|
||||||
|
|
||||||
# now bring in Demo-specific models
|
# now bring in Demo-specific models
|
||||||
from .shopfoo import ShopfooProduct, ShopfooProductExport
|
from .shopfoo import ShopfooProduct, ShopfooProductExport
|
||||||
|
|
|
@ -6,10 +6,12 @@ Rattail Demo -> Rattail Demo "versions" data import
|
||||||
from rattail_demo.db import model
|
from rattail_demo.db import model
|
||||||
from rattail.importing import versions as base
|
from rattail.importing import versions as base
|
||||||
from rattail_corepos.importing.versions import CoreposVersionMixin
|
from rattail_corepos.importing.versions import CoreposVersionMixin
|
||||||
|
from rattail_woocommerce.importing.versions import WooVersionMixin
|
||||||
|
|
||||||
|
|
||||||
class FromRattailDemoToRattailDemoVersions(base.FromRattailToRattailVersions,
|
class FromRattailDemoToRattailDemoVersions(base.FromRattailToRattailVersions,
|
||||||
CoreposVersionMixin):
|
CoreposVersionMixin,
|
||||||
|
WooVersionMixin):
|
||||||
"""
|
"""
|
||||||
Handler for Rattail Demo -> Rattail Demo "versions" data import
|
Handler for Rattail Demo -> Rattail Demo "versions" data import
|
||||||
"""
|
"""
|
||||||
|
@ -17,6 +19,7 @@ class FromRattailDemoToRattailDemoVersions(base.FromRattailToRattailVersions,
|
||||||
def get_importers(self):
|
def get_importers(self):
|
||||||
importers = super(FromRattailDemoToRattailDemoVersions, self).get_importers()
|
importers = super(FromRattailDemoToRattailDemoVersions, self).get_importers()
|
||||||
importers = self.add_corepos_importers(importers)
|
importers = self.add_corepos_importers(importers)
|
||||||
|
importers = self.add_woo_importers(importers)
|
||||||
importers['ShopfooProduct'] = ShopfooProductImporter
|
importers['ShopfooProduct'] = ShopfooProductImporter
|
||||||
return importers
|
return importers
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ def main(global_config, **settings):
|
||||||
# prefer demo templates over tailbone
|
# prefer demo templates over tailbone
|
||||||
settings.setdefault('mako.directories', ['rattail_demo.web:templates',
|
settings.setdefault('mako.directories', ['rattail_demo.web:templates',
|
||||||
'tailbone_corepos:templates',
|
'tailbone_corepos:templates',
|
||||||
|
'tailbone_woocommerce:templates',
|
||||||
'tailbone:templates',])
|
'tailbone:templates',])
|
||||||
|
|
||||||
# for graceful handling of postgres restart
|
# for graceful handling of postgres restart
|
||||||
|
|
|
@ -122,6 +122,12 @@ def simple_menus(request):
|
||||||
'url': url('shopfoo.product_exports'),
|
'url': url('shopfoo.product_exports'),
|
||||||
'perm': 'shopfoo.product_exports.list',
|
'perm': 'shopfoo.product_exports.list',
|
||||||
},
|
},
|
||||||
|
{'type': 'sep'},
|
||||||
|
{
|
||||||
|
'title': "WooCommerce Products",
|
||||||
|
'url': url('woocommerce.products'),
|
||||||
|
'perm': 'woocommerce.products.list',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
46
rattail_demo/web/templates/products/view.mako
Normal file
46
rattail_demo/web/templates/products/view.mako
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
## -*- coding: utf-8; -*-
|
||||||
|
<%inherit file="tailbone:templates/products/view.mako" />
|
||||||
|
<%namespace name="corepos" file="tailbone_corepos:templates/products/view.mako" />
|
||||||
|
<%namespace name="woocommerce" file="tailbone_woocommerce:templates/products/view.mako" />
|
||||||
|
|
||||||
|
<%def name="object_helpers()">
|
||||||
|
${parent.object_helpers()}
|
||||||
|
${self.render_xref_helper()}
|
||||||
|
|
||||||
|
<div class="object-helper">
|
||||||
|
<h3>Internal Links</h3>
|
||||||
|
<div class="object-helper-content">
|
||||||
|
<ul>
|
||||||
|
% if instance.corepos_id:
|
||||||
|
<li>${h.link_to("View CORE-POS Product", url('corepos.products.view', id=instance.corepos_id))}</li>
|
||||||
|
% endif
|
||||||
|
% if instance.demo_shopfoo_product:
|
||||||
|
<li>${h.link_to("View Shopfoo Product", url('shopfoo.products.view', uuid=instance.demo_shopfoo_product.uuid))}</li>
|
||||||
|
% endif
|
||||||
|
% if instance.woocommerce_cache_product:
|
||||||
|
<li>${h.link_to("View WooCommerce Product", url('woocommerce.products.view', uuid=instance.woocommerce_cache_product.uuid))}</li>
|
||||||
|
% endif
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</%def>
|
||||||
|
|
||||||
|
<%def name="render_xref_helper()">
|
||||||
|
<div class="object-helper">
|
||||||
|
<h3>Cross-Reference</h3>
|
||||||
|
<div class="object-helper-content buttons">
|
||||||
|
${corepos.render_xref_button()}
|
||||||
|
${woocommerce.render_xref_store_button()}
|
||||||
|
${woocommerce.render_xref_admin_button()}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</%def>
|
||||||
|
|
||||||
|
<%def name="extra_main_fields(form)">
|
||||||
|
${parent.extra_main_fields(form)}
|
||||||
|
${corepos.extra_main_fields_corepos(form)}
|
||||||
|
${woocommerce.extra_main_fields_woocommerce(form)}
|
||||||
|
</%def>
|
||||||
|
|
||||||
|
|
||||||
|
${parent.body()}
|
|
@ -44,6 +44,9 @@ def includeme(config):
|
||||||
# shopfoo views
|
# shopfoo views
|
||||||
config.include('rattail_demo.web.views.shopfoo')
|
config.include('rattail_demo.web.views.shopfoo')
|
||||||
|
|
||||||
|
# woocommerce views
|
||||||
|
config.include('tailbone_woocommerce.views.woocommerce')
|
||||||
|
|
||||||
# batch views
|
# batch views
|
||||||
config.include('tailbone.views.handheld')
|
config.include('tailbone.views.handheld')
|
||||||
config.include('tailbone.views.batch.inventory')
|
config.include('tailbone.views.batch.inventory')
|
||||||
|
|
|
@ -5,9 +5,10 @@ Product views
|
||||||
|
|
||||||
from tailbone.views import products as base
|
from tailbone.views import products as base
|
||||||
from tailbone_corepos.views import products as corepos_base
|
from tailbone_corepos.views import products as corepos_base
|
||||||
|
from tailbone_woocommerce.views import products as woocommerce_base
|
||||||
|
|
||||||
|
|
||||||
class ProductView(corepos_base.ProductView):
|
class ProductView(corepos_base.ProductView, woocommerce_base.ProductView):
|
||||||
"""
|
"""
|
||||||
Product overrides for online demo
|
Product overrides for online demo
|
||||||
"""
|
"""
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -51,8 +51,10 @@ requires = [
|
||||||
'psycopg2', # 2.6.2
|
'psycopg2', # 2.6.2
|
||||||
'rattail[db]', # 0.9.86
|
'rattail[db]', # 0.9.86
|
||||||
'rattail-corepos', # 0.1.0
|
'rattail-corepos', # 0.1.0
|
||||||
|
'rattail-woocommerce', # 0.1.0
|
||||||
'Tailbone', # 0.5.49
|
'Tailbone', # 0.5.49
|
||||||
'tailbone-corepos', # 0.1.0
|
'tailbone-corepos', # 0.1.0
|
||||||
|
'tailbone-woocommerce', # 0.1.0
|
||||||
'xlrd', # 1.0.0
|
'xlrd', # 1.0.0
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue