This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!
Project Description
Archetypes Language Field Bug Fix
=================================

Introduction
------------

archetypes.languagebugfix package aims to fix an `issue
<https://dev.plone.org/plone/ticket/8907>`_ with the default vocabulary for
ExtensibleMetadata language field in Archetypes.

This issue affects only contents created in languages which code are in
the form lc-cc(lc, language code; cc, contry code) and its effects appear when
you have a Lingua Plone installation and a combined language code is used as
default language for the site -- translations losing their reference to canonical
versions of the content.

Keep in mind this package is to be used until an Archetypes version with the
proper fix is released, so, probably there won't be another release.

Testing the issue
-----------------

Let's setup our basic test variables::

>>> from Products.CMFPlone.utils import getToolByName
>>> self.loginAsPortalOwner()
>>> portal = self.portal
>>> lt = getToolByName(portal,'portal_languages')
>>> pp = getToolByName(portal,'portal_properties')

This issue is related to the vocabulary used for the language field on the
default Archetypes types. The vocabulary field does not display combined
language codes, even when this option is set on portal_languages.

The default ExtensibleMetadata language field uses the method 'languages' as
vocabulary, so we will create a new content and check the returned values.

>>> id = portal.invokeFactory(type_name='Document',id='foo', title='Foo')
>>> foo = portal.foo
>>> languageField = foo.getField('language')
>>> defaultVocabulary = 'languages'
>>> languages = getattr(foo,defaultVocabulary)()

Then we enable combined language codes on our portal. Also we set pt-br as
default language and disable "Start as Neutral"::

>>> defaultLanguage = 'pt-br'
>>> supportedLanguages = ['pt-br', 'en','de','no']
>>> lt.manage_setLanguageSettings(defaultLanguage,
... supportedLanguages,
... setUseCombinedLanguageCodes=True,
... startNeutral=False)

After setting portal_languages to allow combined language codes we should get
a large number of languages from the vocabulary, but it doesn't happen as we
have the same results::

>>> foo = portal.foo
>>> languageField = foo.getField('language')
>>> languagesCombined = getattr(foo,defaultVocabulary)()
>>> languages == languagesCombined
True

So, we now use our vocabulary method and see we will have the complete language
list::

>>> foo = portal.foo
>>> languageField = foo.getField('language')
>>> newVocabulary = 'languagesVoc'
>>> languagesCombined = getattr(foo,newVocabulary)()
>>> languages == languagesCombined
False
>>> 'pt-br' in languagesCombined
True

And if we go back to use only simple language codes ::

>>> defaultLanguage = 'en'
>>> supportedLanguages = ['en','de','no']
>>> lt.manage_setLanguageSettings(defaultLanguage,
... supportedLanguages,
... setUseCombinedLanguageCodes=False,
... startNeutral=False)

It must work as planned::

>>> foo = portal.foo
>>> languageField = foo.getField('language')
>>> newVocabulary = 'languagesVoc'
>>> languagesCombined = getattr(foo,newVocabulary)()
>>> 'pt-br' in languagesCombined
False

Installing the fix
------------------

If your using a buildout-based installation all you need to do is declare
archetypes.languagebugfix in eggs and zcml sections for you instance.

Credits
-------

Development and tests:

* `Simples Consultoria <http://www.simplesconsultoria.com.br/>`_
(products at simplesconsultoria dot com dot br)

Efforts to research and fix this issue were sponsored by:

* `TV1 <http://www.tv1.com.br/>`_

Changelog
=========

1.0.2 (2010-03-13)
------------------

* Explicitly include folder docs [erico_andrei]


1.0.1 (2009-12-17)
------------------

* In some cases our patch is applied after other content types alredy copied the
original schema from ExtensibleMetadata, so we patched method itself [erico_andrei]


1.0 - (2009-12-17)
------------------

* fix `issue 8907 <https://dev.plone.org/plone/ticket/8907>`_ by passing argument
to getLanguageListing [erico_andrei]
Release History

Release History

1.0.2

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
archetypes.languagebugfix-1.0.2-py2.4.egg (10.6 kB) Copy SHA256 Checksum SHA256 2.4 Egg Mar 14, 2010
archetypes.languagebugfix-1.0.2.tar.gz (10.9 kB) Copy SHA256 Checksum SHA256 Source Mar 14, 2010

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting