[commits] r149 - in selinux-site/trunk: . selinux.dev selinux.dev/selinux selinux.dev/selinux/dev selinux.dev/selinux/dev/profiles selinux.dev/selinux/dev/profiles/default
tim at mail.se.linux.org
tim at mail.se.linux.org
Ons Nov 28 16:21:01 CET 2007
Author: tim
Date: 2007-11-28 16:21:01 +0100 (Wed, 28 Nov 2007)
New Revision: 149
Added:
selinux-site/trunk/selinux.dev/
selinux-site/trunk/selinux.dev/selinux/
selinux-site/trunk/selinux.dev/selinux/__init__.py
selinux-site/trunk/selinux.dev/selinux/dev/
selinux-site/trunk/selinux.dev/selinux/dev/__init__.py
selinux-site/trunk/selinux.dev/selinux/dev/configure.zcml
selinux-site/trunk/selinux.dev/selinux/dev/content.py
selinux-site/trunk/selinux.dev/selinux/dev/profiles/
selinux-site/trunk/selinux.dev/selinux/dev/profiles/default/
selinux-site/trunk/selinux.dev/selinux/dev/profiles/default/import_steps.xml
selinux-site/trunk/selinux.dev/selinux/dev/setuphandlers.py
selinux-site/trunk/selinux.dev/setup.py
Log:
Add a development package that adds initial content when running buildout for the first time. This is not used in production.
Added: selinux-site/trunk/selinux.dev/selinux/__init__.py
===================================================================
--- selinux-site/trunk/selinux.dev/selinux/__init__.py (rev 0)
+++ selinux-site/trunk/selinux.dev/selinux/__init__.py 2007-11-28 15:21:01 UTC (rev 149)
@@ -0,0 +1,5 @@
+try:
+ __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+ from pkgutil import extend_path
+ __path__ = extend_path(__path__, __name__)
Property changes on: selinux-site/trunk/selinux.dev/selinux/__init__.py
___________________________________________________________________
Name: svn:keywords
+ Id
Added: selinux-site/trunk/selinux.dev/selinux/dev/__init__.py
===================================================================
Property changes on: selinux-site/trunk/selinux.dev/selinux/dev/__init__.py
___________________________________________________________________
Name: svn:keywords
+ Id
Added: selinux-site/trunk/selinux.dev/selinux/dev/configure.zcml
===================================================================
--- selinux-site/trunk/selinux.dev/selinux/dev/configure.zcml (rev 0)
+++ selinux-site/trunk/selinux.dev/selinux/dev/configure.zcml 2007-11-28 15:21:01 UTC (rev 149)
@@ -0,0 +1,16 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:five="http://namespaces.zope.org/five"
+ xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
+ i18n_domain="plone">
+
+ <genericsetup:registerProfile
+ name="selinux"
+ title="SeLinux dev"
+ directory="profiles/default"
+ description="Extension profile to configure SeLinux site"
+ for="Products.CMFPlone.interfaces.IPloneSiteRoot"
+ provides="Products.GenericSetup.interfaces.EXTENSION"
+ />
+
+</configure>
Property changes on: selinux-site/trunk/selinux.dev/selinux/dev/configure.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: selinux-site/trunk/selinux.dev/selinux/dev/content.py
===================================================================
--- selinux-site/trunk/selinux.dev/selinux/dev/content.py (rev 0)
+++ selinux-site/trunk/selinux.dev/selinux/dev/content.py 2007-11-28 15:21:01 UTC (rev 149)
@@ -0,0 +1,152 @@
+# -*- coding: utf-8 -*-
+
+from Products.CMFCore.utils import getToolByName
+from Products.CMFPlone.utils import _createObjectByType
+from Products.ATContentTypes.lib import constraintypes
+from Testing import makerequest
+
+def setupContent(site):
+ createNewsFolder(site)
+ createEventsFolder(site)
+ createLatestFeed(site)
+ createSimpleFolders(site)
+
+def createEventsFolder(site):
+ wftool = getToolByName(site, 'portal_workflow')
+ existing = site.objectIds()
+
+ if 'handelser' not in existing:
+ newid = site.invokeFactory('Large Plone Folder', id='handelser',
+ title='Händelser')
+ folder = site.handelser
+ #wfstate = workflow.getInfoFor(folder, 'review_state')
+ #if wfstate == 'published':
+ #return
+ #else:
+ # return
+
+ folder.invokeFactory('Topic', id='aggregator', title='Händelser')
+
+ folder.setConstrainTypesMode(constraintypes.ENABLED)
+ folder.setLocallyAllowedTypes(['Event'])
+ folder.setImmediatelyAddableTypes(['Event'])
+ folder.setDefaultPage('aggregator')
+ folder.unmarkCreationFlag()
+
+ if wftool.getInfoFor(folder, 'review_state') != 'published':
+ wftool.doActionFor(folder, 'publish')
+
+ topic = folder.aggregator
+ topic.unmarkCreationFlag()
+
+ type_crit = topic.addCriterion('Type','ATPortalTypeCriterion')
+ type_crit.setValue('Event')
+ sort_crit = topic.addCriterion('start','ATSortCriterion')
+ state_crit = topic.addCriterion('review_state', 'ATSimpleStringCriterion')
+ state_crit.setValue('published')
+ date_crit = topic.addCriterion('start', 'ATFriendlyDateCriteria')
+ # Set date reference to now
+ date_crit.setValue(0)
+ # Only take events in the future
+ date_crit.setDateRange('+') # This is irrelevant when the date is now
+ date_crit.setOperation('more')
+
+ if wftool.getInfoFor(topic, 'review_state') != 'published':
+ wftool.doActionFor(topic, 'publish')
+
+ site.handelser.indexObject()
+ site.handelser.aggregator.indexObject()
+
+def createLatestFeed(site):
+ existing = site.objectIds()
+
+ # Collection for making a feed
+ if 'nytt' not in existing:
+ site.invokeFactory('Topic', id='nytt', title='Senaste')
+ topic = site.nytt
+
+ topic.setLimitNumber(True)
+ topic.setItemCount(30)
+ state_crit = topic.addCriterion('review_state',
+ 'ATSimpleStringCriterion')
+ state_crit.setValue('published')
+ topic.setSortCriterion('effective', True)
+ topic.manage_addProperty('layout', 'folder_summary_view', 'string')
+ topic.unmarkCreationFlag()
+
+
+def createNewsFolder(site):
+ wftool = getToolByName(site, 'portal_workflow')
+ existing = site.objectIds()
+
+ if 'nyheter' in existing:
+ newid = site.invokeFactory('Large Plone Folder', id='nyheter',
+ title='Nyheter')
+ folder = site.nyheter
+ #wfstate = workflow.getInfoFor(folder, 'review_state')
+ #if wfstate == 'published':
+ # return
+ #else:
+ # return
+
+ # News topic
+ folder.invokeFactory('Topic', id='aggregator', title='Nyheter')
+ folder = site.nyheter
+ folder.setConstrainTypesMode(constraintypes.ENABLED)
+ folder.setLocallyAllowedTypes(['News Item'])
+ folder.setImmediatelyAddableTypes(['News Item'])
+ folder.setDefaultPage('aggregator')
+ folder.unmarkCreationFlag()
+
+ if wftool.getInfoFor(folder, 'review_state') != 'published':
+ wftool.doActionFor(folder, 'publish')
+
+ topic = site.nyheter.aggregator
+ type_crit = topic.addCriterion('Type','ATPortalTypeCriterion')
+ type_crit.setValue('News Item')
+ sort_crit = topic.addCriterion('created','ATSortCriterion')
+ state_crit = topic.addCriterion('review_state', 'ATSimpleStringCriterion')
+ state_crit.setValue('published')
+ topic.setSortCriterion('effective', True)
+ topic.manage_addProperty('layout', 'folder_summary_view', 'string')
+ topic.unmarkCreationFlag()
+
+ if wftool.getInfoFor(topic, 'review_state') != 'published':
+ wftool.doActionFor(topic, 'publish')
+
+ site.nyheter.indexObject()
+ site.nyheter.aggregator.indexObject()
+
+def createSimpleFolders(site):
+ workflow = getToolByName(site, 'portal_workflow')
+
+ # this is a little hack, when we create a HelpCenter the context
+ # must have a request, otherwise an error is raised
+ site2 = makerequest.makerequest(site)
+
+ folders = ({'id': 'grupper', 'title': 'Arbetsgrupper',
+ 'portal_type': 'Folder', 'wfaction': 'publish'},
+ {'id': 'dokument', 'title': 'Dokumentation',
+ 'portal_type': 'HelpCenter', 'wfaction': None},
+ {'id': 'om', 'title': 'Om föreningen',
+ 'portal_type': 'Folder', 'wfaction': 'publish'},
+ {'id': 'support', 'title': 'Support',
+ 'portal_type': 'Folder', 'wfaction': 'publish'},
+ {'id': 'chat', 'title': 'Chat',
+ 'portal_type': 'Folder', 'wfaction': 'publish'},
+ {'id': 'nyborjare', 'title': 'Nybörjare',
+ 'portal_type': 'Folder', 'wfaction': 'publish'})
+
+ for folderinfo in folders:
+ folder_id = folderinfo['id']
+ title = folderinfo['title']
+ portal_type = folderinfo['portal_type']
+ action = folderinfo['wfaction']
+ folder = getattr(site2, folder_id, None)
+
+ if folder is None:
+ newid = site2.invokeFactory(portal_type, id=folder_id, title=title)
+ folder = getattr(site2, newid)
+ if action:
+ workflow.doActionFor(folder, action)
+ folder.indexObject()
Property changes on: selinux-site/trunk/selinux.dev/selinux/dev/content.py
___________________________________________________________________
Name: svn:keywords
+ Id
Added: selinux-site/trunk/selinux.dev/selinux/dev/profiles/default/import_steps.xml
===================================================================
--- selinux-site/trunk/selinux.dev/selinux/dev/profiles/default/import_steps.xml (rev 0)
+++ selinux-site/trunk/selinux.dev/selinux/dev/profiles/default/import_steps.xml 2007-11-28 15:21:01 UTC (rev 149)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<import-steps>
+ <import-step id="selinuxdev-various" version="20071128"
+ handler="selinux.dev.setuphandlers.setupVarious"
+ title="Setup SeLinux Dev">
+ Puts on debug flags etc.
+ </import-step>
+</import-steps>
Added: selinux-site/trunk/selinux.dev/selinux/dev/setuphandlers.py
===================================================================
--- selinux-site/trunk/selinux.dev/selinux/dev/setuphandlers.py (rev 0)
+++ selinux-site/trunk/selinux.dev/selinux/dev/setuphandlers.py 2007-11-28 15:21:01 UTC (rev 149)
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+
+from Products.CMFCore.utils import getToolByName
+from Products.CMFPlone.utils import _createObjectByType
+from Products.ATContentTypes.lib import constraintypes
+from Testing import makerequest
+from selinux.dev.content import setupContent
+
+def setupVarious(context):
+ site = context.getSite()
+
+ setupFrontpage(site)
+ removePloneContent(site)
+ setupMemberFolder(site)
+ setupContent(site)
+
+
+def setupFrontpage(site):
+ if site.hasProperty('default_page'):
+ site.manage_delProperties(ids=['default_page'])
+
+ #left_column = getUtility(IPortletManager, name=u'plone.leftcolumn',
+ # context=site)
+
+ #left = getMultiAdapter((site, left_column,), IPortletAssignmentMapping,
+ # context=site)
+
+ #keys = list(left.keys())
+ #for key in keys:
+ # del left[key]
+
+
+# until plone supports setting up the site without creating some initial
+# folders, we need to remove a few folders
+def removePloneContent(site):
+ for id in ('Members', 'news', 'events'):
+ if getattr(site, id, None):
+ site.manage_delObjects([id])
+
+def setupMemberFolder(site):
+ mship = getToolByName(site, 'portal_membership')
+ workflow = getToolByName(site, 'portal_workflow')
+
+ # we call the members folder 'medlemmar'
+ mship.setMembersFolderById('medlemmar')
+
+ # member folders should be created
+ if not mship.getMemberareaCreationFlag():
+ mship.setMemberareaCreationFlag()
+
+ # publish member folder
+ members = getattr(site, 'medlemmar', None)
+ if members is not None:
+ if workflow.getInfoFor(members, 'review_state') != 'published':
+ workflow.doActionFor(members, 'publish')
Property changes on: selinux-site/trunk/selinux.dev/selinux/dev/setuphandlers.py
___________________________________________________________________
Name: svn:keywords
+ Id
Added: selinux-site/trunk/selinux.dev/setup.py
===================================================================
--- selinux-site/trunk/selinux.dev/setup.py (rev 0)
+++ selinux-site/trunk/selinux.dev/setup.py 2007-11-28 15:21:01 UTC (rev 149)
@@ -0,0 +1,34 @@
+from setuptools import setup, find_packages
+import sys, os
+
+version = '0.1'
+
+setup(name='selinux.dev',
+ version=version,
+ description="SeLinux dev",
+ long_description="""\
+""",
+ # Get more strings from http://www.python.org/pypi?%3Aaction=list_classifiers
+ classifiers=[
+ "Framework :: Plone",
+ "Framework :: Zope2",
+ "License :: OSI Approved :: GNU General Public License (GPL)",
+ "Programming Language :: Python",
+ "Topic :: Software Development :: Libraries :: Python Modules",
+ ],
+ keywords='',
+ author='Tim Terlegard',
+ author_email='tim.terlegard at gmail.com',
+ url='http://svn.se.linux.org/svn/selinux.dev',
+ license='GPL',
+ packages=find_packages(exclude=['ez_setup']),
+ namespace_packages=['selinux'],
+ include_package_data=True,
+ zip_safe=False,
+ install_requires=[
+ 'setuptools',
+ ],
+ entry_points="""
+ # -*- Entry points: -*-
+ """,
+ )
Property changes on: selinux-site/trunk/selinux.dev/setup.py
___________________________________________________________________
Name: svn:keywords
+ Id
More information about the commits
mailing list