[Checkins] SVN: zopeorg.theme/trunk/zopeorg/theme/ Add a Feature
content type
Wichert Akkerman
wichert at wiggy.net
Sat Jan 19 15:33:47 EST 2008
Log message for revision 82956:
Add a Feature content type
Changed:
U zopeorg.theme/trunk/zopeorg/theme/__init__.py
A zopeorg.theme/trunk/zopeorg/theme/config.py
U zopeorg.theme/trunk/zopeorg/theme/configure.zcml
A zopeorg.theme/trunk/zopeorg/theme/content/
A zopeorg.theme/trunk/zopeorg/theme/content/__init__.py
A zopeorg.theme/trunk/zopeorg/theme/content/feature.py
A zopeorg.theme/trunk/zopeorg/theme/permissions.py
A zopeorg.theme/trunk/zopeorg/theme/profiles/default/factorytool.xml
A zopeorg.theme/trunk/zopeorg/theme/profiles/default/types/
A zopeorg.theme/trunk/zopeorg/theme/profiles/default/types/Feature.xml
A zopeorg.theme/trunk/zopeorg/theme/profiles/default/types.xml
-=-
Modified: zopeorg.theme/trunk/zopeorg/theme/__init__.py
===================================================================
--- zopeorg.theme/trunk/zopeorg/theme/__init__.py 2008-01-19 18:57:24 UTC (rev 82955)
+++ zopeorg.theme/trunk/zopeorg/theme/__init__.py 2008-01-19 20:33:47 UTC (rev 82956)
@@ -1 +1,25 @@
-#
+from zope.i18nmessageid import MessageFactory as msgfac
+from Products.Archetypes.public import process_types
+from Products.Archetypes.public import listTypes
+from Products.CMFCore.utils import ContentInit
+from zopeorg.theme.config import PROJECTNAME
+
+MessageFactory = msgfac("zopeorg.theme")
+
+def initialize(context):
+ import zopeorg.theme.content
+ from zopeorg.theme import permissions
+ listOfTypes=listTypes(PROJECTNAME)
+ (content_types, constructors, ftis)=process_types(listOfTypes, PROJECTNAME)
+ allTypes = zip(content_types, constructors)
+ for atype, constructor in allTypes:
+ kind = "%s: %s" % (PROJECTNAME, atype.archetype_name)
+ ContentInit(
+ kind,
+ content_types = (atype,),
+ # Add permissions look like perms.Add{meta_type}
+ permission = getattr(permissions, "Add%s" % atype.meta_type),
+ extra_constructors = (constructor,),
+ fti = ftis,
+ ).initialize(context)
+
Added: zopeorg.theme/trunk/zopeorg/theme/config.py
===================================================================
--- zopeorg.theme/trunk/zopeorg/theme/config.py (rev 0)
+++ zopeorg.theme/trunk/zopeorg/theme/config.py 2008-01-19 20:33:47 UTC (rev 82956)
@@ -0,0 +1,3 @@
+
+PROJECTNAME = "zopeorg.theme"
+
Property changes on: zopeorg.theme/trunk/zopeorg/theme/config.py
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: zopeorg.theme/trunk/zopeorg/theme/configure.zcml
===================================================================
--- zopeorg.theme/trunk/zopeorg/theme/configure.zcml 2008-01-19 18:57:24 UTC (rev 82955)
+++ zopeorg.theme/trunk/zopeorg/theme/configure.zcml 2008-01-19 20:33:47 UTC (rev 82956)
@@ -3,7 +3,7 @@
xmlns:five="http://namespaces.zope.org/five"
i18n_domain="zopeorg.theme">
- <five:registerPackage package="." />
+ <five:registerPackage package="." initialize=".initialize" />
<include package=".browser" />
Property changes on: zopeorg.theme/trunk/zopeorg/theme/content
___________________________________________________________________
Name: svn:ignore
+ *.pyc
Added: zopeorg.theme/trunk/zopeorg/theme/content/__init__.py
===================================================================
--- zopeorg.theme/trunk/zopeorg/theme/content/__init__.py (rev 0)
+++ zopeorg.theme/trunk/zopeorg/theme/content/__init__.py 2008-01-19 20:33:47 UTC (rev 82956)
@@ -0,0 +1 @@
+from zopeorg.theme.content.feature import Feature
Property changes on: zopeorg.theme/trunk/zopeorg/theme/content/__init__.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: zopeorg.theme/trunk/zopeorg/theme/content/feature.py
===================================================================
--- zopeorg.theme/trunk/zopeorg/theme/content/feature.py (rev 0)
+++ zopeorg.theme/trunk/zopeorg/theme/content/feature.py 2008-01-19 20:33:47 UTC (rev 82956)
@@ -0,0 +1,97 @@
+from Products.Archetypes.public import Schema
+from Products.Archetypes.public import ImageWidget
+from Products.Archetypes.public import RichWidget
+from Products.Archetypes.public import ImageField
+from Products.Archetypes.public import TextField
+from Products.Archetypes.public import AnnotationStorage
+from Products.validation import V_REQUIRED
+from Products.ATContentTypes.content.document import ATDocument
+from Products.ATContentTypes.content.document import ATDocumentSchema
+from Products.ATContentTypes.content.base import registerATCT
+from Products.ATContentTypes.configuration import zconf
+from zopeorg.theme import MessageFactory as _
+from zopeorg.theme.config import PROJECTNAME
+
+FeatureSchema = ATDocumentSchema.copy() + Schema((
+ TextField("blurb",
+ required=True,
+ searchable=True,
+ primary=False,
+ storage = AnnotationStorage(migrate=True),
+ validators = ("isTidyHtmlWithCleanup",),
+ default_output_type = "text/x-html-safe",
+ widget = RichWidget(
+ label = _(u"label_blurb", default=u"Blurb"),
+ description = _(u"help_blurb",
+ default=u"The blurb text is displayed at the top "
+ u"of the feature page."),
+ rows = 5,
+ allow_file_upload = False),
+ ),
+ ImageField("image",
+ required = False,
+ storage = AnnotationStorage(migrate=True),
+ languageIndependent = True,
+ max_size = zconf.ATNewsItem.max_image_dimension,
+ sizes= {"large" : (768, 768),
+ "preview" : (400, 400),
+ "mini" : (200, 200),
+ "thumb" : (128, 128),
+ "tile" : (64, 64),
+ "icon" : (32, 32),
+ "listing" : (16, 16),
+ },
+ validators = (("isNonEmptyFile", V_REQUIRED),
+ ("checkNewsImageMaxSize", V_REQUIRED)),
+ widget = ImageWidget(
+ label= _(u"label_feature_image",
+ default=u"Image"),
+ description = _(u"help_feature_image",
+ default=u"Will be shown next to the blurb."),
+ show_content_type = False)
+ ),
+ TextField("divider",
+ required=False,
+ searchable=False,
+ primary=False,
+ storage = AnnotationStorage(migrate=True),
+ validators = ("isTidyHtmlWithCleanup",),
+ default_output_type = "text/x-html-safe",
+ widget = RichWidget(
+ label = _(u"label_divider",
+ default=u"Divider line"),
+ description = _(u"help_divider",
+ default=u"The divider is shown in a bar between "
+ u"the blurb and the main context."),
+ rows = 5,
+ allow_file_upload = False),
+ ),
+ ))
+
+FeatureSchema.moveField("blurb", after="description")
+FeatureSchema.moveField("image", after="blurb")
+
+
+class Feature(ATDocument):
+ schema = FeatureSchema
+
+ def __bobo_traverse__(self, REQUEST, name):
+ """Transparent access to image scales. Copied from ATNewsItem.
+ """
+ if name.startswith("image"):
+ field = self.getField("image")
+ image = None
+ if name == "image":
+ image = field.getScale(self)
+ else:
+ scalename = name[len("image_"):]
+ if scalename in field.getAvailableSizes(self):
+ image = field.getScale(self, scale=scalename)
+ if image is not None and not isinstance(image, basestring):
+ # image might be None or "" for empty images
+ return image
+
+ return ATDocument.__bobo_traverse__(self, REQUEST, name)
+
+registerATCT(Feature, PROJECTNAME)
+
Property changes on: zopeorg.theme/trunk/zopeorg/theme/content/feature.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: zopeorg.theme/trunk/zopeorg/theme/permissions.py
===================================================================
--- zopeorg.theme/trunk/zopeorg/theme/permissions.py (rev 0)
+++ zopeorg.theme/trunk/zopeorg/theme/permissions.py 2008-01-19 20:33:47 UTC (rev 82956)
@@ -0,0 +1,5 @@
+from Products.CMFCore.permissions import setDefaultRoles
+
+AddFeature = "zopeorg.theme: Add Bla"
+
+setDefaultRoles(AddFeature, ("Manager", "Owner"))
Property changes on: zopeorg.theme/trunk/zopeorg/theme/permissions.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: zopeorg.theme/trunk/zopeorg/theme/profiles/default/factorytool.xml
===================================================================
--- zopeorg.theme/trunk/zopeorg/theme/profiles/default/factorytool.xml (rev 0)
+++ zopeorg.theme/trunk/zopeorg/theme/profiles/default/factorytool.xml 2008-01-19 20:33:47 UTC (rev 82956)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<object name="portal_factory">
+ <factorytypes>
+ <type portal_type="Feature" />
+ </factorytypes>
+</object>
Property changes on: zopeorg.theme/trunk/zopeorg/theme/profiles/default/factorytool.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: zopeorg.theme/trunk/zopeorg/theme/profiles/default/types/Feature.xml
===================================================================
--- zopeorg.theme/trunk/zopeorg/theme/profiles/default/types/Feature.xml (rev 0)
+++ zopeorg.theme/trunk/zopeorg/theme/profiles/default/types/Feature.xml 2008-01-19 20:33:47 UTC (rev 82956)
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<object name="Feature"
+ meta_type="Factory-based Type Information with dynamic views"
+ i18n:domain="zopeorg.theme" xmlns:i18n="http://xml.zope.org/namespaces/i18n">
+ <property name="title" i18n:translate="">Feature</property>
+ <property name="description"
+ i18n:translate="">A feature, describing a specific feature of Zope.</property>
+ <property name="content_icon">document_icon.gif</property>
+ <property name="content_meta_type">Feature</property>
+ <property name="product">zopeorg.theme</property>
+ <property name="factory">addFeature</property>
+ <property name="immediate_view">document_view</property>
+ <property name="global_allow">True</property>
+ <property name="filter_content_types">True</property>
+ <property name="allowed_content_types"/>
+ <property name="allow_discussion">False</property>
+ <property name="default_view">document_view</property>
+ <property name="view_methods">
+ <element value="document_view"/>
+ </property>
+ <alias from="(Default)" to="(dynamic view)"/>
+ <alias from="edit" to="atct_edit"/>
+ <alias from="sharing" to="@@sharing"/>
+ <alias from="view" to="(selected layout)"/>
+ <action title="View" action_id="view" category="object" condition_expr=""
+ url_expr="string:${object_url}" visible="True" i18n:attributes="title">
+ <permission value="View"/>
+ </action>
+ <action title="Edit" action_id="edit" category="object" condition_expr="not:object/@@plone_lock_info/is_locked_for_current_user|python:True"
+ url_expr="string:${object_url}/edit" visible="True" i18n:attributes="title">
+ <permission value="Modify portal content"/>
+ </action>
+ <action title="References" action_id="references" category="object"
+ condition_expr="object/archetype_tool/has_graphviz"
+ url_expr="string:${object_url}/reference_graph" visible="True"
+ i18n:attributes="title">
+ <permission value="Modify portal content"/>
+ <permission value="Review portal content"/>
+ </action>
+ <action title="History" action_id="history" category="object"
+ condition_expr="" url_expr="string:${object_url}/atct_history"
+ visible="False" i18n:attributes="title">
+ <permission value="ATContentTypes: View history"/>
+ </action>
+ <action title="External Edit" action_id="external_edit" category="object"
+ condition_expr="object/externalEditorEnabled"
+ url_expr="string:${object_url}/external_edit" visible="False"
+ i18n:attributes="title">
+ <permission value="Modify portal content"/>
+ </action>
+</object>
Property changes on: zopeorg.theme/trunk/zopeorg/theme/profiles/default/types/Feature.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: zopeorg.theme/trunk/zopeorg/theme/profiles/default/types.xml
===================================================================
--- zopeorg.theme/trunk/zopeorg/theme/profiles/default/types.xml (rev 0)
+++ zopeorg.theme/trunk/zopeorg/theme/profiles/default/types.xml 2008-01-19 20:33:47 UTC (rev 82956)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<object name="portal_types">
+ <object name="Feature"
+ meta_type="Factory-based Type Information with dynamic views"/>
+</object>
Property changes on: zopeorg.theme/trunk/zopeorg/theme/profiles/default/types.xml
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the Checkins
mailing list