diff --git a/gluon/compileapp.py b/gluon/compileapp.py index 68e993d9..84d47528 100644 --- a/gluon/compileapp.py +++ b/gluon/compileapp.py @@ -676,8 +676,8 @@ def run_view_in(environment): else: filename = pjoin(folder, 'views', view) if os.path.exists(path): # compiled views - x = view.replace('/', '_') - files = ['views_%s.pyc' % x] + x = view.replace('/', '.') + files = ['views.%s.pyc' % x] is_compiled = os.path.exists(pjoin(path, files[0])) # Don't use a generic view if the non-compiled view exists. if is_compiled or (not is_compiled and not os.path.exists(filename)): diff --git a/gluon/contrib/imageutils.py b/gluon/contrib/imageutils.py index 1dd19795..2c241bb1 100644 --- a/gluon/contrib/imageutils.py +++ b/gluon/contrib/imageutils.py @@ -27,10 +27,10 @@ from gluon import current class RESIZE(object): - def __init__(self, nx=160, ny=80, quality=100, + def __init__(self, nx=160, ny=80, quality=100, padding = False error_message=' image resize'): - (self.nx, self.ny, self.quality, self.error_message) = ( - nx, ny, quality, error_message) + (self.nx, self.ny, self.quality, self.error_message, self.padding) = ( + nx, ny, quality, error_message, padding) def __call__(self, value): if isinstance(value, str) and len(value) == 0: @@ -41,7 +41,14 @@ class RESIZE(object): img = Image.open(value.file) img.thumbnail((self.nx, self.ny), Image.ANTIALIAS) s = cStringIO.StringIO() - img.save(s, 'JPEG', quality=self.quality) + if self.padding: + background = Image.new('RGBA', (self.nx, self.ny), (255, 255, 255, 0)) + background.paste( + img, + ((self.nx - img.size[0]) / 2, (self.ny - img.size[1]) / 2)) + background.save(s, 'JPEG', quality=self.quality) + else: + img.save(s, 'JPEG', queality=self.quality) s.seek(0) value.file = s except: diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py index 9c14b862..95e5f0ce 100644 --- a/gluon/sqlhtml.py +++ b/gluon/sqlhtml.py @@ -2364,7 +2364,7 @@ class SQLFORM(FORM): if deletable(record): if ondelete: ondelete(table, request.args[-1]) - record.delete_record() + db(table[table._id.name] == request.args[-1]).delete() if request.ajax: # this means javascript is enabled, so we don't need to do # a redirect