src/pyams_thesaurus/zmi/thesaurus.py
changeset 3 5c1931a42176
parent 0 47700a43ef3f
child 5 86ddb444d0a9
equal deleted inserted replaced
2:de33539c2db2 3:5c1931a42176
     7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
     7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
     8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
     9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
    10 # FOR A PARTICULAR PURPOSE.
    10 # FOR A PARTICULAR PURPOSE.
    11 #
    11 #
    12 from pyramid.response import Response
       
    13 from pyams_form.schema import CloseButton
       
    14 
    12 
    15 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    16 
    14 
    17 
    15 
    18 # import standard library
    16 # import standard library
    35 from pyams_zmi.layer import IAdminLayer
    33 from pyams_zmi.layer import IAdminLayer
    36 from z3c.form.interfaces import IDataExtractedEvent, DISPLAY_MODE
    34 from z3c.form.interfaces import IDataExtractedEvent, DISPLAY_MODE
    37 
    35 
    38 # import packages
    36 # import packages
    39 from pyams_form.form import AJAXAddForm, AJAXEditForm
    37 from pyams_form.form import AJAXAddForm, AJAXEditForm
       
    38 from pyams_form.schema import CloseButton
    40 from pyams_pagelet.pagelet import pagelet_config
    39 from pyams_pagelet.pagelet import pagelet_config
    41 from pyams_skin.layer import IPyAMSLayer
    40 from pyams_skin.layer import IPyAMSLayer
    42 from pyams_skin.page import InnerPage
    41 from pyams_skin.page import InnerPage
    43 from pyams_skin.table import DefaultElementEditorAdapter
    42 from pyams_skin.table import DefaultElementEditorAdapter
    44 from pyams_skin.viewlet.menu import MenuItem
    43 from pyams_skin.viewlet.menu import MenuItem
    56 from pyams_zmi.control_panel import UtilitiesTable
    55 from pyams_zmi.control_panel import UtilitiesTable
    57 from pyams_zmi.form import AdminDialogAddForm, AdminEditForm
    56 from pyams_zmi.form import AdminDialogAddForm, AdminEditForm
    58 from pyramid.events import subscriber
    57 from pyramid.events import subscriber
    59 from pyramid.exceptions import NotFound
    58 from pyramid.exceptions import NotFound
    60 from pyramid.httpexceptions import HTTPBadRequest
    59 from pyramid.httpexceptions import HTTPBadRequest
       
    60 from pyramid.response import Response
    61 from pyramid.url import resource_url
    61 from pyramid.url import resource_url
    62 from pyramid.view import view_config
    62 from pyramid.view import view_config
    63 from z3c.form import field, button
    63 from z3c.form import field, button
    64 from zope.component.interfaces import ISite
    64 from zope.component.interfaces import ISite
    65 from zope.interface import implementer, Interface, Invalid
    65 from zope.interface import implementer, Interface, Invalid
   389     ajax_handler = 'import.json'
   389     ajax_handler = 'import.json'
   390     edit_permission = None
   390     edit_permission = None
   391 
   391 
   392     def updateWidgets(self, prefix=None):
   392     def updateWidgets(self, prefix=None):
   393         super(ThesaurusImportForm, self).updateWidgets(prefix)
   393         super(ThesaurusImportForm, self).updateWidgets(prefix)
   394         self.widgets['language'].noValueMessage = _("-- automatic selection -- (if available)")
   394         translate = self.request.localizer.translate
   395         self.widgets['encoding'].noValueMessage = _("-- automatic selection -- (if available)")
   395         self.widgets['language'].noValueMessage = translate(_("-- automatic selection -- (if available)"))
       
   396         self.widgets['encoding'].noValueMessage = translate(_("-- automatic selection -- (if available)"))
   396 
   397 
   397     def create(self, data):
   398     def create(self, data):
   398         configuration = ThesaurusUpdaterConfiguration(data)
   399         configuration = ThesaurusUpdaterConfiguration(data)
   399         loader = get_utility(IThesaurusLoader, name=configuration.format)
   400         loader = get_utility(IThesaurusLoader, name=configuration.format)
   400         thesaurus = loader.load(data['data'], configuration)
   401         thesaurus = loader.load(data['data'], configuration)
   445 @pagelet_config(name='export.html', context=IThesaurus, layer=IPyAMSLayer, permission='system.view')
   446 @pagelet_config(name='export.html', context=IThesaurus, layer=IPyAMSLayer, permission='system.view')
   446 class ThesaurusExportForm(AdminDialogAddForm):
   447 class ThesaurusExportForm(AdminDialogAddForm):
   447     """Thesaurus export form"""
   448     """Thesaurus export form"""
   448 
   449 
   449     title = _("Thesaurus")
   450     title = _("Thesaurus")
   450     legend = _("export thesaurus terms")
   451     legend = _("Export thesaurus terms")
   451     icon_css_class = 'fa fa-fw fa-download'
   452     icon_css_class = 'fa fa-fw fa-download'
   452 
   453 
   453     fields = field.Fields(IThesaurusExporterConfiguration)
   454     fields = field.Fields(IThesaurusExporterConfiguration)
   454     buttons = button.Buttons(IThesaurusFormExportButtons)
   455     buttons = button.Buttons(IThesaurusFormExportButtons)
   455 
   456