[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/OFS/Content/File/Views/Browser - FileEdit.py:1.1.2.1 FileView.py:1.1.2.1 __init__.py:1.1.2.1 browser.zcml:1.1.2.1 edit.pt:1.1.2.1
Stephan Richter
srichter@cbu.edu
Wed, 27 Mar 2002 10:54:37 -0500
Update of /cvs-repository/Zope3/lib/python/Zope/App/OFS/Content/File/Views/Browser
In directory cvs.zope.org:/tmp/cvs-serv12282/Content/File/Views/Browser
Added Files:
Tag: Zope-3x-branch
FileEdit.py FileView.py __init__.py browser.zcml edit.pt
Log Message:
New Content Objects:
- NaiveFile --> all the data is stored in one string
- File --> Uses a BTree to store the data in chunks (more efficient)
- Image --> Can store and display an image a la Z2 (based on File)
- ZPTPage --> A simple version of ZPT for the content space to allow some
dynamics data (please do not use this for scripting)
Also:
- Expansion of supported views
- all edit screens are Formulator supported
=== Added File Zope3/lib/python/Zope/App/OFS/Content/File/Views/Browser/FileEdit.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (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
#
##############################################################################
"""
Revision information:
$Id: FileEdit.py,v 1.1.2.1 2002/03/27 15:54:36 srichter Exp $
"""
from Zope.App.Formulator.Form import Form
from Zope.PageTemplate.PageTemplateFile import PageTemplateFile
class FileEdit(Form):
__implements__ = Form.__implements__
name = 'editForm'
title = 'Edit Form'
description = ('This edit form allows you to make changes to the ' +
'properties of this file.')
_fieldViewNames = ['ContentTypeFieldView', 'DataFieldView']
template = PageTemplateFile('edit.pt')
=== Added File Zope3/lib/python/Zope/App/OFS/Content/File/Views/Browser/FileView.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 1.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.
##############################################################################
"""
$Id: FileView.py,v 1.1.2.1 2002/03/27 15:54:36 srichter Exp $
"""
from Zope.Publisher.Browser.AttributePublisher import AttributePublisher
class FileView(AttributePublisher):
__implements__ = AttributePublisher.__implements__
def __init__( self, zptpage ):
self._zptpage = zptpage
def index(self, REQUEST=None):
"""Call the File"""
if REQUEST is not None:
REQUEST.getResponse().setHeader('Content-Type',
self.getContext().getContentType())
REQUEST.getResponse().setHeader('Content-Length',
self.getContext().getSize())
return self.getContext().getData()
def getContext( self ):
return self._zptpage
=== Added File Zope3/lib/python/Zope/App/OFS/Content/File/Views/Browser/__init__.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 1.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.
##############################################################################
"""
$Id: __init__.py,v 1.1.2.1 2002/03/27 15:54:36 srichter Exp $
"""
=== Added File Zope3/lib/python/Zope/App/OFS/Content/File/Views/Browser/browser.zcml ===
<zopeConfigure
xmlns='http://namespaces.zope.org/zope'
xmlns:security='http://namespaces.zope.org/security'
xmlns:browser='http://namespaces.zope.org/browser'
>
<!-- File View Directives -->
<browser:defaultView name="view"
for="Zope.App.OFS.Content.File.IFile."
factory=".FileView." />
<security:protectClass
name=".FileView."
permission_id="Zope.View" methods="index" />
<browser:view name="edit"
for="Zope.App.OFS.Content.File.IFile."
factory=".FileEdit." />
<security:protectClass
name=".FileEdit."
permission_id="Zope.View" methods="index, action" />
<!-- Registering all the field views for the browser -->
<browser:view name="DataFieldView"
for="Zope.App.OFS.Content.File.IFile."
factory="Zope.App.OFS.Content.File.FileFields.DataField.
Zope.App.Formulator.Widgets.Browser.TextAreaWidget." />
<browser:view name="ContentTypeFieldView"
for="Zope.App.OFS.Content.File.IFile."
factory="Zope.App.OFS.Content.File.FileFields.ContentTypeField.
Zope.App.Formulator.Widgets.Browser.TextWidget." />
</zopeConfigure>
=== Added File Zope3/lib/python/Zope/App/OFS/Content/File/Views/Browser/edit.pt ===
<html metal:use-macro="views/standard_macros/page">
<head>
<style metal:fill-slot="headers" type="text/css">
<!--
.ContentIcon {
width: 20px;
}
.ContentTitle {
text-align: left;
}
-->
</style>
</head>
<body>
<div metal:fill-slot="body">
<p tal:content="here/msg"
tal:condition="python: hasattr(here, 'msg')">
Message will go here.
</p>
<p tal:content="container/description">
Description of the Form.
</p>
<div tal:condition="python: options.has_key('errors') and options['errors']">
Errors:
<div tal:repeat="error options/errors | nothing"
tal:content="error">Foo </div>
</div>
<form action="action" method="post">
<table class="EditTable">
<tbody>
<tr tal:repeat="fieldView python:container.getFieldViews(request)">
<th class="EditAttributeName"
tal:content="python: fieldView.getContext().getValue('title')">Title</th>
<td class="EditAttributeValue"
tal:content="structure fieldView/render"><input />
</td>
</tr>
</tbody>
</table>
<input type="submit" name="edit" value="Save Changes">
</form>
</div>
</body>
</html>