[Checkins] SVN: z3ext.skintool/tags/1.2.0/ prepare release

Nikolay Kim fafhrd91 at gmail.com
Tue Aug 11 05:09:11 EDT 2009


Log message for revision 102656:
  prepare release

Changed:
  A   z3ext.skintool/tags/1.2.0/
  D   z3ext.skintool/tags/1.2.0/CHANGES.txt
  A   z3ext.skintool/tags/1.2.0/CHANGES.txt
  D   z3ext.skintool/tags/1.2.0/bootstrap.py
  A   z3ext.skintool/tags/1.2.0/bootstrap.py
  D   z3ext.skintool/tags/1.2.0/setup.py
  A   z3ext.skintool/tags/1.2.0/setup.py
  D   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/generations/__init__.py
  A   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/generations/__init__.py
  D   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/generations/install.py
  D   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/interfaces.py
  A   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/interfaces.py
  D   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/nl/LC_MESSAGES/z3ext.skintool.po
  A   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/nl/LC_MESSAGES/z3ext.skintool.po
  D   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/ru/LC_MESSAGES/z3ext.skintool.po
  A   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/ru/LC_MESSAGES/z3ext.skintool.po
  D   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/z3ext.skintool.pot
  A   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/z3ext.skintool.pot
  D   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/skindatatype.py
  A   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/skindatatype.py
  D   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/subscribers.py
  A   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/subscribers.py
  D   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tests/interfaces.py
  A   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tests/interfaces.py
  D   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tests/tests.py
  A   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tests/tests.py
  D   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tool.py
  A   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tool.py
  D   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/vocabulary.py
  A   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/vocabulary.py
  D   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/zcml.py
  A   z3ext.skintool/tags/1.2.0/src/z3ext/skintool/zcml.py

-=-
Deleted: z3ext.skintool/tags/1.2.0/CHANGES.txt
===================================================================
--- z3ext.skintool/trunk/CHANGES.txt	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/CHANGES.txt	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,87 +0,0 @@
-=======
-CHANGES
-=======
-
-1.2.0 (Unreleased)
-------------------
-
-- Added skin configurable schema.
-
-
-1.1.3 (2009-04-??)
-------------------
-
-- Check is skin exists, if not use z3ext as default
-
-- Do not use z3c.autoinclude
-
-
-1.1.2 (2009-01-26)
-------------------
-
-- Use custom fields for schema
-
-
-1.1.1 (2008-12-03)
-------------------
-
-- Do not use _v_skin attribute
-
-
-1.1.0 (2008-11-21)
-------------------
-
-- Added z3ext:skin directive
-
-- API refactored
-
-- Added translations: nl, ru
-
-
-1.0.2 (2008-08-07)
-------------------
-
-- Added INoSkinSwitching for skin that does not allow skin switching
-
-
-1.0.1 (2008-05-16)
-------------------
-
-- Replace 'autoinclude' with 'includeDependendcies'
-
-
-1.0.0 (2008-03-28)
-------------------
-
-- Code cleanup
-
-- Added tests
-
-- Code moved to svn.zope.org
-
-
-0.13 (2008-02-28)
-----------------
-
-- Use z3c.autoinclude
-
-- Do not generate InterfaceClass object, just apply list of layers
-
-
-0.12 (2008-02-08)
------------------
-
-- Code cleanup
-
-
-0.11 (2008-02-06)
-------------------
-
-- Added ISkinable marker interface.
-  Now object should implement ISkinable implicitly to support skintool
-
-
-0.10 (2008-02-01)
-------------------
-
-- Initial release.

Copied: z3ext.skintool/tags/1.2.0/CHANGES.txt (from rev 102655, z3ext.skintool/trunk/CHANGES.txt)
===================================================================
--- z3ext.skintool/tags/1.2.0/CHANGES.txt	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/CHANGES.txt	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,85 @@
+=======
+CHANGES
+=======
+
+1.2.0 (2009-08-11)
+------------------
+
+- Added skin configurable schema
+
+- Change copyright holder
+
+- Check is skin exists, if not use z3ext as default
+
+- Do not use z3c.autoinclude
+
+
+1.1.2 (2009-01-26)
+------------------
+
+- Use custom fields for schema
+
+
+1.1.1 (2008-12-03)
+------------------
+
+- Do not use _v_skin attribute
+
+
+1.1.0 (2008-11-21)
+------------------
+
+- Added z3ext:skin directive
+
+- API refactored
+
+- Added translations: nl, ru
+
+
+1.0.2 (2008-08-07)
+------------------
+
+- Added INoSkinSwitching for skin that does not allow skin switching
+
+
+1.0.1 (2008-05-16)
+------------------
+
+- Replace 'autoinclude' with 'includeDependendcies'
+
+
+1.0.0 (2008-03-28)
+------------------
+
+- Code cleanup
+
+- Added tests
+
+- Code moved to svn.zope.org
+
+
+0.13 (2008-02-28)
+----------------
+
+- Use z3c.autoinclude
+
+- Do not generate InterfaceClass object, just apply list of layers
+
+
+0.12 (2008-02-08)
+-----------------
+
+- Code cleanup
+
+
+0.11 (2008-02-06)
+------------------
+
+- Added ISkinable marker interface.
+  Now object should implement ISkinable implicitly to support skintool
+
+
+0.10 (2008-02-01)
+------------------
+
+- Initial release.

Deleted: z3ext.skintool/tags/1.2.0/bootstrap.py
===================================================================
--- z3ext.skintool/trunk/bootstrap.py	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/bootstrap.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,52 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2006 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Bootstrap a buildout-based project
-
-Simply run this script in a directory containing a buildout.cfg.
-The script accepts buildout command-line options, so you can
-use the -c option to specify an alternate configuration file.
-
-$Id$
-"""
-
-import os, shutil, sys, tempfile, urllib2
-
-tmpeggs = tempfile.mkdtemp()
-
-ez = {}
-exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
-                     ).read() in ez
-ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
-
-import pkg_resources
-
-cmd = 'from setuptools.command.easy_install import main; main()'
-if sys.platform == 'win32':
-    cmd = '"%s"' % cmd # work around spawn lamosity on windows
-
-ws = pkg_resources.working_set
-assert os.spawnle(
-    os.P_WAIT, sys.executable, sys.executable,
-    '-c', cmd, '-mqNxd', tmpeggs, 'zc.buildout',
-    dict(os.environ,
-         PYTHONPATH=
-         ws.find(pkg_resources.Requirement.parse('setuptools')).location
-         ),
-    ) == 0
-
-ws.add_entry(tmpeggs)
-ws.require('zc.buildout')
-import zc.buildout.buildout
-zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap'])
-shutil.rmtree(tmpeggs)

Copied: z3ext.skintool/tags/1.2.0/bootstrap.py (from rev 102655, z3ext.skintool/trunk/bootstrap.py)
===================================================================
--- z3ext.skintool/tags/1.2.0/bootstrap.py	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/bootstrap.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,52 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Bootstrap a buildout-based project
+
+Simply run this script in a directory containing a buildout.cfg.
+The script accepts buildout command-line options, so you can
+use the -c option to specify an alternate configuration file.
+
+$Id$
+"""
+
+import os, shutil, sys, tempfile, urllib2
+
+tmpeggs = tempfile.mkdtemp()
+
+ez = {}
+exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
+                     ).read() in ez
+ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
+
+import pkg_resources
+
+cmd = 'from setuptools.command.easy_install import main; main()'
+if sys.platform == 'win32':
+    cmd = '"%s"' % cmd # work around spawn lamosity on windows
+
+ws = pkg_resources.working_set
+assert os.spawnle(
+    os.P_WAIT, sys.executable, sys.executable,
+    '-c', cmd, '-mqNxd', tmpeggs, 'zc.buildout',
+    dict(os.environ,
+         PYTHONPATH=
+         ws.find(pkg_resources.Requirement.parse('setuptools')).location
+         ),
+    ) == 0
+
+ws.add_entry(tmpeggs)
+ws.require('zc.buildout')
+import zc.buildout.buildout
+zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap'])
+shutil.rmtree(tmpeggs)

Deleted: z3ext.skintool/tags/1.2.0/setup.py
===================================================================
--- z3ext.skintool/trunk/setup.py	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/setup.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,81 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2007 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Setup for z3ext.skintool package
-
-$Id$
-"""
-import sys, os
-from setuptools import setup, find_packages
-
-def read(*rnames):
-    return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
-
-version = '1.2.0dev'
-
-
-setup(name='z3ext.skintool',
-      version=version,
-      description="Tool for merging skin layers at runtime",
-      long_description=(
-          'Detailed Documentation\n' +
-          '======================\n'
-          + '\n\n' +
-          read('src', 'z3ext', 'skintool', 'README.txt')
-          + '\n\n' +
-          read('CHANGES.txt')
-          ),
-      classifiers=[
-        'Development Status :: 5 - Production/Stable',
-        'Environment :: Web Environment',
-        'Intended Audience :: Developers',
-        'License :: OSI Approved :: Zope Public License',
-        'Programming Language :: Python',
-        'Natural Language :: English',
-        'Operating System :: OS Independent',
-        'Topic :: Internet :: WWW/HTTP',
-        'Framework :: Zope3'],
-      author='Nikolay Kim',
-      author_email='fafhrd91 at gmail.com',
-      url='http://z3ext.net/',
-      license='ZPL 2.1',
-      packages=find_packages('src'),
-      package_dir = {'':'src'},
-      namespace_packages=['z3ext'],
-      install_requires = ['setuptools',
-                          'zope.schema',
-                          'zope.proxy',
-                          'zope.component',
-                          'zope.interface',
-                          'zope.security',
-                          'zope.configuration',
-                          'zope.lifecycleevent',
-                          'zope.app.intid',
-                          'zope.app.component',
-                          'zope.app.publication',
-                          'zope.i18nmessageid',
-                          'zope.i18n',
-                          'z3ext.controlpanel',
-                          'z3ext.widget.radio',
-                          'z3ext.widget.checkbox',
-                          ],
-      extras_require = dict(test=['zope.app.testing',
-                                  'zope.app.zcmlfiles',
-                                  'zope.testing',
-                                  'zope.testbrowser',
-                                  'z3ext.autoinclude',
-                                  'z3ext.security',
-                                  ]),
-      include_package_data = True,
-      zip_safe = False
-      )

Copied: z3ext.skintool/tags/1.2.0/setup.py (from rev 102655, z3ext.skintool/trunk/setup.py)
===================================================================
--- z3ext.skintool/tags/1.2.0/setup.py	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/setup.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,81 @@
+##############################################################################
+#
+# Copyright (c) 2009 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Setup for z3ext.skintool package
+
+$Id$
+"""
+import sys, os
+from setuptools import setup, find_packages
+
+def read(*rnames):
+    return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
+
+version = '1.2.0'
+
+
+setup(name='z3ext.skintool',
+      version=version,
+      description="Tool for merging skin layers at runtime",
+      long_description=(
+          'Detailed Documentation\n' +
+          '======================\n'
+          + '\n\n' +
+          read('src', 'z3ext', 'skintool', 'README.txt')
+          + '\n\n' +
+          read('CHANGES.txt')
+          ),
+      classifiers=[
+        'Development Status :: 5 - Production/Stable',
+        'Environment :: Web Environment',
+        'Intended Audience :: Developers',
+        'License :: OSI Approved :: Zope Public License',
+        'Programming Language :: Python',
+        'Natural Language :: English',
+        'Operating System :: OS Independent',
+        'Topic :: Internet :: WWW/HTTP',
+        'Framework :: Zope3'],
+      author='Nikolay Kim',
+      author_email='fafhrd91 at gmail.com',
+      url='http://z3ext.net/',
+      license='ZPL 2.1',
+      packages=find_packages('src'),
+      package_dir = {'':'src'},
+      namespace_packages=['z3ext'],
+      install_requires = ['setuptools',
+                          'zope.schema',
+                          'zope.proxy',
+                          'zope.component',
+                          'zope.interface',
+                          'zope.security',
+                          'zope.configuration',
+                          'zope.lifecycleevent',
+                          'zope.app.intid',
+                          'zope.app.component',
+                          'zope.app.publication',
+                          'zope.i18nmessageid',
+                          'zope.i18n',
+                          'z3ext.controlpanel',
+                          'z3ext.widget.radio',
+                          'z3ext.widget.checkbox',
+                          ],
+      extras_require = dict(test=['zope.app.testing',
+                                  'zope.app.zcmlfiles',
+                                  'zope.testing',
+                                  'zope.testbrowser',
+                                  'z3ext.autoinclude',
+                                  'z3ext.security',
+                                  ]),
+      include_package_data = True,
+      zip_safe = False
+      )

Deleted: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/generations/__init__.py
===================================================================
--- z3ext.skintool/trunk/src/z3ext/skintool/generations/__init__.py	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/generations/__init__.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,23 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2008 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""
-
-$Id: __init__.py 3799 2008-11-14 07:46:44Z fafhrd91 $
-"""
-from zope.app.generations.generations import SchemaManager
-
-schemaManager = SchemaManager(
-    minimum_generation=0,
-    generation=0,
-    package_name='z3ext.skintool.generations')

Copied: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/generations/__init__.py (from rev 102655, z3ext.skintool/trunk/src/z3ext/skintool/generations/__init__.py)
===================================================================
--- z3ext.skintool/tags/1.2.0/src/z3ext/skintool/generations/__init__.py	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/generations/__init__.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,23 @@
+##############################################################################
+#
+# Copyright (c) 2009 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+
+$Id: __init__.py 3799 2008-11-14 07:46:44Z fafhrd91 $
+"""
+from zope.app.generations.generations import SchemaManager
+
+schemaManager = SchemaManager(
+    minimum_generation=0,
+    generation=0,
+    package_name='z3ext.skintool.generations')

Deleted: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/generations/install.py
===================================================================
--- z3ext.skintool/trunk/src/z3ext/skintool/generations/install.py	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/generations/install.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,57 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2008 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""
-
-$Id: install.py 3814 2008-11-14 10:40:03Z fafhrd91 $
-"""
-from zope import component
-from zope.app.component.interfaces import ISite
-from zope.app.component.hooks import getSite, setSite
-from zope.app.publication.zopepublication import ZopePublication
-
-from z3ext.skintool import tool
-from z3ext.skintool.interfaces import ISkinTool
-
-
-def evolve(context):
-    root = context.connection.root()[ZopePublication.root_name]
-
-    def findObjectsProviding(root):
-        if ISite.providedBy(root):
-            yield root
-
-        values = getattr(root, 'values', None)
-        if callable(values):
-            for subobj in values():
-                for match in findObjectsProviding(subobj):
-                    yield match
-
-    for site in findObjectsProviding(root):
-        setSite(site)
-
-        skintool = component.getUtility(ISkinTool)
-        layers = skintool.data.get('user_layers')
-
-        if layers:
-            skin = None
-            ulayers = []
-            for layer in layers:
-                if layer in tool.skins_byname and skin is None:
-                    skin = layer
-
-                if layer in tool.layers_byname:
-                    ulayers.append(layer)
-
-            skintool.skin = skin
-            skintool.layers = ulayers

Deleted: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/interfaces.py
===================================================================
--- z3ext.skintool/trunk/src/z3ext/skintool/interfaces.py	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/interfaces.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,63 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2007 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-""" z3ext.skintool interfaces
-
-$Id$
-"""
-from zope import schema, interface
-from zope.i18nmessageid import MessageFactory
-from z3ext.widget.radio.field import RadioChoice
-from z3ext.widget.checkbox.field import CheckboxList
-
-_ = MessageFactory('z3ext.skintool')
-
-
-class ISkinable(interface.Interface):
-    """ marker interface for skinable objects """
-
-
-class INoSkinSwitching(interface.Interface):
-    """ if default skin provide this interface, do not switch skin """
-
-
-class IDefaultLayer(interface.interfaces.IInterface):
-    """ default layer (automaticlly added to skin) """
-
-
-class IDefaultLayers(interface.Interface):
-    """ adapter that provide default layers """
-
-    layers = interface.Attribute('tuple of ILayer interfaces')
-
-
-class ISkinTool(interface.Interface):
-    """ skin tool, allow generate skin on the fly """
-
-    skin = RadioChoice(
-        title = _('Skin'),
-        description = _(u'Select portal skin.'),
-        vocabulary = "z3ext skins",
-        required = False)
-
-    layers = CheckboxList(
-        title = _(u'Layers'),
-        description = _(u'Select skin layers.'),
-        vocabulary = "z3ext layers",
-        default = [],
-        required = False)
-
-    skinData = interface.Attribute('Skin data')
-
-    def generate():
-        """ generate skin interface """

Copied: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/interfaces.py (from rev 102655, z3ext.skintool/trunk/src/z3ext/skintool/interfaces.py)
===================================================================
--- z3ext.skintool/tags/1.2.0/src/z3ext/skintool/interfaces.py	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/interfaces.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,63 @@
+##############################################################################
+#
+# Copyright (c) 2009 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+""" z3ext.skintool interfaces
+
+$Id$
+"""
+from zope import schema, interface
+from zope.i18nmessageid import MessageFactory
+from z3ext.widget.radio.field import RadioChoice
+from z3ext.widget.checkbox.field import CheckboxList
+
+_ = MessageFactory('z3ext.skintool')
+
+
+class ISkinable(interface.Interface):
+    """ marker interface for skinable objects """
+
+
+class INoSkinSwitching(interface.Interface):
+    """ if default skin provide this interface, do not switch skin """
+
+
+class IDefaultLayer(interface.interfaces.IInterface):
+    """ default layer (automaticlly added to skin) """
+
+
+class IDefaultLayers(interface.Interface):
+    """ adapter that provide default layers """
+
+    layers = interface.Attribute('tuple of ILayer interfaces')
+
+
+class ISkinTool(interface.Interface):
+    """ skin tool, allow generate skin on the fly """
+
+    skin = RadioChoice(
+        title = _('Skin'),
+        description = _(u'Select portal skin.'),
+        vocabulary = "z3ext skins",
+        required = False)
+
+    layers = CheckboxList(
+        title = _(u'Layers'),
+        description = _(u'Select skin layers.'),
+        vocabulary = "z3ext layers",
+        default = [],
+        required = False)
+
+    skinData = interface.Attribute('Skin data')
+
+    def generate():
+        """ generate skin interface """

Deleted: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/nl/LC_MESSAGES/z3ext.skintool.po
===================================================================
--- z3ext.skintool/trunk/src/z3ext/skintool/locales/nl/LC_MESSAGES/z3ext.skintool.po	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/nl/LC_MESSAGES/z3ext.skintool.po	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,76 +0,0 @@
-# #############################################################################
-#
-# Copyright (c) 2003-2004 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-# #############################################################################
-msgid ""
-msgstr ""
-"Project-Id-Version: Development/Unknown\n"
-"POT-Creation-Date: Fri Nov 21 12:01:17 2008\n"
-"PO-Revision-Date: 2008-11-20 22:23+0100\n"
-"Last-Translator: F. Kooman <fkooman at tuxed.net>\n"
-"Language-Team: Zope 3 Developers <zope3-dev at zope.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: zope/app/locales/extract.py\n"
-
-#: src/z3ext/skintool/configlet.pt:11
-msgid "Please select portal skin."
-msgstr "Kies een weergave."
-
-#: src/z3ext/skintool/configlet.pt:28
-msgid "Please select layers."
-msgstr "Kies lagen."
-
-#: src/z3ext/skintool/configlet.pt:45
-msgid "Save"
-msgstr "Opslaan"
-
-#: src/z3ext/skintool/configlet.pt:50
-msgid "There are no any configurable skins or layers."
-msgstr ""
-
-#: src/z3ext/skintool/configlet.py:42
-msgid "No skin"
-msgstr "Geen weergave"
-
-#: src/z3ext/skintool/configlet.py:44
-msgid "Do not use any skin."
-msgstr ""
-
-#: src/z3ext/skintool/configlet.py:71
-msgid "Changes has been saved."
-msgstr "Wijzigingen zijn opgeslagen."
-
-#: src/z3ext/skintool/configure.zcml:23
-msgid "Portal skin"
-msgstr "Websiteweergave"
-
-#: src/z3ext/skintool/configure.zcml:23
-msgid "Portal skin configuration."
-msgstr "Websiteweergave configuratie."
-
-#: src/z3ext/skintool/interfaces.py:46 src/z3ext/skintool/configlet.pt:10
-msgid "Skin"
-msgstr "Weergave"
-
-#: src/z3ext/skintool/interfaces.py:47
-msgid "Select portal skin."
-msgstr "Selecteer een website weergave."
-
-#: src/z3ext/skintool/interfaces.py:52 src/z3ext/skintool/configlet.pt:27
-msgid "Layers"
-msgstr "Lagen"
-
-#: src/z3ext/skintool/interfaces.py:53
-msgid "Select skin layers."
-msgstr "Selecteer weergavelagen."

Copied: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/nl/LC_MESSAGES/z3ext.skintool.po (from rev 102655, z3ext.skintool/trunk/src/z3ext/skintool/locales/nl/LC_MESSAGES/z3ext.skintool.po)
===================================================================
--- z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/nl/LC_MESSAGES/z3ext.skintool.po	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/nl/LC_MESSAGES/z3ext.skintool.po	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,76 @@
+# #############################################################################
+#
+# Copyright (c) 2003-2004 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+# #############################################################################
+msgid ""
+msgstr ""
+"Project-Id-Version: Development/Unknown\n"
+"POT-Creation-Date: Fri Nov 21 12:01:17 2008\n"
+"PO-Revision-Date: 2008-11-20 22:23+0100\n"
+"Last-Translator: F. Kooman <fkooman at tuxed.net>\n"
+"Language-Team: Zope 3 Developers <zope3-dev at zope.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: zope/app/locales/extract.py\n"
+
+#: src/z3ext/skintool/configlet.pt:11
+msgid "Please select portal skin."
+msgstr "Kies een weergave."
+
+#: src/z3ext/skintool/configlet.pt:28
+msgid "Please select layers."
+msgstr "Kies lagen."
+
+#: src/z3ext/skintool/configlet.pt:45
+msgid "Save"
+msgstr "Opslaan"
+
+#: src/z3ext/skintool/configlet.pt:50
+msgid "There are no any configurable skins or layers."
+msgstr ""
+
+#: src/z3ext/skintool/configlet.py:42
+msgid "No skin"
+msgstr "Geen weergave"
+
+#: src/z3ext/skintool/configlet.py:44
+msgid "Do not use any skin."
+msgstr ""
+
+#: src/z3ext/skintool/configlet.py:71
+msgid "Changes has been saved."
+msgstr "Wijzigingen zijn opgeslagen."
+
+#: src/z3ext/skintool/configure.zcml:23
+msgid "Portal skin"
+msgstr "Websiteweergave"
+
+#: src/z3ext/skintool/configure.zcml:23
+msgid "Portal skin configuration."
+msgstr "Websiteweergave configuratie."
+
+#: src/z3ext/skintool/interfaces.py:46 src/z3ext/skintool/configlet.pt:10
+msgid "Skin"
+msgstr "Weergave"
+
+#: src/z3ext/skintool/interfaces.py:47
+msgid "Select portal skin."
+msgstr "Selecteer een website weergave."
+
+#: src/z3ext/skintool/interfaces.py:52 src/z3ext/skintool/configlet.pt:27
+msgid "Layers"
+msgstr "Lagen"
+
+#: src/z3ext/skintool/interfaces.py:53
+msgid "Select skin layers."
+msgstr "Selecteer weergavelagen."

Deleted: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/ru/LC_MESSAGES/z3ext.skintool.po
===================================================================
--- z3ext.skintool/trunk/src/z3ext/skintool/locales/ru/LC_MESSAGES/z3ext.skintool.po	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/ru/LC_MESSAGES/z3ext.skintool.po	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,76 +0,0 @@
-# #############################################################################
-#
-# Copyright (c) 2003-2004 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-# #############################################################################
-msgid ""
-msgstr ""
-"Project-Id-Version: Development/Unknown\n"
-"POT-Creation-Date: Fri Nov 21 12:01:17 2008\n"
-"PO-Revision-Date: 2008-11-21 12:20+0600\n"
-"Last-Translator: Nikolay Kim <fafhrd91 at gmail.com>\n"
-"Language-Team: Zope 3 Developers <zope3-dev at zope.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: zope/app/locales/extract.py\n"
-
-#: src/z3ext/skintool/configlet.pt:11
-msgid "Please select portal skin."
-msgstr "Пожалуйста выбирите скин для портала."
-
-#: src/z3ext/skintool/configlet.pt:28
-msgid "Please select layers."
-msgstr "Выбирите слои."
-
-#: src/z3ext/skintool/configlet.pt:45
-msgid "Save"
-msgstr "Сохранить"
-
-#: src/z3ext/skintool/configlet.pt:50
-msgid "There are no any configurable skins or layers."
-msgstr ""
-
-#: src/z3ext/skintool/configlet.py:42
-msgid "No skin"
-msgstr "Без скина"
-
-#: src/z3ext/skintool/configlet.py:44
-msgid "Do not use any skin."
-msgstr "Не использовать скин для сайта."
-
-#: src/z3ext/skintool/configlet.py:71
-msgid "Changes has been saved."
-msgstr "Изменения сохранены."
-
-#: src/z3ext/skintool/configure.zcml:23
-msgid "Portal skin"
-msgstr "Оформление портала"
-
-#: src/z3ext/skintool/configure.zcml:23
-msgid "Portal skin configuration."
-msgstr "Конфигурация оформления портала."
-
-#: src/z3ext/skintool/interfaces.py:46 src/z3ext/skintool/configlet.pt:10
-msgid "Skin"
-msgstr "Оформление"
-
-#: src/z3ext/skintool/interfaces.py:47
-msgid "Select portal skin."
-msgstr "Выбирите оформление портала"
-
-#: src/z3ext/skintool/interfaces.py:52 src/z3ext/skintool/configlet.pt:27
-msgid "Layers"
-msgstr "Слои"
-
-#: src/z3ext/skintool/interfaces.py:53
-msgid "Select skin layers."
-msgstr "Выбирите слои."

Copied: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/ru/LC_MESSAGES/z3ext.skintool.po (from rev 102655, z3ext.skintool/trunk/src/z3ext/skintool/locales/ru/LC_MESSAGES/z3ext.skintool.po)
===================================================================
--- z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/ru/LC_MESSAGES/z3ext.skintool.po	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/ru/LC_MESSAGES/z3ext.skintool.po	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,76 @@
+# #############################################################################
+#
+# Copyright (c) 2003-2004 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+# #############################################################################
+msgid ""
+msgstr ""
+"Project-Id-Version: Development/Unknown\n"
+"POT-Creation-Date: Fri Nov 21 12:01:17 2008\n"
+"PO-Revision-Date: 2008-11-21 12:20+0600\n"
+"Last-Translator: Nikolay Kim <fafhrd91 at gmail.com>\n"
+"Language-Team: Zope 3 Developers <zope3-dev at zope.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: zope/app/locales/extract.py\n"
+
+#: src/z3ext/skintool/configlet.pt:11
+msgid "Please select portal skin."
+msgstr "Пожалуйста выбирите скин для портала."
+
+#: src/z3ext/skintool/configlet.pt:28
+msgid "Please select layers."
+msgstr "Выбирите слои."
+
+#: src/z3ext/skintool/configlet.pt:45
+msgid "Save"
+msgstr "Сохранить"
+
+#: src/z3ext/skintool/configlet.pt:50
+msgid "There are no any configurable skins or layers."
+msgstr ""
+
+#: src/z3ext/skintool/configlet.py:42
+msgid "No skin"
+msgstr "Без скина"
+
+#: src/z3ext/skintool/configlet.py:44
+msgid "Do not use any skin."
+msgstr "Не использовать скин для сайта."
+
+#: src/z3ext/skintool/configlet.py:71
+msgid "Changes has been saved."
+msgstr "Изменения сохранены."
+
+#: src/z3ext/skintool/configure.zcml:23
+msgid "Portal skin"
+msgstr "Оформление портала"
+
+#: src/z3ext/skintool/configure.zcml:23
+msgid "Portal skin configuration."
+msgstr "Конфигурация оформления портала."
+
+#: src/z3ext/skintool/interfaces.py:46 src/z3ext/skintool/configlet.pt:10
+msgid "Skin"
+msgstr "Оформление"
+
+#: src/z3ext/skintool/interfaces.py:47
+msgid "Select portal skin."
+msgstr "Выбирите оформление портала"
+
+#: src/z3ext/skintool/interfaces.py:52 src/z3ext/skintool/configlet.pt:27
+msgid "Layers"
+msgstr "Слои"
+
+#: src/z3ext/skintool/interfaces.py:53
+msgid "Select skin layers."
+msgstr "Выбирите слои."

Deleted: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/z3ext.skintool.pot
===================================================================
--- z3ext.skintool/trunk/src/z3ext/skintool/locales/z3ext.skintool.pot	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/z3ext.skintool.pot	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,79 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2003-2004 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-msgid ""
-msgstr ""
-"Project-Id-Version: Development/Unknown\n"
-"POT-Creation-Date: Fri Nov 21 12:23:23 2008\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: Zope 3 Developers <zope3-dev at zope.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: zope/app/locales/extract.py\n"
-
-#: src/z3ext/skintool/configlet.pt:11
-msgid "Please select portal skin."
-msgstr ""
-
-#: src/z3ext/skintool/configlet.pt:28
-msgid "Please select layers."
-msgstr ""
-
-#: src/z3ext/skintool/configlet.pt:45
-msgid "Save"
-msgstr ""
-
-#: src/z3ext/skintool/configlet.pt:50
-msgid "There are no any configurable skins or layers."
-msgstr ""
-
-#: src/z3ext/skintool/configlet.py:42
-msgid "No skin"
-msgstr ""
-
-#: src/z3ext/skintool/configlet.py:44
-msgid "Do not use any skin."
-msgstr ""
-
-#: src/z3ext/skintool/configlet.py:71
-msgid "Changes has been saved."
-msgstr ""
-
-#: src/z3ext/skintool/configure.zcml:23
-msgid "Portal skin"
-msgstr ""
-
-#: src/z3ext/skintool/configure.zcml:23
-msgid "Portal skin configuration."
-msgstr ""
-
-#: src/z3ext/skintool/interfaces.py:46
-#: src/z3ext/skintool/configlet.pt:10
-msgid "Skin"
-msgstr ""
-
-#: src/z3ext/skintool/interfaces.py:47
-msgid "Select portal skin."
-msgstr ""
-
-#: src/z3ext/skintool/interfaces.py:52
-#: src/z3ext/skintool/configlet.pt:27
-msgid "Layers"
-msgstr ""
-
-#: src/z3ext/skintool/interfaces.py:53
-msgid "Select skin layers."
-msgstr ""
-

Copied: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/z3ext.skintool.pot (from rev 102655, z3ext.skintool/trunk/src/z3ext/skintool/locales/z3ext.skintool.pot)
===================================================================
--- z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/z3ext.skintool.pot	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/locales/z3ext.skintool.pot	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,79 @@
+##############################################################################
+#
+# Copyright (c) 2003-2004 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+msgid ""
+msgstr ""
+"Project-Id-Version: Development/Unknown\n"
+"POT-Creation-Date: Fri Nov 21 12:23:23 2008\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: Zope 3 Developers <zope3-dev at zope.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: zope/app/locales/extract.py\n"
+
+#: src/z3ext/skintool/configlet.pt:11
+msgid "Please select portal skin."
+msgstr ""
+
+#: src/z3ext/skintool/configlet.pt:28
+msgid "Please select layers."
+msgstr ""
+
+#: src/z3ext/skintool/configlet.pt:45
+msgid "Save"
+msgstr ""
+
+#: src/z3ext/skintool/configlet.pt:50
+msgid "There are no any configurable skins or layers."
+msgstr ""
+
+#: src/z3ext/skintool/configlet.py:42
+msgid "No skin"
+msgstr ""
+
+#: src/z3ext/skintool/configlet.py:44
+msgid "Do not use any skin."
+msgstr ""
+
+#: src/z3ext/skintool/configlet.py:71
+msgid "Changes has been saved."
+msgstr ""
+
+#: src/z3ext/skintool/configure.zcml:23
+msgid "Portal skin"
+msgstr ""
+
+#: src/z3ext/skintool/configure.zcml:23
+msgid "Portal skin configuration."
+msgstr ""
+
+#: src/z3ext/skintool/interfaces.py:46
+#: src/z3ext/skintool/configlet.pt:10
+msgid "Skin"
+msgstr ""
+
+#: src/z3ext/skintool/interfaces.py:47
+msgid "Select portal skin."
+msgstr ""
+
+#: src/z3ext/skintool/interfaces.py:52
+#: src/z3ext/skintool/configlet.pt:27
+msgid "Layers"
+msgstr ""
+
+#: src/z3ext/skintool/interfaces.py:53
+msgid "Select skin layers."
+msgstr ""
+

Deleted: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/skindatatype.py
===================================================================
--- z3ext.skintool/trunk/src/z3ext/skintool/skindatatype.py	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/skindatatype.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,97 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2007 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-""" Skin Data metaclass
-
-$Id$
-"""
-import sys
-from zope.schema import getFields
-from persistent import Persistent
-from zope.app.container.contained import Contained
-
-from interfaces import _
-from z3ext.controlpanel.storage import ConfigletData
-from z3ext.controlpanel.configlettype import DataProperty
-
-from interfaces import _
-
-_marker = object()
-
-
-class SkinData(object):
-
-    __data__ = None
-
-    def __init__(self, data):
-        self.__data__ = data
-
-
-class ConfigProperty(object):
-
-    def __init__(self, field, name=None):
-        if name is None:
-            name = field.__name__
-
-        self.__field = field
-        self.__name = name
-
-    def __get__(self, inst, klass):
-        if inst is None:
-            return self
-
-        value = inst.__data__.get(self.__name, _marker)
-        if value is _marker:
-            return self.__field.default
-
-        return value
-
-    def __set__(self, inst, value):
-        field = self.__field.bind(inst)
-        field.validate(value)
-        if field.readonly and \
-               inst.__data__.get(self.__name, _marker) is not _marker:
-            raise ValueError(self.__name, _(u'Field is readonly'))
-
-        inst.__data__[self.__name] = value
-
-    def __delete__(self, inst):
-        del inst.__data__[self.__name]
-
-
-class SkinDataType(type):
-    """ Metaclass for skin data """
-
-    def __new__(cls, name, schema, class_=None, *args, **kw):
-        cname = 'SkinData<%s>'%name
-        if type(class_) is tuple:
-            bases = class_ + (SkinData,)
-        elif class_ is not None:
-            bases = (class_, SkinData)
-        else:
-            bases = (SkinData,)
-
-        tp = type.__new__(cls, str(cname), bases, {})
-        setattr(sys.modules['z3ext.skintool.skindatatype'], cname, tp)
-
-        return tp
-
-    def __init__(cls, name, schema, class_=None, title='', description=''):
-        for f_id in getFields(schema):
-            if not hasattr(cls, f_id):
-                setattr(cls, f_id, ConfigProperty(schema[f_id]))
-
-        cls.__id__ = unicode(name)
-        cls.__title__ = title
-        cls.__description__ = description
-        cls.__schema__ = DataProperty(schema)

Copied: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/skindatatype.py (from rev 102655, z3ext.skintool/trunk/src/z3ext/skintool/skindatatype.py)
===================================================================
--- z3ext.skintool/tags/1.2.0/src/z3ext/skintool/skindatatype.py	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/skindatatype.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,97 @@
+##############################################################################
+#
+# Copyright (c) 2009 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+""" Skin Data metaclass
+
+$Id$
+"""
+import sys
+from zope.schema import getFields
+from persistent import Persistent
+from zope.app.container.contained import Contained
+
+from interfaces import _
+from z3ext.controlpanel.storage import ConfigletData
+from z3ext.controlpanel.configlettype import DataProperty
+
+from interfaces import _
+
+_marker = object()
+
+
+class SkinData(object):
+
+    __data__ = None
+
+    def __init__(self, data):
+        self.__data__ = data
+
+
+class ConfigProperty(object):
+
+    def __init__(self, field, name=None):
+        if name is None:
+            name = field.__name__
+
+        self.__field = field
+        self.__name = name
+
+    def __get__(self, inst, klass):
+        if inst is None:
+            return self
+
+        value = inst.__data__.get(self.__name, _marker)
+        if value is _marker:
+            return self.__field.default
+
+        return value
+
+    def __set__(self, inst, value):
+        field = self.__field.bind(inst)
+        field.validate(value)
+        if field.readonly and \
+               inst.__data__.get(self.__name, _marker) is not _marker:
+            raise ValueError(self.__name, _(u'Field is readonly'))
+
+        inst.__data__[self.__name] = value
+
+    def __delete__(self, inst):
+        del inst.__data__[self.__name]
+
+
+class SkinDataType(type):
+    """ Metaclass for skin data """
+
+    def __new__(cls, name, schema, class_=None, *args, **kw):
+        cname = 'SkinData<%s>'%name
+        if type(class_) is tuple:
+            bases = class_ + (SkinData,)
+        elif class_ is not None:
+            bases = (class_, SkinData)
+        else:
+            bases = (SkinData,)
+
+        tp = type.__new__(cls, str(cname), bases, {})
+        setattr(sys.modules['z3ext.skintool.skindatatype'], cname, tp)
+
+        return tp
+
+    def __init__(cls, name, schema, class_=None, title='', description=''):
+        for f_id in getFields(schema):
+            if not hasattr(cls, f_id):
+                setattr(cls, f_id, ConfigProperty(schema[f_id]))
+
+        cls.__id__ = unicode(name)
+        cls.__title__ = title
+        cls.__description__ = description
+        cls.__schema__ = DataProperty(schema)

Deleted: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/subscribers.py
===================================================================
--- z3ext.skintool/trunk/src/z3ext/skintool/subscribers.py	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/subscribers.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,52 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2007 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""
-
-$Id$
-"""
-from zope import component
-from zope.proxy import removeAllProxies
-from zope.component import getUtility
-from zope.interface import directlyProvides
-from zope.app.intid.interfaces import IIntIds
-from zope.app.component.interfaces import ISite
-from zope.app.publication.interfaces import IBeforeTraverseEvent
-
-from tool import cache
-from interfaces import ISkinTool, ISkinable, INoSkinSwitching
-
-
- at component.adapter(ISite, IBeforeTraverseEvent)
-def threadServiceSubscriber(site, event,
-                            ISkinable = ISkinable,
-                            removeAllProxies=removeAllProxies,
-                            directlyProvides=directlyProvides):
-
-    if INoSkinSwitching.providedBy(event.request):
-        return
-
-    site = removeAllProxies(site)
-
-    if not ISkinable.providedBy(site):
-        return
-
-    id = getUtility(IIntIds).queryId(site)
-    if id not in cache:
-        skin = getUtility(ISkinTool).generate()
-        cache[id] = skin
-    else:
-        skin = cache[id]
-
-    if skin:
-        directlyProvides(event.request, *skin)

Copied: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/subscribers.py (from rev 102655, z3ext.skintool/trunk/src/z3ext/skintool/subscribers.py)
===================================================================
--- z3ext.skintool/tags/1.2.0/src/z3ext/skintool/subscribers.py	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/subscribers.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,52 @@
+##############################################################################
+#
+# Copyright (c) 2009 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+
+$Id$
+"""
+from zope import component
+from zope.proxy import removeAllProxies
+from zope.component import getUtility
+from zope.interface import directlyProvides
+from zope.app.intid.interfaces import IIntIds
+from zope.app.component.interfaces import ISite
+from zope.app.publication.interfaces import IBeforeTraverseEvent
+
+from tool import cache
+from interfaces import ISkinTool, ISkinable, INoSkinSwitching
+
+
+ at component.adapter(ISite, IBeforeTraverseEvent)
+def threadServiceSubscriber(site, event,
+                            ISkinable = ISkinable,
+                            removeAllProxies=removeAllProxies,
+                            directlyProvides=directlyProvides):
+
+    if INoSkinSwitching.providedBy(event.request):
+        return
+
+    site = removeAllProxies(site)
+
+    if not ISkinable.providedBy(site):
+        return
+
+    id = getUtility(IIntIds).queryId(site)
+    if id not in cache:
+        skin = getUtility(ISkinTool).generate()
+        cache[id] = skin
+    else:
+        skin = cache[id]
+
+    if skin:
+        directlyProvides(event.request, *skin)

Deleted: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tests/interfaces.py
===================================================================
--- z3ext.skintool/trunk/src/z3ext/skintool/tests/interfaces.py	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tests/interfaces.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,64 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2008 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""
-
-$Id:  2007-12-12 12:27:02Z fafhrd $
-"""
-from zope import interface, schema
-
-
-class ITestSkinSchema(interface.Interface):
-
-    param1 = schema.TextLine(
-        title = u'Param 1',
-        default = u'1',
-        required = False)
-
-
-class ICategory(interface.Interface):
-
-    category = schema.TextLine(
-        title = u'Category',
-        required = False)
-
-
-class IPrefs1(interface.Interface):
-
-    name = schema.TextLine(
-        title = u'Name',
-        required = True)
-
-
-class IPrefs2(interface.Interface):
-
-    location = schema.TextLine(
-        title = u'Location',
-        default = u'',
-        required = False)
-
-
-class IPrefs3(interface.Interface):
-
-    location = schema.TextLine(
-        title = u'Location',
-        default = u'',
-        required = False)
-
-
-class IPrefs4(interface.Interface):
-
-    prefs4 = schema.TextLine(
-        title = u'Prefs4',
-        default = u'',
-        required = False)

Copied: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tests/interfaces.py (from rev 102655, z3ext.skintool/trunk/src/z3ext/skintool/tests/interfaces.py)
===================================================================
--- z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tests/interfaces.py	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tests/interfaces.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,64 @@
+##############################################################################
+#
+# Copyright (c) 2009 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+
+$Id:  2007-12-12 12:27:02Z fafhrd $
+"""
+from zope import interface, schema
+
+
+class ITestSkinSchema(interface.Interface):
+
+    param1 = schema.TextLine(
+        title = u'Param 1',
+        default = u'1',
+        required = False)
+
+
+class ICategory(interface.Interface):
+
+    category = schema.TextLine(
+        title = u'Category',
+        required = False)
+
+
+class IPrefs1(interface.Interface):
+
+    name = schema.TextLine(
+        title = u'Name',
+        required = True)
+
+
+class IPrefs2(interface.Interface):
+
+    location = schema.TextLine(
+        title = u'Location',
+        default = u'',
+        required = False)
+
+
+class IPrefs3(interface.Interface):
+
+    location = schema.TextLine(
+        title = u'Location',
+        default = u'',
+        required = False)
+
+
+class IPrefs4(interface.Interface):
+
+    prefs4 = schema.TextLine(
+        title = u'Prefs4',
+        default = u'',
+        required = False)

Deleted: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tests/tests.py
===================================================================
--- z3ext.skintool/trunk/src/z3ext/skintool/tests/tests.py	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tests/tests.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,104 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2004 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Tests for the Preferences System
-
-$Id: tests.py 101560M 2009-07-05 07:54:33Z (local) $
-"""
-import os.path, unittest, doctest
-
-from zope import component
-from zope.component import testing
-from zope.testing import doctestunit
-from zope.app.testing import setup, functional
-from zope.app.intid.interfaces import IIntIds
-from zope.app.intid import IntIds
-from zope.app.rotterdam import Rotterdam
-
-from z3ext.controlpanel.testing import setUpControlPanel
-from z3ext.layoutform.interfaces import ILayoutFormLayer
-from z3ext.skintool.tool import SkinTool
-
-
-class IDefaultSkin(ILayoutFormLayer, Rotterdam):
-    """ skin """
-
-
-class ITestSkin(IDefaultSkin):
-    """ test Skin """
-
-
-z3extSkinTool = functional.ZCMLLayer(
-    os.path.join(os.path.split(__file__)[0], 'ftesting.zcml'),
-    __name__, 'z3extSkinTool', allow_teardown=True)
-
-
-def FunctionalDocFileSuite(*paths, **kw):
-    globs = kw.setdefault('globs', {})
-    globs['sync'] = functional.sync
-    globs['http'] = functional.HTTPCaller()
-    globs['getRootFolder'] = functional.getRootFolder
-
-    kw['package'] = doctest._normalize_module(kw.get('package'))
-
-    kwsetUp = kw.get('setUp')
-    def setUp(test):
-        functional.FunctionalTestSetup().setUp()
-
-        root = functional.getRootFolder()
-        root['intid'] = IntIds()
-        component.provideUtility(root['intid'], IIntIds)
-
-    kw['setUp'] = setUp
-
-    kwtearDown = kw.get('tearDown')
-    def tearDown(test):
-        functional.FunctionalTestSetup().tearDown()
-
-    kw['tearDown'] = tearDown
-
-    if 'optionflags' not in kw:
-        old = doctest.set_unittest_reportflags(0)
-        doctest.set_unittest_reportflags(old)
-        kw['optionflags'] = (old
-                             | doctest.ELLIPSIS
-                             | doctest.NORMALIZE_WHITESPACE)
-
-    suite = doctest.DocFileSuite(*paths, **kw)
-    suite.layer = z3extSkinTool
-    return suite
-
-def setUp(test):
-    site = setup.placefulSetUp(site=True)
-    setup.setUpTestAsModule(test, 'z3ext.skintool.README')
-    site['intid'] = IntIds()
-    component.provideUtility(site['intid'], IIntIds)
-    setUpControlPanel()
-    # register utility
-
-
-def tearDown(test):
-    setup.placefulTearDown()
-    setup.tearDownTestAsModule(test)
-
-def test_suite():
-    testbrowser = FunctionalDocFileSuite("testbrowser.txt")
-
-    return unittest.TestSuite((
-            testbrowser,
-            doctest.DocFileSuite(
-                '../README.txt',
-                setUp=setUp, tearDown=tearDown,
-                globs={'pprint': doctestunit.pprint},
-                optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS),
-            ))

Copied: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tests/tests.py (from rev 102655, z3ext.skintool/trunk/src/z3ext/skintool/tests/tests.py)
===================================================================
--- z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tests/tests.py	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tests/tests.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,104 @@
+##############################################################################
+#
+# Copyright (c) 2009 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Tests for the Preferences System
+
+$Id: tests.py 101560M 2009-07-05 07:54:33Z (local) $
+"""
+import os.path, unittest, doctest
+
+from zope import component
+from zope.component import testing
+from zope.testing import doctestunit
+from zope.app.testing import setup, functional
+from zope.app.intid.interfaces import IIntIds
+from zope.app.intid import IntIds
+from zope.app.rotterdam import Rotterdam
+
+from z3ext.controlpanel.testing import setUpControlPanel
+from z3ext.layoutform.interfaces import ILayoutFormLayer
+from z3ext.skintool.tool import SkinTool
+
+
+class IDefaultSkin(ILayoutFormLayer, Rotterdam):
+    """ skin """
+
+
+class ITestSkin(IDefaultSkin):
+    """ test Skin """
+
+
+z3extSkinTool = functional.ZCMLLayer(
+    os.path.join(os.path.split(__file__)[0], 'ftesting.zcml'),
+    __name__, 'z3extSkinTool', allow_teardown=True)
+
+
+def FunctionalDocFileSuite(*paths, **kw):
+    globs = kw.setdefault('globs', {})
+    globs['sync'] = functional.sync
+    globs['http'] = functional.HTTPCaller()
+    globs['getRootFolder'] = functional.getRootFolder
+
+    kw['package'] = doctest._normalize_module(kw.get('package'))
+
+    kwsetUp = kw.get('setUp')
+    def setUp(test):
+        functional.FunctionalTestSetup().setUp()
+
+        root = functional.getRootFolder()
+        root['intid'] = IntIds()
+        component.provideUtility(root['intid'], IIntIds)
+
+    kw['setUp'] = setUp
+
+    kwtearDown = kw.get('tearDown')
+    def tearDown(test):
+        functional.FunctionalTestSetup().tearDown()
+
+    kw['tearDown'] = tearDown
+
+    if 'optionflags' not in kw:
+        old = doctest.set_unittest_reportflags(0)
+        doctest.set_unittest_reportflags(old)
+        kw['optionflags'] = (old
+                             | doctest.ELLIPSIS
+                             | doctest.NORMALIZE_WHITESPACE)
+
+    suite = doctest.DocFileSuite(*paths, **kw)
+    suite.layer = z3extSkinTool
+    return suite
+
+def setUp(test):
+    site = setup.placefulSetUp(site=True)
+    setup.setUpTestAsModule(test, 'z3ext.skintool.README')
+    site['intid'] = IntIds()
+    component.provideUtility(site['intid'], IIntIds)
+    setUpControlPanel()
+    # register utility
+
+
+def tearDown(test):
+    setup.placefulTearDown()
+    setup.tearDownTestAsModule(test)
+
+def test_suite():
+    testbrowser = FunctionalDocFileSuite("testbrowser.txt")
+
+    return unittest.TestSuite((
+            testbrowser,
+            doctest.DocFileSuite(
+                '../README.txt',
+                setUp=setUp, tearDown=tearDown,
+                globs={'pprint': doctestunit.pprint},
+                optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS),
+            ))

Deleted: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tool.py
===================================================================
--- z3ext.skintool/trunk/src/z3ext/skintool/tool.py	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tool.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,131 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2007 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-""" skintool implementation
-
-$Id$
-"""
-from BTrees import OOBTree
-
-from zope import interface, component
-from zope.component import getSiteManager
-from zope.component import getUtility, getAdapters, getUtilitiesFor
-from zope.security.proxy import removeSecurityProxy
-from zope.lifecycleevent.interfaces import IObjectModifiedEvent
-from zope.publisher.interfaces.browser import \
-     IDefaultSkin, IBrowserRequest, IDefaultBrowserLayer
-from zope.app.component.hooks import getSite
-from zope.app.intid.interfaces import IIntIds
-
-from z3ext.layoutform import Fields, PageletEditSubForm
-from z3ext.controlpanel.browser.configlet import Configlet
-
-from interfaces import IDefaultLayer, IDefaultLayers, ISkinTool
-
-cache = {}
-skins_byname = {}
-skins_registry = {}
-layers_byname = {}
-layers_registry = {}
-
-default_skin = 'z3ext'
-
-
-class SkinTool(object):
-    interface.implements(ISkinTool)
-
-    def generate(self):
-        bases = []
-
-        # first add default layers
-        for name, adapter in getAdapters((getSite(),), IDefaultLayers):
-            for layer in adapter.layers:
-                if layer not in bases:
-                    bases.append(layer)
-
-        for name, layer in getUtilitiesFor(IDefaultLayer):
-            if layer not in bases:
-                bases.append(layer)
-
-        # second add skin
-        if self.skin:
-            skin = skins_byname.get(self.skin)
-            if not skin:
-                skin = skins_byname.get(default_skin)
-
-            if skin:
-                bases.append(skin)
-                info = skins_registry.get(skin)
-                if info:
-                    for layer in info[4]:
-                        if layer not in bases:
-                            bases.append(layer)
-
-        #third add layers
-        for name in self.layers:
-            layer = layers_byname.get(name)
-            if layer and layer not in bases:
-                bases.append(layer)
-
-        # get base skin
-        adapters = getSiteManager().adapters
-        skin = adapters.lookup((IBrowserRequest,), IDefaultSkin, name='')
-        if skin is not None:
-            bases.insert(0, skin)
-        else:
-            bases.insert(0, IDefaultBrowserLayer)
-
-        bases.reverse()
-        return bases
-
-    @property
-    def skinData(self):
-        skin = skins_byname.get(self.skin)
-        if skin:
-            data = self.data.get('skinData')
-            if data is None or not isinstance(data, OOBTree.OOBTree):
-                data = OOBTree.OOBTree()
-                self.data['skinData'] = data
-            return skins_registry[skin][-1](data)
-        return None
-
-
- at component.adapter(ISkinTool, IObjectModifiedEvent)
-def skinToolModified(*args):
-    global cache
-
-    id = getUtility(IIntIds).queryId(getSite())
-    if id in cache:
-        del cache[id]
-
-
-class ConfigletEditForm(Configlet):
-
-    def nextURL(self):
-        return self.request.getURL()
-
-
-class SchemaEditForm(PageletEditSubForm):
-
-    @property
-    def fields(self):
-        data = self.getContent()
-        if data is not None:
-            return Fields(data.__schema__)
-        return Fields(interface.Interface)
-
-    def getContent(self):
-        return removeSecurityProxy(self.context).skinData
-
-    def isAvailable(self):
-        return len(self.fields)

Copied: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tool.py (from rev 102655, z3ext.skintool/trunk/src/z3ext/skintool/tool.py)
===================================================================
--- z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tool.py	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/tool.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,131 @@
+##############################################################################
+#
+# Copyright (c) 2009 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+""" skintool implementation
+
+$Id$
+"""
+from BTrees import OOBTree
+
+from zope import interface, component
+from zope.component import getSiteManager
+from zope.component import getUtility, getAdapters, getUtilitiesFor
+from zope.security.proxy import removeSecurityProxy
+from zope.lifecycleevent.interfaces import IObjectModifiedEvent
+from zope.publisher.interfaces.browser import \
+     IDefaultSkin, IBrowserRequest, IDefaultBrowserLayer
+from zope.app.component.hooks import getSite
+from zope.app.intid.interfaces import IIntIds
+
+from z3ext.layoutform import Fields, PageletEditSubForm
+from z3ext.controlpanel.browser.configlet import Configlet
+
+from interfaces import IDefaultLayer, IDefaultLayers, ISkinTool
+
+cache = {}
+skins_byname = {}
+skins_registry = {}
+layers_byname = {}
+layers_registry = {}
+
+default_skin = 'z3ext'
+
+
+class SkinTool(object):
+    interface.implements(ISkinTool)
+
+    def generate(self):
+        bases = []
+
+        # first add default layers
+        for name, adapter in getAdapters((getSite(),), IDefaultLayers):
+            for layer in adapter.layers:
+                if layer not in bases:
+                    bases.append(layer)
+
+        for name, layer in getUtilitiesFor(IDefaultLayer):
+            if layer not in bases:
+                bases.append(layer)
+
+        # second add skin
+        if self.skin:
+            skin = skins_byname.get(self.skin)
+            if not skin:
+                skin = skins_byname.get(default_skin)
+
+            if skin:
+                bases.append(skin)
+                info = skins_registry.get(skin)
+                if info:
+                    for layer in info[4]:
+                        if layer not in bases:
+                            bases.append(layer)
+
+        #third add layers
+        for name in self.layers:
+            layer = layers_byname.get(name)
+            if layer and layer not in bases:
+                bases.append(layer)
+
+        # get base skin
+        adapters = getSiteManager().adapters
+        skin = adapters.lookup((IBrowserRequest,), IDefaultSkin, name='')
+        if skin is not None:
+            bases.insert(0, skin)
+        else:
+            bases.insert(0, IDefaultBrowserLayer)
+
+        bases.reverse()
+        return bases
+
+    @property
+    def skinData(self):
+        skin = skins_byname.get(self.skin)
+        if skin:
+            data = self.data.get('skinData')
+            if data is None or not isinstance(data, OOBTree.OOBTree):
+                data = OOBTree.OOBTree()
+                self.data['skinData'] = data
+            return skins_registry[skin][-1](data)
+        return None
+
+
+ at component.adapter(ISkinTool, IObjectModifiedEvent)
+def skinToolModified(*args):
+    global cache
+
+    id = getUtility(IIntIds).queryId(getSite())
+    if id in cache:
+        del cache[id]
+
+
+class ConfigletEditForm(Configlet):
+
+    def nextURL(self):
+        return self.request.getURL()
+
+
+class SchemaEditForm(PageletEditSubForm):
+
+    @property
+    def fields(self):
+        data = self.getContent()
+        if data is not None:
+            return Fields(data.__schema__)
+        return Fields(interface.Interface)
+
+    def getContent(self):
+        return removeSecurityProxy(self.context).skinData
+
+    def isAvailable(self):
+        return len(self.fields)

Deleted: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/vocabulary.py
===================================================================
--- z3ext.skintool/trunk/src/z3ext/skintool/vocabulary.py	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/vocabulary.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,59 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2007 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""
-
-$Id$
-"""
-from zope import interface
-from zope.schema.interfaces import IVocabularyFactory
-from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
-
-from z3ext.skintool import tool
-
-
-class Vocabulary(SimpleVocabulary):
-
-    def getTerm(self, value):
-        try:
-            return self.by_value[value]
-        except KeyError:
-            return self.by_value[self.by_value.keys()[0]]
-
-
-class SkinsVocabulary(object):
-    interface.implements(IVocabularyFactory)
-
-    def __call__(self, context):
-        terms = []
-        for layer, info in tool.skins_registry.items():
-            term = SimpleTerm(info[1], info[1], info[2])
-            term.description = info[3]
-            terms.append((info[2], info[1], term))
-
-        terms.sort()
-        return Vocabulary([term for title, name, term in terms])
-
-
-class LayersVocabulary(object):
-    interface.implements(IVocabularyFactory)
-
-    def __call__(self, context):
-        terms = []
-        for layer, info in tool.layers_registry.items():
-            term = SimpleTerm(info[1], info[1], info[2])
-            term.description = info[3]
-            terms.append((info[2], info[1], term))
-
-        terms.sort()
-        return Vocabulary([term for title, name, term in terms])

Copied: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/vocabulary.py (from rev 102655, z3ext.skintool/trunk/src/z3ext/skintool/vocabulary.py)
===================================================================
--- z3ext.skintool/tags/1.2.0/src/z3ext/skintool/vocabulary.py	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/vocabulary.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,59 @@
+##############################################################################
+#
+# Copyright (c) 2009 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+
+$Id$
+"""
+from zope import interface
+from zope.schema.interfaces import IVocabularyFactory
+from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
+
+from z3ext.skintool import tool
+
+
+class Vocabulary(SimpleVocabulary):
+
+    def getTerm(self, value):
+        try:
+            return self.by_value[value]
+        except KeyError:
+            return self.by_value[self.by_value.keys()[0]]
+
+
+class SkinsVocabulary(object):
+    interface.implements(IVocabularyFactory)
+
+    def __call__(self, context):
+        terms = []
+        for layer, info in tool.skins_registry.items():
+            term = SimpleTerm(info[1], info[1], info[2])
+            term.description = info[3]
+            terms.append((info[2], info[1], term))
+
+        terms.sort()
+        return Vocabulary([term for title, name, term in terms])
+
+
+class LayersVocabulary(object):
+    interface.implements(IVocabularyFactory)
+
+    def __call__(self, context):
+        terms = []
+        for layer, info in tool.layers_registry.items():
+            term = SimpleTerm(info[1], info[1], info[2])
+            term.description = info[3]
+            terms.append((info[2], info[1], term))
+
+        terms.sort()
+        return Vocabulary([term for title, name, term in terms])

Deleted: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/zcml.py
===================================================================
--- z3ext.skintool/trunk/src/z3ext/skintool/zcml.py	2009-08-10 15:09:13 UTC (rev 102629)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/zcml.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -1,114 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2007 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-""" z3ext:layer directive
-
-$Id$
-"""
-from zope import schema, interface, component
-from zope.configuration.fields import Tokens, GlobalInterface, PythonIdentifier
-
-from skindatatype import SkinDataType
-
-from z3ext.skintool import tool
-
-
-class ISkinDirective(interface.Interface):
-
-    layer = GlobalInterface(
-                title = u'Skin',
-                description = u'Skin interface.',
-                required = True)
-
-    name = PythonIdentifier(
-                title = u'Name',
-                description = u'Content name.',
-                required = True)
-
-    title = schema.TextLine(
-                title = u'Title',
-                description = u'Content title.',
-                required = True)
-
-    description = schema.TextLine(
-                title = u'Description',
-                description = u'Content description.',
-                required = False)
-
-    require = Tokens(
-                title = u'Require',
-                description = u'Interface of layers that are '\
-                    u'required by this layer.',
-                required = False,
-                value_type = GlobalInterface())
-
-    schema = GlobalInterface(
-                title = u'Schema',
-                description = u'Skin schema interface.',
-                default = interface.Interface)
-
-
-class ILayerDirective(interface.Interface):
-
-    layer = GlobalInterface(
-                title = u'Layer',
-                description = u'Skin layer.',
-                required = True)
-
-    name = PythonIdentifier(
-                title = u'Name',
-                description = u'Content name.',
-                required = True)
-
-    title = schema.TextLine(
-                title = u'Title',
-                description = u'Content title.',
-                required = True)
-
-    description = schema.TextLine(
-                title = u'Description',
-                description = u'Content description.',
-                required = False)
-
-
-def skinDirectiveHandler(_context, layer, name, title, 
-                         description='',require=[],schema=interface.Interface):
-    _context.action(
-        discriminator = ('z3ext.skintool-skin', layer, name),
-        callable = skinDirective,
-        args = (layer, name, title, description, require, schema))
-
-
-def skinDirective(layer, name, title, description, 
-                  require, schema=interface.Interface):
-    sitemanager = component.getGlobalSiteManager()
-
-    tool.skins_byname[name] = layer
-    skinDataClass = SkinDataType('ui.portalskin.skindata', schema)
-    interface.classImplements(skinDataClass, schema)
-    tool.skins_registry[layer] = (layer, name, title, 
-                                  description, require, skinDataClass)
-
-
-def layerDirectiveHandler(_context, layer, name, title, description=''):
-    _context.action(
-        discriminator = ('z3ext.skintool-layer', layer, name),
-        callable = layerDirective,
-        args = (layer, name, title, description))
-
-
-def layerDirective(layer, name, title, description):
-    sitemanager = component.getGlobalSiteManager()
-
-    tool.layers_byname[name] = layer
-    tool.layers_registry[layer] = (layer, name, title, description)

Copied: z3ext.skintool/tags/1.2.0/src/z3ext/skintool/zcml.py (from rev 102655, z3ext.skintool/trunk/src/z3ext/skintool/zcml.py)
===================================================================
--- z3ext.skintool/tags/1.2.0/src/z3ext/skintool/zcml.py	                        (rev 0)
+++ z3ext.skintool/tags/1.2.0/src/z3ext/skintool/zcml.py	2009-08-11 09:09:11 UTC (rev 102656)
@@ -0,0 +1,114 @@
+##############################################################################
+#
+# Copyright (c) 2009 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+""" z3ext:layer directive
+
+$Id$
+"""
+from zope import schema, interface, component
+from zope.configuration.fields import Tokens, GlobalInterface, PythonIdentifier
+
+from skindatatype import SkinDataType
+
+from z3ext.skintool import tool
+
+
+class ISkinDirective(interface.Interface):
+
+    layer = GlobalInterface(
+                title = u'Skin',
+                description = u'Skin interface.',
+                required = True)
+
+    name = PythonIdentifier(
+                title = u'Name',
+                description = u'Content name.',
+                required = True)
+
+    title = schema.TextLine(
+                title = u'Title',
+                description = u'Content title.',
+                required = True)
+
+    description = schema.TextLine(
+                title = u'Description',
+                description = u'Content description.',
+                required = False)
+
+    require = Tokens(
+                title = u'Require',
+                description = u'Interface of layers that are '\
+                    u'required by this layer.',
+                required = False,
+                value_type = GlobalInterface())
+
+    schema = GlobalInterface(
+                title = u'Schema',
+                description = u'Skin schema interface.',
+                default = interface.Interface)
+
+
+class ILayerDirective(interface.Interface):
+
+    layer = GlobalInterface(
+                title = u'Layer',
+                description = u'Skin layer.',
+                required = True)
+
+    name = PythonIdentifier(
+                title = u'Name',
+                description = u'Content name.',
+                required = True)
+
+    title = schema.TextLine(
+                title = u'Title',
+                description = u'Content title.',
+                required = True)
+
+    description = schema.TextLine(
+                title = u'Description',
+                description = u'Content description.',
+                required = False)
+
+
+def skinDirectiveHandler(_context, layer, name, title,
+                         description='',require=[],schema=interface.Interface):
+    _context.action(
+        discriminator = ('z3ext.skintool-skin', layer, name),
+        callable = skinDirective,
+        args = (layer, name, title, description, require, schema))
+
+
+def skinDirective(layer, name, title, description,
+                  require, schema=interface.Interface):
+    sitemanager = component.getGlobalSiteManager()
+
+    tool.skins_byname[name] = layer
+    skinDataClass = SkinDataType('ui.portalskin.skindata', schema)
+    interface.classImplements(skinDataClass, schema)
+    tool.skins_registry[layer] = (layer, name, title,
+                                  description, require, skinDataClass)
+
+
+def layerDirectiveHandler(_context, layer, name, title, description=''):
+    _context.action(
+        discriminator = ('z3ext.skintool-layer', layer, name),
+        callable = layerDirective,
+        args = (layer, name, title, description))
+
+
+def layerDirective(layer, name, title, description):
+    sitemanager = component.getGlobalSiteManager()
+
+    tool.layers_byname[name] = layer
+    tool.layers_registry[layer] = (layer, name, title, description)



More information about the Checkins mailing list