def test_move_content_proper_language_folder_existing_translation_inside(self):

        self.assertTrue(getattr(self.portal, 'en'))

        self.portal.en.invokeFactory('Folder', 'new11',
                                     title=u"An archetypes based folder")
        new11 = self.portal.en['new11']
        new11.invokeFactory('Document', 'doc11',
                            title=u"An archetypes based doc")
        doc1_ca = makeTranslation(self.portal.en.new11.doc11, 'ca')
        doc1_ca.edit(title="Foo", language='ca')
        self.assertTrue(self.portal.ca.doc11)
        transaction.commit()

        # Change the content language of the created folder to 'ca'

        multilingualMoveObject(new11, 'ca')
        self.assertTrue(self.portal.ca.new11)
        self.assertTrue(self.portal.ca.new11.doc11)
        self.assertEqual(ITranslationManager(
                            self.portal.ca.new11.doc11).get_translations(),
                            {'ca': self.portal.ca.new11.doc11})
        self.assertEqual(ITranslationManager(doc1_ca).get_translations(),
                         {'ca': doc1_ca})
        self.assertEqual(ILanguage(self.portal.ca.new11).get_language(), 'ca')
        self.assertEqual(ILanguage(self.portal.ca.new11.doc11).get_language(),
                         'ca')
Esempio n. 2
0
    def test_move_content_proper_language_folder_existing_translation_inside(
            self):

        self.assertTrue(getattr(self.portal, 'en'))

        self.portal.en.invokeFactory('Folder',
                                     'new11',
                                     title=u"An archetypes based folder")
        new11 = self.portal.en['new11']
        new11.invokeFactory('Document',
                            'doc11',
                            title=u"An archetypes based doc")
        doc1_ca = makeTranslation(self.portal.en.new11.doc11, 'ca')
        doc1_ca.edit(title="Foo", language='ca')
        self.assertTrue(self.portal.ca.doc11)
        transaction.commit()

        # Change the content language of the created folder to 'ca'

        multilingualMoveObject(new11, 'ca')
        self.assertTrue(self.portal.ca.new11)
        self.assertTrue(self.portal.ca.new11.doc11)
        self.assertEqual(
            ITranslationManager(self.portal.ca.new11.doc11).get_translations(),
            {'ca': self.portal.ca.new11.doc11})
        self.assertEqual(
            ITranslationManager(doc1_ca).get_translations(), {'ca': doc1_ca})
        self.assertEqual(ILanguage(self.portal.ca.new11).get_language(), 'ca')
        self.assertEqual(
            ILanguage(self.portal.ca.new11.doc11).get_language(), 'ca')
    def test_move_content_proper_language_folder(self):

        self.assertTrue(getattr(self.portal, 'en'))

        self.portal.en.invokeFactory('Folder', 'new1', title=u"An archetypes based folder")
        new1 = self.portal.en['new1']
        new1.invokeFactory('Document', 'doc1', title=u"An archetypes based doc")
        transaction.commit()

        # Change the content language of the created folder to 'ca'
        multilingualMoveObject(new1, 'ca')
        self.assertTrue(self.portal.ca.new1)
        self.assertTrue(self.portal.ca.new1.doc1)
        self.assertEqual(ILanguage(self.portal.ca.new1).get_language(), 'ca')
        self.assertEqual(ILanguage(self.portal.ca.new1.doc1).get_language(), 'ca')
    def test_moving_shared_content_to_lrf(self):
        # Create shared document
        createContentInContainer(
            self.portal, 'Document', title=u"Test document")
        uuid = IUUID(self.portal['test-document'])

        # CHeck thats ghost is ghost
        self.assertTrue(is_shared(self.portal.ca['test-document']))

        # Check is in the catalog
        brains = self.portal.portal_catalog.searchResults(UID=uuid)
        self.assertEqual(len(brains), 1)
        self.assertEqual(brains[0].getPath(), '/plone/test-document')

        brains = self.portal.portal_catalog.searchResults(
            UID='{0:s}-ca'.format(uuid))
        self.assertEqual(len(brains), 1)
        self.assertEqual(brains[0].getPath(), '/plone/ca/test-document')

        brains = self.portal.portal_catalog.searchResults(
            UID='{0:s}-es'.format(uuid))
        self.assertEqual(len(brains), 1)
        self.assertEqual(brains[0].getPath(), '/plone/es/test-document')

        # MOVE!
        moved = multilingualMoveObject(self.portal.ca['test-document'], 'ca')

        # Check that the old and the new uuid are the same
        moved_uuid = IUUID(self.portal.ca['copy_of_test-document'])

        self.assertEqual(uuid, moved_uuid)
        self.assertFalse(is_shared(moved))

        # Check portal_catalog is updated after move
        brains = self.portal.portal_catalog.searchResults(UID=uuid)
        self.assertEqual(len(brains), 1)
        self.assertEqual(brains[0].getPath(),
                         '/plone/ca/copy_of_test-document')

        brains = self.portal.portal_catalog.searchResults(
            UID='{0:s}-ca'.format(uuid))
        self.assertEqual(len(brains), 0)

        brains = self.portal.portal_catalog.searchResults(
            UID='{0:s}-es'.format(uuid))
        self.assertEqual(len(brains), 0)

        # Check which translations it have
        self.assertEqual(
            ITranslationManager(moved).get_translations(), {'ca': moved})
        ITranslationManager(moved).add_translation('es')
        self.assertEqual(
            ITranslationManager(moved).get_translations(),
            {'ca': moved, 'es': self.portal.es['copy_of_test-document']})

        # Check that ghost is no longer ghost
        self.assertFalse(
            is_shared(self.portal.es['copy_of_test-document']))
    def handle_update(self, action):
        data, errors = self.extractData()
        new_object = self.context

        if not errors:
            language = data['language']
            # We need to move the object to its place!!
            new_object = multilingualMoveObject(self.context, language)

        return self.request.response.redirect(new_object.absolute_url() + '?set_language=' + language)
Esempio n. 6
0
    def test_move_content_existing_translation_inside(self):
        f_ca = createContentInContainer(self.portal['ca'],
                                        'Folder',
                                        title=u"Test folder")

        a_ca = createContentInContainer(self.portal['ca']['test-folder'],
                                        'Document',
                                        title=u"Test document")

        a_en = api.translate(a_ca, 'en')
        translations = ITranslationManager(self.portal['en'][a_en.id])
        self.assertEqual(
            translations.get_translations(), {
                'ca': self.portal['ca'][f_ca.id][a_ca.id],
                'en': self.portal['en'][a_ca.id]
            })

        self.assertIn(a_en.id, self.portal['en'].objectIds())
        self.assertEqual(a_en, self.portal['en'][a_en.id])

        # Change the content language of the created folder to 'en'
        multilingualMoveObject(f_ca, 'en')

        self.assertIn(f_ca.id, self.portal['en'].objectIds())
        self.assertEqual(f_ca, self.portal['en'][f_ca.id])

        self.assertIn(a_ca.id, self.portal['en'][f_ca.id].objectIds())
        self.assertEqual(a_ca, self.portal['en'][f_ca.id][a_ca.id])

        adapter = ILanguage(self.portal['en'][f_ca.id])
        self.assertEqual(adapter.get_language(), 'en')

        adapter = ILanguage(self.portal['en'][f_ca.id][a_ca.id])
        self.assertEqual(adapter.get_language(), 'en')

        translations = ITranslationManager(self.portal['en'][f_ca.id][a_ca.id])
        self.assertEqual(translations.get_translations(),
                         {'en': self.portal['en'][f_ca.id][a_ca.id]})

        translations = ITranslationManager(self.portal['en'][a_en.id])
        self.assertEqual(translations.get_translations(),
                         {'en': self.portal['en'][a_en.id]})
Esempio n. 7
0
    def test_move_content_proper_language_folder(self):

        self.assertTrue(getattr(self.portal, 'en'))

        self.portal.en.invokeFactory('Folder',
                                     'new1',
                                     title=u"An archetypes based folder")
        new1 = self.portal.en['new1']
        new1.invokeFactory('Document',
                           'doc1',
                           title=u"An archetypes based doc")
        transaction.commit()

        # Change the content language of the created folder to 'ca'
        multilingualMoveObject(new1, 'ca')
        self.assertTrue(self.portal.ca.new1)
        self.assertTrue(self.portal.ca.new1.doc1)
        self.assertEqual(ILanguage(self.portal.ca.new1).get_language(), 'ca')
        self.assertEqual(
            ILanguage(self.portal.ca.new1.doc1).get_language(), 'ca')
    def handle_update(self, action):
        data, errors = self.extractData()
        new_object = self.context

        if not errors:
            language = data['language']
            # We need to move the object to its place!!
            new_object = multilingualMoveObject(self.context, language)

        return self.request.response.redirect(new_object.absolute_url() +
                                              '?set_language=' + language)
    def test_move_content_existing_translation_inside(self):
        f_ca = createContentInContainer(
            self.portal['ca'], 'Folder', title=u"Test folder")

        a_ca = createContentInContainer(
            self.portal['ca']['test-folder'],
            'Document', title=u"Test document")

        a_en = api.translate(a_ca, 'en')
        translations = ITranslationManager(self.portal['en'][a_en.id])
        self.assertEqual(translations.get_translations(),
                         {'ca': self.portal['ca'][f_ca.id][a_ca.id],
                          'en': self.portal['en'][a_ca.id]})

        self.assertIn(a_en.id, self.portal['en'].objectIds())
        self.assertEqual(a_en, self.portal['en'][a_en.id])

        # Change the content language of the created folder to 'en'
        multilingualMoveObject(f_ca, 'en')

        self.assertIn(f_ca.id, self.portal['en'].objectIds())
        self.assertEqual(f_ca, self.portal['en'][f_ca.id])

        self.assertIn(a_ca.id, self.portal['en'][f_ca.id].objectIds())
        self.assertEqual(a_ca, self.portal['en'][f_ca.id][a_ca.id])

        adapter = ILanguage(self.portal['en'][f_ca.id])
        self.assertEqual(adapter.get_language(), 'en')

        adapter = ILanguage(self.portal['en'][f_ca.id][a_ca.id])
        self.assertEqual(adapter.get_language(), 'en')

        translations = ITranslationManager(self.portal['en'][f_ca.id][a_ca.id])
        self.assertEqual(translations.get_translations(),
                         {'en': self.portal['en'][f_ca.id][a_ca.id]})

        translations = ITranslationManager(self.portal['en'][a_en.id])
        self.assertEqual(translations.get_translations(),
                         {'en': self.portal['en'][a_en.id]})
    def test_move_content_proper_language_folder(self):
        f_ca = createContentInContainer(
            self.portal['ca'], 'Folder', title=u"Test folder")

        a_ca = createContentInContainer(
            self.portal['ca']['test-folder'],
            'Document', title=u"Test document")

        # Change the content language of the created folder to 'es'
        multilingualMoveObject(f_ca, 'es')

        self.assertIn(f_ca.id, self.portal['es'].objectIds())
        self.assertEqual(f_ca, self.portal['es'][f_ca.id])

        self.assertIn(a_ca.id, self.portal['es'][f_ca.id].objectIds())
        self.assertEqual(a_ca, self.portal['es'][f_ca.id][a_ca.id])

        adapter = ILanguage(self.portal['es'][f_ca.id])
        self.assertEqual(adapter.get_language(), 'es')

        adapter = ILanguage(self.portal['es'][f_ca.id][a_ca.id])
        self.assertEqual(adapter.get_language(), 'es')
Esempio n. 11
0
    def test_moving_shared_content_to_lrf(self):
        # Create shared document
        createContentInContainer(self.portal, "LIF", title=u"Media", checkConstraints=False)
        createContentInContainer(self.portal.media, "Document", title=u"Test document")
        uuid = IUUID(self.portal.media["test-document"])

        # Check that ghost is ghost
        self.assertTrue(is_language_independent(self.portal.ca.media["test-document"]))

        # Check is in the catalog
        brains = self.portal.portal_catalog.searchResults(UID=uuid)
        self.assertEqual(len(brains), 1)
        self.assertEqual(brains[0].getPath(), "/plone/media/test-document")

        brains = self.portal.portal_catalog.searchResults(UID="{0:s}-ca".format(uuid))
        self.assertEqual(len(brains), 1)
        self.assertEqual(brains[0].getPath(), "/plone/ca/media/test-document")

        brains = self.portal.portal_catalog.searchResults(UID="{0:s}-es".format(uuid))
        self.assertEqual(len(brains), 1)
        self.assertEqual(brains[0].getPath(), "/plone/es/media/test-document")

        # MOVE!
        moved = multilingualMoveObject(self.portal.ca.media["test-document"], "ca")

        # Check that the old and the new uuid are the same
        moved_uuid = IUUID(self.portal.ca["test-document"])

        self.assertEqual(uuid, moved_uuid)
        self.assertFalse(is_language_independent(moved))

        # Check portal_catalog is updated after move
        brains = self.portal.portal_catalog.searchResults(UID=uuid)
        self.assertEqual(len(brains), 1)
        self.assertEqual(brains[0].getPath(), "/plone/ca/test-document")

        brains = self.portal.portal_catalog.searchResults(UID="{0:s}-ca".format(uuid))
        self.assertEqual(len(brains), 0)

        brains = self.portal.portal_catalog.searchResults(UID="{0:s}-es".format(uuid))
        self.assertEqual(len(brains), 0)

        # Check which translations it have
        self.assertEqual(ITranslationManager(moved).get_translations(), {"ca": moved})
        ITranslationManager(moved).add_translation("es")
        self.assertEqual(
            ITranslationManager(moved).get_translations(), {"ca": moved, "es": self.portal.es["test-document"]}
        )

        # Check that ghost is no longer ghost
        self.assertFalse(is_language_independent(self.portal.es["test-document"]))
Esempio n. 12
0
    def test_move_content_proper_language_folder(self):
        f_ca = createContentInContainer(self.portal['ca'],
                                        'Folder',
                                        title=u"Test folder")

        a_ca = createContentInContainer(self.portal['ca']['test-folder'],
                                        'Document',
                                        title=u"Test document")

        # Change the content language of the created folder to 'es'
        multilingualMoveObject(f_ca, 'es')

        self.assertIn(f_ca.id, self.portal['es'].objectIds())
        self.assertEqual(f_ca, self.portal['es'][f_ca.id])

        self.assertIn(a_ca.id, self.portal['es'][f_ca.id].objectIds())
        self.assertEqual(a_ca, self.portal['es'][f_ca.id][a_ca.id])

        adapter = ILanguage(self.portal['es'][f_ca.id])
        self.assertEqual(adapter.get_language(), 'es')

        adapter = ILanguage(self.portal['es'][f_ca.id][a_ca.id])
        self.assertEqual(adapter.get_language(), 'es')
Esempio n. 13
0
    def test_shared_to_lrf(self):
        self.root_a_ca = makeContent(self.portal, "dxdoc", id="a_ca")

        from plone.uuid.interfaces import IUUID

        old_uuid = IUUID(self.root_a_ca)
        # The ghost is ghost
        self.assertTrue(is_shared(self.portal.ca.a_ca))

        # Check is in the catalog
        brains = self.portal.portal_catalog.searchResults(UID=old_uuid)
        self.assertTrue(len(brains) == 1)
        self.assertTrue(brains[0].getPath() == "/plone/a_ca")

        brains = self.portal.portal_catalog.searchResults(UID=old_uuid + "-ca")
        self.assertTrue(len(brains) == 1)
        self.assertTrue(brains[0].getPath() == "/plone/ca/a_ca")

        brains = self.portal.portal_catalog.searchResults(UID=old_uuid + "-es")
        self.assertTrue(len(brains) == 1)
        self.assertTrue(brains[0].getPath() == "/plone/es/a_ca")

        new_object = multilingualMoveObject(self.portal.ca.a_ca, "ca")
        # check that the old and the new uuid are the same
        new_uuid = IUUID(self.portal.ca.copy_of_a_ca)
        self.assertTrue(old_uuid, new_uuid)
        self.assertFalse(is_shared(new_object))

        # check portal_catalog is updated

        brains = self.portal.portal_catalog.searchResults(UID=old_uuid)
        self.assertTrue(len(brains) == 1)
        self.assertTrue(brains[0].getPath() == "/plone/ca/copy_of_a_ca")

        brains = self.portal.portal_catalog.searchResults(UID=old_uuid + "-ca")
        self.assertTrue(len(brains) == 0)

        brains = self.portal.portal_catalog.searchResults(UID=old_uuid + "-es")
        self.assertTrue(len(brains) == 0)

        # Check which translations it have
        self.failUnless(ITranslationManager(new_object).get_translations(), {"ca": new_object})
        ITranslationManager(new_object).add_translation("es")
        self.failUnless(
            ITranslationManager(new_object).get_translations(), {"ca": new_object, "es": self.portal.es.copy_of_a_ca}
        )

        self.assertFalse(is_shared(self.portal.es.copy_of_a_ca))
Esempio n. 14
0
    def test_moving_shared_content_to_lrf(self):
        # Create shared document
        createContentInContainer(
            self.portal, 'LIF', title=u"Assets", checkConstraints=False)
        createContentInContainer(
            self.portal.assets, 'Document', title=u"Test document")
        uuid = IUUID(self.portal.assets['test-document'])

        # Check that ghost is ghost
        self.assertTrue(
            is_language_independent(self.portal.ca.assets['test-document']))

        # Check is in the catalog
        brains = self.portal.portal_catalog.searchResults(UID=uuid)
        self.assertEqual(len(brains), 1)
        self.assertEqual(brains[0].getPath(), '/plone/assets/test-document')

        brains = self.portal.portal_catalog.searchResults(
            UID='{0:s}-ca'.format(uuid))
        self.assertEqual(len(brains), 1)
        self.assertEqual(brains[0].getPath(), '/plone/ca/assets/test-document')

        brains = self.portal.portal_catalog.searchResults(
            UID='{0:s}-es'.format(uuid))
        self.assertEqual(len(brains), 1)
        self.assertEqual(brains[0].getPath(), '/plone/es/recursos/test-document')

        # MOVE!
        moved = multilingualMoveObject(
            self.portal.ca.assets['test-document'], 'ca')

        # Check that the old and the new uuid are the same
        moved_uuid = IUUID(self.portal.ca['test-document'])

        self.assertEqual(uuid, moved_uuid)
        self.assertFalse(is_language_independent(moved))

        # Check portal_catalog is updated after move
        brains = self.portal.portal_catalog.searchResults(UID=uuid)
        self.assertEqual(len(brains), 1)
        self.assertEqual(brains[0].getPath(),
                         '/plone/ca/test-document')

        brains = self.portal.portal_catalog.searchResults(
            UID='{0:s}-ca'.format(uuid))
        self.assertEqual(len(brains), 0)

        brains = self.portal.portal_catalog.searchResults(
            UID='{0:s}-es'.format(uuid))
        self.assertEqual(len(brains), 0)

        # Check which translations it have
        self.assertEqual(
            ITranslationManager(moved).get_translations(), {'ca': moved})
        ITranslationManager(moved).add_translation('es')
        self.assertEqual(
            ITranslationManager(moved).get_translations(),
            {'ca': moved, 'es': self.portal.es['test-document']})

        # Check that ghost is no longer ghost
        self.assertFalse(
            is_language_independent(self.portal.es['test-document']))