diff --git a/browser/resource.py b/browser/resource.py index 0960cb2..2b7a7ec 100644 --- a/browser/resource.py +++ b/browser/resource.py @@ -47,7 +47,7 @@ from loops.browser.common import EditForm, BaseView from loops.browser.concept import BaseRelationView, ConceptRelationView from loops.browser.concept import ConceptConfigureView from loops.browser.node import NodeView, node_macros -from loops.common import adapted, NameChooser +from loops.common import adapted, NameChooser, normalizeName from loops.interfaces import IBaseResource, IDocument, ITextDocument from loops.interfaces import IMediaAsset as legacy_IMediaAsset from loops.interfaces import ITypeConcept @@ -214,7 +214,8 @@ class ResourceView(BaseView): if self.typeOptions('no_normalize_download_filename'): filename = '"%s"' % filename else: - filename = NameChooser(getParent(self.context)).normalizeName(filename) + #filename = NameChooser(getParent(self.context)).normalizeName(filename) + filename = normalizeName(filename) response.setHeader('Content-Disposition', 'attachment; filename=%s' % filename) response.setHeader('Content-Length', len(data)) diff --git a/common.py b/common.py index 3e566af..6c90712 100644 --- a/common.py +++ b/common.py @@ -250,7 +250,7 @@ def normalizeName(baseName): except UnicodeDecodeError: result.append('_') continue - if c in '._': + if c in '._-': # separator and special characters to keep result.append(c) continue diff --git a/media/browser/asset.py b/media/browser/asset.py index a03d0ee..a18deda 100644 --- a/media/browser/asset.py +++ b/media/browser/asset.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2008 Helmut Merz helmutm@cy55.de +# Copyright (c) 2013 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -20,12 +20,9 @@ Views for displaying media assets. Authors: Johann Schimpf, Erich Seifert. - -$Id$ """ from zope.app.pagetemplate import ViewPageTemplateFile -from zope.app.container.contained import NameChooser from zope.cachedescriptors.property import Lazy from zope.security.interfaces import Unauthorized from zope.traversing.api import getParent @@ -64,7 +61,7 @@ class MediaAssetView(ResourceView): if useAttachment: filename = obj.localFilename or getName(self.context) #filename = urllib.quote(filename) - filename = NameChooser(getParent(self.context)).chooseName(filename, self.context) + filename = normalizeName(filename) response.setHeader('Content-Disposition', 'attachment; filename=%s' % filename) return data