Пример #1
0
def enable_disable_languages(store, request):
    cur_enabled_langs = EnabledLanguage.get_all_strings(store)
    new_enabled_langs = [unicode(y) for y in request['languages_enabled']]

    if len(new_enabled_langs) < 1:
        raise errors.InvalidInputFormat("No languages enabled!")

    if request['default_language'] not in new_enabled_langs:
        raise errors.InvalidInputFormat(
            "Invalid lang code for chosen default_language")

    appdata = None
    for lang_code in new_enabled_langs:
        if lang_code not in LANGUAGES_SUPPORTED_CODES:
            raise errors.InvalidInputFormat("Invalid lang code: %s" %
                                            lang_code)
        if lang_code not in cur_enabled_langs:
            if appdata is None:
                appdata = load_appdata()
            log.debug("Adding a new lang %s" % lang_code)
            EnabledLanguage.add_new_lang(store, lang_code, appdata)

    for lang_code in cur_enabled_langs:
        if lang_code not in new_enabled_langs:
            EnabledLanguage.remove_old_lang(store, lang_code)
Пример #2
0
def wizard(store, request, language):
    node = NodeFactory(store)

    if node.get_val('wizard_done'):
        # TODO report as anomaly
        log.err("DANGER: Wizard already initialized!")
        raise errors.ForbiddenOperation
    try:
        node._query_group()

        nn = unicode(request['node']['name'])
        node.set_val('name', nn)
        node.set_val('default_language', language)
        node.set_val('wizard_done', True)

        node_l10n = NodeL10NFactory(store, lang_code=language)

        node_l10n.set_val('description', nn)
        node_l10n.set_val('header_title_homepage', nn)
        node_l10n.set_val('presentation', nn)

        context = db_create_context(store, request['context'], language)

        langs_to_drop = EnabledLanguage.get_all_strings(store)
        langs_to_drop.remove(language)
        for lang_code in langs_to_drop:
            EnabledLanguage.remove_old_lang(store, lang_code)

        request['receiver']['contexts'] = [context.id]
        request['receiver']['language'] = language
        db_create_receiver(store, request['receiver'], language)

        admin_dict = {
            'username': u'admin',
            'password': request['admin']['password'],
            'role': u'admin',
            'state': u'enabled',
            'deletable': False,
            'name': u'Admin',
            'public_name': u'Admin',
            'description': u'',
            'mail_address': request['admin']['mail_address'],
            'language': language,
            'password_change_needed': False,
            'pgp_key_remove': False,
            'pgp_key_fingerprint': '',
            'pgp_key_public': '',
            'pgp_key_expiration': datetime_null()
        }

        db_create_admin_user(store, admin_dict, language)

    except Exception as excep:
        log.err("Failed wizard initialization %s" % excep)
        raise excep
Пример #3
0
    def disable_langs(self, store):
        c = len(EnabledLanguage.get_all_strings(store))
        i = store.find(ConfigL10N).count()
        n = i/c

        EnabledLanguage.remove_old_lang(store, 'en')

        c_f = len(EnabledLanguage.get_all_strings(store))
        i_f = store.find(ConfigL10N).count()

        self.assertTrue(i-i_f == n and c_f == c-1)