[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser - I18nImageData.py:1.1 I18nImageData.pyc:1.1 I18nImageEdit.py:1.1 I18nImageEdit.pyc:1.1 i18n_edit.pt:1.1 configure.zcml:1.6
Marius Gedminas
mgedmin@delfi.lt
Tue, 25 Jun 2002 06:54:25 -0400
Update of /cvs-repository/Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser
In directory cvs.zope.org:/tmp/cvs-serv25797/lib/python/Zope/App/OFS/Content/Image/Views/Browser
Modified Files:
configure.zcml
Added Files:
I18nImageData.py I18nImageData.pyc I18nImageEdit.py
I18nImageEdit.pyc i18n_edit.pt
Log Message:
Added I18nImage object.
=== Added File Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser/I18nImageData.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.
#
##############################################################################
""" Define view component for internationalized images.
$Id: I18nImageData.py,v 1.1 2002/06/25 10:54:24 mgedmin Exp $
"""
from ImageData import ImageData
from Zope.I18n.Negotiator import negotiator
class I18nImageData(ImageData):
def __call__(self):
image = self.context
language = None
if self.request is not None:
langs = self.context.getAvailableLanguages()
language = negotiator.getLanguage(langs, self.request)
self.request.response.setHeader('content-type',
image.getContentType())
# XXX: no content-length? See ImageData.__call__
return image.getData(language)
def tag(self, height=None, width=None, **args):
"""See ImageData.tag."""
language = None
if self.request is not None and \
(width is None or height is None):
langs = self.context.getAvailableLanguages()
language = negotiator.getLanguage(langs, self.request)
if width is None:
width = self.context.getImageSize(language)[0]
if height is None:
height = self.context.getImageSize(language)[1]
return ImageData.tag(self, width=width, height=height, **args)
=== Added File Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser/I18nImageData.pyc ===
-í
íF=c sI d Z d k l Z d k l Z d e f d „ ƒ YZ d S( sl Define view component for internationalized images.
$Id: ImageData.py,v 1.3 2002/06/18 14:47:03 jim Exp $
( s ImageData( s
negotiators
I18nImageDatac s) t Z d „ Z % e e d „ Z RS( Nc s | i } t } | i t j oP | i i ƒ } t i | | i ƒ } | i i
i d | i ƒ ƒ n " | i
| ƒ Sd S( Ns content-type( s selfs contexts images Nones languages requests getAvailableLanguagess langss
negotiators getLanguages responses setHeaders getContentTypes getData( s selfs languages images langs( ( sS /home/mg/Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser/I18nImageData.pys __call__ s c sç % & ( t } ) | i t j o | t j p
| t j o. + | i i ƒ } , t i
| | i ƒ } n . | t j o / | i i | ƒ d } n 0 | t j o 1 | i i | ƒ d } n 2 t i
| d | d | | Sd S( s See ImageData.tag.i i s widths heightN( s Nones languages selfs requests widths heights contexts getAvailableLanguagess langss
negotiators getLanguages getImageSizes ImageDatas tags args( s selfs heights widths argss languages langs( ( sS /home/mg/Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser/I18nImageData.pys tag% s -( s __name__s
__module__s __call__s Nones tag( ( ( sS /home/mg/Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser/I18nImageData.pys
I18nImageData s
N( s __doc__s ImageDatas Zope.I18n.Negotiators
negotiators
I18nImageData( s
negotiators
I18nImageDatas ImageData( ( sS /home/mg/Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser/I18nImageData.pys ? s
=== Added File Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser/I18nImageEdit.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.
#
##############################################################################
"""
Define view component for image editing.
Revision Information:
$Id: I18nImageEdit.py,v 1.1 2002/06/25 10:54:24 mgedmin Exp $
"""
from Zope.Publisher.Browser.BrowserView import BrowserView
from Zope.App.PageTemplate import ViewPageTemplateFile
class I18nImageEdit(BrowserView):
__implements__ = BrowserView.__implements__
name = 'editForm'
title = 'Edit Form'
description = ('This edit form allows you to make changes to the ' +
'properties of this image.')
def getImageSize(self, language=None):
size = self.context.getImageSize(language)
return "%d x %d" % (size[0], size[1])
def action(self, contentType, data, language, defaultLanguage,
selectLanguage=None, removeLanguage=None,
addLanguage=None, newLanguage=None):
if selectLanguage:
pass
elif removeLanguage:
self.context.removeLanguage(language)
language = self.context.getDefaultLanguage()
else:
if addLanguage:
language = newLanguage
self.context.setDefaultLanguage(defaultLanguage)
self.context.edit(data, contentType, language)
return self.request.response.redirect(self.request.URL[-1] +
"/editForm.html?language=%s" % language) # XXX url_quote
=== Added File Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser/I18nImageEdit.pyc ===
-í
ùC=c sI d Z d k l Z d k l Z d e f d „ ƒ YZ d S( sw
Define view component for image editing.
Revision Information:
$Id: ImageEdit.py,v 1.2 2002/06/10 23:28:04 jim Exp $
( s BrowserView( s ViewPageTemplateFiles
I18nImageEditc s] t Z e i Z d Z d Z d d Z " e d „ Z & e e e e d „ Z RS( Ns editForms Edit Forms1 This edit form allows you to make changes to the s properties of this image.c s5 " # | i i | ƒ } $ d | d | d f Sd S( Ns %d x %di i ( s selfs contexts getImageSizes languages size( s selfs languages size( ( sS /home/mg/Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser/I18nImageEdit.pys getImageSize" s c s¶ & ) | o * nw + | o) , | i i | ƒ - | i i ƒ } nD / | o
0 | } n 1 | i i | ƒ 2 | i i
| | | ƒ 3 | i
i i | i
i d d | ƒ Sd S( Niÿÿÿÿs /editForm.html?language=%s( s selectLanguages removeLanguages selfs contexts languages getDefaultLanguages addLanguages newLanguages setDefaultLanguages defaultLanguages edits datas contentTypes requests responses redirects URL( s selfs contentTypes datas languages defaultLanguages selectLanguages removeLanguages addLanguages newLanguage( ( sS /home/mg/Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser/I18nImageEdit.pys action& s
(
s __name__s
__module__s BrowserViews __implements__s names titles descriptions Nones getImageSizes action( ( ( sS /home/mg/Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser/I18nImageEdit.pys
I18nImageEdit s
N( s __doc__s" Zope.Publisher.Browser.BrowserViews BrowserViews Zope.App.PageTemplates ViewPageTemplateFiles
I18nImageEdit( s BrowserViews ViewPageTemplateFiles
I18nImageEdit( ( sS /home/mg/Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser/I18nImageEdit.pys ? s
=== Added File Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser/i18n_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="options/msg | nothing">
Message will go here.
</p>
<p tal:content="view/description">
Description of the Form.
</p>
<form action="edit.html" method="post" enctype="multipart/form-data">
<table class="EditTable">
<tbody>
<tr>
<th class="EditAttributeName">Content Type</th>
<td class="EditAttributeValue">
<input name="contentType" type="text" size=20
tal:attributes="value context/getContentType" />
</td>
</tr>
<tr>
<th class="EditAttributeName">Default Language</th>
<td class="EditAttributeValue">
<select name="defaultLanguage">
<span tal:repeat="lang context/getAvailableLanguages"
tal:omit-tag="">
<option selected
tal:attributes="value lang"
tal:condition="python:context.getDefaultLanguage() == lang"
tal:content="lang" />
<option
tal:attributes="value lang"
tal:condition="python:context.getDefaultLanguage() != lang"
tal:content="lang" />
</span>
</select>
</td>
</tr>
<tr>
<td colspan=2>
<hr>
</td>
</tr>
<tr>
<th class="EditAttributeName">Language</th>
<td class="EditAttributeValue">
<select name="language">
<span tal:repeat="lang context/getAvailableLanguages"
tal:omit-tag="">
<option selected
tal:attributes="value lang"
tal:condition="python:request.get('language',
context.getDefaultLanguage()) == lang"
tal:content="lang" />
<option
tal:attributes="value lang"
tal:condition="python:request.get('language',
context.getDefaultLanguage()) != lang"
tal:content="lang" />
</span>
</select>
<input type="submit" name="selectLanguage"
value="Show" />
<input type="submit" name="removeLanguage"
value="Remove" />
<input type="submit" name="addLanguage"
value="Add new language" />
<input type="text" name="newLanguage" size=10 />
</td>
</tr>
<tr>
<th class="EditAttributeName">Data</th>
<td class="EditAttributeValue">
<input type="file" name="data" size=20 />
</td>
</tr>
<tr>
<th class="EditAttributeName">Dimensions</th>
<td class="EditAttributeValue"
tal:content="python:view.getImageSize(
request.get('language'))">
</td>
</tr>
<tr>
<th class="EditAttributeName">Size</th>
<td class="EditAttributeValue"
tal:content="python:context.getSize(
request.get('language'))">
</td>
</tr>
</tbody>
</table>
<input type="submit" name="edit" value="Save Changes">
</form>
</div>
</body>
</html>
=== Zope3/lib/python/Zope/App/OFS/Content/Image/Views/Browser/configure.zcml 1.5 => 1.6 ===
<!-- Image View Directives -->
- <browser:defaultView
+ <browser:view
name="data"
for=".Image.IImage."
permission="Zope.View"
allowed_attributes="__call__ tag"
factory=".Views.Browser.ImageData." />
+ <browser:defaultView
+ for=".Image.IImage."
+ name="data" />
+
<browser:view
for=".Image.IImage."
permission="Zope.ManageContent"
@@ -26,22 +30,45 @@
attribute="action" />
</browser:view>
-
<!-- Formulator directives -->
<browser:view
name="DataFieldView"
for=".Image.IImage."
- factory=".ImageFields.DataField.
+ factory=".ImageFields.DataField.
Zope.App.Formulator.Widgets.Browser.FileWidget." />
<browser:view
name="ContentTypeFieldView"
for=".Image.IImage."
- factory=".ImageFields.ContentTypeField.
+ factory=".ImageFields.ContentTypeField.
Zope.App.Formulator.Widgets.Browser.TextWidget." />
+ <!-- I18n Image View Directives -->
+
+ <browser:view
+ name="data"
+ for="Zope.App.OFS.Content.Image.I18nImage.II18nImage"
+ permission="Zope.View"
+ allowed_attributes="__call__ tag"
+ factory=".Views.Browser.I18nImageData." />
+
+ <browser:defaultView
+ for="Zope.App.OFS.Content.Image.I18nImage.II18nImage"
+ name="data" />
+
+ <browser:view
+ for="Zope.App.OFS.Content.Image.I18nImage.II18nImage"
+ permission="Zope.ManageContent"
+ factory=".Views.Browser.I18nImageEdit.">
+ <browser:page
+ name="editForm.html"
+ template="Views/Browser/i18n_edit.pt" />
+ <browser:page
+ name="edit.html"
+ attribute="action" />
+ </browser:view>
<!-- tabs for image -->
@@ -57,5 +84,9 @@
<browser:menuItem menu="add_content"
for="Zope.App.OFS.Container.IAdding."
title="Image" action="Image"/>
+
+ <browser:menuItem menu="add_content"
+ for="Zope.App.OFS.Container.IAdding."
+ title="I18n Image" action="I18nImage"/>
</zopeConfigure>