diff --git a/VERSION b/VERSION index b5aa0e4b..44d73cdc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.00.0 (2012-06-05 17:38:13) dev +Version 2.00.0 (2012-06-05 17:53:24) dev diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py index 8268ddb4..47cfd9f0 100644 --- a/gluon/sqlhtml.py +++ b/gluon/sqlhtml.py @@ -1130,6 +1130,23 @@ class SQLFORM(FORM): hideerror=hideerror, ) + if not ret and self.record and self.errors: + ### if there are errors in update mode + # and some errors refers to an already uploaded file + # delete error if + # - user not trying to upload a new file + # - there is existing file and user is not trying to delete it + # this is because removing the file may not pass validation + for key in self.errors.keys(): + if key in self.table \ + and self.table[key].type == 'upload' \ + and request_vars.get(key, None) in (None, '') \ + and self.record[key] \ + and not key + UploadWidget.ID_DELETE_SUFFIX in request_vars: + del self.errors[key] + if not self.errors: + ret = True + self.deleted = \ request_vars.get(self.FIELDNAME_REQUEST_DELETE, False)