def store_resource(path, data): """ Stores the data of the resource in the file system """ site = getSite() location = site.restrictedTraverse(str('/++%s++%s' % (TYPE, THEME))).directory if '/' in path: path, filename = path.rsplit('/', 1) dir_path = os.path.join(location, path.strip('/')) if not os.path.exists(dir_path): try: os.makedirs(os.path.normpath(dir_path)) except OSError: log.error("Unable to create directory: %s" % path) return False else: filename = path dir_path = location file_path = os.path.join(dir_path, filename) fs_file = open(file_path, "w") try: fs_file.write(data) finally: fs_file.close()
def image_to_grayscale(image_data, path): """ Converts image data to grayscale using PIL library """ try: imagestring = StringIO(image_data) image_file = Image.open(imagestring) converted = image_file.convert('RGBA') converted = converted.convert('LA') res = StringIO() converted.save(res, format='PNG') return res.getvalue() except IOError, err: log.error('Error while transforming image: %s : %s' % (path, err)) return image_data
def render_object_html(obj, request): """ Returns rendered html for given content object """ published = request.get('PUBLISHED') if isinstance(published, (BrowserView, FSPageTemplate, PythonScript)): if getCurrentTheme(): transform = ThemeTransform(published, request) try: themed = transform.transformUnicode(published(), 'utf-8') tile_transform = IncludeTiles(published, request) tiled = tile_transform.transformIterable(themed, 'utf-8') if tiled: return tiled.serialize() except Exception, error: log.error("Problem with transforming object %s: %s" % (published, error)) return published() else: try: return published() or '' except NotFound: log.error("Resource '%s' not found" % repr(obj)) return ''
def render_object_html(obj, request): """ Returns rendered html for given content object """ published = request.get('PUBLISHED') if isinstance(published, (BrowserView, FSPageTemplate, PythonScript)): try: return published() or '' except NotFound: log.error("Resource '%s' not found" % repr(obj)) return '' def_page_id = obj.getDefaultPage() if def_page_id: def_page = obj[def_page_id] return render_object_html(def_page, request) view_name = obj.getLayout() view = queryMultiAdapter((obj, request), name=view_name) if view: try: return view.context() or '' except ContentProviderLookupError: pass view = obj.restrictedTraverse(view_name, None) if view: try: return view.context() or '' except AttributeError: return view() or '' try: return obj() except AttributeError: pass return ''