versioning bug fix: always use the master's name as base name for a new version

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@1677 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2007-04-08 15:25:21 +00:00
parent a1d73273ee
commit 5acee802e0
2 changed files with 10 additions and 3 deletions

View file

@ -90,6 +90,13 @@ a major version change, the lower levels are reset to 1:
>>> getName(d001v2_1)
u'd001_2.1.txt'
The name of the new version is always derived from the name of the master
even if we create a new version from another one:
>>> d001v2_2 = IVersionable(d001v1_2).createVersion()
>>> getName(d001v2_2)
u'd001_2.2.txt'
Providing the Correct Version
=============================
@ -105,10 +112,10 @@ The default version is always the released or - if this is not available -
the current version (i.e. the version created most recently):
>>> IVersionable(getVersion(d001, TestRequest())).versionId
'2.1'
'2.2'
>>> IVersionable(getVersion(d001v1_2, TestRequest())).versionId
'2.1'
'2.2'
>>> d002 = resources['d002.txt']
>>> IVersionable(getVersion(d002, TestRequest())).versionId

View file

@ -135,7 +135,7 @@ class VersionableResource(object):
versionableObj.setVersioningAttribute('comment', comment)
# generate name for new object, register in parent
versionId = versionableObj.versionId
name = self.generateName(getName(context),
name = self.generateName(getName(self.master),
extensions.get(context.contentType, ''),
versionId)
getParent(context)[name] = obj