[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