merge changes from hplattner
This commit is contained in:
commit
4690424b1d
6 changed files with 33 additions and 15 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1,2 +1,6 @@
|
||||||
*.pyc
|
*.pyc
|
||||||
ajax/dojo/*
|
ajax/dojo/*
|
||||||
|
.project
|
||||||
|
.pydevproject
|
||||||
|
.settings
|
||||||
|
|
||||||
|
|
|
@ -344,7 +344,7 @@ class EmailFieldInstance(FieldInstance):
|
||||||
class BooleanFieldInstance(FieldInstance):
|
class BooleanFieldInstance(FieldInstance):
|
||||||
|
|
||||||
def marshall(self, value):
|
def marshall(self, value):
|
||||||
return value
|
return bool(value)
|
||||||
|
|
||||||
def display(self, value):
|
def display(self, value):
|
||||||
#return value and _(u'Yes') or _(u'No')
|
#return value and _(u'Yes') or _(u'No')
|
||||||
|
|
|
@ -53,7 +53,7 @@ class Instance(BaseInstance):
|
||||||
fi = f.getFieldInstance(self, context=kw.get('context'),
|
fi = f.getFieldInstance(self, context=kw.get('context'),
|
||||||
request=kw.get('request'))
|
request=kw.get('request'))
|
||||||
name = f.name
|
name = f.name
|
||||||
value = getattr(self.context, name) or fi.default
|
value = getattr(self.context, name, fi.default)
|
||||||
if mode in ('view', 'preview'):
|
if mode in ('view', 'preview'):
|
||||||
value = fi.display(value)
|
value = fi.display(value)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -29,11 +29,9 @@ from logging import getLogger
|
||||||
import mimetypes
|
import mimetypes
|
||||||
import os, re, sys
|
import os, re, sys
|
||||||
|
|
||||||
from zope import component
|
|
||||||
from zope.interface import implements
|
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.media.piltransform import PILTransform
|
||||||
from cybertools.storage.filesystem import FileSystemStorage
|
|
||||||
|
|
||||||
TRANSFORM_STATEMENT = re.compile(r"\s*(\+?)([\w]+[\w\d]*)\(([^\)]*)\)\s*")
|
TRANSFORM_STATEMENT = re.compile(r"\s*(\+?)([\w]+[\w\d]*)\(([^\)]*)\)\s*")
|
||||||
|
|
||||||
|
@ -41,13 +39,16 @@ DEFAULT_FORMATS = {
|
||||||
"image": "image/jpeg"
|
"image": "image/jpeg"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def parseTransformStatements(txStr):
|
def parseTransformStatements(txStr):
|
||||||
""" Parse statements in transform chain strings."""
|
""" Parse statements in transform chain strings."""
|
||||||
statements = TRANSFORM_STATEMENT.findall(txStr)
|
statements = TRANSFORM_STATEMENT.findall(txStr)
|
||||||
return statements
|
return statements
|
||||||
|
|
||||||
|
|
||||||
def getMimeBasetype(mimetype):
|
def getMimeBasetype(mimetype):
|
||||||
return mimetype.split("/",1)[0]
|
return mimetype.split("/", 1)[0]
|
||||||
|
|
||||||
|
|
||||||
def getMimetypeExt(mimetype):
|
def getMimetypeExt(mimetype):
|
||||||
exts = mimetypes.guess_all_extensions(mimetype)
|
exts = mimetypes.guess_all_extensions(mimetype)
|
||||||
|
@ -74,9 +75,9 @@ class MediaAssetFile(object):
|
||||||
getLogger('cybertools.media.asset.MediaAssetFile').warn(
|
getLogger('cybertools.media.asset.MediaAssetFile').warn(
|
||||||
'Media asset directory %r not found.' % path)
|
'Media asset directory %r not found.' % path)
|
||||||
self.transform()
|
self.transform()
|
||||||
#return self.getOriginalData()
|
# return self.getOriginalData()
|
||||||
f = open(path, 'rb')
|
f = open(path, 'rb')
|
||||||
data =f.read()
|
data = f.read()
|
||||||
f.close()
|
f.close()
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ class PILTransform(object):
|
||||||
box = (left, upper, right, lower)
|
box = (left, upper, right, lower)
|
||||||
self.im = self.im.crop(box)
|
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:
|
if self.im is None:
|
||||||
return
|
return
|
||||||
if not height:
|
if not height:
|
||||||
|
@ -100,11 +100,15 @@ class PILTransform(object):
|
||||||
ratio = float(ow) / float(oh)
|
ratio = float(ow) / float(oh)
|
||||||
height = int(round(float(width) / ratio))
|
height = int(round(float(width) / ratio))
|
||||||
dims = (width, height)
|
dims = (width, height)
|
||||||
try:
|
if fill:
|
||||||
self.im.thumbnail(dims, Image.ANTIALIAS)
|
image = self.im
|
||||||
except IOError, e:
|
image.thumbnail(dims, Image.ANTIALIAS)
|
||||||
logger.warn(e)
|
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):
|
def save(self, path, mimetype):
|
||||||
if self.im is None:
|
if self.im is None:
|
||||||
|
|
11
util/date.py
11
util/date.py
|
@ -71,7 +71,6 @@ def year(d=None):
|
||||||
d = datetime.today()
|
d = datetime.today()
|
||||||
return d.year
|
return d.year
|
||||||
|
|
||||||
|
|
||||||
def toLocalTime(d):
|
def toLocalTime(d):
|
||||||
if pytz is None or not d:
|
if pytz is None or not d:
|
||||||
return d
|
return d
|
||||||
|
@ -82,3 +81,13 @@ def toLocalTime(d):
|
||||||
return d.astimezone(cet)
|
return d.astimezone(cet)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return d
|
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
|
||||||
|
|
Loading…
Add table
Reference in a new issue