provide editing of relation properties (order, relevance) in management interface; add method for copying an external file to an archive location

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3957 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2010-08-15 09:28:09 +00:00
parent d4dbc830a3
commit 89dcb9943a
3 changed files with 21 additions and 11 deletions

View file

@ -165,9 +165,10 @@ underlying context object:
>>> sorted(c.title for c in cc1.getChildren())
[u'Zope 3', u'loops for Zope 3']
>>> view = ConceptConfigureView(cc1,
... TestRequest(action='remove', qualifier='children',
... tokens=['.loops/concepts/cc2:.loops/concepts/standard']))
>>> input = {'action': 'remove', 'qualifier': 'children',
... 'form.button.submit': 'Remove Chiildren',
... 'tokens': ['.loops/concepts/cc2:.loops/concepts/standard']}
>>> view = ConceptConfigureView(cc1, TestRequest(form=input))
>>> view.update()
True
>>> sorted(c.title for c in cc1.getChildren())
@ -278,8 +279,9 @@ from concepts to resources:
>>> len(cc1.getResources())
1
>>> form = dict(action='remove', qualifier='resources',
... tokens=['.loops/resources/doc1:.loops/concepts/standard'])
>>> form = {'action': 'remove', 'qualifier': 'resources',
... 'form.button.submit': 'Remove Resources',
... 'tokens': ['.loops/resources/doc1:.loops/concepts/standard']}
>>> view = ConceptConfigureView(cc1, TestRequest(form=form))
>>> [getName(r.context) for r in view.resources()]
[u'doc1']

View file

@ -253,8 +253,8 @@ class Concept(Contained, Persistent):
def getResourceRelations(self, predicates=None, resource=None, sort='default',
noSecurityCheck=False):
#if resource is not None:
# resource = getMaster(resource)
if resource is not None:
resource = getMaster(resource)
predicates = predicates is None and ['*'] or predicates
relationships = [ResourceRelation(self, None, p) for p in predicates]
if sort == 'default':

View file

@ -388,8 +388,7 @@ class ExternalFileAdapter(FileAdapter):
def getData(self):
if self.storageName in ('unknown', None): # object not set up yet
return ''
storage = component.getUtility(IExternalStorage, name=self.storageName)
return storage.getData(self.externalAddress, params=self.storageParams)
return self.storage.getData(self.externalAddress, params=self.storageParams)
data = property(getData, setData)
@ -397,9 +396,18 @@ class ExternalFileAdapter(FileAdapter):
def size(self):
if self.storageName in ('unknown', None): # object not set up yet
return ''
storage = component.getUtility(IExternalStorage, name=self.storageName)
return storage.getSize(self.externalAddress, params=self.storageParams)
return self.storage.getSize(self.externalAddress, params=self.storageParams)
@Lazy
def storage(self):
return component.getUtility(IExternalStorage, name=self.storageName)
def copyDataFile(self, targetParams, targetAddress=None):
storageParams = self.storageParams
externalAddress = self.externalAddress
self.storage.copyDataFile(self.externalAddress, self.storageParams,
targetAddress or self.externalAddress,
targetParams)
class DocumentAdapter(ResourceAdapterBase):
""" Common base class for all resource types with a text-like