Thanks David. I'll try the new version right away.
--- Noe 2011/8/21 David Glick <[email protected]> > On 7/28/11 9:42 AM, Noe Nieto wrote: > > Plone 4.1, Dexterity 1.0.1 > I have a Dexterity content-type with > plone.app.content.interfaces.INameFromTitle and > plone.app.dexterity.behaviors.metadata.IBasic behaviors: > The schema is this: > > class IAuthor(form.Schema): > """ > Profile for Book or DVD authors. > """ > > portrait = namedfile.NamedBlobImage( > title=_(u"Author's Portrait/Photo"), > description=_(u"Portrayal of the Author."), > required=True, > ) > > form.widget(bio="plone.app.z3cform.wysiwyg.WysiwygFieldWidget") > bio = schema.Text( > title=_(u"Author's Bio"), > description=_(u"The Author's Bio"), > required=True, > ) > > The template is very basic: > > <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > xmlns:tal="http://xml.zope.org/namespaces/tal" > xmlns:metal="http://xml.zope.org/namespaces/metal" > xmlns:i18n="http://xml.zope.org/namespaces/i18n" > lang="en" > metal:use-macro="context/main_template/macros/master" > i18n:domain="holokinesislibros.contenttypes"> > <body> > > > <metal:main fill-slot="content-core"> > <metal:content-core define-macro="content-core"> > > <div class="bio-portrait" > tal:define="portrait nocall:context/portrait" > tal:condition="nocall:portrait"> > <img tal:replace="structure context/@@images/portrait/mini" /> > </div> > > <div tal:content="structure context/bio" /> > > </metal:content-core> > </metal:main> > > </body> > </html> > > If I add an author with non-ascii chars in the title, the template will > throw a traceback: > > 2011-07-28 09:34:42 ERROR Zope.SiteErrorLog 1311870882.960.569752426632 > http://localhost:8002/Plone/author-with-accents-aeion/view > Traceback (innermost last): > Module ZPublisher.Publish, line 126, in publish > Module ZPublisher.mapply, line 77, in mapply > Module ZPublisher.Publish, line 46, in call_object > Module grokcore.view.components, line 100, in __call__ > Module grokcore.view.components, line 104, in _render_template > Module five.grok.components, line 134, in render > Module zope.pagetemplate.pagetemplate, line 113, in pt_render > Module zope.tal.talinterpreter, line 271, in __call__ > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 888, in do_useMacro > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 533, in do_optTag_tal > Module zope.tal.talinterpreter, line 518, in do_optTag > Module zope.tal.talinterpreter, line 513, in no_tag > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 954, in do_defineSlot > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 533, in do_optTag_tal > Module zope.tal.talinterpreter, line 518, in do_optTag > Module zope.tal.talinterpreter, line 513, in no_tag > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 858, in do_defineMacro > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 954, in do_defineSlot > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 533, in do_optTag_tal > Module zope.tal.talinterpreter, line 518, in do_optTag > Module zope.tal.talinterpreter, line 513, in no_tag > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 954, in do_defineSlot > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 533, in do_optTag_tal > Module zope.tal.talinterpreter, line 518, in do_optTag > Module zope.tal.talinterpreter, line 513, in no_tag > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 946, in do_defineSlot > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 533, in do_optTag_tal > Module zope.tal.talinterpreter, line 518, in do_optTag > Module zope.tal.talinterpreter, line 513, in no_tag > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 858, in do_defineMacro > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 533, in do_optTag_tal > Module zope.tal.talinterpreter, line 518, in do_optTag > Module zope.tal.talinterpreter, line 513, in no_tag > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 852, in do_condition > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 531, in do_optTag_tal > Module zope.tal.talinterpreter, line 513, in no_tag > Module zope.tal.talinterpreter, line 343, in interpret > Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal > Module Products.PageTemplates.Expressions, line 218, in evaluateStructure > Module zope.tales.tales, line 696, in evaluate > - URL: > /home/tzicatl/Aplicaciones/Codigo/pu/holokinesis_libros/src/holokinesislibros.contenttypes/holokinesislibros/contenttypes/templates/ > author.pt > - Line 17, Column 13 > - Expression: <PathExpr standard:u'context/@@images/portrait/mini'> > - Names: > {'args': (), > 'container': <Author at /Plone/author-with-accents-aeion>, > 'context': <Author at /Plone/author-with-accents-aeion>, > 'default': <object object at 0xb783b6b0>, > 'here': <Author at /Plone/author-with-accents-aeion>, > 'loop': {}, > 'nothing': None, > 'options': {}, > 'repeat': <Products.PageTemplates.Expressions.SafeMapping object at > 0xcb6289c>, > 'request': <HTTPRequest, URL= > http://localhost:8002/Plone/author-with-accents-aeion/view>, > 'root': <Application at >, > 'static': <five.grok.components.ZopeTwoDirectoryResource object at > 0xb5309c0c>, > 'template': > <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at > 0xd329c8c>, > 'traverse_subpath': [], > 'user': <PropertiedUser 'admin'>, > 'view': <holokinesislibros.contenttypes.author.View object at > 0xb533848c>, > 'views': <Products.Five.browser.pagetemplatefile.ViewMapper object > at 0xb532348c>} > Module zope.tales.expressions, line 217, in __call__ > Module Products.PageTemplates.Expressions, line 147, in _eval > Module zope.tales.expressions, line 124, in _eval > Module Products.PageTemplates.Expressions, line 97, in > trustedBoboAwareZopeTraverse > Module zope.traversing.adapters, line 136, in traversePathElement > - __traceback_info__: (<Products.Five.metaclass.ImageScaling object at > 0xb53306cc>, 'portrait') > Module plone.namedfile.scaling, line 126, in traverse > Module plone.namedfile.scaling, line 68, in tag > Module plone.namedfile.scaling, line 68, in <genexpr> > UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 20: > ordinal not in range(128) > > > This is the plone.namedfile.scaling.ImageScale::tag() function: > > def tag(self, height=_marker, width=_marker, alt=_marker, > css_class=None, title=_marker, **kwargs): > """Create a tag including scale > """ > if height is _marker: > height = getattr(self, 'height', self.data._height) > if width is _marker: > width = getattr(self, 'width', self.data._width) > > if alt is _marker: > alt = self.context.Title() > if title is _marker: > title = self.context.Title() > > values = [ > ('src', self.url), > ('alt', alt), > ('title', title), > ('height', height), > ('width', width), > ('class', css_class), > ] > values.extend(kwargs.items()) > > parts = ['<img'] > parts.extend("%s=%s" % (k, quoteattr(unicode(v))) for k, v in > values if v is not None) > parts.append('/>') > > return u' '.join(parts) > > It takes the context's title and uses it for the alt and title attributes > of the img tag. Is this a bug in plone.app.scaling or in my code? > > It was a bug in plone.namedfile (it's that "unicode(v)" without specifying > which encoding to use). I just released version 1.0.4 of plone.namedfile > which should fix the problem. > > Sorry for the long delay in responding; I was on vacation. > David > > > > *David Glick* > Web Developer > [email protected] > 206.286.1235x32 > > [image: Groundwire > logo]<http://groundwire.org/?utm_source=Groundwire.org%2BEmail&utm_medium=Email&utm_campaign=Logo> > > Online tools and strategies for the environmental movement. Sign up for > Groundwire News! <http://www.groundwire.org/email-capture> > > > > _______________________________________________ > Product-Developers mailing list > [email protected] > https://lists.plone.org/mailman/listinfo/plone-product-developers > > -- --- Noe Nieto NNieto Consulting Services M: [email protected] W: http://noenieto.com T: @tzicatl <https://twitter.com/#%21/tzicatl> Li: Perfil en LinkedIn <http://www.linkedin.com/profile/view?id=84300665>
_______________________________________________ Product-Developers mailing list [email protected] https://lists.plone.org/mailman/listinfo/plone-product-developers
