Exemple #1
0
def enable_pam(portal):
    # Ensure that portal is portal
    portal = api.portal.get()
    # Setup the plone.app.multilingual data
    sms = SetupMultilingualSite(portal)
    sms.setupSite(portal)
    enable_translatable_behavior(portal)
Exemple #2
0
def setupMultilingual(context):
    if context.readDataFile('osha.hwccontent.txt') is None:
        return
    portal = context.getSite()

    setupTool = SetupMultilingualSite()
    setupTool.setupSite(portal)

    setupTool.setupSharedFolder()
Exemple #3
0
 def setUpPloneSite(self, portal):
     applyProfile(portal, 'plone.app.multilingual:default')
     setRoles(portal, TEST_USER_ID, ['Manager'])
     login(portal, TEST_USER_NAME)
     language_tool = getToolByName(portal, 'portal_languages')
     language_tool.addSupportedLanguage('fr')
     language_tool.addSupportedLanguage('it')
     setup_tool = SetupMultilingualSite()
     setup_tool.setupSite(portal)
 def setUp(self):
     super(LinkRedirectViewTestCase, self).setUp()
     with api.env.adopt_roles(['Manager']):
         self.subfolder = api.content.create(self.portal, 'Folder',
                                             'subfolder')
         self.link_1 = api.content.create(
             type='Link',
             container=self.subfolder,
             id='link-1',
             title=u'Link 1',
             remoteUrl=u'${portal_url}/assuntos/editoria-a',
         )
         self.link_2 = api.content.create(
             type='Link',
             container=self.subfolder,
             id='link-2',
             title=u'Link 2',
             remoteUrl=u'${navigation_root_url}/assuntos/editoria-b',
         )
         self.link_3 = api.content.create(
             type='Link',
             container=self.subfolder,
             id='link-3',
             title=u'Link 3',
             remoteUrl=u'../../assuntos/editoria-c',
         )
         self.link_4 = api.content.create(
             type='Link',
             container=self.folder,
             id='link-4',
             title=u'Link 4',
             remoteUrl=u'./subfolder',
         )
         portal_setup = api.portal.get_tool('portal_setup')
         portal_setup.runAllImportStepsFromProfile(
             'plone.app.multilingual:default', )
         portal_languages = api.portal.get_tool('portal_languages')
         portal_languages.addSupportedLanguage('en')
         portal_languages.use_request_negotiation = True
         setup_tool = SetupMultilingualSite()
         setup_tool.setupSite(self.portal)
         self.link_5 = api.content.create(
             type='Link',
             container=self.portal['en'],
             id='link-5',
             title=u'Link 5',
             remoteUrl=u'${portal_url}/en/subjects/editorial',
         )
         self.link_6 = api.content.create(
             type='Link',
             container=self.portal,
             id='link-6',
             title=u'Link 6',
             remoteUrl=u'${portal_url}/en/subjects/languages',
         )
 def handle_save_action(self, action, data):
     CheckAuthenticator(self.request)
     if form.applyChanges(self.context, self.form_fields, data,
                          self.adapters):
         self.status = _Plone("Changes saved.")
         self._on_save(data)
     else:
         self.status = _Plone("No changes made.")
     setupTool = SetupMultilingualSite()
     output = setupTool.setupSite(self.context)
     self.status += output
Exemple #6
0
 def setUp(self):
     self.portal = self.layer['portal']
     self.request = self.layer['request']
     self.language_tool = getToolByName(self.portal, 'portal_languages')
     self.language_tool.addSupportedLanguage('ca')
     self.language_tool.addSupportedLanguage('es')
     setRoles(self.portal, TEST_USER_ID, ['Manager'])
     login(self.portal, TEST_USER_NAME)
     workflowTool = getToolByName(self.portal, "portal_workflow")
     workflowTool.setDefaultChain('simple_publication_workflow')
     setupTool = SetupMultilingualSite()
     setupTool.setupSite(self.portal)
Exemple #7
0
    def test_add_all_supported_languages(self):
        """ There was a language which code is 'id'
            and it broke the root language folder setup process
        """
        language_tool = getToolByName(self.portal, 'portal_languages')
        for lang in AllContentLanguageVocabulary()(self.portal):
            language_tool.addSupportedLanguage(lang.value)

        workflowTool = getToolByName(self.portal, "portal_workflow")
        workflowTool.setDefaultChain('simple_publication_workflow')

        setupTool = SetupMultilingualSite()
        setupTool.setupSite(self.portal)
def install_pam(setup=None):
    """Run this Plone 4.3.x
    Install pam - we still use Archetypes, so also archetypes.multilingual
    """
    qi = api.portal.get_tool('portal_quickinstaller')
    portal = api.portal.get()

    if not qi.isProductInstalled('plone.app.multilingual'):
        qi.installProduct('plone.app.multilingual')
        qi.installProduct('archetypes.multilingual')
        from plone.app.multilingual.browser.setup import SetupMultilingualSite
        ml_setup_tool = SetupMultilingualSite()
        ml_setup_tool.setupSite(portal)
Exemple #9
0
    def setUp(self):
        with ploneSite() as portal:
            # Define available languages
            language_tool = getToolByName(portal, 'portal_languages')
            language_tool.addSupportedLanguage('ca')
            language_tool.addSupportedLanguage('es')

            # Enable request negotiator
            language_tool.use_request_negotiation = True

            # Setup language root folders
            setupTool = SetupMultilingualSite()
            setupTool.setupSite(portal)
    def test_type_of_language_folders(self):
        """The created objects have to be 'Language Root Folder'."""
        all_langs = AllContentLanguageVocabulary()(self.portal)
        for lang in all_langs:
            self.language_tool.addSupportedLanguage(lang.value)

        workflow_tool = getToolByName(self.portal, "portal_workflow")
        workflow_tool.setDefaultChain('simple_publication_workflow')

        setup_tool = SetupMultilingualSite()
        setup_tool.setupSite(self.portal)

        for lang in all_langs.by_value.keys():
            if lang == 'id':
                self.assertEqual(self.portal.get('id-id').portal_type, 'LRF')
            else:
                self.assertEqual(self.portal.get(lang).portal_type, 'LRF')
    def testRelocator(self):
        self.doc5 = makeContent(self.portal, 'Document', id='doc5')
        self.doc5.setLanguage('en')
        self.doc5_ca = makeTranslation(self.doc5, 'ca')
        self.doc5_ca.edit(title="Foo", language='ca')
        self.doc5_es = makeTranslation(self.doc5, 'es')
        self.doc5_es.edit(title="Foo", language='es')
        workflowTool = getToolByName(self.portal, "portal_workflow")
        workflowTool.setDefaultChain('simple_publication_workflow')
        setupTool = SetupMultilingualSite()
        setupTool.setupSite(self.portal)

        relocator_view = getMultiAdapter((self.portal, self.request),
                                          name='relocateContentByLanguage')
        relocator_view()

        self.assertTrue(getattr(self.portal.en, 'doc5', False))
        self.assertTrue(getattr(self.portal.es, 'doc5-es', False))
        self.assertTrue(getattr(self.portal.ca, 'doc5-ca', False))
    def handleSave(self, action):
        data, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return

        # We need to check if the default language is in available languages
        if 'default_language' in data and 'available_languages' in data and \
                data['default_language'] not in data['available_languages']:
            IStatusMessage(self.request).addStatusMessage(
                _(u"Default language not in available languages"), "error")

            # e = Invalid(_(u"Default language not in available languages"))
            # raise WidgetActionExecutionError('default_language', e)
            return

        self.applyChanges(data)

        setupTool = SetupMultilingualSite()
        output = setupTool.setupSite(self.context)
        self.status += output
    def test_languages_root_folders_by_dialog(self):
        self.registry = getUtility(IRegistry)
        self.settings = self.registry.forInterface(IMultiLanguagePolicies)
        self.settings.selector_lookup_translations_policy = 'dialog'

        workflowTool = getToolByName(self.portal, "portal_workflow")
        workflowTool.setDefaultChain('simple_publication_workflow')
        setupTool = SetupMultilingualSite()
        setupTool.setupSite(self.portal)

        self.selector = LanguageSelectorViewlet(self.portal.en, self.request,
                                                None, None)

        self.selector.update()

        self.assertEqual(self.selector.languages(), [{
            'code': u'en',
            u'name': u'English',
            'url': 'http://nohost/plone/en?set_language=en',
            'selected': True,
            u'flag': u'/++resource++country-flags/gb.gif',
            'translated': True,
            u'native': u'English'
        }, {
            'code': u'ca',
            u'name': u'Catalan',
            'url': 'http://nohost/plone/ca?set_language=ca',
            'selected': False,
            u'flag': u'/++resource++language-flags/ca.gif',
            'translated': True,
            u'native': u'Catal\xe0'
        }, {
            'code': u'es',
            u'name': u'Spanish',
            'url': 'http://nohost/plone/es?set_language=es',
            'selected': False,
            u'flag': u'/++resource++country-flags/es.gif',
            'translated': True,
            u'native': u'Espa\xf1ol'
        }])
    def test_all_supported_languages(self):
        """There was a language which code is 'id'.
        This broke the root language folder setup process.
        To get rid of that the folder is 'id-id'.
        """
        all_langs = AllContentLanguageVocabulary()(self.portal)
        for lang in all_langs:
            self.language_tool.addSupportedLanguage(lang.value)

        workflow_tool = getToolByName(self.portal, "portal_workflow")
        workflow_tool.setDefaultChain('simple_publication_workflow')

        setup_tool = SetupMultilingualSite()
        setup_tool.setupSite(self.portal)

        portal_objects = self.portal.objectIds()

        for lang in all_langs.by_value.keys():
            if lang == 'id':
                self.assertIn('id-id', portal_objects)
            else:
                self.assertIn(lang, portal_objects)
    def setup_languages(self, item):
        if not HAS_MULTILINGUAL:
            raise MultilingalInflateException(
                "Defined multilingal content but plone.app.multilingual is "
                "not installed")

        self._validate_languages(item['_multilingual'])

        multilingual_setup = SetupMultilingualSite()
        multilingual_setup.setupSite(self.context)

        contents = deepcopy(item['_contents'])
        self._recursive_create_translation_group(contents)

        for lang_code in item['_multilingual']:
            lang_contents = deepcopy(contents)
            self._recursive_set_language(lang_contents, lang_code)

            yield {
                '_path': os.path.join(lang_code,
                                      item.get('_path', '').lstrip('/')),
                '_children': lang_contents
            }
 def set_move_content_to_language_folder(self, value):
     if value:
         SetupMultilingualSite(self.context).move_default_language_content()
 def set_set_default_language(self, value):
     if value:
         SetupMultilingualSite(self.context).set_default_language_content()
Exemple #18
0
def init_pam(tool):
    """After installation run setup to create LRF and LIF."""
    setup_tool = SetupMultilingualSite()
    setup_tool.setupSite(getSite())