def __call__(self): request = self.request if request.method == 'POST': request.stdin.seek(0) data = json.loads(request.stdin.read()) taxonomy = queryUtility(ITaxonomy, name=data['taxonomy']) tree = data['tree'] languages = data['languages'] for language in languages: if language not in taxonomy.data: taxonomy.data[language] = OOBTree() for language in taxonomy.data.keys(): data_for_taxonomy = self.generate_data_for_taxonomy( tree['subnodes'], language) taxonomy.data[language] = OOBTree() for key, value in data_for_taxonomy: taxonomy.data[language][key] = value return json.dumps({ 'status': 'info', 'message': translate(_("Your taxonomy has been saved with success."), context=request) }) return json.dumps({ 'status': 'error', 'message': translate(_("There seems to have been an error."), context=request) })
def __call__(self): request = self.request if request.method == 'POST': request.stdin.seek(0) data = simplejson.loads(request.stdin.read()) taxonomy = queryUtility(ITaxonomy, name=data['taxonomy']) tree = data['tree'] languages = data['languages'] for language in languages: if language not in taxonomy.data: taxonomy.data[language] = OOBTree() for language in taxonomy.data.keys(): data_for_taxonomy = self.generate_data_for_taxonomy( tree['subnodes'], language) taxonomy.data[language] = OOBTree() for key, value in data_for_taxonomy: taxonomy.data[language][key] = value return simplejson.dumps({ 'status': 'info', 'message': translate( _("Your taxonomy has been saved with success."), context=request) }) return simplejson.dumps({ 'status': 'error', 'message': translate( _("There seems to have been an error."), context=request) })
def __call__(self): request = self.request if request.method == 'POST': request.stdin.seek(0) data = json.loads(request.stdin.read()) taxonomy = queryUtility(ITaxonomy, name=data['taxonomy']) tree = data['tree'] languages = data['languages'] for language in languages: if language not in taxonomy.data: taxonomy.data[language] = OOBTree() for language in taxonomy.data.keys(): data_for_taxonomy = self.generate_data_for_taxonomy( tree['subnodes'], language) # Update taxonomy and use 'clear' since we want to remain with # just the items that were submitted by the user. taxonomy.update(language, data_for_taxonomy, True) return json.dumps({ 'status': 'info', 'message': translate(_("Your taxonomy has been saved with success."), context=request) }) return json.dumps({ 'status': 'error', 'message': translate(_("There seems to have been an error."), context=request) })
def __call__(self): request = self.request if request.method == 'POST': request.stdin.seek(0) data = json.loads(request.stdin.read()) taxonomy = queryUtility(ITaxonomy, name=data['taxonomy']) tree = data['tree'] languages = data['languages'] for language in languages: if language not in taxonomy.data: taxonomy.data[language] = OOBTree() for language in taxonomy.data.keys(): data_for_taxonomy = self.generate_data_for_taxonomy( tree['subnodes'], language) # Update taxonomy and use 'clear' since we want to remain with # just the items that were submitted by the user. taxonomy.update(language, data_for_taxonomy, True) return json.dumps({ 'status': 'info', 'message': translate( _("Your taxonomy has been saved with success."), context=request) }) return json.dumps({ 'status': 'error', 'message': translate( _("There seems to have been an error."), context=request)})
class TaxonomyAddForm(form.AddForm): fields = field.Fields(ITaxonomyForm) def updateWidgets(self): form.AddForm.updateWidgets(self) self.widgets["import_file_purge"].mode = HIDDEN_MODE def create(self, data): return data def add(self, data): if "import_file" not in data: raise ValueError("Import file is not in form") taxonomy = registerTaxonomy( self.context, name=data["taxonomy"], title=data["field_title"], description=data["field_description"], default_language=data["default_language"], ) # Import adapter = TaxonomyImportExportAdapter(self.context) if "import_file" in data: if data["import_file"]: import_file = data["import_file"].data adapter.importDocument(taxonomy, import_file) del data["import_file"] del data["taxonomy"] del data["import_file_purge"] taxonomy.registerBehavior(**data) api.portal.show_message(_(u"Taxonomy imported."), request=self.request) return self.request.RESPONSE.redirect(self.context.portal_url() + "/@@taxonomy-settings") def nextURL(self): return self.context.portal_url() + "/@@taxonomy-settings" @button.buttonAndHandler(_("Add"), name="add") def handleAdd(self, action): data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return obj = self.createAndAdd(data) if obj is not None: # mark only as finished if we get the new object self._finishedAdd = True @button.buttonAndHandler(_(u"Cancel"), name="cancel") def handleCancel(self, action): api.portal.show_message(_(u"Add cancelled"), request=self.request) self.request.response.redirect("{0}/@@taxonomy-settings".format( self.context.absolute_url()))
def __init__( self, name, title, description, field_title, field_description, is_required=False, is_single_select=False, write_permission="", field_prefix="taxonomy_", default_language="en", taxonomy_fieldset="categorization", ): self.name = name self.title = _(title) self.description = _(description) self.factory = None self.field_title = field_title self.field_description = field_description self.field_prefix = field_prefix self.is_single_select = is_single_select self.is_required = is_required self.write_permission = write_permission self.default_language = default_language self.taxonomy_fieldset = taxonomy_fieldset
def generateInterface(self): logger.debug('generating interface for %s' % self.short_name) if hasattr(self, 'is_single_select') and self.is_single_select: select_field = schema.Choice( title=_(safe_unicode(self.field_title)), description=_(safe_unicode(self.field_description)), required=self.is_required, vocabulary=self.vocabulary_name ) else: select_field = schema.List( title=_(safe_unicode(self.field_title)), description=_(safe_unicode(self.field_description)), required=self.is_required, min_length=self.is_required and 1 or 0, value_type=schema.Choice( vocabulary=self.vocabulary_name, required=self.is_required ) ) schemaclass = SchemaClass( self.short_name, (Schema, ), __module__='collective.taxonomy.generated', attrs={ str(self.field_name): select_field } ) if self.write_permission: schemaclass.setTaggedValue( WRITE_PERMISSIONS_KEY, {self.field_name: self.write_permission} ) try: taxonomy_fieldset = self.taxonomy_fieldset except AttributeError: # Backwards compatible: taxonomy_fieldset = 'categorization' if taxonomy_fieldset != 'default': schemaclass.setTaggedValue( FIELDSETS_KEY, [Fieldset(taxonomy_fieldset, fields=[self.field_name])] ) if hasattr(self, 'is_single_select') and not self.is_single_select: schemaclass.setTaggedValue( WIDGETS_KEY, {self.field_name: 'collective.taxonomy.widget.TaxonomySelectFieldWidget'} ) alsoProvides(schemaclass, IFormFieldProvider) return schemaclass
def generateInterface(self): logger.debug("generating interface for %s" % self.short_name) if hasattr(self, "is_single_select") and self.is_single_select: select_field = schema.Choice( title=_(safe_unicode(self.field_title)), description=_(safe_unicode(self.field_description)), required=self.is_required, vocabulary=self.vocabulary_name, ) else: select_field = schema.List( title=_(safe_unicode(self.field_title)), description=_(safe_unicode(self.field_description)), required=self.is_required, min_length=self.is_required and 1 or 0, value_type=schema.Choice( vocabulary=self.vocabulary_name, required=self.is_required ), ) schemaclass = SchemaClass( self.short_name, (Schema,), __module__="collective.taxonomy.generated", attrs={str(self.field_name): select_field}, ) if self.write_permission: schemaclass.setTaggedValue( WRITE_PERMISSIONS_KEY, {self.field_name: self.write_permission} ) try: taxonomy_fieldset = self.taxonomy_fieldset except AttributeError: # Backwards compatible: taxonomy_fieldset = "categorization" if taxonomy_fieldset != "default": schemaclass.setTaggedValue( FIELDSETS_KEY, [Fieldset(taxonomy_fieldset, fields=[self.field_name])] ) if hasattr(self, "is_single_select") and not self.is_single_select: schemaclass.setTaggedValue( WIDGETS_KEY, { self.field_name: "collective.taxonomy.widget.TaxonomySelectFieldWidget" }, ) alsoProvides(schemaclass, IFormFieldProvider) if HAS_PAM: alsoProvides(schemaclass[self.field_name], ILanguageIndependentField) return schemaclass
class TaxonomyAddForm(form.AddForm): fields = field.Fields(ITaxonomyForm) def updateWidgets(self): form.AddForm.updateWidgets(self) def create(self, data): return data def add(self, data): if 'import_file' not in data: raise ValueError("Import file is not in form") taxonomy = registerTaxonomy(self.context, name=data['taxonomy'], title=data['field_title'], description=data['field_description'], default_language=data['default_language']) # Import adapter = TaxonomyImportExportAdapter(self.context) if 'import_file' in data: if data['import_file']: import_file = data['import_file'].data adapter.importDocument(taxonomy, import_file) del data['import_file'] del data['taxonomy'] taxonomy.registerBehavior(**data) api.portal.show_message(_(u"Taxonomy imported."), request=self.request) return self.request.RESPONSE.redirect(self.context.portal_url() + '/@@taxonomy-settings') def nextURL(self): return self.context.portal_url() + '/@@taxonomy-settings' @button.buttonAndHandler(_('Add'), name='add') def handleAdd(self, action): data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return obj = self.createAndAdd(data) if obj is not None: # mark only as finished if we get the new object self._finishedAdd = True @button.buttonAndHandler(_(u'Cancel'), name='cancel') def handleCancel(self, action): api.portal.show_message(_(u"Add cancelled"), request=self.request) self.request.response.redirect(self.context.absolute_url() + '/@@taxonomy-settings')
def generateInterface(self): logger.debug('generating interface for %s' % self.short_name) if hasattr(self, 'is_single_select') and self.is_single_select: select_field = schema.Choice( title=_(unicode(self.field_title)), description=_(unicode(self.field_description)), required=self.is_required, vocabulary=self.vocabulary_name ) else: select_field = schema.List( title=_(unicode(self.field_title)), description=_(unicode(self.field_description)), required=self.is_required, min_length=self.is_required and 1 or 0, value_type=schema.Choice( vocabulary=self.vocabulary_name, required=self.is_required ) ) schemaclass = SchemaClass( self.short_name, (Schema, ), __module__='collective.taxonomy.generated', attrs={ str(self.field_name): select_field } ) if self.write_permission: schemaclass.setTaggedValue( WRITE_PERMISSIONS_KEY, {self.field_name: self.write_permission} ) schemaclass.setTaggedValue( FIELDSETS_KEY, [Fieldset('categorization', label=_pmf(u'label_schema_categorization', default=u'Categorization'), fields=[self.field_name])] ) if hasattr(self, 'is_single_select') and not self.is_single_select: schemaclass.setTaggedValue( WIDGETS_KEY, {self.field_name: 'collective.taxonomy.widget.TaxonomySelectFieldWidget'} ) alsoProvides(schemaclass, IFormFieldProvider) return schemaclass
def __init__(self, name, title, description, field_title, field_description, is_required=False, is_single_select=False, write_permission='', default_language='en'): self.name = name self.title = _(title) self.description = _(description) self.factory = None self.field_title = field_title self.field_description = field_description self.is_single_select = is_single_select self.is_required = is_required self.write_permission = write_permission self.default_language = default_language
def add(self, data): if 'import_file' not in data: raise ValueError("Import file is not in form") taxonomy = registerTaxonomy( self.context, name=data['taxonomy'], title=data['field_title'], description=data['field_description'], default_language=data['default_language'] ) # Import adapter = TaxonomyImportExportAdapter(self.context) if 'import_file' in data: if data['import_file']: import_file = data['import_file'].data adapter.importDocument(taxonomy, import_file) del data['import_file'] del data['taxonomy'] del data['import_file_purge'] taxonomy.registerBehavior(**data) api.portal.show_message(_(u"Taxonomy imported."), request=self.request) return self.request.RESPONSE.redirect( self.context.portal_url() + '/@@taxonomy-settings' )
def add(self, data): if 'import_file' not in data: raise ValueError("Import file is not in form") taxonomy = registerTaxonomy(self.context, name=data['taxonomy'], title=data['field_title'], description=data['field_description'], default_language=data['default_language']) # Import adapter = TaxonomyImportExportAdapter(self.context) if 'import_file' in data: if data['import_file']: import_file = data['import_file'].data adapter.importDocument(taxonomy, import_file) del data['import_file'] del data['taxonomy'] del data['import_file_purge'] taxonomy.registerBehavior(**data) api.portal.show_message(_(u"Taxonomy imported."), request=self.request) return self.request.RESPONSE.redirect(self.context.portal_url() + '/@@taxonomy-settings')
def __init__(self, name, title, description, field_title, field_description, is_required=False, is_single_select=False, write_permission='', field_prefix="taxonomy_", default_language='en', taxonomy_fieldset='categorization'): self.name = name self.title = _(title) self.description = _(description) self.factory = None self.field_title = field_title self.field_description = field_description self.field_prefix = field_prefix self.is_single_select = is_single_select self.is_required = is_required self.write_permission = write_permission self.default_language = default_language self.taxonomy_fieldset = taxonomy_fieldset
def handle_edit_taxonomy_data_action(self, action): data, errors = self.extractData() if len(data.get('taxonomies', [])) > 0: self.request.RESPONSE.redirect(self.context.portal_url() + '/@@taxonomy-edit-data?taxonomy=' + data.get('taxonomies')[0]) else: api.portal.show_message(_(u"Please select one taxonomy."), request=self.request)
def handle_edit_taxonomy_data_action(self, action): data, errors = self.extractData() if len(data.get('taxonomies', [])) > 0: self.request.RESPONSE.redirect( '{0}/@@taxonomy-edit-data?taxonomy={1}'.format( self.context.portal_url(), data.get('taxonomies')[0])) else: api.portal.show_message(_(u"Please select one taxonomy."), request=self.request)
def handle_edit_taxonomy_action(self, action): data, errors = self.extractData() if len(data.get('taxonomies', [])) > 0: self.request.RESPONSE.redirect( '{0}/@@taxonomy-edit?form.widgets.taxonomy={1}'.format( self.context.portal_url(), data.get('taxonomies')[0])) else: api.portal.show_message(_(u"Please select one taxonomy."), request=self.request)
class TaxonomyEditForm(form.EditForm): fields = field.Fields(ITaxonomyForm) def updateWidgets(self): self.fields['field_prefix'].showDefault = False form.EditForm.updateWidgets(self) self.widgets['taxonomy'].mode = HIDDEN_MODE @view.memoize def getContent(self): return TaxonomyEditFormAdapter(self.context) @button.buttonAndHandler(_(u'Save'), name='save') def handleApply(self, action): data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return # This is sort of a hack; we need the import file purge setting to be # set before applying the file data. self.getContent().purge = data.pop('import_file_purge', False) self.applyChanges(data) sm = self.context.getSiteManager() utility = sm.queryUtility(ITaxonomy, name=data['taxonomy']) if utility is not None: del data['import_file'] del data['taxonomy'] utility.updateBehavior(**data) api.portal.show_message(_(u"Changes saved"), request=self.request) self.request.response.redirect(self.context.absolute_url() + '/@@taxonomy-settings') @button.buttonAndHandler(_(u'Cancel'), name='cancel') def handleCancel(self, action): api.portal.show_message(_(u"Edit cancelled"), request=self.request) self.request.response.redirect(self.context.absolute_url() + '/@@taxonomy-settings')
def handle_delete_taxonomy_action(self, action): data, errors = self.extractData() if len(data.get('taxonomies', [])) > 0: sm = self.context.getSiteManager() for item in data['taxonomies']: utility = sm.queryUtility(ITaxonomy, name=item) utility.unregisterBehavior() sm.unregisterUtility(utility, ITaxonomy, name=item) sm.unregisterUtility(utility, IVocabularyFactory, name=item) sm.unregisterUtility(utility, ITranslationDomain, name=item) api.portal.show_message(_(u"Taxonomy deleted."), request=self.request) else: api.portal.show_message(_(u"Please select at least one taxonomy."), request=self.request) return self.request.RESPONSE.redirect(self.context.portal_url() + '/@@taxonomy-settings')
def handle_edit_taxonomy_action(self, action): data, errors = self.extractData() if len(data.get('taxonomies', [])) > 0: self.request.RESPONSE.redirect( self.context.portal_url() + '/@@taxonomy-edit?form.widgets.taxonomy=' + data.get('taxonomies')[0] ) else: api.portal.show_message(_(u"Please select one taxonomy."), request=self.request)
class TaxonomyEditForm(form.EditForm): fields = field.Fields(ITaxonomyForm) def updateWidgets(self): form.EditForm.updateWidgets(self) self.widgets['taxonomy'].mode = HIDDEN_MODE def getContent(self): return TaxonomyEditFormAdapter(self.context) @button.buttonAndHandler(_(u'Save'), name='save') def handleApply(self, action): data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return self.applyChanges(data) sm = self.context.getSiteManager() utility = sm.queryUtility(ITaxonomy, name=data['taxonomy']) if utility is not None: del data['import_file'] del data['taxonomy'] utility.updateBehavior(**data) api.portal.show_message(_(u"Changes saved"), request=self.request) self.request.response.redirect(self.context.absolute_url() + '/@@taxonomy-settings') @button.buttonAndHandler(_(u'Cancel'), name='cancel') def handleCancel(self, action): api.portal.show_message(_(u"Edit cancelled"), request=self.request) self.request.response.redirect(self.context.absolute_url() + '/@@taxonomy-settings')
def handleApply(self, action): data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return self.applyChanges(data) sm = self.context.getSiteManager() utility = sm.queryUtility(ITaxonomy, name=data['taxonomy']) if utility is not None: del data['import_file'] del data['taxonomy'] utility.updateBehavior(**data) api.portal.show_message(_(u"Changes saved"), request=self.request) self.request.response.redirect(self.context.absolute_url() + '/@@taxonomy-settings')
def handleApply(self, action): data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return # This is sort of a hack; we need the import file purge setting to be # set before applying the file data. self.getContent().purge = data.pop('import_file_purge', False) self.applyChanges(data) sm = self.context.getSiteManager() utility = sm.queryUtility(ITaxonomy, name=data['taxonomy']) if utility is not None: del data['import_file'] del data['taxonomy'] utility.updateBehavior(**data) api.portal.show_message(_(u"Changes saved"), request=self.request) self.request.response.redirect('{0}/@@taxonomy-settings'.format( self.context.absolute_url()))
def handleApply(self, action): data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return # This is sort of a hack; we need the import file purge setting to be # set before applying the file data. self.getContent().purge = data.pop('import_file_purge', False) self.applyChanges(data) sm = self.context.getSiteManager() utility = sm.queryUtility(ITaxonomy, name=data['taxonomy']) if utility is not None: del data['import_file'] del data['taxonomy'] utility.updateBehavior(**data) api.portal.show_message(_(u"Changes saved"), request=self.request) self.request.response.redirect( '{0}/@@taxonomy-settings'.format(self.context.absolute_url()))
class TaxonomySettingsControlPanel(controlpanel.RegistryEditForm): """ A controlpanel for managing taxonomies """ id = "TaxonomySettings" label = _("Taxonomy settings") schema = ITaxonomySettings schema_prefix = 'collective' description = _("Taxonomy settings") def updateFields(self): super(TaxonomySettingsControlPanel, self).updateFields() self.fields['taxonomies'].widgetFactory = CheckBoxFieldWidget @button.buttonAndHandler(_('Save'), name=None) def handleSave(self, action): pass @button.buttonAndHandler(_('Cancel'), name='cancel') def handleCancel(self, action): super(TaxonomySettingsControlPanel, self).handleCancel(self, action) @button.buttonAndHandler(_(u'label_add_taxonomy', default='Add'), name='add-taxonomy') def handle_add_taxonomy_action(self, action): self.request.RESPONSE.redirect(self.context.portal_url() + '/@@taxonomy-add') @button.buttonAndHandler(_(u'label_edit_taxonomy', default='Edit'), name='edit-taxonomy') def handle_edit_taxonomy_action(self, action): data, errors = self.extractData() if len(data.get('taxonomies', [])) > 0: self.request.RESPONSE.redirect( self.context.portal_url() + '/@@taxonomy-edit?form.widgets.taxonomy=' + data.get('taxonomies')[0]) else: api.portal.show_message(_(u"Please select one taxonomy."), request=self.request) @button.buttonAndHandler(_(u'label_edit_data_taxonomy', default='Edit taxonomy data'), name='edit_data_taxonomy') def handle_edit_taxonomy_data_action(self, action): data, errors = self.extractData() if len(data.get('taxonomies', [])) > 0: self.request.RESPONSE.redirect( self.context.portal_url() + '/@@taxonomy-edit-data?form.widgets.taxonomy=' + data.get('taxonomies')[0]) else: api.portal.show_message(_(u"Please select one taxonomy."), request=self.request) @button.buttonAndHandler(_(u'label_delete_taxonomy', default='Delete taxonomy'), name='delete-taxonomy') def handle_delete_taxonomy_action(self, action): data, errors = self.extractData() if len(data.get('taxonomies', [])) > 0: sm = self.context.getSiteManager() for item in data['taxonomies']: utility = sm.queryUtility(ITaxonomy, name=item) utility.unregisterBehavior() sm.unregisterUtility(utility, ITaxonomy, name=item) sm.unregisterUtility(utility, IVocabularyFactory, name=item) sm.unregisterUtility(utility, ITranslationDomain, name=item) api.portal.show_message(_(u"Taxonomy deleted."), request=self.request) else: api.portal.show_message(_(u"Please select at least one taxonomy."), request=self.request) return self.request.RESPONSE.redirect(self.context.portal_url() + '/@@taxonomy-settings') @button.buttonAndHandler(_(u'label_export', default='Export'), name='export') def handle_export_action(self, action): data, errors = self.extractData() sm = self.context.getSiteManager() taxonomies = data.get('taxonomies', []) if len(taxonomies) > 0: adapter = TaxonomyImportExportAdapter(self.context) self.request.RESPONSE.setHeader('Content-type', 'text/xml') utility = sm.queryUtility(ITaxonomy, name=taxonomies[0]) return adapter.exportDocument(utility)
class TaxonomySettingsControlPanelForm(controlpanel.RegistryEditForm): """ A controlpanel for managing taxonomies """ id = "TaxonomySettings" label = _("Taxonomy settings") schema = ITaxonomySettings schema_prefix = 'collective' description = _("Taxonomy settings") def updateFields(self): super(TaxonomySettingsControlPanelForm, self).updateFields() self.fields['taxonomies'].widgetFactory = CheckBoxFieldWidget def updateActions(self): super(controlpanel.RegistryEditForm, self).updateActions() self.actions['add-taxonomy'].addClass("context") self.actions['edit-taxonomy'].addClass("context") self.actions['edit_data_taxonomy'].addClass("context") self.actions['delete-taxonomy'].addClass("context") self.actions['export'].addClass("context") @button.buttonAndHandler(_(u'label_add_taxonomy', default='Add'), name='add-taxonomy') def handle_add_taxonomy_action(self, action): self.request.RESPONSE.redirect(self.context.portal_url() + '/@@taxonomy-add') @button.buttonAndHandler(_(u'label_edit_taxonomy', default='Edit'), name='edit-taxonomy') def handle_edit_taxonomy_action(self, action): data, errors = self.extractData() if len(data.get('taxonomies', [])) > 0: self.request.RESPONSE.redirect( '{0}/@@taxonomy-edit?form.widgets.taxonomy={1}'.format( self.context.portal_url(), data.get('taxonomies')[0])) else: api.portal.show_message(_(u"Please select one taxonomy."), request=self.request) @button.buttonAndHandler(_(u'label_edit_data_taxonomy', default='Edit taxonomy data'), name='edit_data_taxonomy') def handle_edit_taxonomy_data_action(self, action): data, errors = self.extractData() if len(data.get('taxonomies', [])) > 0: self.request.RESPONSE.redirect( '{0}/@@taxonomy-edit-data?taxonomy={1}'.format( self.context.portal_url(), data.get('taxonomies')[0])) else: api.portal.show_message(_(u"Please select one taxonomy."), request=self.request) @button.buttonAndHandler(_(u'label_delete_taxonomy', default='Delete taxonomy'), name='delete-taxonomy') def handle_delete_taxonomy_action(self, action): data, errors = self.extractData() if len(data.get('taxonomies', [])) > 0: sm = self.context.getSiteManager() for item in data['taxonomies']: utility = sm.queryUtility(ITaxonomy, name=item) utility.unregisterBehavior() sm.unregisterUtility(utility, ITaxonomy, name=item) sm.unregisterUtility(utility, IVocabularyFactory, name=item) sm.unregisterUtility(utility, ITranslationDomain, name=item) api.portal.show_message(_(u"Taxonomy deleted."), request=self.request) else: api.portal.show_message(_(u"Please select at least one taxonomy."), request=self.request) return self.request.RESPONSE.redirect(self.context.portal_url() + '/@@taxonomy-settings') @button.buttonAndHandler(_(u'label_export', default='Export'), name='export') def handle_export_action(self, action): data, errors = self.extractData() taxonomies = data.get('taxonomies', []) if len(taxonomies) > 0: return self.request.RESPONSE.redirect( self.context.portal_url() + '/@@taxonomy-export?taxonomies=' + ','.join(taxonomies)) # noqa
def handleCancel(self, action): api.portal.show_message(_(u"Edit cancelled"), request=self.request) self.request.response.redirect('{0}/@@taxonomy-settings'.format( self.context.absolute_url()))
def handleCancel(self, action): api.portal.show_message(_(u"Edit cancelled"), request=self.request) self.request.response.redirect( '{0}/@@taxonomy-settings'.format(self.context.absolute_url()))