From 5c9548369ad46c6ec828dd69b90f88f276bdfb38 Mon Sep 17 00:00:00 2001 From: John Glover Date: Tue, 19 Mar 2013 15:36:29 +0100 Subject: [PATCH] [#430] Fix for packages not appearing in vocabulary_show --- ckan/lib/dictization/model_dictize.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/ckan/lib/dictization/model_dictize.py b/ckan/lib/dictization/model_dictize.py index ae1ed848f2c..12b9c0cc1b9 100644 --- a/ckan/lib/dictization/model_dictize.py +++ b/ckan/lib/dictization/model_dictize.py @@ -393,15 +393,25 @@ def tag_dictize(tag, context): tag_dict = d.table_dictize(tag, context) query = search.PackageSearchQuery() - q = {'q': '+tags:"%s" +capacity:public' % tag.name, 'fl': 'data_dict', - 'wt': 'json', 'rows': 1000} + tag_query = u'+capacity:public ' + vocab_id = tag_dict.get('vocabulary_id') - package_dicts = [h.json.loads(result['data_dict']) for result in query.run(q)['results']] + if vocab_id: + model = context['model'] + vocab = model.Vocabulary.get(vocab_id) + tag_query += u'+vocab_{0}:"{1}"'.format(vocab.name, tag.name) + else: + tag_query += u'+tags:"{0}"'.format(tag.name) + + q = {'q': tag_query, 'fl': 'data_dict', 'wt': 'json', 'rows': 1000} + + package_dicts = [h.json.loads(result['data_dict']) + for result in query.run(q)['results']] # Add display_names to tags. At first a tag's display_name is just the # same as its name, but the display_name might get changed later (e.g. # translated into another language by the multilingual extension). - assert not tag_dict.has_key('display_name') + assert 'display_name' not in tag_dict tag_dict['display_name'] = tag_dict['name'] if context.get('for_view'):