Ejemplo n.º 1
0
    def after_update(self, context, pkg_dict):
        #if not custom.custom_field_table.exists():
        #    custom.init_db()

        # During the harvest the get_lang() is not defined
        if get_lang():
            lang = get_lang()[0]

            for extra in pkg_dict.get('extras'):
                for field in self.custom_fields:
                    if extra.get('key') == field[0]:
                        log.info(':::::::::::::::Localizing custom field: %r',
                                 field[0])
                        f = custom.get_field(extra.get('key'),
                                             pkg_dict.get('id'), lang)
                        if f:
                            if extra.get('value') == '':
                                f.purge()
                            elif f.text != extra.get('value'):
                                # Update the localized field value for the current language
                                f.text = extra.get('value')
                                f.save()

                                log.info('Custom field updated successfully')

                        elif extra.get('value') != '':
                            # Create the localized field record
                            self.createLocField(extra, lang,
                                                pkg_dict.get('id'))
Ejemplo n.º 2
0
    def after_update(self, context, pkg_dict):
        #if not custom.custom_field_table.exists():
        #    custom.init_db()

        # During the harvest the get_lang() is not defined
        if get_lang():
            lang = get_lang()[0]
            
            for extra in pkg_dict.get('extras'):
                for field in self.custom_fields:
                    if extra.get('key') == field[0]:
                        log.info(':::::::::::::::Localizing custom field: %r', field[0])
                        f = custom.get_field(extra.get('key'), pkg_dict.get('id'), lang)
                        if f:
                            if extra.get('value') == '':
                                f.purge()
                            elif f.text != extra.get('value'):
                                # Update the localized field value for the current language
                                f.text = extra.get('value')
                                f.save()

                                log.info('Custom field updated successfully')

                        elif extra.get('value') != '':
                            # Create the localized field record
                            self.createLocField(extra, lang, pkg_dict.get('id'))
Ejemplo n.º 3
0
 def url(self):
     if self._url:
         try:
             lang = get_lang()[0]
         except TypeError:
             return self._url
         else:
             map = config['routes.map'].match(self._url)
             map['_lang'] = get_lang()[0]
             return url_for(**map)
     else:
         return None
Ejemplo n.º 4
0
    def after_create(self, context, pkg_dict):
        #if not custom.custom_field_table.exists():
        #    custom.init_db()

        # During the harvest the get_lang() is not defined
        if get_lang():
            lang = get_lang()[0]
            
            for extra in pkg_dict.get('extras'):
                for field in self.custom_fields:
                    if extra.get('key') == field[0]:
                        log.info(':::::::::::::::Localizing custom field: %r', field[0])
                        
                        # Create the localized field record
                        self.createLocField(extra, lang, pkg_dict.get('id'))
Ejemplo n.º 5
0
def get_news_preview(page):
    lang = get_lang()[0]

    log.info('Retrieving News page preview for current locale: %r', lang)

    news_page = db.Page.get(name=page, lang=lang)
    if news_page:
        #news_page = db.table_dictize(news_page, {})

        parser = HTMLNewsFirstImage()
        parser.feed(news_page.content)
        img = parser.first_image

        pg_row = {
            'title': news_page.title,
            'content': news_page.content,
            'name': news_page.name,
            'publish_date': news_page.publish_date,
            'group_id': news_page.group_id,
            'page_type': news_page.page_type,
        }

        if img:
            pg_row['image'] = img

        extras = news_page.extras
        if extras:
            pg_row.update(json.loads(news_page.extras))

        return pg_row
    else:
        return None
Ejemplo n.º 6
0
def getLocalizedPageLink(page):
    locale = get_lang()[0]

    if(page):
        url = "/" + locale + "/" + page

    return url
Ejemplo n.º 7
0
def getLocalizedPageLink(page):
    locale = get_lang()[0]

    if (page):
        url = "/" + locale + "/" + page

    return url
Ejemplo n.º 8
0
    def after_create(self, context, pkg_dict):
        #if not custom.custom_field_table.exists():
        #    custom.init_db()

        # During the harvest the get_lang() is not defined
        if get_lang():
            lang = get_lang()[0]

            for extra in pkg_dict.get('extras'):
                for field in self.custom_fields:
                    if extra.get('key') == field[0]:
                        log.info(':::::::::::::::Localizing custom field: %r',
                                 field[0])

                        # Create the localized field record
                        self.createLocField(extra, lang, pkg_dict.get('id'))
Ejemplo n.º 9
0
def get_news_preview(page):
    lang = get_lang()[0]

    log.info('Retrieving News page preview for current locale: %r', lang)

    news_page = db.Page.get(name=page, lang=lang)
    if news_page:
        #news_page = db.table_dictize(news_page, {})

        parser = HTMLNewsFirstImage()
        parser.feed(news_page.content)
        img = parser.first_image

        pg_row = {
            'title': news_page.title,
            'content': news_page.content,
            'name': news_page.name,
            'publish_date': news_page.publish_date,
            'group_id': news_page.group_id,
            'page_type': news_page.page_type,
        }

        if img:
            pg_row['image'] = img

        extras = news_page.extras
        if extras:
            pg_row.update(json.loads(news_page.extras))

        return pg_row
    else:
        return None
Ejemplo n.º 10
0
def get_language():
    lang = get_lang()

    if lang is not None:
        lang = unicode(lang[0])

    return lang
Ejemplo n.º 11
0
    def _setup_template_variables(self, context, data_dict):
        c.is_sysadmin = authz.is_sysadmin(c.user)
        try:
            user_dict = get_action('user_show')(context, data_dict)
        except NotFound:
            abort(404, _('User not found'))
        except NotAuthorized:
            abort(401, _('Not authorized to see this page'))

        c.user_dict = user_dict

        lang = get_lang()[0]

        #  MULTILANG - Localizing Datasets names and descriptions in search list
        for item in c.user_dict.get('datasets'):
            log.info(':::::::::::: Retrieving the corresponding localized title and abstract :::::::::::::::')
            
            q_results = model.Session.query(PackageMultilang).filter(PackageMultilang.package_id == item.get('id'), PackageMultilang.lang == lang).all() 

            if q_results:
                for result in q_results:
                    item[result.field] = result.text

        c.is_myself = user_dict['name'] == c.user
        c.about_formatted = h.render_markdown(user_dict['about'])
Ejemplo n.º 12
0
def get_language():
    lang = get_lang()
    if lang and isinstance(lang, (
            list,
            tuple,
    )):
        return lang[0]
    return lang
Ejemplo n.º 13
0
 def js_localization(self):
     "return localized strings from cache or compute"
     locale = get_lang()[0]
     response.headers['Pragma'] = 'public'
     response.headers['Cache-Control'] = 'max-age=0'
     response.headers['Content-Type'] = 'text/javascript;charset=utf-8'
     if self.langchange:
         region_invalidate(self._js_localization, None, 'baruwajs', locale)
     return self._js_localization(locale)
Ejemplo n.º 14
0
 def js_localization(self):
     "return localized strings from cache or compute"
     locale = get_lang()[0]
     response.headers['Pragma'] = 'public'
     response.headers['Cache-Control'] = 'max-age=0'
     response.headers['Content-Type'] = 'text/javascript;charset=utf-8'
     if self.langchange:
         region_invalidate(self._js_localization, None, 'baruwajs', locale)
     return self._js_localization(locale)
Ejemplo n.º 15
0
def getLocalizedFieldValue(field=None, pkg_dict=None):
    if field and pkg_dict:
        lang = get_lang()[0]
        localized_value = custom.get_field(field, pkg_dict.get('id'), lang)
        if localized_value:
            return localized_value.text
        else:
            return None
    else:
        return None
Ejemplo n.º 16
0
def getLocalizedFieldValue(field=None, pkg_dict=None):
    if field and pkg_dict:
        lang = get_lang()[0]
        localized_value = custom.get_field(field, pkg_dict.get('id'), lang)
        if localized_value:
            return localized_value.text
        else:
            return None
    else:
        return None
Ejemplo n.º 17
0
def getLocalizedTagName(tag_name=None):
    if tag_name:
        lang = get_lang()[0]
        localized_tag_name = TagMultilang.by_name(tag_name, lang)
        if localized_tag_name:
            return localized_tag_name.text
        else:
            return None
    else:
        return None
Ejemplo n.º 18
0
def getLocalizedTagName(tag_name=None):
    if tag_name:
        lang = get_lang()[0]
        localized_tag_name = TagMultilang.by_name(tag_name, lang)
        if localized_tag_name:
            return localized_tag_name.text
        else:
            return None
    else:
        return None
Ejemplo n.º 19
0
 def __before__(self):
     self.weekdays = {1:_(u'א'),2:_(u'ב'),3:_(u'ג'),4:_(u'ד'),5:_(u'ה'),6:_(u'ו'),7:_(u'ש')}
     #raise Exception(get_lang())
     formencode.api.set_stdtranslation(domain="FormEncode", languages=get_lang())
     c.weekdays = weekdays
     c.existings = ['existing_area']
     c.existings_labels={'existing_area':_(u'תיחום'),'existing_marker':_(u'בית עסק')}
     c.activity_type=type(self).activity_type
     c.submit_button=_(u'הירשם')
     pass
Ejemplo n.º 20
0
 def js_localization(self, domain='baruwajs'):
     "Return dict of localized strings for JS"
     locale_t = {}
     locale = get_lang()[0]
     path = os.path.join(config['pylons.paths']['root'], 'i18n')
     try:
         catalog = gettext.translation(domain, path, [locale])
     except IOError:
         catalog = None
     if catalog is not None:
         locale_t.update(catalog._catalog)
     src = [LIBHEAD]
     plural = None
     if '' in locale_t:
         for l in locale_t[''].split('\n'):
             if l.startswith('Plural-Forms:'):
                 plural = l.split(':', 1)[1].strip()
     if plural is not None:
         plural = [
             el.strip() for el in plural.split(';')
             if el.strip().startswith('plural=')
         ][0].split('=', 1)[1]
         src.append(PLURALIDX % plural)
     else:
         src.append(SIMPLEPLURAL)
     csrc = []
     pdict = {}
     for k, v in locale_t.items():
         if k == '':
             continue
         if isinstance(k, basestring):
             csrc.append("catalog['%s'] = '%s';\n" %
                         (quote_js(k), quote_js(v)))
         elif isinstance(k, tuple):
             if k[0] not in pdict:
                 pdict[k[0]] = k[1]
             else:
                 pdict[k[0]] = max(k[1], pdict[k[0]])
             csrc.append("catalog['%s'][%d] = '%s';\n" %
                         (quote_js(k[0]), k[1], quote_js(v)))
         else:
             raise TypeError(k)
     csrc.sort()
     for k, v in pdict.items():
         src.append("catalog['%s'] = [%s];\n" %
                    (quote_js(k), ','.join(["''"] * (v + 1))))
     src.extend(csrc)
     src.append(LIBFOOT)
     src.append(INTERPOLATE)
     src = ''.join(src)
     del response.headers['Cache-Control']
     del response.headers['Pragma']
     response.cache_expires(seconds=360)
     response.headers['Content-Type'] = 'text/javascript;charset=utf-8'
     return src
Ejemplo n.º 21
0
 def js_localization(self, domain='baruwajs'):
     "Return dict of localized strings for JS"
     locale_t = {}
     locale = get_lang()[0]
     path = os.path.join(config['pylons.paths']['root'], 'i18n')
     try:
         catalog = gettext.translation(domain, path, [locale])
     except IOError:
         catalog = None
     if catalog is not None:
         locale_t.update(catalog._catalog)
     src = [LIBHEAD]
     plural = None
     if '' in locale_t:
         for l in locale_t[''].split('\n'):
             if l.startswith('Plural-Forms:'):
                 plural = l.split(':', 1)[1].strip()
     if plural is not None:
         plural = [el.strip() for el in plural.split(';')
         if el.strip().startswith('plural=')][0].split('=', 1)[1]
         src.append(PLURALIDX % plural)
     else:
         src.append(SIMPLEPLURAL)
     csrc = []
     pdict = {}
     for k, v in locale_t.items():
         if k == '':
             continue
         if isinstance(k, basestring):
             csrc.append("catalog['%s'] = '%s';\n" % (quote_js(k),
             quote_js(v)))
         elif isinstance(k, tuple):
             if k[0] not in pdict:
                 pdict[k[0]] = k[1]
             else:
                 pdict[k[0]] = max(k[1], pdict[k[0]])
             csrc.append("catalog['%s'][%d] = '%s';\n" % (quote_js(k[0]),
             k[1], quote_js(v)))
         else:
             raise TypeError(k)
     csrc.sort()
     for k, v in pdict.items():
         src.append("catalog['%s'] = [%s];\n" % (quote_js(k),
         ','.join(["''"] * (v + 1))))
     src.extend(csrc)
     src.append(LIBFOOT)
     src.append(INTERPOLATE)
     src = ''.join(src)
     del response.headers['Cache-Control']
     del response.headers['Pragma']
     response.cache_expires(seconds=360)
     response.headers['Content-Type'] = 'text/javascript;charset=utf-8'
     return src
Ejemplo n.º 22
0
def get_localized_org(org_id):
    #
    # Return the localized organization conresponding to the provided id
    #
    lang = get_lang()[0]
    q_results = model.Session.query(GroupMultilang).filter(GroupMultilang.group_id == org_id, GroupMultilang.lang == lang).all() 

    display_name = None
    if q_results:
        for result in q_results:
            if result.field == 'title':
                display_name = result.text

    return display_name
Ejemplo n.º 23
0
    def generate(self, route=None, *args, **kwargs):
        """Generate a route from a set of keywords

        If the `_lang` argument is not given, the curent language used for it.

        For a named route, a language tag will be prepended to the name
        depending on the `_lang` arument.
        """
        try:
            lang = get_lang()[0]
        except TypeError:
            lang = None
        else:
            kwargs.setdefault('_lang', lang)
        if route and lang and '!!' not in route.name:
            return url_for(kwargs['_lang'] + '!!' + route.name, *args, **kwargs)
        else:
            return super(I18nMapper, self).generate(*args, **kwargs)
Ejemplo n.º 24
0
    def generate(self, route=None, *args, **kwargs):
        """Generate a route from a set of keywords

        If the `_lang` argument is not given, the curent language used for it.

        For a named route, a language tag will be prepended to the name
        depending on the `_lang` arument.
        """
        try:
            lang = get_lang()[0]
        except TypeError:
            lang = None
        else:
            kwargs.setdefault('_lang', lang)
        if route and lang and '!!' not in route.name:
            return url_for(kwargs['_lang'] + '!!' + route.name, *args,
                           **kwargs)
        else:
            return super(I18nMapper, self).generate(*args, **kwargs)
Ejemplo n.º 25
0
    def dataset_facets(self, facets_dict, package_type):
        ''' Update the facets_dict and return it. '''

        #facets_dict.update({
        #    'organization': _('Organization'),
        #    'res_format': _('Format'),
        #    'aafc_sector': _('Sector'),
        #    'res_type': _('Resource Type'),
        #    })
        lang = "en"
        try:
            lang = get_lang()[0]
        except:
            log.info(">>>>get_lang() failed")
            pass
        bl_sector = {"en": "Sector", "fr": "Secteur"}
        #TODO: should use il8n, fix it when it's ready
        #facets_dict['aafc_sector'] = plugins.toolkit._('Sector')
        facets_dict['aafc_sector'] = bl_sector.get(lang, "Sector")
        return facets_dict
    def test_mapping(self):

        # multilang requires lang to be set
        from pylons.i18n.translation import set_lang, get_lang
        import pylons
        class dummyreq(object):
            class p(object):
                translator = object()
            environ = {'pylons.pylons': p()}
        pylons.request = dummyreq()
        pylons.translator.pylons_lang = ['en_GB']
        set_lang('en_GB')
        assert get_lang() == ['en_GB']

        assert 'dcatapit_theme_group_mapper' in config['ckan.plugins'], "No dcatapit_theme_group_mapper plugin in config"
        contents = self._get_file_contents('dataset.rdf')

        p = RDFParser(profiles=['it_dcat_ap'])

        p.parse(contents)
        datasets = [d for d in p.datasets()]
        eq_(len(datasets), 1)
        package_dict = datasets[0]


        user = User.get('dummy')
        
        if not user:
            user = call_action('user_create',
                               name='dummy',
                               password='******',
                               email='*****@*****.**')
            user_name = user['name']
        else:
            user_name = user.name
        org = Group.by_name('dummy')
        if org is None:
            org  = call_action('organization_create',
                                context={'user': user_name},
                                name='dummy',
                                identifier='aaaaaa')
        existing_g = Group.by_name('existing-group')
        if existing_g is None:
            existing_g  = call_action('group_create',
                                      context={'user': user_name},
                                      name='existing-group')

        context = {'user': '******',
                   'ignore_auth': True,
                   'defer_commit': False}
        package_schema = schema.default_create_package_schema()
        context['schema'] = package_schema
        _p = {'frequency': 'manual',
              'publisher_name': 'dummy',
              'extras': [{'key':'theme', 'value':['non-mappable', 'thememap1']}],
              'groups': [],
              'title': 'dummy',
              'holder_name': 'dummy',
              'holder_identifier': 'dummy',
              'name': 'dummy',
              'notes': 'dummy',
              'owner_org': 'dummy',
              'modified': datetime.now(),
              'publisher_identifier': 'dummy',
              'metadata_created' : datetime.now(),
              'metadata_modified': datetime.now(),
              'guid': unicode(uuid.uuid4),
              'identifier': 'dummy'}
        
        package_dict.update(_p)
        config[DCATAPIT_THEME_TO_MAPPING_SOURCE] = ''
        package_data = call_action('package_create', context=context, **package_dict)

        p = Package.get(package_data['id'])

        # no groups should be assigned at this point (no map applied)
        assert {'theme': ['non-mappable', 'thememap1']} == p.extras, '{} vs {}'.format(_p['extras'], p.extras)
        assert [] == p.get_groups(group_type='group'), 'should be {}, got {}'.format([], p.get_groups(group_type='group'))

        package_data = call_action('package_show', context=context, id=package_data['id'])

        # use test mapping, which replaces thememap1 to thememap2 and thememap3
        test_map_file = os.path.join(os.path.dirname(__file__), '..', '..', '..', 'examples', 'test_map.ini')
        config[DCATAPIT_THEME_TO_MAPPING_SOURCE] = test_map_file

        package_dict['theme'] = ['non-mappable', 'thememap1']

        expected_groups_existing = ['existing-group']
        expected_groups_new = expected_groups_existing + ['somegroup1', 'somegroup2']
        expected_groups_multi = expected_groups_new + ['othergroup']

        package_dict.pop('extras', None)
        p = Package.get(package_data['id'])
        context['package'] = p 

        package_data = call_action('package_update',
                                   context=context,
                                   **package_dict)
        
        #meta.Session.flush()
        #meta.Session.revision = repo.new_revision()

        # check - only existing group should be assigned
        p = Package.get(package_data['id'])
        groups = [g.name for g in p.get_groups(group_type='group')]

        assert expected_groups_existing == groups, (expected_groups_existing, 'vs', groups,)

        config[DCATAPIT_THEME_TO_MAPPING_ADD_NEW_GROUPS] = 'true'


        package_dict['theme'] = ['non-mappable', 'thememap1']
        package_data = call_action('package_update', context=context, **package_dict)


        meta.Session.flush()
        meta.Session.revision = repo.new_revision()

        # recheck - this time, new groups should appear
        p = Package.get(package_data['id'])
        groups = [g.name for g in p.get_groups(group_type='group')]

        assert len(expected_groups_new) == len(groups), (expected_groups_new, 'vs', groups,)
        assert set(expected_groups_new) == set(groups), (expected_groups_new, 'vs', groups,)

        package_dict['theme'] = ['non-mappable', 'thememap1', 'thememap-multi']
        package_data = call_action('package_update', context=context, **package_dict)

        meta.Session.flush()
        meta.Session.revision = repo.new_revision()

        # recheck - there should be no duplicates
        p = Package.get(package_data['id'])
        groups = [g.name for g in p.get_groups(group_type='group')]

        assert len(expected_groups_multi) == len(groups), (expected_groups_multi, 'vs', groups,)
        assert set(expected_groups_multi) == set(groups), (expected_groups_multi, 'vs', groups,)

        package_data = call_action('package_update', context=context, **package_dict)

        meta.Session.flush()
        meta.Session.revision = repo.new_revision()

        # recheck - there still should be no duplicates
        p = Package.get(package_data['id'])
        groups = [g.name for g in p.get_groups(group_type='group')]

        assert len(expected_groups_multi) == len(groups), (expected_groups_multi, 'vs', groups,)
        assert set(expected_groups_multi) == set(groups), (expected_groups_multi, 'vs', groups,)

        meta.Session.rollback()
Ejemplo n.º 27
0
def attach_context_attributes(context):
    rc_config = SettingsModel().get_all_settings(cache=True)

    context.rhodecode_version = rhodecode.__version__
    context.rhodecode_edition = config.get('rhodecode.edition')
    # unique secret + version does not leak the version but keep consistency
    context.rhodecode_version_hash = md5(
        config.get('beaker.session.secret', '') +
        rhodecode.__version__)[:8]

    # Default language set for the incoming request
    context.language = translation.get_lang()[0]

    # Visual options
    context.visual = AttributeDict({})

    # DB store
    context.visual.show_public_icon = str2bool(
        rc_config.get('rhodecode_show_public_icon'))
    context.visual.show_private_icon = str2bool(
        rc_config.get('rhodecode_show_private_icon'))
    context.visual.stylify_metatags = str2bool(
        rc_config.get('rhodecode_stylify_metatags'))
    context.visual.dashboard_items = safe_int(
        rc_config.get('rhodecode_dashboard_items', 100))
    context.visual.admin_grid_items = safe_int(
        rc_config.get('rhodecode_admin_grid_items', 100))
    context.visual.repository_fields = str2bool(
        rc_config.get('rhodecode_repository_fields'))
    context.visual.show_version = str2bool(
        rc_config.get('rhodecode_show_version'))
    context.visual.use_gravatar = str2bool(
        rc_config.get('rhodecode_use_gravatar'))
    context.visual.gravatar_url = rc_config.get('rhodecode_gravatar_url')
    context.visual.default_renderer = rc_config.get(
        'rhodecode_markup_renderer', 'rst')
    context.visual.rhodecode_support_url = \
        rc_config.get('rhodecode_support_url') or url('rhodecode_support')

    context.pre_code = rc_config.get('rhodecode_pre_code')
    context.post_code = rc_config.get('rhodecode_post_code')
    context.rhodecode_name = rc_config.get('rhodecode_title')
    context.default_encodings = aslist(config.get('default_encoding'), sep=',')
    # if we have specified default_encoding in the request, it has more
    # priority
    if request.GET.get('default_encoding'):
        context.default_encodings.insert(0, request.GET.get('default_encoding'))
    context.clone_uri_tmpl = rc_config.get('rhodecode_clone_uri_tmpl')

    # INI stored
    context.labs_active = str2bool(
        config.get('labs_settings_active', 'false'))
    context.visual.allow_repo_location_change = str2bool(
        config.get('allow_repo_location_change', True))
    context.visual.allow_custom_hooks_settings = str2bool(
        config.get('allow_custom_hooks_settings', True))
    context.debug_style = str2bool(config.get('debug_style', False))

    context.rhodecode_instanceid = config.get('instance_id')

    # AppEnlight
    context.appenlight_enabled = str2bool(config.get('appenlight', 'false'))
    context.appenlight_api_public_key = config.get(
        'appenlight.api_public_key', '')
    context.appenlight_server_url = config.get('appenlight.server_url', '')

    # END CONFIG VARS

    # TODO: This dosn't work when called from pylons compatibility tween.
    # Fix this and remove it from base controller.
    # context.repo_name = get_repo_slug(request)  # can be empty

    context.csrf_token = auth.get_csrf_token()
    context.backends = rhodecode.BACKENDS.keys()
    context.backends.sort()
    context.unread_notifications = NotificationModel().get_unread_cnt_for_user(
        context.rhodecode_user.user_id)
Ejemplo n.º 28
0
def get_locale():
    lang = get_lang()[0]

    log.info('Retrieving Ckan current locale: %r', lang)
    return lang
Ejemplo n.º 29
0
        'facet': u'false'
    }

    try:
        search_results = logic.get_action('package_search')(context, data_dict)
    except search.SearchError, e:
        log.error('Error searching for recently updated datasets')
        log.error(e)
        search_results = {}

    for item in search_results.get('results'):
        log.info(
            ':::::::::::: Retrieving the corresponding localized title and abstract :::::::::::::::'
        )

        lang = get_lang()[0]

        q_results = model.Session.query(PackageMultilang).filter(
            PackageMultilang.package_id == item.get('id'),
            PackageMultilang.lang == lang).all()

        if q_results:
            for result in q_results:
                item[result.field] = result.text

    log.debug('Found %d recent updates:::::::: ' % len(search_results))
    log.debug('Updates:::::::::::::::::::::::  %r ' % search_results)

    return search_results.get('results', [])

Ejemplo n.º 30
0
               'session': model.Session,
               'user': p.toolkit.c.user or p.toolkit.c.author}

    data_dict = {'rows': n, 'sort': u'metadata_modified desc', 'facet': u'false'}
	
    try:
        search_results = logic.get_action('package_search')(context, data_dict)
    except search.SearchError, e:
        log.error('Error searching for recently updated datasets')
        log.error(e)
        search_results = {}

    for item in search_results.get('results'):
        log.info(':::::::::::: Retrieving the corresponding localized title and abstract :::::::::::::::')

        lang = get_lang()[0]
        
        q_results = model.Session.query(PackageMultilang).filter(PackageMultilang.package_id == item.get('id'), PackageMultilang.lang == lang).all() 

        if q_results:
            for result in q_results:
                item[result.field] = result.text

    log.debug('Found %d recent updates:::::::: ' % len(search_results))
    log.debug('Updates:::::::::::::::::::::::  %r ' % search_results)
	
    return search_results.get('results', [])

def getLocalizedFieldValue(field=None, pkg_dict=None):
    if field and pkg_dict:
        lang = get_lang()[0]
Ejemplo n.º 31
0
def get_locale():
    lang = get_lang()[0]

    log.info('Retrieving Ckan current locale: %r', lang)
    return lang