merge changes from hplattner

This commit is contained in:
Helmut Merz 2015-09-29 14:35:24 +02:00
commit 4690424b1d
6 changed files with 33 additions and 15 deletions

4
.gitignore vendored
View file

@ -1,2 +1,6 @@
*.pyc
ajax/dojo/*
.project
.pydevproject
.settings

View file

@ -344,7 +344,7 @@ class EmailFieldInstance(FieldInstance):
class BooleanFieldInstance(FieldInstance):
def marshall(self, value):
return value
return bool(value)
def display(self, value):
#return value and _(u'Yes') or _(u'No')

View file

@ -53,7 +53,7 @@ class Instance(BaseInstance):
fi = f.getFieldInstance(self, context=kw.get('context'),
request=kw.get('request'))
name = f.name
value = getattr(self.context, name) or fi.default
value = getattr(self.context, name, fi.default)
if mode in ('view', 'preview'):
value = fi.display(value)
else:

View file

@ -29,11 +29,9 @@ from logging import getLogger
import mimetypes
import os, re, sys
from zope import component
from zope.interface import implements
from cybertools.media.interfaces import IMediaAsset, IFileTransform
from cybertools.media.interfaces import IMediaAsset
from cybertools.media.piltransform import PILTransform
from cybertools.storage.filesystem import FileSystemStorage
TRANSFORM_STATEMENT = re.compile(r"\s*(\+?)([\w]+[\w\d]*)\(([^\)]*)\)\s*")
@ -41,13 +39,16 @@ DEFAULT_FORMATS = {
"image": "image/jpeg"
}
def parseTransformStatements(txStr):
""" Parse statements in transform chain strings."""
statements = TRANSFORM_STATEMENT.findall(txStr)
return statements
def getMimeBasetype(mimetype):
return mimetype.split("/",1)[0]
return mimetype.split("/", 1)[0]
def getMimetypeExt(mimetype):
exts = mimetypes.guess_all_extensions(mimetype)
@ -74,9 +75,9 @@ class MediaAssetFile(object):
getLogger('cybertools.media.asset.MediaAssetFile').warn(
'Media asset directory %r not found.' % path)
self.transform()
#return self.getOriginalData()
# return self.getOriginalData()
f = open(path, 'rb')
data =f.read()
data = f.read()
f.close()
return data

View file

@ -92,7 +92,7 @@ class PILTransform(object):
box = (left, upper, right, lower)
self.im = self.im.crop(box)
def resize(self, width, height=None):
def resize(self, width, height=None, fill=False):
if self.im is None:
return
if not height:
@ -100,11 +100,15 @@ class PILTransform(object):
ratio = float(ow) / float(oh)
height = int(round(float(width) / ratio))
dims = (width, height)
try:
self.im.thumbnail(dims, Image.ANTIALIAS)
except IOError, e:
logger.warn(e)
if fill:
image = self.im
image.thumbnail(dims, Image.ANTIALIAS)
new = Image.new('RGBA', dims, (255, 255, 255, 0)) #with alpha
new.paste(image,((dims[0] - image.size[0]) / 2,
(dims[1] - image.size[1]) / 2))
self.im = new
return new
return self.im.thumbnail(dims, Image.ANTIALIAS)
def save(self, path, mimetype):
if self.im is None:

View file

@ -71,7 +71,6 @@ def year(d=None):
d = datetime.today()
return d.year
def toLocalTime(d):
if pytz is None or not d:
return d
@ -82,3 +81,13 @@ def toLocalTime(d):
return d.astimezone(cet)
except ValueError:
return d
def month(d=None):
if d is None:
d = datetime.today()
return d.month
def day(d=None):
if d is None:
d = datetime.today()
return d.day