X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=src%2Fkoehsel.policy%2Fkoehsel%2Fpolicy%2Fsetuphandlers.py;fp=src%2Fkoehsel.policy%2Fkoehsel%2Fpolicy%2Fsetuphandlers.py;h=22b3a87aace47fbbae5bfcdadd98fbdc10883973;hb=3fc2781f2f1915090402c0a8db560385a4d7f43a;hp=51407890b0e4475ff9293a6b6374ed3a5b44874b;hpb=f53789c630416150b13df1204b0bb94334d7a0b0;p=zope-bootstrap.git diff --git a/src/koehsel.policy/koehsel/policy/setuphandlers.py b/src/koehsel.policy/koehsel/policy/setuphandlers.py index 5140789..22b3a87 100644 --- a/src/koehsel.policy/koehsel/policy/setuphandlers.py +++ b/src/koehsel.policy/koehsel/policy/setuphandlers.py @@ -1,11 +1,44 @@ -def setupVarious(context): +from Products.CMFCore.utils import getToolByName - # Ordinarily, GenericSetup handlers check for the existence of XML files. - # Here, we are not parsing an XML file, but we use this text file as a - # flag to check that we actually meant for this import step to be run. - # The file is found in profiles/default. +INSTALL_PRODUCTS = ['easyshop.core'] - if context.readDataFile('koehsel.theme_various.txt') is None: +def siteSetup(context): + + if context.readDataFile('koehsel.policy_setup.txt') is None: return - # Add additional setup code here + site = context.getSite() + + # Install EasyShop product + + qi = getToolByName(site, 'portal_quickinstaller') + for p in INSTALL_PRODUCTS: + if not qi.isProductInstalled(p): + qi.installProduct(p) + + # Add and publish shop instance + + try: site.shop + except AttributeError: + site.invokeFactory(id='shop', type_name='EasyShop') + shop = site.shop + shop.title = 'Shop' + shop.shopOwner = 'admin' + wf = getToolByName(site, 'portal_workflow') + if wf.getInfoFor(shop,'review_state','') != 'published': + wf.doActionFor(shop,'publish',comment='site setup') + + # Hide Users, News and Events + + for id in ('Members', 'news', 'events'): + ob = getattr(site,id) + if wf.getInfoFor(ob,'review_state','') != 'private': + wf.doActionFor(ob,'retract',comment='site setup') + + +# Called via hackery in __init__.py +def appInit(app): + try: app.site + except AttributeError: + app.manage_addProduct['CMFPlone'].addPloneSite(id='site', + extension_ids=['koehsel.policy:default'])