Hi,

I have the exact same problem for uploads, check boxes and radio buttons 
... so far.

The way I solved (worked-around) it:

... after form.accepts ...
                eltable = form[0]

                prefix = nube.hwrapper_upload
                def getv(basename):
                    return form.vars.get(basename)

                # regenerate upload widgets.
                for field in factoryfields:
                    if field.x_isupload():
                        fname = field.name
                        fvalue = getv(fname)
                        if fvalue is not None: # check vs None in order to 
support deletes.
                            el = eltable.element(_id=prefix+fname)
                            h2 = nube_upload_widget(field, fvalue, 
download_url=urldownload)
                            el[0] = h2

                # same occurs for boolean checkboxes.
                # but instead of regenerating them we will update the 
'checked' attribute as necessary.
                for field in factoryfields:
                    if field.type == 'boolean' and not field.widget:
                        fname = field.name
                        fvalue = getv(fname)
                        el = eltable.element(_name=fname)
                        el['_checked'] = 'checked' if fvalue else None

                # same occurs for radios - see above comment for checkboxes.
                els = eltable.elements(_type='radio')
                if els:
                    elgroups = dict()
                    for el in els:
                        xlist = dict_setif(elgroups, el['_name'], [])
                        xlist.append(el)
                    for wname, wlist in elgroups.items():
                        v = getv(wname)
                        for el in wlist:
                            wv = 'checked' if v == el['_value'] else None
                            el['_checked'] = wv

I hope the above helps.

   Carlos

Reply via email to