[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