[commits] r125 - in selinux-site/trunk/selinux.policy/selinux/policy: . profiles/default profiles/default/types

tim at mail.se.linux.org tim at mail.se.linux.org
Tis Nov 6 20:59:44 CET 2007


Author: tim
Date: 2007-11-06 20:59:44 +0100 (Tue, 06 Nov 2007)
New Revision: 125

Added:
   selinux-site/trunk/selinux.policy/selinux/policy/content.py
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/types/
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/types/Large_Plone_Folder.xml
Modified:
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/import_steps.xml
Log:
Content creation is finally working correctly.


Added: selinux-site/trunk/selinux.policy/selinux/policy/content.py
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/content.py	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/content.py	2007-11-06 19:59:44 UTC (rev 125)
@@ -0,0 +1,139 @@
+# -*- coding: utf-8 -*-
+
+from Products.CMFCore.utils import getToolByName
+from Products.CMFPlone.utils import _createObjectByType
+from Products.ATContentTypes.lib import constraintypes
+
+def createContent(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='Händelser')
+        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')
+
+    folders = ({'id': 'grupper', 'title': 'Arbetsgrupper'},
+               {'id': 'dokument', 'title': 'Dokumentation'},
+               {'id': 'om', 'title': 'Om föreningen'},
+               {'id': 'support', 'title': 'Support'},
+               {'id': 'chat', 'title': 'Chat'},
+               {'id': 'nyborjare', 'title': 'Nybörjare'})
+
+    for folderinfo in folders:
+        folder_id = folderinfo['id']
+        title = folderinfo['title']
+        folder = getattr(site, folder_id, None)
+        if folder is None:
+            newid = site.invokeFactory('Large Plone Folder', id=folder_id, title=title)
+            folder = getattr(site, newid)
+            workflow.doActionFor(folder, 'publish')
+            folder.indexObject()
+
+    print "C R E A T E F O L D E R S"


Property changes on: selinux-site/trunk/selinux.policy/selinux/policy/content.py
___________________________________________________________________
Name: svn:keywords
   + Id

Modified: selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/import_steps.xml
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/import_steps.xml	2007-11-06 16:14:02 UTC (rev 124)
+++ selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/import_steps.xml	2007-11-06 19:59:44 UTC (rev 125)
@@ -5,5 +5,6 @@
                title="SeLinux Policy">
     Set site title, roles, permissions, theme etc.
     <dependency step="types" />
+    <dependency step="content" />
   </import-step>
 </import-steps>

Added: selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/types/Large_Plone_Folder.xml
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/types/Large_Plone_Folder.xml	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/types/Large_Plone_Folder.xml	2007-11-06 19:59:44 UTC (rev 125)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<object name="Large Plone Folder"
+   meta_type="Factory-based Type Information with dynamic views"
+   i18n:domain="plone" xmlns:i18n="http://xml.zope.org/namespaces/i18n">
+ <property name="global_allow">True</property>
+</object>




More information about the commits mailing list