コード例 #1
0
def resource_show(context, data_dict):
    """ Override to translate title and description of the resource. """
    data = _resource_show(context, data_dict)

    data['name'] = h.translate_field(data, 'name')
    data['description'] = h.translate_field(data, 'description')

    return data
コード例 #2
0
def package_search(context, data_dict):
    """ Override to translate title and description of the dataset. """
    data = _package_search(context, data_dict)

    for result in data.get('results'):
        result['title'] = h.translate_field(result, 'title')
        result['notes'] = h.translate_field(result, 'notes')

    return data
コード例 #3
0
def group_show(context, data_dict):
    """ Override to translate title and description of the group. """
    data = _group_show(context, data_dict)

    data['display_name'] = h.translate_field(data, 'title')
    data['title'] = h.translate_field(data, 'title')
    data['description'] = h.translate_field(data, 'description')

    return data
コード例 #4
0
    def test_translate_field_mk(self):
        data_dict = {
            'title_translated': {
                'mk': 'тест',
                'en': 'test',
            }
        }

        set_lang('mk')
        result = helpers.translate_field(data_dict, 'title')

        assert result == 'тест'
コード例 #5
0
def get_related_datasets(context, data_dict):

    '''This is an action function which returns related datasets for a single dataset, based
    on groups and tags which are parts of the dataset itself.

    :param id: id od the single dataset for which we would like to return
        the related datasets
    :type id: string

    :param limit: Limit of the datasets to be returned, default is 3
    :type limit: integer

    :returns: a list of datasets which are related with the one we have chosen
    :rtype: list

    '''

    id = data_dict.get('id')
    limit = int(data_dict.get('limit', 3))
    related_datasets = []
    related_datasets_ids = []

    if id is None:
        raise ValidationError(_('Missing dataset id'))

    dataset = get_action('package_show')(data_dict={'id': id})

    groups = dataset.get('groups')
    tags = dataset.get('tags')

    for group in groups:
        data_dict = {
            'id': group.get('id'),
            'include_datasets': True
        }
        group_dict = get_action('group_show')(data_dict=data_dict)

        group_datasets = group_dict.get('packages')

        for group_dataset in group_datasets:
            group_dataset_id = group_dataset.get('id')
            if group_dataset_id != dataset.get('id') and \
               group_dataset_id not in related_datasets_ids and \
               group_dataset['type'] == 'dataset':
                related_datasets.append(group_dataset)
                related_datasets_ids.append(group_dataset_id)

    for tag in tags:
        data_dict = {
            'id': tag.get('id'),
            'include_datasets': True
        }

        tag_dict = get_action('tag_show')(data_dict=data_dict)

        tag_datasets = tag_dict.get('packages')

        for tag_dataset in tag_datasets:
            tag_dataset_id = tag_dataset.get('id')
            if tag_dataset_id != dataset.get('id') and \
               tag_dataset_id not in related_datasets_ids and \
               tag_dataset['type'] == 'dataset':
                related_datasets.append(get_action('package_show')({'ignore_auth': True}, data_dict={'id': tag_dataset_id}))
                related_datasets_ids.append(tag_dataset_id)

    related_datasets = related_datasets[:limit]

    for dataset in related_datasets:
        dataset['title'] = h.translate_field(dataset, 'title')
        dataset['notes'] = h.translate_field(dataset, 'notes')

    return related_datasets