improved upload logic, thanks Marin

This commit is contained in:
mdipierro
2012-08-03 09:01:02 -05:00
parent 29df9f9f3e
commit 38ceeb82b8
2 changed files with 13 additions and 7 deletions
+1 -1
View File
@@ -1 +1 @@
Version 2.00.0 (2012-08-03 08:57:50) dev Version 2.00.0 (2012-08-03 09:01:00) dev
+12 -6
View File
@@ -1229,16 +1229,22 @@ class SQLFORM(FORM):
continue # do not update if password was not changed continue # do not update if password was not changed
elif field.type == 'upload': elif field.type == 'upload':
f = self.vars[fieldname] f = self.vars[fieldname]
f = f if not f in (None,'') else self.table[fieldname].default
fd = '%s__delete' % fieldname fd = '%s__delete' % fieldname
if f == '' or f is None: if f == '' or f is None:
if self.vars.get(fd, False) or not self.record: if self.vars.get(fd, False):
fields[fieldname] = '' f = self.table[fieldname].default or ''
fields[fieldname] = f
elif self.record:
if self.record[fieldname]:
fields[fieldname] = self.record[fieldname]
else:
f = self.table[fieldname].default or ''
fields[fieldname] = f
else: else:
fields[fieldname] = self.record[fieldname] fields[fieldname] = ''
self.vars[fieldname] = fields[fieldname] self.vars[fieldname] = fields[fieldname]
continue if not f: continue
elif hasattr(f, 'file'): if hasattr(f, 'file'):
(source_file, original_filename) = (f.file, f.filename) (source_file, original_filename) = (f.file, f.filename)
elif isinstance(f, (str, unicode)): elif isinstance(f, (str, unicode)):
f = os.path.join(current.request.folder, f = os.path.join(current.request.folder,