[Checkins] SVN: CMF/trunk/CMFDefault/ - added formlib based form
for File and Image
Yvo Schubbe
y.2007- at wcm-solutions.de
Wed Feb 14 07:38:29 EST 2007
Log message for revision 72569:
- added formlib based form for File and Image
Changed:
U CMF/trunk/CMFDefault/browser/TODO.txt
U CMF/trunk/CMFDefault/browser/configure.zcml
A CMF/trunk/CMFDefault/browser/file.py
U CMF/trunk/CMFDefault/profiles/views_support/types/File.xml
U CMF/trunk/CMFDefault/profiles/views_support/types/Image.xml
-=-
Modified: CMF/trunk/CMFDefault/browser/TODO.txt
===================================================================
--- CMF/trunk/CMFDefault/browser/TODO.txt 2007-02-14 12:25:15 UTC (rev 72568)
+++ CMF/trunk/CMFDefault/browser/TODO.txt 2007-02-14 12:38:28 UTC (rev 72569)
@@ -84,21 +84,15 @@
file_view.py -> FileView
file_view_template.pt -> templates/file.pt
- [ ] IMutableFile @@edit.html:
+ [x] IMutableFile @@edit.html:
- file_edit_form.py -> FileEditView
- file_edit_template.pt -> formlib based
- file_edit_control.py -> formlib based
+ file_edit_form.py, image_edit_form.py -> FileEditView
+ file_edit_template.pt, image_edit_template.pt -> formlib based
+ file_edit_control.py, image_edit_control.py -> formlib based
[ ] IImage @@view.html:
image_view.py -> ImageView
image_view_template.pt -> templates/image.pt
- [ ] IMutableImage @@edit.html:
-
- image_edit_form.py -> ImageEditView
- image_edit_template.pt -> formlib based
- image_edit_control.py -> formlib based
-
[ ] complete this todo list
Modified: CMF/trunk/CMFDefault/browser/configure.zcml
===================================================================
--- CMF/trunk/CMFDefault/browser/configure.zcml 2007-02-14 12:25:15 UTC (rev 72568)
+++ CMF/trunk/CMFDefault/browser/configure.zcml 2007-02-14 12:38:28 UTC (rev 72569)
@@ -103,7 +103,17 @@
permission="cmf.ModifyPortalContent"
/>
+ <adapter factory=".file.FileSchemaAdapter"/>
+
<browser:page
+ for="..interfaces.IMutableFile"
+ layer="..interfaces.ICMFDefaultSkin"
+ name="edit.html"
+ class=".file.FileEditView"
+ permission="cmf.ModifyPortalContent"
+ />
+
+ <browser:page
for="*"
layer="..interfaces.ICMFDefaultSkin"
name="form_widget"
Added: CMF/trunk/CMFDefault/browser/file.py
===================================================================
--- CMF/trunk/CMFDefault/browser/file.py 2007-02-14 12:25:15 UTC (rev 72568)
+++ CMF/trunk/CMFDefault/browser/file.py 2007-02-14 12:38:28 UTC (rev 72569)
@@ -0,0 +1,88 @@
+##############################################################################
+#
+# Copyright (c) 2007 Zope Corporation and Contributors. All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Browser views for files.
+
+$Id$
+"""
+
+from zope.component import adapts
+from zope.formlib import form
+from zope.interface import implements
+from zope.interface import Interface
+from zope.schema import ASCIILine
+from zope.schema import Bytes
+from zope.schema import Text
+from zope.schema import TextLine
+
+from Products.CMFDefault.formlib.form import ContentEditFormBase
+from Products.CMFDefault.formlib.schema import ProxyFieldProperty
+from Products.CMFDefault.formlib.schema import SchemaAdapterBase
+from Products.CMFDefault.interfaces import IMutableFile
+from Products.CMFDefault.utils import Message as _
+
+
+class IFileSchema(Interface):
+
+ """Schema for file views.
+ """
+
+ title = TextLine(
+ title=_(u'Title'),
+ readonly=True)
+
+ description = Text(
+ title=_(u'Description'),
+ readonly=True)
+
+ format = ASCIILine(
+ title=_(u'Content type'),
+ readonly=True)
+
+ upload = Bytes(
+ title=_(u'Upload'),
+ required=False)
+
+
+class FileSchemaAdapter(SchemaAdapterBase):
+
+ """Adapter for IMutableFile.
+ """
+
+ adapts(IMutableFile)
+ implements(IFileSchema)
+
+ title = ProxyFieldProperty(IFileSchema['title'], 'Title')
+ description = ProxyFieldProperty(IFileSchema['description'],
+ 'Description')
+ format = ProxyFieldProperty(IFileSchema['format'], 'Format')
+ upload = ProxyFieldProperty(IFileSchema['upload'],
+ 'data', 'manage_upload')
+
+
+class FileEditView(ContentEditFormBase):
+
+ """Edit view for IMutableFile.
+ """
+
+ form_fields = form.FormFields(IFileSchema)
+
+ def setUpWidgets(self, ignore_request=False):
+ super(FileEditView,
+ self).setUpWidgets(ignore_request=ignore_request)
+ self.widgets['description'].height = 3
+ self.widgets['upload'].displayWidth = 60
+
+ def _handle_success(self, action, data):
+ if not data.get('upload'):
+ del data['upload']
+ return super(FileEditView, self)._handle_success(action, data)
Property changes on: CMF/trunk/CMFDefault/browser/file.py
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Modified: CMF/trunk/CMFDefault/profiles/views_support/types/File.xml
===================================================================
--- CMF/trunk/CMFDefault/profiles/views_support/types/File.xml 2007-02-14 12:25:15 UTC (rev 72568)
+++ CMF/trunk/CMFDefault/profiles/views_support/types/File.xml 2007-02-14 12:38:28 UTC (rev 72569)
@@ -1,4 +1,5 @@
<?xml version="1.0"?>
<object name="File">
+ <alias from="file_edit_form" to="@@edit.html"/>
<alias from="metadata_edit_form" to="@@properties.html"/>
</object>
Modified: CMF/trunk/CMFDefault/profiles/views_support/types/Image.xml
===================================================================
--- CMF/trunk/CMFDefault/profiles/views_support/types/Image.xml 2007-02-14 12:25:15 UTC (rev 72568)
+++ CMF/trunk/CMFDefault/profiles/views_support/types/Image.xml 2007-02-14 12:38:28 UTC (rev 72569)
@@ -1,4 +1,5 @@
<?xml version="1.0"?>
<object name="Image">
+ <alias from="image_edit_form" to="@@edit.html"/>
<alias from="metadata_edit_form" to="@@properties.html"/>
</object>
More information about the Checkins
mailing list