Skip to content

Commit

Permalink
Merge pull request #52 from collective/datakurre-fix-traverser-view
Browse files Browse the repository at this point in the history
Fix issue of ++traverse++taxonomy_short_name being broken
  • Loading branch information
datakurre committed Oct 2, 2017
2 parents a4b5645 + ac5fe34 commit 59dd125
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 8 deletions.
4 changes: 2 additions & 2 deletions .travis.yml
Expand Up @@ -8,8 +8,8 @@ env:
cache:
pip: true
directories:
- eggs
- downloads
- buildout-cache/eggs # see buildout-cache.cfg
- buildout-cache/downloads # see buildout-cache.cfg
install:
- sed -ie "s#test-5.x.cfg#travis-$PLONE_VERSION.x.cfg#" buildout.cfg
- python bootstrap.py --buildout-version=2.9.4 --setuptools-version=33.1.1
Expand Down
4 changes: 4 additions & 0 deletions CHANGES.rst
Expand Up @@ -60,6 +60,10 @@ Changes
the persistent local registry on taxonomy removal
[datakurre]

- Fix issue where public ++taxonomy++short_name -traverser for returning
generator of (key, label) tuples for given taxonomy was broken
[datakurre]


1.4.4 (2016-11-29)
------------------
Expand Down
16 changes: 10 additions & 6 deletions src/collective/taxonomy/browser.py
@@ -1,10 +1,11 @@
from Products.Five.browser import BrowserView
from collective.taxonomy.interfaces import ITaxonomy
from Products.Five.browser import BrowserView
from zope.component import getSiteManager
from zope.i18n import translate
from zope.interface import implementer_only
from zope.publisher.interfaces import NotFound
from zope.traversing.interfaces import ITraversable
from zope.schema.interfaces import IVocabularyFactory
from zope.interface import implementer_only
from zope.traversing.interfaces import ITraversable


class TaxonomyView(BrowserView):
Expand Down Expand Up @@ -39,11 +40,14 @@ def translate(self, msgid, domain='', target_language=None):
class VocabularyTuplesView(BrowserView):

def __init__(self, context, request, vocabulary):
super(VocabularyTuplesView, self).__init__(self.context, self.request)
super(VocabularyTuplesView, self).__init__(context, request)
self.vocabulary = vocabulary

def __call__(self):
return ((term.token, term.title) for term in self.vocabulary)
def __call__(self, target_language=None):
return ((term.token, translate(term.title,
context=self.request,
target_language=target_language))
for term in self.vocabulary)


@implementer_only(ITraversable)
Expand Down
30 changes: 30 additions & 0 deletions src/collective/taxonomy/tests/test_traverser.py
@@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
from collective.taxonomy.testing import INTEGRATION_TESTING
from collective.taxonomy.browser import VocabularyTuplesView
from collective.taxonomy.vocabulary import Vocabulary

import unittest


class TestTaxonomyTraverser(unittest.TestCase):
"""Test taxonomy traverser"""

layer = INTEGRATION_TESTING

def setUp(self):
self.portal = self.layer['portal']

def test_traverser(self):
view = self.portal.restrictedTraverse('++taxonomy++test')

self.assertIsInstance(view, VocabularyTuplesView)
self.assertIsInstance(view.vocabulary, Vocabulary)

keys, labels = zip(*view())

self.assertIn(u'Information Science', labels)

keys, labels = zip(*view(target_language='de'))

self.assertIn(u'Informatik', labels)
self.assertNotIn(u'Information Science', labels)

0 comments on commit 59dd125

Please sign in to comment.