Is that patch better than fixing Kid? There are a couple of people at least on the TurboGears list (David Stanek and myself) that can commit in the Kid repository.
Kevin On 2/12/06, David Bernard <[EMAIL PROTECTED]> wrote: > I've done a patch for this problem in turbokid, but it's the old version of > the > patch that was used by kevin (because I can't remove older attachment in > trac). > > http://trac.turbogears.org/turbogears/attachment/ticket/403/turbokid-elt.patch > > Jason Chu a écrit : > > On Sat, Feb 11, 2006 at 12:16:48AM -0000, Michele Cella wrote: > > > >> > >>Jason Chu wrote: > >> > >>>Working with the new widget code some more... > >>> > >>>Something I've noticed while converting all our widgets, if you have a > >>>widget who's outermost tab has a py:strip in it (this is also the tag > >>>that has the xmlns:py in it), you will get a trackback that looks > >>>something like this: > >>> > >>>Traceback (most recent call last): > >>> File > >>> "/home/jchu/coding/turbogears/thirdparty/cherrypy/cherrypy/_cphttptools.py", > >>> line 99, in _run > >>> self.main() > >>> File > >>> "/home/jchu/coding/turbogears/thirdparty/cherrypy/cherrypy/_cphttptools.py", > >>> line 247, in main > >>> body = page_handler(*virtual_path, **self.params) > >>> File "<string>", line 3, in month > >>> File "/home/jchu/coding/turbogears/turbogears/controllers.py", line 199, > >>> in expose > >>> func, tg_format, html, fragment, *args, **kw) > >>> File "/home/jchu/coding/turbogears/turbogears/database.py", line 193, in > >>> run_with_transaction > >>> retval = func(*args, **kw) > >>> File "/home/jchu/coding/turbogears/turbogears/controllers.py", line 220, > >>> in _execute_func > >>> return _process_output(tg_format, output, html, fragment) > >>> File "/home/jchu/coding/turbogears/turbogears/controllers.py", line 71, > >>> in _process_output > >>> fragment=fragment) > >>> File "/home/jchu/coding/turbogears/turbogears/view.py", line 60, in > >>> render > >>> return engine.render(info, format, fragment, template) > >>> File "/home/jchu/coding/turbogears/plugins/kid/turbokid/kidsupport.py", > >>> line 97, in render > >>> return t.serialize(encoding=self.defaultencoding, output=format, > >>> fragment=fragment) > >>> File "/home/jchu/coding/turbogears/thirdparty/kid/kid/__init__.py", line > >>> 236, in serialize > >>> return serializer.serialize(self, encoding, fragment) > >>> File "/home/jchu/coding/turbogears/thirdparty/kid/kid/serialization.py", > >>> line 51, in serialize > >>> text = list(self.generate(stream, encoding, fragment)) > >>> File "/home/jchu/coding/turbogears/thirdparty/kid/kid/serialization.py", > >>> line 327, in generate > >>> for ev, item in self.apply_filters(stream): > >>> File "/home/jchu/coding/turbogears/thirdparty/kid/kid/pull.py", line > >>> 206, in _coalesce > >>> for ev, item in stream: > >>> File "/home/jchu/coding/turbogears/thirdparty/kid/kid/filter.py", line > >>> 21, in transform_filter > >>> for ev, item in apply_matches(stream, template, templates, apply_func): > >>> File "/home/jchu/coding/turbogears/thirdparty/kid/kid/filter.py", line > >>> 31, in apply_matches > >>> item = stream.expand() > >>> File "/home/jchu/coding/turbogears/thirdparty/kid/kid/pull.py", line 95, > >>> in expand > >>> for ev, item in self._iter: > >>> File "/home/jchu/coding/turbogears/thirdparty/kid/kid/pull.py", line > >>> 164, in _track > >>> for p in stream: > >>> File "/home/jchu/coding/turbogears/thirdparty/kid/kid/pull.py", line > >>> 206, in _coalesce > >>> for ev, item in stream: > >>> File "/home/jchu/coding/fatboy/fatboy/templates/calendar/month.py", line > >>> 224, in _pull > >>> yield (START, current) > >>> File "/home/jchu/coding/turbogears/turbogears/widgets/base.py", line 39, > >>> in lockwidget > >>> output = self.__class__.display(self, *args, **kw) > >>> File "/home/jchu/coding/turbogears/turbogears/widgets/base.py", line > >>> 176, in display > >>> return view.transform(template_vars, template=self.template_c) > >>> File "/home/jchu/coding/turbogears/turbogears/view.py", line 65, in > >>> transform > >>> return engine.transform(info, template) > >>> File "/home/jchu/coding/turbogears/plugins/kid/turbokid/kidsupport.py", > >>> line 114, in transform > >>> return ElementStream(t.transform()).expand() > >>> File "/home/jchu/coding/turbogears/thirdparty/kid/kid/pull.py", line > >>> 111, in expand > >>> current.text = item > >>>AttributeError: 'list' object has no attribute 'text' > >>> > >> > >>Someone mentioned this on IRC the last week, it seems to be a Kid bug > >>in pull.py: > >> > >> current = self.current > >> if current is None: > >> current = [] > >> > >>so current can be a list and then they are trying to access: > >> > >> current.text > >> > >>on a list. > >> > >>Should be an easy fix I guess. > >> > >> > >>>The reason we'd py:strip all those out tags is because of the ugly > >>>xmlns:py in the output. > >>> > >> > >>That's the actual TextField template: > >> > >> template = """ > >> <input xmlns:py="http://purl.org/kid/ns#" > >> type="text" > >> name="${name}" > >> class="${field_class}" > >> id="${field_id}" > >> value="${value}" > >> py:attrs="attrs" > >> /> > >> """ > >> > >>but as you can see xmlns:py is stripped from the final output: > >> > >> > >>>>>from turbogears import widgets as w > >>>>>text = w.TextField(name="name") > >>>>>text.render() > >> > >>'<INPUT ID="name" TYPE="text" CLASS="textfield" NAME="name">' > >> > >>>>>text.render(format="xhtml") > >> > >>'<input id="name" type="text" class="textfield" name="name"></input>' > >> > >>what's happening on your output? > >> > >>Ciao > >>Michele > > > > > > Well look at that, you're right. I could have sworn that it was output > > before. > > > > Jason > > > > -------------------------------------------------------------- > David "Dwayne" Bernard Freelance Developer > mailto:[EMAIL PROTECTED] > \|/ http://dwayne.java-fan.com > --o0O @.@ O0o------------------------------------------------- > > > > -- Kevin Dangoor Author of the Zesty News RSS newsreader email: [EMAIL PROTECTED] company: http://www.BlazingThings.com blog: http://www.BlueSkyOnMars.com

