From 739f309ab7792342c12ebb22623f18e570a91ffc Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Wed, 28 Mar 2012 20:26:48 +0200 Subject: [PATCH] allow supression of versioning for single resources via an additional field --- browser/form.py | 7 +++++-- browser/form_macros.pt | 19 ++++++++++++++++--- browser/skin/lobo/print.css | 2 +- locales/de/LC_MESSAGES/loops.mo | Bin 16570 -> 16782 bytes locales/de/LC_MESSAGES/loops.po | 8 +++++++- versioning/interfaces.py | 25 +++++++++++++------------ versioning/versionable.py | 11 ++++++++--- 7 files changed, 50 insertions(+), 22 deletions(-) diff --git a/browser/form.py b/browser/form.py index e7e6e2b..ad73acf 100644 --- a/browser/form.py +++ b/browser/form.py @@ -642,8 +642,11 @@ class EditObject(FormController, I18NView): def checkCreateVersion(self, obj): form = self.request.form - if form.get('version.create'): - versionable = IVersionable(obj) + versionable = IVersionable(obj) + notVersioned = bool(form.get('version.not_versioned')) + if notVersioned != versionable.notVersioned: + versionable.notVersioned = notVersioned + if not notVersioned and form.get('version.create'): level = int(form.get('version.level', 0)) version = versionable.createVersion(level) notify(ObjectCreatedEvent(version)) diff --git a/browser/form_macros.pt b/browser/form_macros.pt index 1a18cfb..d8a1acf 100644 --- a/browser/form_macros.pt +++ b/browser/form_macros.pt @@ -229,12 +229,25 @@ - Versioning + Versioning + + + + + + - + Version: 1.1 (current, released) diff --git a/browser/skin/lobo/print.css b/browser/skin/lobo/print.css index c8b0c74..19dd977 100644 --- a/browser/skin/lobo/print.css +++ b/browser/skin/lobo/print.css @@ -13,6 +13,6 @@ body { #content { /* width: 100%; */ - width: 70%; + width: 80%; color: Black; } diff --git a/locales/de/LC_MESSAGES/loops.mo b/locales/de/LC_MESSAGES/loops.mo index 0a47ea72d8af3a0b0d56aa7b44f4adba0d7f6208..8bbd48c5f73bbe52a1b5b4cb1c41180f586cedb8 100644 GIT binary patch delta 6564 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 NHp#Bq+~@VQ{{vtVSA_ro diff --git a/locales/de/LC_MESSAGES/loops.po b/locales/de/LC_MESSAGES/loops.po index ffdfd5f..f684b84 100644 --- a/locales/de/LC_MESSAGES/loops.po +++ b/locales/de/LC_MESSAGES/loops.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: $Id$\n" "POT-Creation-Date: 2007-05-22 12:00 CET\n" -"PO-Revision-Date: 2012-02-16 12:00 CET\n" +"PO-Revision-Date: 2012-03-28 12:00 CET\n" "Last-Translator: Helmut Merz \n" "Language-Team: loops developers \n" "MIME-Version: 1.0\n" @@ -437,6 +437,12 @@ msgstr "Suchbegriff" msgid "Select if you want to create a new version" msgstr "Bitte markieren, wenn Sie eine neue Version anlegen möchten" +msgid "Suppress Versioning" +msgstr "Keine Versionierung" + +msgid "Check this field if you want to suppress versioning for this resource." +msgstr "Bitte markieren, wenn diese Ressource nicht versioniert werden soll." + msgid "Search text" msgstr "Suchtext" diff --git a/versioning/interfaces.py b/versioning/interfaces.py index 1241dea..51e130c 100644 --- a/versioning/interfaces.py +++ b/versioning/interfaces.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2006 Helmut Merz helmutm@cy55.de +# Copyright (c) 2012 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 @@ -18,8 +18,6 @@ """ Versioning interfaces. - -$Id$ """ from zope.interface import Interface, Attribute @@ -30,31 +28,34 @@ class IVersionable(Interface): """ An object that may exist in different versions. """ - versionNumbers = Attribute(u'A tuple of version numbers for the context ' + versionNumbers = Attribute('A tuple of version numbers for the context ' 'object, with a number for each level') - variantIds = Attribute(u'A tuple of variant IDs (e.g. for language ' + variantIds = Attribute('A tuple of variant IDs (e.g. for language ' 'varuants) for the context object') - versionId = Attribute(u'A string identifying this version, e.g. 1.1_de, ' + versionId = Attribute('A string identifying this version, e.g. 1.1_de, ' 'derived from versionNumbers and variantIds') - master = Attribute(u'The object (master version) that should be used for access to ' + master = Attribute('The object (master version) that should be used for access to ' 'version-independent attributes and central ' 'versioning metadata') - parent = Attribute(u'The version this one was created from') + parent = Attribute('The version this one was created from') - comment = Attribute(u'Somme informative text provided when creating ' + comment = Attribute('Somme informative text provided when creating ' 'this version') # attributes taken from the master version: - versions = Attribute(u'A dictionary of all versions of this object') + versions = Attribute('A dictionary of all versions of this object') - currentVersion = Attribute(u'The default version to be used for editing') + currentVersion = Attribute('The default version to be used for editing') - releasedVersion = Attribute(u'The default version to be used for viewing') + releasedVersion = Attribute('The default version to be used for viewing') + + notVersioned = Attribute('A boolean that is True if this object should ' + 'not be versioned') def createVersion(level=1): """ Create a copy of the context object as a new version and return it. diff --git a/versioning/versionable.py b/versioning/versionable.py index 421bc4d..1e85db3 100644 --- a/versioning/versionable.py +++ b/versioning/versionable.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2007 Helmut Merz helmutm@cy55.de +# Copyright (c) 2012 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 @@ -18,8 +18,6 @@ """ Utilities for managing version informations. - -$Id$ """ from BTrees.OOBTree import OOBTree @@ -129,6 +127,13 @@ class VersionableResource(object): m = self.versionableMaster return self.versionableMaster.getVersioningAttribute('releasedVersion', None) + def getNotVersioned(self): + m = self.versionableMaster + return self.versionableMaster.getVersioningAttribute('notVersioned', False) + def setNotVersioned(self, value): + self.versionableMaster.setVersioningAttribute('notVersioned', bool(value)) + notVersioned = property(getNotVersioned, setNotVersioned) + def createVersionObject(self, versionNumbers, variantIds, comment=u''): versionableMaster = self.versionableMaster versionableMaster.initVersions()