[commits] r101 - in selinux-site/trunk/selinux.theme/selinux/theme:
. profiles/default profiles/default/structure
profiles/default/structure/handelser
profiles/default/structure/medlemmar
profiles/default/structure/nyheter
tim at mail.se.linux.org
tim at mail.se.linux.org
Sat Aug 18 00:55:36 CEST 2007
Author: tim
Date: 2007-08-18 00:55:36 +0200 (Sat, 18 Aug 2007)
New Revision: 101
Added:
selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/
selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/.objects
selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/.properties
selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/handelser/
selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/handelser/.objects
selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/handelser/.properties
selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/medlemmar/
selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/medlemmar/.objects
selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/medlemmar/.properties
selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/medlemmar/index_html.py
selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/nyheter/
selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/nyheter/.objects
selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/nyheter/.properties
Modified:
selinux-site/trunk/selinux.theme/selinux/theme/configure.zcml
selinux-site/trunk/selinux.theme/selinux/theme/setuphandlers.py
Log:
Added default folder structure to the site. We will probably add more default folders. Currently we only have 'medlemmar', 'nyheter' and 'handelser'. So everytime one creates a site using buildout this structure is created automatically.
Modified: selinux-site/trunk/selinux.theme/selinux/theme/configure.zcml
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/configure.zcml 2007-08-09 19:19:32 UTC (rev 100)
+++ selinux-site/trunk/selinux.theme/selinux/theme/configure.zcml 2007-08-17 22:55:36 UTC (rev 101)
@@ -3,7 +3,7 @@
xmlns:cmf="http://namespaces.zope.org/cmf"
xmlns:browser="http://namespaces.zope.org/browser"
xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
- xmlns:five="http://namespaces.zope.org/five">
+ i18n_domain="plone">
<!-- register the selinuxtheme layer directory -->
<cmf:registerDirectory name="selinuxtheme"/>
Added: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/.objects
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/.objects 2007-08-09 19:19:32 UTC (rev 100)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/.objects 2007-08-17 22:55:36 UTC (rev 101)
@@ -0,0 +1,3 @@
+medlemmar,Large Plone Folder
+nyheter,Large Plone Folder
+handelser,Large Plone Folder
Added: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/.properties
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/.properties 2007-08-09 19:19:32 UTC (rev 100)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/.properties 2007-08-17 22:55:36 UTC (rev 101)
@@ -0,0 +1,3 @@
+[DEFAULT]
+description =
+title = Svenska Linuxföreningen
Added: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/handelser/.objects
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/handelser/.objects 2007-08-09 19:19:32 UTC (rev 100)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/handelser/.objects 2007-08-17 22:55:36 UTC (rev 101)
@@ -0,0 +1 @@
+aggregator,Topic
Added: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/handelser/.properties
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/handelser/.properties 2007-08-09 19:19:32 UTC (rev 100)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/handelser/.properties 2007-08-17 22:55:36 UTC (rev 101)
@@ -0,0 +1,4 @@
+[DEFAULT]
+description = Händelser
+title = Händelser
+
Added: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/medlemmar/.objects
===================================================================
Added: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/medlemmar/.properties
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/medlemmar/.properties 2007-08-09 19:19:32 UTC (rev 100)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/medlemmar/.properties 2007-08-17 22:55:36 UTC (rev 101)
@@ -0,0 +1,3 @@
+[DEFAULT]
+description = Medlemmars hemkataloger
+title = Medlemmar
Added: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/medlemmar/index_html.py
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/medlemmar/index_html.py 2007-08-09 19:19:32 UTC (rev 100)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/medlemmar/index_html.py 2007-08-17 22:55:36 UTC (rev 101)
@@ -0,0 +1,11 @@
+## Script (Python) "index_html"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=
+##title=User Search
+##
+member_search=context.restrictedTraverse('member_search_form')
+return member_search()
Added: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/nyheter/.objects
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/nyheter/.objects 2007-08-09 19:19:32 UTC (rev 100)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/nyheter/.objects 2007-08-17 22:55:36 UTC (rev 101)
@@ -0,0 +1 @@
+aggregator,Topic
Added: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/nyheter/.properties
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/nyheter/.properties 2007-08-09 19:19:32 UTC (rev 100)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/structure/nyheter/.properties 2007-08-17 22:55:36 UTC (rev 101)
@@ -0,0 +1,4 @@
+[DEFAULT]
+description = Nyheter
+title = Nyheter
+
Modified: selinux-site/trunk/selinux.theme/selinux/theme/setuphandlers.py
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/setuphandlers.py 2007-08-09 19:19:32 UTC (rev 100)
+++ selinux-site/trunk/selinux.theme/selinux/theme/setuphandlers.py 2007-08-17 22:55:36 UTC (rev 101)
@@ -1,42 +1,132 @@
from Products.CMFCore.utils import getToolByName
-from zope.component import getUtility, getMultiAdapter
-from plone.portlets.interfaces import IPortletManager
-from plone.portlets.interfaces import IPortletAssignmentMapping
+from Products.CMFPlone.utils import _createObjectByType
+from Products.ATContentTypes.lib import constraintypes
+
def setupVarious(context):
- setupFrontpage(context)
- setupMemberFolder(context)
+ site = context.getSite()
+ setupFrontpage(site)
+ removePloneContent(site)
+ setupMemberFolder(site)
+ createNewsFolder(site)
+ createEventsFolder(site)
-def setupFrontpage(context):
- site = context.getSite()
+def createEventsFolder(site):
+ wftool = getToolByName(site, 'portal_workflow')
+ existing = site.objectIds()
+
+ # Events topic
+ if 'handelser' not in existing:
+ events_title = 'Händelser'
+ events_desc = 'Händelser'
+
+ _createObjectByType('Large Plone Folder', site, id='handelser',
+ title=events_title, description=events_desc)
+ _createObjectByType('Topic', site.events, id='aggregator',
+ title=events_title, description=events_desc)
+ folder = site.handelser
+ 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')
+ else:
+ topic = site.handelser
+
+ if wftool.getInfoFor(topic, 'review_state') != 'published':
+ wftool.doActionFor(topic, 'publish')
+
+
+def createNewsFolder(site):
+ wftool = getToolByName(site, 'portal_workflow')
+ existing = site.objectIds()
+
+ # News topic
+ if 'nyheter' not in existing:
+ news_title = 'Nyheter'
+ news_desc = 'Nyheter'
+
+ _createObjectByType('Large Plone Folder', site, id='nyheter',
+ title=news_title, description=news_desc)
+ _createObjectByType('Topic', site.nyheter, id='aggregator',
+ title=news_title, description=news_desc)
+
+ 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.setLayout('folder_summary_view')
+ topic.unmarkCreationFlag()
+
+ if wftool.getInfoFor(topic, 'review_state') != 'published':
+ wftool.doActionFor(topic, 'publish')
+
+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_column = getUtility(IPortletManager, name=u'plone.leftcolumn',
+ # context=site)
- left = getMultiAdapter((site, left_column,), IPortletAssignmentMapping,
- context=site)
+ #left = getMultiAdapter((site, left_column,), IPortletAssignmentMapping,
+ # context=site)
- keys = list(left.keys())
- for key in keys:
- del left[key]
+ #keys = list(left.keys())
+ #for key in keys:
+ # del left[key]
-def setupMemberFolder(context):
- site = context.getSite()
+
+# 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')
- portal_types = getToolByName(site, 'portal_types')
+ workflow = getToolByName(site, 'portal_workflow')
+
+ # we call the members folder 'medlemmar'
mship.setMembersFolderById('medlemmar')
- # Members folder is renamed to medlemmar
- members = getattr(site, 'medlemmar', None)
- if members is None:
- global_allow = portal_types['Large Plone Folder'].global_allow
- portal_types['Large Plone Folder'].global_allow = True
- site.invokeFactory('Large Plone Folder', id='medlemmar',
- title='Medlemmar')
- portal_types['Large Plone Folder'].global_allow = global_allow
-
- # members should get their own folders
+ # 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(obj, 'review_state') != 'published':
+ workflow.doActionFor(obj, 'publish')
More information about the commits
mailing list