good catch. Let me think about this...

On Jan 12, 1:12 am, kenji4569 <hos...@s-cubism.jp> wrote:
> I applied the follwing validators for upload fields in version 1.91.6:
>
> requires = [
>     IS_NULL_OR(IS_UPLOAD_FILENAME(extension='pdf')),
>     IS_NULL_OR(IS_LENGTH(1048576, 1024)),
> ]
>
> Everything was fine until I used a SQLFORM object with an upload
> keyword for editing.
>
> Then, a delete checkbox of an upload widget falsely disappeared which
> should be displayed with a link to the uploaded file.
>
> This is the result of the code in UploadWidget class of gluon/
> sqlhtml.py:
>
> if requires == [] or isinstance(requires, IS_EMPTY_OR):
>     inp = DIV(, ...,
>                      UploadWidget.ID_DELETE_SUFFIX),
>                      ...)
>
> And, the next patch would tentatively fix the problem:
>
> if (requires == [] or isinstance(requires, IS_EMPTY_OR) or
>     (isinstance(requires, (list, tuple)) and
>      reduce(lambda a,b:a&b, [isinstance(r, IS_EMPTY_OR) for r in
> requires]))):
>     ...
>
> But, I am not sure if the above patch is smart.
> Is there any way to implement such validation without patches nor
> custom validators?

Reply via email to