equal
deleted
inserted
replaced
159 |
159 |
160 def render(self, form, renderer): |
160 def render(self, form, renderer): |
161 """render this field, which is part of form, using the given form |
161 """render this field, which is part of form, using the given form |
162 renderer |
162 renderer |
163 """ |
163 """ |
164 return self.get_widget(form).render(form, self) |
164 widget = self.get_widget(form) |
|
165 try: |
|
166 return widget.render(form, self, renderer) |
|
167 except TypeError: |
|
168 warn('widget.render now take the renderer as third argument, please update %s implementation' |
|
169 % widget.__class__.__name__, DeprecationWarning) |
|
170 return widget.render(form, self) |
165 |
171 |
166 def vocabulary(self, form): |
172 def vocabulary(self, form): |
167 """return vocabulary for this field. This method will be called by |
173 """return vocabulary for this field. This method will be called by |
168 widgets which desire it.""" |
174 widgets which desire it.""" |
169 if self.choices is not None: |
175 if self.choices is not None: |
288 # XXX we want both fields to remain vertically aligned |
294 # XXX we want both fields to remain vertically aligned |
289 format_field.widget.attrs['style'] = 'display: block' |
295 format_field.widget.attrs['style'] = 'display: block' |
290 result = format_field.render(form, renderer) |
296 result = format_field.render(form, renderer) |
291 else: |
297 else: |
292 result = u'' |
298 result = u'' |
293 return result + self.get_widget(form).render(form, self) |
299 return result + self.get_widget(form).render(form, self, renderer) |
294 |
300 |
295 |
301 |
296 class FileField(StringField): |
302 class FileField(StringField): |
297 widget = FileInput |
303 widget = FileInput |
298 needs_multipart = True |
304 needs_multipart = True |
308 yield self.format_field |
314 yield self.format_field |
309 if self.encoding_field: |
315 if self.encoding_field: |
310 yield self.encoding_field |
316 yield self.encoding_field |
311 |
317 |
312 def render(self, form, renderer): |
318 def render(self, form, renderer): |
313 wdgs = [self.get_widget(form).render(form, self)] |
319 wdgs = [self.get_widget(form).render(form, self, renderer)] |
314 if self.format_field or self.encoding_field: |
320 if self.format_field or self.encoding_field: |
315 divid = '%s-advanced' % form.context[self]['name'] |
321 divid = '%s-advanced' % form.context[self]['name'] |
316 wdgs.append(u'<a href="%s" title="%s"><img src="%s" alt="%s"/></a>' % |
322 wdgs.append(u'<a href="%s" title="%s"><img src="%s" alt="%s"/></a>' % |
317 (xml_escape(uilib.toggle_action(divid)), |
323 (xml_escape(uilib.toggle_action(divid)), |
318 form.req._('show advanced fields'), |
324 form.req._('show advanced fields'), |
362 else: |
368 else: |
363 msg = form.req._( |
369 msg = form.req._( |
364 'You can either submit a new file using the browse button above' |
370 'You can either submit a new file using the browse button above' |
365 ', or edit file content online with the widget below.') |
371 ', or edit file content online with the widget below.') |
366 wdgs.append(u'<p><b>%s</b></p>' % msg) |
372 wdgs.append(u'<p><b>%s</b></p>' % msg) |
367 wdgs.append(TextArea(setdomid=False).render(form, self)) |
373 wdgs.append(TextArea(setdomid=False).render(form, self, renderer)) |
368 # XXX restore form context? |
374 # XXX restore form context? |
369 return '\n'.join(wdgs) |
375 return '\n'.join(wdgs) |
370 |
376 |
371 |
377 |
372 class IntField(Field): |
378 class IntField(Field): |