[commits] r117 - in selinux-site/trunk: . selinux.policy selinux.policy/selinux selinux.policy/selinux/policy selinux.policy/selinux/policy/browser selinux.policy/selinux/policy/profiles selinux.policy/selinux/policy/profiles/default selinux.policy/selinux/policy/profiles/default/workflows selinux.policy/selinux/policy/profiles/default/workflows/news_workflow selinux.policy/selinux/policy/profiles/default/workflows/selinux_workflow selinux.theme/selinux/theme selinux.theme/selinux/theme/browser selinux.theme/selinux/theme/profiles/default

tim at mail.se.linux.org tim at mail.se.linux.org
Mon Okt 29 08:39:56 CET 2007


Author: tim
Date: 2007-10-29 08:39:55 +0100 (Mon, 29 Oct 2007)
New Revision: 117

Added:
   selinux-site/trunk/selinux.policy/
   selinux-site/trunk/selinux.policy/README.txt
   selinux-site/trunk/selinux.policy/selinux/
   selinux-site/trunk/selinux.policy/selinux/__init__.py
   selinux-site/trunk/selinux.policy/selinux/policy/
   selinux-site/trunk/selinux.policy/selinux/policy/__init__.py
   selinux-site/trunk/selinux.policy/selinux/policy/browser/
   selinux-site/trunk/selinux.policy/selinux/policy/browser/__init__.py
   selinux-site/trunk/selinux.policy/selinux/policy/browser/caching.py
   selinux-site/trunk/selinux.policy/selinux/policy/browser/configure.zcml
   selinux-site/trunk/selinux.policy/selinux/policy/browser/frontpage.py
   selinux-site/trunk/selinux.policy/selinux/policy/caching_subscribers.py
   selinux-site/trunk/selinux.policy/selinux/policy/configure.zcml
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/import_steps.xml
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/memberdata_properties.xml
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/properties.xml
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/propertiestool.xml
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/rolemap.xml
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows.xml
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows/
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows/news_workflow/
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows/news_workflow/definition.xml
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows/selinux_workflow/
   selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows/selinux_workflow/definition.xml
   selinux-site/trunk/selinux.policy/selinux/policy/setuphandlers.py
   selinux-site/trunk/selinux.policy/selinux/policy/version.txt
   selinux-site/trunk/selinux.policy/setup.py
Removed:
   selinux-site/trunk/selinux.theme/selinux/theme/browser/caching.py
   selinux-site/trunk/selinux.theme/selinux/theme/browser/frontpage.py
   selinux-site/trunk/selinux.theme/selinux/theme/caching_subscribers.py
   selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/memberdata_properties.xml
   selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/properties.xml
   selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/propertiestool.xml
   selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/rolemap.xml
   selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/workflows.xml
   selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/workflows/
Modified:
   selinux-site/trunk/selinux.theme/selinux/theme/browser/configure.zcml
   selinux-site/trunk/selinux.theme/selinux/theme/configure.zcml
   selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/import_steps.xml
   selinux-site/trunk/selinux.theme/selinux/theme/setuphandlers.py
Log:
Refactored out stuff from selinux.theme to selinux.policy. selinux.theme should only contain the theme (looks and layout) and policy should be its own package. So now anyone with a plone site should be able to use our theme and get their site to look exactly like ours.


Added: selinux-site/trunk/selinux.policy/README.txt
===================================================================
--- selinux-site/trunk/selinux.policy/README.txt	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/README.txt	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1 @@
+This package provides policy for the site.


Property changes on: selinux-site/trunk/selinux.policy/README.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Added: selinux-site/trunk/selinux.policy/selinux/__init__.py
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/__init__.py	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/__init__.py	2007-10-29 07:39:55 UTC (rev 117)
@@ -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.policy/selinux/__init__.py
___________________________________________________________________
Name: svn:keywords
   + Id

Added: selinux-site/trunk/selinux.policy/selinux/policy/__init__.py
===================================================================


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

Added: selinux-site/trunk/selinux.policy/selinux/policy/browser/__init__.py
===================================================================


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

Added: selinux-site/trunk/selinux.policy/selinux/policy/browser/caching.py
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/browser/caching.py	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/browser/caching.py	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,30 @@
+from Products.CMFCore.utils import getToolByName
+
+PATH1 = '/VirtualHostBase/http/'
+PATH2 = ':8000/selinux/VirtualHostRoot/'
+DOMAINS = ['se.linux.org',
+           'selinux.se',
+           'svenskalinuxforeningen.se',
+           'svenskalinuxföreningen.se',]
+
+class InstallCaching(object):
+
+    def __init__(self, context, request):
+        self.context = context
+        self.request = request
+
+    def __call__(self):
+        portal_props = getToolByName(self, 'portal_properties')
+        site_props = getattr(portal_props, 'site_properties')
+
+        if not site_props.hasProperty('purging_enabled'):
+            site_props.manage_addProperty('purging_enabled', True, 'boolean')
+        if not site_props.hasProperty('purging_paths'):
+            paths = [PATH1 + domain + PATH2 for domain in DOMAINS]
+            site_props.manage_addProperty('purging_paths', paths, 'lines')
+        if not site_props.hasProperty('purging_host'):
+            site_props.manage_addProperty('purging_host', 'localhost', 'string')
+        if not site_props.hasProperty('purging_port'):
+            site_props.manage_addProperty('purging_port', '8000', 'string')
+
+        return 'Caching properties are added to site_properties'


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

Added: selinux-site/trunk/selinux.policy/selinux/policy/browser/configure.zcml
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/browser/configure.zcml	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/browser/configure.zcml	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,19 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope"
+    xmlns:browser="http://namespaces.zope.org/browser">
+
+  <browser:page
+      for="Products.CMFCore.interfaces.ISiteRoot"
+      name="frontpage"
+      class=".frontpage.FrontPage"
+      permission="zope.Public"
+      />
+
+  <browser:page
+      for="Products.CMFCore.interfaces.ISiteRoot"
+      name="install_caching"
+      class=".caching.InstallCaching"
+      permission="cmf.ManagePortal"
+      />
+
+</configure>


Property changes on: selinux-site/trunk/selinux.policy/selinux/policy/browser/configure.zcml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: selinux-site/trunk/selinux.policy/selinux/policy/browser/frontpage.py
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/browser/frontpage.py	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/browser/frontpage.py	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,49 @@
+from Products.CMFCore.utils import getToolByName
+from zope.component import getUtility
+
+class FrontPage(object):
+
+    def __init__(self, context, request):
+        self.context = context
+        self.request = request
+
+    def intro(self):
+        intro = getattr(self.context, 'introdoc', None)
+        if intro:
+            mship = getToolByName(self.context, 'portal_membership')
+            member_count = len(mship.listMemberIds())
+            text = intro.getText()
+            return text.replace('MEMBERS', str(member_count))
+        else:
+            return None
+
+    def news(self):
+        mtool = getToolByName(self.context, 'portal_membership')
+        trans_util = getToolByName(self.context, 'translation_service')
+        catalog = getToolByName(self.context, 'portal_catalog')
+        query = { 'portal_type': 'News Item',
+                  'sort_on': 'created',
+                  'sort_order': 'reverse',
+                  'review_state': 'published' }
+
+        news = []
+        brains = catalog.searchResults(query)[:5]
+        for brain in brains:
+            author = mtool.getMemberInfo(brain.Creator)
+            author_name = author and author['fullname'] or brain.Creator
+
+            modified = trans_util.ulocalized_time(brain.ModificationDate,
+                                                  True, self.context,
+                                                  domain='plonelocales')
+
+            newsitem = { 'title': brain.Title,
+                         'author': author_name,
+                         'author_id': brain.Creator,
+                         'date': modified,
+                         'body': brain.getObject().getText(),
+                         'url': brain.getURL(),
+                         'discussion_count': 0,
+                         'discussion_url': 'hoho' }
+            news.append(newsitem)
+
+        return news


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

Added: selinux-site/trunk/selinux.policy/selinux/policy/caching_subscribers.py
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/caching_subscribers.py	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/caching_subscribers.py	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,44 @@
+from Products.CMFCore.utils import getToolByName
+from httplib import HTTPConnection
+
+def purge_frontpage(obj):
+    portal_props = getToolByName(obj, 'portal_properties')
+    site_props = getattr(portal_props, 'site_properties')
+    
+    if not site_props.getProperty('purge_enabled', False):
+        return
+
+    host = site_props.getProperty('purging_host', None)
+    port = site_props.getProperty('purging_port', None)
+    paths = site_props.getProperty('purging_paths', None)
+
+    for path in paths:
+        try:
+            connection = HTTPConnection(host, port)
+            connection.putrequest('PURGE', path)
+            connection.endheaders()
+            response = connection.getresponse()
+            connection.close()
+        except socket.error, msg:
+            pass
+
+def news_added(obj, event):
+    """ This is called when a news item is added to the site. """
+    workflow = getToolByName(obj, 'portal_workflow')
+    state = workflow.getInfoFor(obj, 'review_state')
+
+    # when a news item is created it's first added to a temporary folder
+    # that shouldn't trigger purge
+    if state == 'published' and obj.aq_parent.portal_type != 'TempFolder':
+        purge_frontpage(obj)
+
+def news_modified(obj, event):
+    """ This is called when a news item is modified. """
+    workflow = getToolByName(obj, 'portal_workflow')
+    state = workflow.getInfoFor(obj, 'review_state')
+    if state == 'published':
+        purge_frontpage(obj)
+
+def news_workflow_transition(obj, event):
+    """ This is called when a news item's workflow state changed. """
+    purge_frontpage(obj)


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

Added: selinux-site/trunk/selinux.policy/selinux/policy/configure.zcml
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/configure.zcml	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/configure.zcml	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,28 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope"
+    xmlns:cmf="http://namespaces.zope.org/cmf"
+    xmlns:browser="http://namespaces.zope.org/browser"
+    xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
+    i18n_domain="plone">
+
+  <include package=".browser" />
+
+  <subscriber
+      for="Products.ATContentTypes.content.newsitem.ATNewsItem
+           zope.lifecycleevent.interfaces.IObjectModifiedEvent"
+      handler=".caching_subscribers.news_modified"
+      />
+
+  <subscriber
+      for="Products.ATContentTypes.content.newsitem.ATNewsItem
+           zope.app.container.interfaces.IObjectAddedEvent"
+      handler=".caching_subscribers.news_added"
+      />
+
+  <subscriber
+      for="Products.ATContentTypes.content.newsitem.ATNewsItem
+           Products.CMFCore.interfaces.IActionSucceededEvent"
+      handler=".caching_subscribers.news_workflow_transition"
+      />
+
+</configure>


Property changes on: selinux-site/trunk/selinux.policy/selinux/policy/configure.zcml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/import_steps.xml
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/import_steps.xml	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/import_steps.xml	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<import-steps>
+  <import-step id="selinuxtheme-various" version="20070531"
+               handler="selinux.theme.setuphandlers.setupVarious"
+               title="Setup SeLinux policy">
+    Set site title, roles, permissions, theme etc.
+  </import-step>
+</import-steps>

Added: selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/memberdata_properties.xml
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/memberdata_properties.xml	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/memberdata_properties.xml	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<object name="portal_memberdata" meta_type="Plone Memberdata Tool">
+ <property name="surname" type="string"></property>
+ <property name="givenname" type="string"></property>
+ <property name="mobile" type="string"></property>
+ <property name="postadress" type="string"></property>
+ <property name="postnr" type="string"></property>
+ <property name="telenr" type="string"></property>
+</object>

Added: selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/properties.xml
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/properties.xml	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/properties.xml	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<site>
+ <property name="layout" type="string">selinux_index</property>
+ <property name="email_from_address"
+    type="string">webb at se.linux.org</property>
+ <property name="email_from_name"
+    type="string">SeLinux</property>
+ <property name="validate_email" type="boolean">True</property>
+ <property name="email_charset" type="string">utf-8</property>
+ <property name="enable_permalink" type="boolean">False</property>
+</site>

Added: selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/propertiestool.xml
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/propertiestool.xml	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/propertiestool.xml	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<object name="portal_properties" meta_type="Plone Properties Tool">
+ <object name="site_properties" meta_type="Plone Property Sheet">
+  <property name="default_language" type="string">sv</property>
+  <property name="localTimeFormat" type="string">%Y-%m-%d</property>
+  <property name="localLongTimeFormat" type="string">%Y-%m-%d %H:%M</property>
+ </object>
+</object>

Added: selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/rolemap.xml
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/rolemap.xml	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/rolemap.xml	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<rolemap>
+  <permissions>
+    <permission name="Add portal member"
+                acquire="False">
+      <role name="Anonymous"/>
+    </permission>
+  </permissions>
+</rolemap>

Added: selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows/news_workflow/definition.xml
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows/news_workflow/definition.xml	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows/news_workflow/definition.xml	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,156 @@
+<?xml version="1.0"?>
+<dc-workflow workflow_id="news_workflow"
+             title="News Workflow" description=""
+             state_variable="review_state"
+             initial_state="pending">
+ <permission>Access contents information</permission>
+ <permission>Change portal events</permission>
+ <permission>List folder contents</permission>
+ <permission>Modify portal content</permission>
+ <permission>View</permission>
+ <state state_id="pending" title="Pending">
+  <description>Waiting to be reviewed, not editable by the owner.</description>
+  <exit-transition transition_id="publish"/>
+  <permission-map name="Access contents information"
+                  acquired="False">
+   <permission-role>Manager</permission-role>
+   <permission-role>Owner</permission-role>
+   <permission-role>Editor</permission-role>
+   <permission-role>Reader</permission-role>
+   <permission-role>Contributor</permission-role>
+   <permission-role>Reviewer</permission-role>
+  </permission-map>
+  <permission-map name="Change portal events"
+                  acquired="False">
+   <permission-role>Manager</permission-role>
+   <permission-role>Reviewer</permission-role>
+  </permission-map>
+  <permission-map name="List folder contents"
+                  acquired="False">
+   <permission-role>Manager</permission-role>
+   <permission-role>Owner</permission-role>
+   <permission-role>Editor</permission-role>
+   <permission-role>Reader</permission-role>
+   <permission-role>Contributor</permission-role>
+   <permission-role>Reviewer</permission-role>
+  </permission-map>
+  <permission-map name="Modify portal content"
+                  acquired="False">
+   <permission-role>Manager</permission-role>
+   <permission-role>Reviewer</permission-role>
+  </permission-map>
+  <permission-map name="View" acquired="False">
+   <permission-role>Manager</permission-role>
+   <permission-role>Owner</permission-role>
+   <permission-role>Editor</permission-role>
+   <permission-role>Reader</permission-role>
+   <permission-role>Contributor</permission-role>
+   <permission-role>Reviewer</permission-role>
+  </permission-map>
+ </state>
+ <state state_id="published" title="Published">
+  <description>Visible to everyone, not editable by the owner.</description>
+  <exit-transition transition_id="retract"/>
+  <exit-transition transition_id="reject"/>
+  <permission-map name="Access contents information"
+                  acquired="False">
+   <permission-role>Anonymous</permission-role>
+  </permission-map>
+  <permission-map name="Change portal events"
+                  acquired="False">
+   <permission-role>Manager</permission-role>
+  </permission-map>
+  <permission-map name="List folder contents"
+                  acquired="False">
+   <permission-role>Anonymous</permission-role>
+  </permission-map>
+  <permission-map name="Modify portal content"
+                  acquired="False">
+   <permission-role>Manager</permission-role>
+  </permission-map>
+  <permission-map name="View" acquired="False">
+   <permission-role>Anonymous</permission-role>
+  </permission-map>
+ </state>
+ <transition transition_id="publish" title="Publish"
+             new_state="published" trigger="USER"
+             before_script="" after_script="">
+  <description>Publishing the item makes it visible to other users.</description>
+  <action url="%(content_url)s/content_status_modify?workflow_action=publish"
+          category="workflow">Publish</action>
+  <guard>
+   <guard-permission>Review portal content</guard-permission>
+  </guard>
+ </transition>
+ <transition transition_id="reject" title="Send back"
+             new_state="pending" trigger="USER"
+             before_script="" after_script="">
+  <description>Sending the item back will return the item to the original author instead of publishing it. You should preferably include a reason for why it was not published.</description>
+  <action url="%(content_url)s/content_status_modify?workflow_action=reject"
+          category="workflow">Send back</action>
+  <guard>
+   <guard-permission>Review portal content</guard-permission>
+  </guard>
+ </transition>
+ <worklist worklist_id="reviewer_queue" title="">
+  <description>Reviewer tasks</description>
+  <action url="%(portal_url)s/search?review_state=pending"
+          category="global">Pending (%(count)d)</action>
+  <guard>
+   <guard-permission>Review portal content</guard-permission>
+  </guard>
+  <match name="review_state" values="pending"/>
+ </worklist>
+ <variable variable_id="action" for_catalog="False"
+           for_status="True" update_always="True">
+  <description>Previous transition</description>
+  <default>
+   
+   <expression>transition/getId|nothing</expression>
+  </default>
+  <guard>
+  </guard>
+ </variable>
+ <variable variable_id="actor" for_catalog="False"
+           for_status="True" update_always="True">
+  <description>The ID of the user who performed the previous transition</description>
+  <default>
+   
+   <expression>user/getUserName</expression>
+  </default>
+  <guard>
+  </guard>
+ </variable>
+ <variable variable_id="comments" for_catalog="False"
+           for_status="True" update_always="True">
+  <description>Comment about the last transition</description>
+  <default>
+   
+   <expression>python:state_change.kwargs.get('comment', '')</expression>
+  </default>
+  <guard>
+  </guard>
+ </variable>
+ <variable variable_id="review_history" for_catalog="False"
+           for_status="False" update_always="False">
+  <description>Provides access to workflow history</description>
+  <default>
+   
+   <expression>state_change/getHistory</expression>
+  </default>
+  <guard>
+   <guard-permission>Request review</guard-permission>
+   <guard-permission>Review portal content</guard-permission>
+  </guard>
+ </variable>
+ <variable variable_id="time" for_catalog="False"
+           for_status="True" update_always="True">
+  <description>When the previous transition was performed</description>
+  <default>
+   
+   <expression>state_change/getDateTime</expression>
+  </default>
+  <guard>
+  </guard>
+ </variable>
+</dc-workflow>

Added: selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows/selinux_workflow/definition.xml
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows/selinux_workflow/definition.xml	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows/selinux_workflow/definition.xml	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,149 @@
+<?xml version="1.0"?>
+<dc-workflow workflow_id="selinux_workflow"
+             title="Community Workflow"
+             description=" - Users can create content that is immediately publicly accessible. - Content can be submitted for publication by the content's creator or a Manager, which is typically done to promote events or news to the front page. - Reviewers can publish or reject content, content owners can retract their submissions. - While the content is awaiting review it is readable by anybody. - If content is published, it can only be retracted by a Manager."
+             state_variable="review_state"
+             initial_state="visible">
+ <permission>Access contents information</permission>
+ <permission>Change portal events</permission>
+ <permission>Modify portal content</permission>
+ <permission>View</permission>
+ <state state_id="published" title="Published">
+  <description>Visible to everyone, not editable by the owner.
+</description>
+  <exit-transition transition_id="reject"/>
+  <exit-transition transition_id="retract"/>
+  <permission-map name="Access contents information"
+                  acquired="False">
+   <permission-role>Anonymous</permission-role>
+  </permission-map>
+  <permission-map name="Change portal events"
+                  acquired="False">
+   <permission-role>Manager</permission-role>
+  </permission-map>
+  <permission-map name="Modify portal content"
+                  acquired="False">
+   <permission-role>Manager</permission-role>
+  </permission-map>
+  <permission-map name="View" acquired="False">
+   <permission-role>Anonymous</permission-role>
+  </permission-map>
+ </state>
+ <state state_id="visible" title="Public draft">
+  <description>Visible to everyone, but not approved by the reviewers.
+</description>
+  <exit-transition transition_id="hide"/>
+  <exit-transition transition_id="publish"/>
+  <exit-transition transition_id="submit"/>
+  <permission-map name="Access contents information"
+                  acquired="False">
+   <permission-role>Anonymous</permission-role>
+  </permission-map>
+  <permission-map name="Change portal events"
+                  acquired="False">
+   <permission-role>Manager</permission-role>
+   <permission-role>Owner</permission-role>
+   <permission-role>Editor</permission-role>
+  </permission-map>
+  <permission-map name="Modify portal content"
+                  acquired="False">
+   <permission-role>Manager</permission-role>
+   <permission-role>Owner</permission-role>
+   <permission-role>Editor</permission-role>
+  </permission-map>
+  <permission-map name="View" acquired="False">
+   <permission-role>Anonymous</permission-role>
+  </permission-map>
+ </state>
+ <transition transition_id="publish"
+             title="Reviewer publishes content"
+             new_state="published" trigger="USER"
+             before_script="" after_script="">
+  <description>Publishing the item makes it visible to other users.
+</description>
+  <action url="%(content_url)s/content_status_modify?workflow_action=publish"
+          category="workflow">Publish</action>
+  <guard>
+   <guard-permission>Review portal content</guard-permission>
+  </guard>
+ </transition>
+ <transition transition_id="retract"
+             title="Member retracts submission"
+             new_state="visible" trigger="USER"
+             before_script="" after_script="">
+  <description>If you submitted the item by mistake or want to perform additional edits, this will take it back.
+</description>
+  <action url="%(content_url)s/content_status_modify?workflow_action=retract"
+          category="workflow">Retract</action>
+  <guard>
+   <guard-permission>Request review</guard-permission>
+  </guard>
+ </transition>
+ <worklist worklist_id="reviewer_queue" title="">
+  <description>Reviewer tasks
+</description>
+  <action url="%(portal_url)s/search?review_state=pending"
+          category="global">Pending (%(count)d)</action>
+  <guard>
+   <guard-permission>Review portal content</guard-permission>
+  </guard>
+  <match name="review_state" values="pending"/>
+ </worklist>
+ <variable variable_id="action" for_catalog="False"
+           for_status="True" update_always="True">
+  <description>Previous transition
+</description>
+  <default>
+   
+   <expression>transition/getId|nothing</expression>
+  </default>
+  <guard>
+  </guard>
+ </variable>
+ <variable variable_id="actor" for_catalog="False"
+           for_status="True" update_always="True">
+  <description>The ID of the user who performed the last transition
+</description>
+  <default>
+   
+   <expression>user/getId</expression>
+  </default>
+  <guard>
+  </guard>
+ </variable>
+ <variable variable_id="comments" for_catalog="False"
+           for_status="True" update_always="True">
+  <description>Comment about the last transition
+</description>
+  <default>
+   
+   <expression>python:state_change.kwargs.get('comment', '')</expression>
+  </default>
+  <guard>
+  </guard>
+ </variable>
+ <variable variable_id="review_history" for_catalog="False"
+           for_status="False" update_always="False">
+  <description>Provides access to workflow history
+</description>
+  <default>
+   
+   <expression>state_change/getHistory</expression>
+  </default>
+  <guard>
+   <guard-permission>Request review</guard-permission>
+   <guard-permission>Review portal content</guard-permission>
+  </guard>
+ </variable>
+ <variable variable_id="time" for_catalog="False"
+           for_status="True" update_always="True">
+  <description>When the previous transition was performed
+</description>
+  <default>
+   
+   <expression>state_change/getDateTime</expression>
+  </default>
+  <guard>
+  </guard>
+ </variable>
+</dc-workflow>

Added: selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows.xml
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows.xml	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/workflows.xml	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<object name="portal_workflow" meta_type="Plone Workflow Tool">
+ <property
+    name="title">Contains workflow definitions for your portal</property>
+ <object name="news_workflow" meta_type="Workflow"/>
+ <object name="selinux_workflow" meta_type="Workflow"/>
+ <bindings>
+  <default>
+   <bound-workflow workflow_id="selinux_workflow"/>
+  </default>
+  <type type_id="News Item">
+   <bound-workflow workflow_id="news_workflow"/>
+  </type>
+  <type type_id="Event">
+   <bound-workflow workflow_id="news_workflow"/>
+  </type>
+ </bindings>
+</object>

Added: selinux-site/trunk/selinux.policy/selinux/policy/setuphandlers.py
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/setuphandlers.py	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/setuphandlers.py	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,144 @@
+from Products.CMFCore.utils import getToolByName
+from Products.CMFPlone.utils import _createObjectByType
+from Products.ATContentTypes.lib import constraintypes
+
+def setupVarious(context):
+    site = context.getSite()
+    setupFrontpage(site)
+    removePloneContent(site)
+    setupMemberFolder(site)
+    createNewsFolder(site)
+    createEventsFolder(site)
+    publishInitialFolders(site)
+    createLatestFeed(site)
+
+def createEventsFolder(site):
+    wftool = getToolByName(site, 'portal_workflow')
+    existing = site.objectIds()
+
+    # Events topic
+    if 'handelser' in existing:
+        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')
+
+        if wftool.getInfoFor(topic, 'review_state') != 'published':
+            wftool.doActionFor(topic, 'publish')
+
+
+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()
+
+    # News topic
+    if 'nyheter' in existing:
+        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')
+
+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')
+
+def publishInitialFolders(site):
+    workflow = getToolByName(site, 'portal_workflow')
+
+    folders = ('arbetsgrupper', 'dokumentation', 'support', 'foreningen')
+    for folder_id in folders:
+        folder = getattr(site, folder_id, None)
+        if folder is not None:
+            if workflow.getInfoFor(folder, 'review_state') != 'published':
+                workflow.doActionFor(folder, 'publish')


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

Added: selinux-site/trunk/selinux.policy/selinux/policy/version.txt
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/version.txt	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/selinux/policy/version.txt	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1 @@
+0.1


Property changes on: selinux-site/trunk/selinux.policy/selinux/policy/version.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Added: selinux-site/trunk/selinux.policy/setup.py
===================================================================
--- selinux-site/trunk/selinux.policy/setup.py	                        (rev 0)
+++ selinux-site/trunk/selinux.policy/setup.py	2007-10-29 07:39:55 UTC (rev 117)
@@ -0,0 +1,25 @@
+from setuptools import setup, find_packages
+import sys, os
+
+version = '0.1'
+
+setup(name='selinux.policy',
+      version=version,
+      description="SeLinux site policy",
+      long_description="""\
+""",
+      # Get more strings from http://www.python.org/pypi?%3Aaction=list_classifiers
+      author='Tim Terlegard',
+      url='http://svn.se.linux.org/selinux-site/trunk/selinux.policy',
+      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.policy/setup.py
___________________________________________________________________
Name: svn:keywords
   + Id

Deleted: selinux-site/trunk/selinux.theme/selinux/theme/browser/caching.py
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/browser/caching.py	2007-10-04 20:52:09 UTC (rev 116)
+++ selinux-site/trunk/selinux.theme/selinux/theme/browser/caching.py	2007-10-29 07:39:55 UTC (rev 117)
@@ -1,30 +0,0 @@
-from Products.CMFCore.utils import getToolByName
-
-PATH1 = '/VirtualHostBase/http/'
-PATH2 = ':8000/selinux/VirtualHostRoot/'
-DOMAINS = ['se.linux.org',
-           'selinux.se',
-           'svenskalinuxforeningen.se',
-           'svenskalinuxföreningen.se',]
-
-class InstallCaching(object):
-
-    def __init__(self, context, request):
-        self.context = context
-        self.request = request
-
-    def __call__(self):
-        portal_props = getToolByName(self, 'portal_properties')
-        site_props = getattr(portal_props, 'site_properties')
-
-        if not site_props.hasProperty('purging_enabled'):
-            site_props.manage_addProperty('purging_enabled', True, 'boolean')
-        if not site_props.hasProperty('purging_paths'):
-            paths = [PATH1 + domain + PATH2 for domain in DOMAINS]
-            site_props.manage_addProperty('purging_paths', paths, 'lines')
-        if not site_props.hasProperty('purging_host'):
-            site_props.manage_addProperty('purging_host', 'localhost', 'string')
-        if not site_props.hasProperty('purging_port'):
-            site_props.manage_addProperty('purging_port', '8000', 'string')
-
-        return 'Caching properties are added to site_properties'

Modified: selinux-site/trunk/selinux.theme/selinux/theme/browser/configure.zcml
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/browser/configure.zcml	2007-10-04 20:52:09 UTC (rev 116)
+++ selinux-site/trunk/selinux.theme/selinux/theme/browser/configure.zcml	2007-10-29 07:39:55 UTC (rev 117)
@@ -9,13 +9,6 @@
       permission="zope.Public"
       />
 
-  <browser:page
-      for="Products.CMFCore.interfaces.ISiteRoot"
-      name="install_caching"
-      class=".caching.InstallCaching"
-      permission="cmf.ManagePortal"
-      />
-
   <!-- portal title -->
   <browser:viewlet
       name="selinux.portaltitle"

Deleted: selinux-site/trunk/selinux.theme/selinux/theme/browser/frontpage.py
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/browser/frontpage.py	2007-10-04 20:52:09 UTC (rev 116)
+++ selinux-site/trunk/selinux.theme/selinux/theme/browser/frontpage.py	2007-10-29 07:39:55 UTC (rev 117)
@@ -1,49 +0,0 @@
-from Products.CMFCore.utils import getToolByName
-from zope.component import getUtility
-
-class FrontPage(object):
-
-    def __init__(self, context, request):
-        self.context = context
-        self.request = request
-
-    def intro(self):
-        intro = getattr(self.context, 'introdoc', None)
-        if intro:
-            mship = getToolByName(self.context, 'portal_membership')
-            member_count = len(mship.listMemberIds())
-            text = intro.getText()
-            return text.replace('MEMBERS', str(member_count))
-        else:
-            return None
-
-    def news(self):
-        mtool = getToolByName(self.context, 'portal_membership')
-        trans_util = getToolByName(self.context, 'translation_service')
-        catalog = getToolByName(self.context, 'portal_catalog')
-        query = { 'portal_type': 'News Item',
-                  'sort_on': 'created',
-                  'sort_order': 'reverse',
-                  'review_state': 'published' }
-
-        news = []
-        brains = catalog.searchResults(query)[:5]
-        for brain in brains:
-            author = mtool.getMemberInfo(brain.Creator)
-            author_name = author and author['fullname'] or brain.Creator
-
-            modified = trans_util.ulocalized_time(brain.ModificationDate,
-                                                  True, self.context,
-                                                  domain='plonelocales')
-
-            newsitem = { 'title': brain.Title,
-                         'author': author_name,
-                         'author_id': brain.Creator,
-                         'date': modified,
-                         'body': brain.getObject().getText(),
-                         'url': brain.getURL(),
-                         'discussion_count': 0,
-                         'discussion_url': 'hoho' }
-            news.append(newsitem)
-
-        return news

Deleted: selinux-site/trunk/selinux.theme/selinux/theme/caching_subscribers.py
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/caching_subscribers.py	2007-10-04 20:52:09 UTC (rev 116)
+++ selinux-site/trunk/selinux.theme/selinux/theme/caching_subscribers.py	2007-10-29 07:39:55 UTC (rev 117)
@@ -1,44 +0,0 @@
-from Products.CMFCore.utils import getToolByName
-from httplib import HTTPConnection
-
-def purge_frontpage(obj):
-    portal_props = getToolByName(obj, 'portal_properties')
-    site_props = getattr(portal_props, 'site_properties')
-    
-    if not site_props.getProperty('purge_enabled', False):
-        return
-
-    host = site_props.getProperty('purging_host', None)
-    port = site_props.getProperty('purging_port', None)
-    paths = site_props.getProperty('purging_paths', None)
-
-    for path in paths:
-        try:
-            connection = HTTPConnection(host, port)
-            connection.putrequest('PURGE', path)
-            connection.endheaders()
-            response = connection.getresponse()
-            connection.close()
-        except socket.error, msg:
-            pass
-
-def news_added(obj, event):
-    """ This is called when a news item is added to the site. """
-    workflow = getToolByName(obj, 'portal_workflow')
-    state = workflow.getInfoFor(obj, 'review_state')
-
-    # when a news item is created it's first added to a temporary folder
-    # that shouldn't trigger purge
-    if state == 'published' and obj.aq_parent.portal_type != 'TempFolder':
-        purge_frontpage(obj)
-
-def news_modified(obj, event):
-    """ This is called when a news item is modified. """
-    workflow = getToolByName(obj, 'portal_workflow')
-    state = workflow.getInfoFor(obj, 'review_state')
-    if state == 'published':
-        purge_frontpage(obj)
-
-def news_workflow_transition(obj, event):
-    """ This is called when a news item's workflow state changed. """
-    purge_frontpage(obj)

Modified: selinux-site/trunk/selinux.theme/selinux/theme/configure.zcml
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/configure.zcml	2007-10-04 20:52:09 UTC (rev 116)
+++ selinux-site/trunk/selinux.theme/selinux/theme/configure.zcml	2007-10-29 07:39:55 UTC (rev 117)
@@ -19,22 +19,4 @@
 
   <include package=".browser" />
 
-  <subscriber
-      for="Products.ATContentTypes.content.newsitem.ATNewsItem
-           zope.lifecycleevent.interfaces.IObjectModifiedEvent"
-      handler=".caching_subscribers.news_modified"
-      />
-
-  <subscriber
-      for="Products.ATContentTypes.content.newsitem.ATNewsItem
-           zope.app.container.interfaces.IObjectAddedEvent"
-      handler=".caching_subscribers.news_added"
-      />
-
-  <subscriber
-      for="Products.ATContentTypes.content.newsitem.ATNewsItem
-           Products.CMFCore.interfaces.IActionSucceededEvent"
-      handler=".caching_subscribers.news_workflow_transition"
-      />
-
 </configure>

Modified: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/import_steps.xml
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/import_steps.xml	2007-10-04 20:52:09 UTC (rev 116)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/import_steps.xml	2007-10-29 07:39:55 UTC (rev 117)
@@ -3,7 +3,6 @@
   <import-step id="selinuxtheme-various" version="20070531"
                handler="selinux.theme.setuphandlers.setupVarious"
                title="Setup SeLinux theme">
-    <dependency step="content" />
-      Add logo, styles and templates that defines the SeLinux site design.
+    Add logo, styles and templates that defines the SeLinux site design.
   </import-step>
 </import-steps>

Deleted: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/memberdata_properties.xml
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/memberdata_properties.xml	2007-10-04 20:52:09 UTC (rev 116)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/memberdata_properties.xml	2007-10-29 07:39:55 UTC (rev 117)
@@ -1,9 +0,0 @@
-<?xml version="1.0"?>
-<object name="portal_memberdata" meta_type="Plone Memberdata Tool">
- <property name="surname" type="string"></property>
- <property name="givenname" type="string"></property>
- <property name="mobile" type="string"></property>
- <property name="postadress" type="string"></property>
- <property name="postnr" type="string"></property>
- <property name="telenr" type="string"></property>
-</object>

Deleted: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/properties.xml
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/properties.xml	2007-10-04 20:52:09 UTC (rev 116)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/properties.xml	2007-10-29 07:39:55 UTC (rev 117)
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<site>
- <property name="layout" type="string">selinux_index</property>
- <property name="email_from_address"
-    type="string">webb at se.linux.org</property>
- <property name="email_from_name"
-    type="string">SeLinux</property>
- <property name="validate_email" type="boolean">True</property>
- <property name="email_charset" type="string">utf-8</property>
- <property name="enable_permalink" type="boolean">False</property>
-</site>

Deleted: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/propertiestool.xml
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/propertiestool.xml	2007-10-04 20:52:09 UTC (rev 116)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/propertiestool.xml	2007-10-29 07:39:55 UTC (rev 117)
@@ -1,8 +0,0 @@
-<?xml version="1.0"?>
-<object name="portal_properties" meta_type="Plone Properties Tool">
- <object name="site_properties" meta_type="Plone Property Sheet">
-  <property name="default_language" type="string">sv</property>
-  <property name="localTimeFormat" type="string">%Y-%m-%d</property>
-  <property name="localLongTimeFormat" type="string">%Y-%m-%d %H:%M</property>
- </object>
-</object>

Deleted: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/rolemap.xml
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/rolemap.xml	2007-10-04 20:52:09 UTC (rev 116)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/rolemap.xml	2007-10-29 07:39:55 UTC (rev 117)
@@ -1,9 +0,0 @@
-<?xml version="1.0"?>
-<rolemap>
-  <permissions>
-    <permission name="Add portal member"
-                acquire="False">
-      <role name="Anonymous"/>
-    </permission>
-  </permissions>
-</rolemap>

Deleted: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/workflows.xml
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/workflows.xml	2007-10-04 20:52:09 UTC (rev 116)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/workflows.xml	2007-10-29 07:39:55 UTC (rev 117)
@@ -1,18 +0,0 @@
-<?xml version="1.0"?>
-<object name="portal_workflow" meta_type="Plone Workflow Tool">
- <property
-    name="title">Contains workflow definitions for your portal</property>
- <object name="news_workflow" meta_type="Workflow"/>
- <object name="selinux_workflow" meta_type="Workflow"/>
- <bindings>
-  <default>
-   <bound-workflow workflow_id="selinux_workflow"/>
-  </default>
-  <type type_id="News Item">
-   <bound-workflow workflow_id="news_workflow"/>
-  </type>
-  <type type_id="Event">
-   <bound-workflow workflow_id="news_workflow"/>
-  </type>
- </bindings>
-</object>

Modified: selinux-site/trunk/selinux.theme/selinux/theme/setuphandlers.py
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/setuphandlers.py	2007-10-04 20:52:09 UTC (rev 116)
+++ selinux-site/trunk/selinux.theme/selinux/theme/setuphandlers.py	2007-10-29 07:39:55 UTC (rev 117)
@@ -1,144 +1,2 @@
-from Products.CMFCore.utils import getToolByName
-from Products.CMFPlone.utils import _createObjectByType
-from Products.ATContentTypes.lib import constraintypes
-
 def setupVarious(context):
-    site = context.getSite()
-    setupFrontpage(site)
-    removePloneContent(site)
-    setupMemberFolder(site)
-    createNewsFolder(site)
-    createEventsFolder(site)
-    publishInitialFolders(site)
-    createLatestFeed(site)
-
-def createEventsFolder(site):
-    wftool = getToolByName(site, 'portal_workflow')
-    existing = site.objectIds()
-
-    # Events topic
-    if 'handelser' in existing:
-        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')
-
-        if wftool.getInfoFor(topic, 'review_state') != 'published':
-            wftool.doActionFor(topic, 'publish')
-
-
-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()
-
-    # News topic
-    if 'nyheter' in existing:
-        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')
-
-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')
-
-def publishInitialFolders(site):
-    workflow = getToolByName(site, 'portal_workflow')
-
-    folders = ('arbetsgrupper', 'dokumentation', 'support', 'foreningen')
-    for folder_id in folders:
-        folder = getattr(site, folder_id, None)
-        if folder is not None:
-            if workflow.getInfoFor(folder, 'review_state') != 'published':
-                workflow.doActionFor(folder, 'publish')
+    pass




More information about the commits mailing list