58 lines
3.2 KiB
Python
58 lines
3.2 KiB
Python
# cyberapps.commerce.setup
|
|
|
|
""" Automatic setup of a loops site for the commerce package.
|
|
"""
|
|
|
|
from zope.component import adapts
|
|
|
|
from cyberapps.commerce.order import OrderItem
|
|
from cybertools.commerce.interfaces import IShop, IProduct, ICategory
|
|
from cybertools.commerce.interfaces import ICustomer, IOrder
|
|
from cybertools.tracking.btree import TrackingStorage
|
|
from loops.concept import Concept, ConceptManager
|
|
from loops.interfaces import ITypeConcept
|
|
from loops.setup import SetupManager as BaseSetupManager
|
|
|
|
|
|
class SetupManager(BaseSetupManager):
|
|
|
|
def setup(self):
|
|
concepts = self.context.getConceptManager()
|
|
type = concepts.getTypeConcept()
|
|
predicate = concepts.getPredicateType()
|
|
customers = self.addObject(self.context, ConceptManager, 'customers')
|
|
orders = self.addObject(self.context, ConceptManager, 'orders')
|
|
# type concepts:
|
|
tShop = self.addAndConfigureObject(concepts, Concept, 'shop',
|
|
title=u'Shop', conceptType=type, typeInterface=IShop)
|
|
tProduct = self.addAndConfigureObject(concepts, Concept, 'product',
|
|
title=u'Product', conceptType=type, typeInterface=IProduct)
|
|
tCategory = self.addAndConfigureObject(concepts, Concept, 'category',
|
|
title=u'Category', conceptType=type, typeInterface=ICategory)
|
|
tCustomer = self.addAndConfigureObject(concepts, Concept, 'customer',
|
|
title=u'Customer', conceptType=type, typeInterface=ICustomer)
|
|
tOrder = self.addAndConfigureObject(concepts, Concept, 'order',
|
|
title=u'Order', conceptType=type, typeInterface=IOrder)
|
|
# predicates:
|
|
category_product = self.addObject(concepts, Concept, 'category.product',
|
|
title=u'category <- product', conceptType=predicate)
|
|
category_accessory = self.addObject(concepts, Concept, 'category.accessory',
|
|
title=u'category <- accessory subcategory', conceptType=predicate)
|
|
#category_selected = self.addObject(concepts, Concept, 'category.selected',
|
|
# title=u'category <- selected product', conceptType=predicate)
|
|
product_accessory = self.addObject(concepts, Concept, 'product.accessory',
|
|
title=u'product <- accessory', conceptType=predicate)
|
|
shop_product = self.addObject(concepts, Concept, 'shop.product',
|
|
title=u'shop <- product', conceptType=predicate)
|
|
shop_customer = self.addObject(concepts, Concept, 'shop.customer',
|
|
title=u'shop <- customer', conceptType=predicate)
|
|
#shop_order = self.addObject(concepts, Concept, 'shop.order',
|
|
# title=u'shop <- order', conceptType=predicate)
|
|
manufacturer_product = self.addObject(concepts, Concept, 'manufacturer.product',
|
|
title=u'manufacturer <- product', conceptType=predicate)
|
|
customer_order = self.addObject(concepts, Concept, 'customer.order',
|
|
title=u'customer <- order', conceptType=predicate)
|
|
# records:
|
|
records = self.context.getRecordManager()
|
|
if 'orderitems' not in records:
|
|
records['orderitems'] = TrackingStorage(trackFactory=OrderItem)
|