Beispiel #1
0
    def reply(self):
        # Disable CSRF protection
        if 'IDisableCSRFProtection' in dir(plone.protect.interfaces):
            alsoProvides(self.request,
                         plone.protect.interfaces.IDisableCSRFProtection)

        data = json_body(self.request)
        manager = ITranslationManager(self.context)
        language = data.get('language', None)
        if language is None:
            self.request.response.setStatus(400)
            return dict(error=dict(
                type='BadRequest',
                message='You need to provide the language to unlink'))

        if language not in manager.get_translations().keys():
            self.request.response.setStatus(400)
            return dict(
                error=dict(type='BadRequest',
                           message='This objects is not translated into {}'.
                           format(language)))

        manager.remove_translation(language)
        self.request.response.setStatus(204)
        return {}
Beispiel #2
0
    def reply(self):
        # Disable CSRF protection
        if "IDisableCSRFProtection" in dir(plone.protect.interfaces):
            alsoProvides(self.request,
                         plone.protect.interfaces.IDisableCSRFProtection)

        data = json_body(self.request)
        manager = ITranslationManager(self.context)
        language = data.get("language", None)
        if language is None:
            self.request.response.setStatus(400)
            return dict(error=dict(
                type="BadRequest",
                message="You need to provide the language to unlink",
            ))

        if language not in list(manager.get_translations()):
            self.request.response.setStatus(400)
            return dict(error=dict(
                type="BadRequest",
                message="This objects is not translated into {}".format(
                    language),
            ))

        manager.remove_translation(language)
        return self.reply_no_content()
    def handle_unlink(self, action):
        data, errors = self.extractData()
        manager = ITranslationManager(self.context)
        if not errors:
            for language in data['languages']:
                manager.remove_translation(language)

        return self.request.response.redirect(
            self.context.absolute_url() + '/remove_translations')
Beispiel #4
0
    def handle_unlink(self, action):
        data, errors = self.extractData()
        manager = ITranslationManager(self.context)
        if not errors:
            for language in data['languages']:
                manager.remove_translation(language)

        return self.request.response.redirect(self.context.absolute_url() +
                                              '/remove_translations')
    def handle_remove(self, action):
        data, errors = self.extractData()
        manager = ITranslationManager(self.context)
        if not errors:
            for language in data['languages']:
                content = manager.get_translation(language)
                manager.remove_translation(language)
                aq_parent(content).manage_delObjects([content.getId()])

        return self.request.response.redirect(
            self.context.absolute_url() + '/remove_translations')
Beispiel #6
0
    def handle_remove(self, action):
        data, errors = self.extractData()
        manager = ITranslationManager(self.context)
        if not errors:
            for language in data['languages']:
                content = manager.get_translation(language)
                manager.remove_translation(language)
                aq_parent(content).manage_delObjects([content.getId()])

        return self.request.response.redirect(self.context.absolute_url() +
                                              '/remove_translations')
Beispiel #7
0
    def __call__(self):

        if self.request.form.get('submitted'):
            language = self.request.form['language']
            catalog = getToolByName(self.context, 'portal_catalog')
            context = catalog.unrestrictedSearchResults(
                UID=self.request.form['came_from'])
            if context:
                context = context[0].getObject()
            if language and context:
                manager = ITranslationManager(context)
                try:
                    manager.remove_translation(language)
                except Exception, e:
                    messages = IStatusMessage(self.request)
                    messages.addStatusMessage(e, type='error')

                return self.request.response.redirect(
                    context.absolute_url() + '/modify_translations')
    def __call__(self):

        if self.request.form.get('submitted'):
            language = self.request.form['language']
            catalog = getToolByName(self.context, 'portal_catalog')
            context = catalog.unrestrictedSearchResults(
                UID=self.request.form['came_from'])
            if context:
                context = context[0].getObject()
            if language and context:
                manager = ITranslationManager(context)
                try:
                    manager.remove_translation(language)
                except Exception as e:
                    messages = IStatusMessage(self.request)
                    messages.addStatusMessage(e, type='error')

                return self.request.response.redirect(context.absolute_url() +
                                                      '/modify_translations')

        return self.tpl()
Beispiel #9
0
    def reply(self):
        # Disable CSRF protection
        if "IDisableCSRFProtection" in dir(plone.protect.interfaces):
            alsoProvides(self.request,
                         plone.protect.interfaces.IDisableCSRFProtection)

        data = json_body(self.request)
        manager = ITranslationManager(self.context)
        language = data.get("language", None)
        if language is None:
            self.request.response.setStatus(400)
            return dict(error=dict(
                type="BadRequest",
                message="You need to provide the language to unlink",
            ))
        elif language not in list(manager.get_translations()):
            self.request.response.setStatus(400)
            return dict(error=dict(
                type="BadRequest",
                message=f"This objects is not translated into {language}",
            ))
        elif self.context.portal_type == "LRF":
            self.request.response.setStatus(400)
            return dict(error=dict(
                type="BadRequest",
                message="Language Root Folders cannot be unlinked",
            ))

        manager.remove_translation(language)
        # We want to leave a log in the transaction that the unlink has been executed
        ts = transaction.get()
        ts.note(
            f'Unlinked translation for {language} in {"/".join(self.context.getPhysicalPath())} ({self.context.language})'
        )

        return self.reply_no_content()