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 {}
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')
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')
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')
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()
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()