[Zope-CMF] Updating CMFDefault.Image

Charlie Clark charlie at begeistert.org
Mon Mar 10 09:13:36 EDT 2008


Am 07.03.2008 um 16:09 schrieb Charlie Clark:

> Hi,
>
> I've finally started looking at the missing browser views for  
> CMFDefault: Image and Folder. Folder looks like a bit of a challenge  
> because of the various views required but I think is a fairly  
> straightforward migration to using formlib. Image looks like it  
> might be a bit of a challenge because the current Image class  
> contains presentation logic which might be more suited to views.  
> Looking at some of the source for Zope 2.10 it looks like it might  
> be time to look at a new implementation of Image and File based on  
> zope.app.file rather than OFS.Image. Is this a reasonable assumption  
> or have I misunderstood the source?


I now have something working based on zope.app.file but the views are  
just as easily implemented with the existing CMF.Image class. I've  
currently got this:

class RawImageView(ViewBase):
     """Return the raw data of the image call as @@index.html"""

     def __call__(self):
         response = self.context.request.RESPONSE
         response.setHeader('content-type', self.context.contentType)
         response.write(self.context._getData())

class TagImageView(ViewBase):
     """Return image infos for use in an HTML tag"""

     @memoize
     @decode
     def __init__(self, *args, **kw):
         super(TagImageView, self).__init__(*args, **kw)
         self.width, self.height = self.context.getImageSize()
         self.title = self.context.title

With RawImageView registered as index_html allowing it to be called  
from image tags without any decoration, assuming @@index.html is the  
default view, and TagImageView providing any additional information.  
Can't help but thinking that only one class should be required but  
can't think of a way of doing it.

Looking at some of the views, now that I understand them a bit better,  
it seems to me that the use of adapters is a bit excessive. Surely it  
would be okay to extend the existing IMutable... interfaces with the  
form fields and properties? That this hasn't been done hints at the  
fact that things aren't that easy.

Charlie
--

Charlie Clark
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-938-5360
GSM: +49-178-782-6226





More information about the Zope-CMF mailing list