class IRangeSchema(ISchema): """ Schema """ index = schema.Choice( title=_(u'Catalog index'), description=_(u'Catalog index to use for search'), vocabulary=u"eea.faceted.vocabularies.RangeCatalogIndexes", ) labelStart = schema.TextLine( title=_(u"Label (start range)"), description=_(u"Text to be displayed as start range input label"), required=False) labelStart._type = (str, six.text_type) labelEnd = schema.TextLine( title=_(u"Label (end range)"), description=_(u"Text to be displayed as end range input label"), required=False) labelEnd._type = (str, six.text_type) placeholderStart = schema.TextLine( title=_(u"Placeholder (start range)"), description=_( u"Text to be displayed as start range input placeholder"), required=False) placeholderStart._type = (str, six.text_type) placeholderEnd = schema.TextLine( title=_(u"Placeholder (end range)"), description=_(u"Text to be displayed as end range input placeholder"), required=False) placeholderEnd._type = (str, six.text_type)
class SettingsMenu(BrowserSubMenuItem): """ Faceted settings menu """ title = _(u'Faceted settings') description = _(u'Faceted global settings') submenuId = 'faceted_settings_actions' order = 5 extra = {'id': 'faceted_settings'} @property def action(self): """ Submenu action """ return self.context.absolute_url() def available(self): """ Is this menu available? """ return (IFacetedNavigable.providedBy(self.context) and checkPermission('eea.faceted.configure', self.context)) def selected(self): """ Is this item selected? """ return False
class IAutocompleteSchema(ISchema): """ Schema """ index = schema.Choice( title=_(u'Catalog index'), description=_(u'Catalog index to use for search'), vocabulary=u"eea.faceted.vocabularies.TextCatalogIndexes", ) autocomplete_view = schema.Choice( title=_(u"Autocomplete"), description=_(u'Select the source of the autocomplete suggestions'), vocabulary=u'eea.faceted.vocabularies.AutocompleteViews', ) onlyallelements = schema.Bool( title=_(u'Search in all elements only'), description=_(u'If this checkbox is checked, hides the choice to ' u'filter in all items or in current items only'), required=False ) multivalued = schema.Bool( title=_(u'Can select several elements'), description=_(u"Can select multiple values"), required=False ) hidebutton = schema.Bool( title=_(u"Hide search button"), description=_("Do not display the search button"), required=False )
class IPortletSchema(ISchema): """ Schema """ macro = schema.TextLine( title=_(u'Portlet macro'), description=_(u'Path to portlet macro'), ) macro._type = (unicode, str)
class IRangeSchema(ISchema): """ Schema """ index = schema.Choice( title=_(u'Catalog index'), description=_(u'Catalog index to use for search'), vocabulary=u"eea.faceted.vocabularies.RangeCatalogIndexes", )
class IDebugSchema(ISchema): """ Schema """ user = schema.Choice( title=_(u'Visible to'), description=_(u'Widget will be visible only for selected user'), vocabulary=u'eea.faceted.vocabularies.CurrentUser', )
class IIntRangeSchema(ISchema): """ Schema """ index = schema.Choice( title=_(u'Catalog index'), description=_(u'Catalog index to use for search'), vocabulary=u'eea.faceted.vocabularies.TextCatalogIndexes', required=True)
def toggle_right_column(self, **kwargs): """ Show / hide plone portlets left column """ if IHidePloneRightColumn.providedBy(self.context): noLongerProvides(self.context, IHidePloneRightColumn) return self._redirect(_('Portlets right column is visible now')) else: alsoProvides(self.context, IHidePloneRightColumn) return self._redirect(_('Portlets right column is hidden now'))
class ISortingSchema(ISchema): """ Schema """ vocabulary = schema.Choice( title=_(u'Filter from vocabulary'), description=_(u'Vocabulary to use to filter sorting criteria. ' u'Leave empty for default sorting criteria.'), vocabulary=u'eea.faceted.vocabularies.PortalVocabularies', required=False)
def toggle_smart_facets(self, **kwargs): """ Enable/Disable 'smart facets hiding' """ if IDisableSmartFacets.providedBy(self.context): noLongerProvides(self.context, IDisableSmartFacets) return self._redirect(_('Smart facets hiding is now enabled')) else: alsoProvides(self.context, IDisableSmartFacets) return self._redirect(_('Smart facets hiding is now disabled'))
class IBooleanSchema(ISchema): """ Schema """ index = schema.Choice( title=_(u'Catalog index'), description=_(u'Catalog index to use for search'), vocabulary=u"eea.faceted.vocabularies.SimpleFieldCatalogIndexes", required=True )
class ICriteriaSchema(ISchema): """ Schema """ hidecriteriaenabled = schema.Bool( title=_(u'Enable hide/show criteria'), description=_(u"Uncheck this box if you don't want hide/show " u"criteria feature enabled on this widget"), required=False, default=True)
class IResultsFilterSchema(ISchema): """ Schema """ default = schema.TextLine( title=_(u'Results Filter'), description=_(u'Default tal expression for query value'), required=False, default=u'python:hasattr(brain, u"Title")', ) default._type = (six.text_type, str)
def toggle_inherit_config(self, **kwargs): """ Enable/Disable 'inheriting configuration' """ if IDontInheritConfiguration.providedBy(self.context): noLongerProvides(self.context, IDontInheritConfiguration) return self._redirect( _('Inheriting configuration if is now enabled')) else: alsoProvides(self.context, IDontInheritConfiguration) return self._redirect( _('Inheriting configuration is now disabled'))
class IAlphabeticSchema(ISchema): """ Schema for Alphabetic Faceted Widget """ default = schema.TextLine(title=_(u"Default value"), description=_(u"Default letter to be selected"), required=False) default._type = (unicode, str) index = schema.Choice( title=_(u"Catalog index"), description=_(u"Catalog index to use for search"), vocabulary=u'eea.faceted.vocabularies.AlphabeticCatalogIndexes')
class IETagSchema(ISchema): """ Schema """ hidden = schema.Bool( title=_(u'Enabled (hidden)'), description=_(u"Hide this widget in order for e-tag to be used"), required=False, default=True) default = schema.TextLine(title=_(u"Default value"), description=_(u"Default e-tag"), required=False, default=u"1.0") default._type = (unicode, str)
class IPathSchema(ISchema): """ Schema """ index = schema.Choice( title=_(u'Catalog index'), description=_(u'Catalog index to use for search'), vocabulary=u"eea.faceted.vocabularies.PathCatalogIndexes", required=True, default=u'path', ) root = schema.TextLine( title=_(u'Root folder'), description=_(u'Navigation js-tree starting point ' u'(relative to plone site. ex: SITE/data-and-maps)'), required=False) root._type = (six.text_type, str) depth = schema.TextLine( title=_(u'Search Depth'), description=_(u'Depth to search the path. 0=this level, ' u'-1=all subfolders recursive, and any other positive ' u'integer count the subfolder-levels to search.'), required=False) depth._type = (six.text_type, str) theme = schema.Choice(title=_(u'Navigation tree theme'), description=_(u'Theme to be used with this widget'), vocabulary=u'eea.faceted.vocabularies.JsTreeThemes', default=u'apple', required=False)
class IPathSelectSchema(ISchema): index = schema.Choice( title=_(u"Catalog index"), description=_(u'Catalog index to be used'), vocabulary=u"eea.faceted.vocabularies.CatalogIndexes", #required=True, ) root = schema.TextLine( title=_(u'Root folder'), description=_(u'Navigation js-tree starting point ' u'(relative to plone site. ex: SITE/data-and-maps)'), required=False ) root._type = (unicode, str) vocabulary = schema.Choice( title=_(u"Vocabulary"), description=_(u'Vocabulary to use to render widget items'), vocabulary=u'eea.faceted.vocabularies.PortalVocabularies', required=False ) sortreversed = schema.Bool( title=_(u"Reverse options"), description=_(u"Sort options reversed"), required=False )
class IResultsPerPageSchema(ISchema): """ Schema """ start = schema.Int( title=_(u'Start'), description=_(u'Results per page starting value'), required=False, default=0 ) end = schema.Int( title=_(u'End'), description=_(u'Results per page ending value'), required=False, default=50 ) step = schema.Int( title=_(u'Step'), description=_(u'Results per page step'), required=False, default=5 ) default = schema.Int( title=_(u'Default value'), description=_(u'Default results per page'), required=False, default=20 )
class IWidgetDirective(Interface): """ Register a widget """ factory = GlobalObject( title=_(u"Factory"), description=_(u"Python name of a factory which can create the" u" implementation object. This must identify an" u" object in a module using the full dotted name."), required=True, ) schema = GlobalInterface(title=_(u"Schema interface"), description=_( u"An interface describing schema to be used" u" within z3c.form"), required=False) accessor = GlobalObject( title=_(u"Accessor"), description=_(u"Accessor to extract data for faceted widget."), required=False) criterion = GlobalInterface(title=_(u"Criterion interface"), description=_(u"Criterion interface"), required=False)
class ITalSchema(ISchema): """ Widget """ index = schema.Choice( title=_(u'Catalog index'), description=_(u'Catalog index to use for search'), vocabulary=u'eea.faceted.vocabularies.SortingCatalogIndexes') default = schema.TextLine( title=_(u'Tal Expression'), description=_(u'Default tal expression for query value'), required=False, default=u'string:', ) default._type = (six.text_type, str)
def disable(self): """ See IFacetedSubtyper """ if not self.can_disable: return self._redirect('Faceted search navigation not supported') noLongerProvides(self.context, IFacetedSearchMode) self._redirect(_('Faceted search disabled'))
class SolrSuggest(BrowserView): """ Solr Autocomplete view """ label = _("solr") def __call__(self): result = [] term = self.request.get('term') manager = queryUtility(ISolrConnectionManager) if not manager or not term: return json.dumps(result) connection = manager.getConnection() if not connection: return json.dumps(result) # XXX this should really go into c.solr request = six.moves.urllib.parse.urlencode({'q': term}, doseq=True) response = connection.doPost( connection.solrBase + '/suggest', request, connection.formheaders) root = etree.fromstring(response.read()) suggestion = root.xpath("//arr[@name='suggestion']") if suggestion: suggestions = suggestion[0].findall('str') result = [{'id': s.text, 'text': s.text} for s in suggestions] return json.dumps(result)
class Widget(AbstractWidget): """ Widget """ # Widget properties widget_type = 'range' widget_label = _('Range') view_js = '++resource++eea.facetednavigation.widgets.range.view.js' edit_js = '++resource++eea.facetednavigation.widgets.range.edit.js' view_css = '++resource++eea.facetednavigation.widgets.range.view.css' edit_css = '++resource++eea.facetednavigation.widgets.range.edit.css' css_class = 'faceted-range-widget' index = ViewPageTemplateFile('widget.pt') edit_schema = AbstractWidget.edit_schema.copy() + EditSchema @property def default(self): """ Return default """ default = self.data.get('default', '') if not default: return ('', '') default = default.split('=>') if len(default) != 2: return ('', '') start, end = default return (start, end) def query(self, form): """ Get value from form and return a catalog dict query """ query = {} index = self.data.get('index', '') index = index.encode('utf-8', 'replace') if not index: return query if self.hidden: start, end = self.default else: value = form.get(self.data.getId(), ()) if not value or len(value)!=2: return query start, end = value if not (start and end): return query # let the field be integer if integer: catalog = getToolByName(self.context, 'portal_catalog') evalues = catalog.uniqueValuesFor(index) if True in [isinstance(v, int) for v in evalues]: start, end = int(start), int(end) query[index] = { 'query': (start, end), 'range': 'min:max' } return query
class Widget(CountableWidget): """ Widget """ # Widget properties widget_type = 'resultsrange' widget_label = _('Results range') view_js = '++resource++collective.bibliocustomviews.resultsrange.view.js' edit_js = '++resource++collective.bibliocustomviews.resultsrange.edit.js' view_css = '++resource++collective.bibliocustomviews.resultsrange.view.css' index = ViewPageTemplateFile('widget.pt') edit_schema = CountableWidget.edit_schema.copy() + EditSchema edit_schema['title'].default = 'Results range' del edit_schema['sortcountable'] @property def default(self): """ Get default values """ value = self.data.get('default', 0) or 0 if value == ALL_VALUE: return ALL_VALUE try: return int(value) except (TypeError, ValueError), err: logger.exception(err) return ALL_VALUE
class SolrSuggest(BrowserView): """ Solr Autocomplete view """ implements(IAutocompleteSuggest) label = _("solr") def __call__(self): result = [] term = self.request.get('term') if not HAS_SOLR or not term: return json.dumps(result) # we import c.solr here, because we checked, if it is available earlier from collective.solr.interfaces import ISolrConnectionManager manager = queryUtility(ISolrConnectionManager) connection = manager.getConnection() # XXX this should really go into c.solr request = urllib.urlencode({'q': term}, doseq=True) response = connection.doPost(connection.solrBase + '/suggest', request, connection.formheaders) root = etree.fromstring(response.read()) suggestion = root.xpath("//arr[@name='suggestion']") if len(suggestion): suggestions = suggestion[0].findall('str') result = [{'id': s.text, 'text': s.text} for s in suggestions] return json.dumps(result)
class Widget(CountableWidget): """ Widget """ # Widget properties widget_type = 'radio' widget_label = _('Radio') view_js = '++resource++eea.facetednavigation.widgets.radio.view.js' edit_js = '++resource++eea.facetednavigation.widgets.radio.edit.js' view_css = '++resource++eea.facetednavigation.widgets.radio.view.css' css_class = 'faceted-radio-widget' index = ViewPageTemplateFile('widget.pt') edit_schema = CountableWidget.edit_schema.copy() + EditSchema def query(self, form): """ Get value from form and return a catalog dict query """ query = {} index = self.data.get('index', '') index = index.encode('utf-8', 'replace') if not index: return query if self.hidden: value = self.default else: value = form.get(self.data.getId(), '') if not value: return query value = atdx_normalize(value) query[index] = value return query
class Widget(CountableWidget): """ Widget """ implements(IAlphabeticWidget) # Widget properties widget_type = 'alphabetic' widget_label = _('Alphabetic') view_js = '++resource++eea.facetednavigation.widgets.alphabets.view.js' edit_js = '++resource++eea.facetednavigation.widgets.alphabets.edit.js' view_css = '++resource++eea.facetednavigation.widgets.alphabets.view.css' edit_css = '++resource++eea.facetednavigation.widgets.alphabets.edit.css' index = ViewPageTemplateFile('widget.pt') edit_schema = CountableWidget.edit_schema.copy() + EditSchema # Widget custom API def getAlphabet(self, lang): """ Get language alphabet """ try: lang = lang.split('-')[0].lower() except Exception, err: logger.exception(err) lang = 'en' return unicode_character_map.get(lang, unicode_character_map.get('en'))
class Widget(CountableWidget): """ Widget """ # Widget properties widget_type = 'select' widget_label = _('Select') view_js = '++resource++eea.facetednavigation.widgets.select.view.js' edit_js = '++resource++eea.facetednavigation.widgets.select.edit.js' view_css = '++resource++eea.facetednavigation.widgets.select.view.css' index = ViewPageTemplateFile('widget.pt') edit_schema = CountableWidget.edit_schema.copy() + EditSchema def query(self, form): """ Get value from form and return a catalog dict query """ query = {} index = self.data.get('index', '') index = index.encode('utf-8', 'replace') if not index: return query if self.hidden: value = self.default else: value = form.get(self.data.getId(), '') if not value: return query if not isinstance(value, unicode): value = value.decode('utf-8') query[index] = value.encode('utf-8') return query
class Widget(AbstractWidget): """ Widget """ # Widget properties widget_type = 'portlet' widget_label = _('Plone portlet') groups = (DefaultSchemata, LayoutSchemata) index = ZopeTwoPageTemplateFile('widget.pt', globals()) @property def macro(self): """ Get macro """ macro = self.data.get('macro', '') if not macro: raise ValueError('Empty macro %s' % macro) macro_list = macro.replace('here/', '', 1) macro_list = macro_list.split('/macros/') if len(macro_list) != 2: raise ValueError('Invalid macro: %s' % macro) path, mode = macro_list path = path.split('/') try: template = self.context.restrictedTraverse(path) template = getattr(template, 'index', template) if template: return template.macros[mode] except Exception: # This means we didn't have access or it doesn't exist raise raise ValueError("Invalid macro: %s" % macro)
def _import_xml(self, **kwargs): """ Import """ upload_file = kwargs.get('import_file', None) if getattr(upload_file, 'read', None): upload_file = upload_file.read() xml = upload_file or '' if not xml.startswith('<?xml version="1.0"'): return _('Please provide a valid xml file') environ = SnapshotImportContext(self.context, 'utf-8') importer = queryMultiAdapter((self.context, environ), IBody) if not importer: return 'No adapter found' importer.body = xml return _(u"Configuration imported")
def delete(self, **kwargs): """ See IFacetedCriteriaHandler """ to_delete = kwargs.get('paths', kwargs.get('ids', ())) handler = getMultiAdapter((self.context, self.request), name=u'faceted_update_criterion') for cid in to_delete: handler.delete(cid) return self._redirect(_(u"Filters deleted"), to=self.redirect)
def disable(self): """ See IFacetedSubtyper """ if not self.can_disable: return self._redirect('Faceted navigation not supported') notify(FacetedWillBeDisabledEvent(self.context)) noLongerProvides(self.context, IFacetedNavigable) notify(FacetedDisabledEvent(self.context)) self._redirect(_('Faceted navigation disabled'))
def enable(self): """ See IFacetedSubtyper """ if not self.can_enable: return self._redirect('Faceted navigation not supported') notify(FacetedWillBeEnabledEvent(self.context)) alsoProvides(self.context, IFacetedNavigable) notify(FacetedEnabledEvent(self.context)) self._redirect(_('Faceted navigation enabled'))
def enable(self): """ See IFacetedSubtyper """ if not self.can_enable: return self._redirect('Faceted search navigation not supported') if not super(FacetedSearchSubtyper, self).is_faceted: super(FacetedSearchSubtyper, self).enable() if not IFacetedSearchMode.providedBy(self.context): alsoProvides(self.context, IFacetedSearchMode) self._redirect(_('Faceted search enabled'))
def select_vocabulary(self): """ Select vocabulary """ # Past res = [ ('now-past', self.translate(_('Past'))), ] for key, value in PAST: key = 'now-%d' % key res.append((key, self.translate(value))) # Present res.append(('now-0', self.translate(_('Today')))) #Future for key, value in FUTURE: key = 'now_%d' % key res.append((key, self.translate(value))) res.append(('now_future', self.translate(_('Future')))) return res
def __call__(self, **kwargs): """ Export / Import configuration """ if self.request: kwargs.update(self.request.form) if 'import_button' in kwargs.keys(): return self.import_xml(**kwargs) if 'export_button' in kwargs.keys(): return self.export_xml(**kwargs) self._redirect(_(u"No action provided"), 'configure_faceted.html')
def getMenuItems(self, context, request): """ Return menu items """ url = context.absolute_url() action = url + '/@@faceted_settings/%s' left_hidden = IHidePloneLeftColumn.providedBy(context) right_hidden = IHidePloneRightColumn.providedBy(context) smart_hidden = IDisableSmartFacets.providedBy(context) menu = [ { 'title': (_('Enable left portlets') if left_hidden else _('Disable left portlets')), 'description': '', 'action': action % 'toggle_left_column', 'selected': not left_hidden, 'icon': ('++resource++faceted_images/show.png' if left_hidden else '++resource++faceted_images/hide.png'), 'extra': { 'id': 'toggle_left_column', 'separator': None, 'class': '' }, 'submenu': None, }, { 'title': (_('Enable right portlets') if right_hidden else _('Disable right portlets')), 'description': '', 'action': action % 'toggle_right_column', 'selected': not right_hidden, 'icon': ('++resource++faceted_images/show.png' if right_hidden else '++resource++faceted_images/hide.png'), 'extra': { 'id': 'toggle_right_column', 'separator': None, 'class': '' }, 'submenu': None, }, { 'title': (_('Enable smart facets hiding') if smart_hidden else _('Disable smart facets hiding')), 'description': '', 'action': action % 'toggle_smart_facets', 'selected': not smart_hidden, 'icon': ('++resource++faceted_images/show.png' if smart_hidden else '++resource++faceted_images/hide.png'), 'extra': { 'id': 'disable_smart_facets', 'separator': None, 'class': '' }, 'submenu': None, }, ] return menu
def enable(self): """ See IFacetedSubtyper """ if not self.can_enable: return self._redirect('Faceted navigation not supported') notify(FacetedWillBeEnabledEvent(self.context)) alsoProvides(self.context, IFacetedNavigable) if not IDisableSmartFacets.providedBy(self.context): alsoProvides(self.context, IDisableSmartFacets) if not IHidePloneLeftColumn.providedBy(self.context): alsoProvides(self.context, IHidePloneLeftColumn) if not IHidePloneRightColumn.providedBy(self.context): alsoProvides(self.context, IHidePloneRightColumn) notify(FacetedEnabledEvent(self.context)) self._redirect(_('Faceted navigation enabled'))
from Products.Archetypes.public import SelectionWidget from Products.Archetypes.public import BooleanWidget from eea.facetednavigation import EEAMessageFactory as _ from eea.facetednavigation.dexterity_support import normalize as atdx_normalize from eea.facetednavigation.widgets import ViewPageTemplateFile from eea.facetednavigation.widgets.widget import CountableWidget EditSchema = Schema(( StringField('index', schemata="default", required=True, vocabulary_factory='eea.faceted.vocabularies.CatalogIndexes', widget=SelectionWidget( label=_(u'Catalog index'), description=_(u'Catalog index to use for search'), i18n_domain="eea" ) ), StringField('vocabulary', schemata="default", vocabulary_factory='eea.faceted.vocabularies.PortalVocabularies', widget=SelectionWidget( label=_(u'Vocabulary'), description=_(u'Vocabulary to use to render widget items'), i18n_domain="eea" ) ), StringField('catalog', schemata="default",
from eea.facetednavigation.dexterity_support import normalize as atdx_normalize from eea.facetednavigation.widgets import ViewPageTemplateFile from eea.faceted.vocabularies.utils import compare from eea.facetednavigation.widgets.widget import CountableWidget from eea.facetednavigation import EEAMessageFactory as _ EditSchema = Schema( ( StringField( "index", schemata="default", required=True, vocabulary_factory="eea.faceted.vocabularies.CatalogIndexes", widget=SelectionWidget( label=_(u"Catalog index"), description=_(u"Catalog index to use for search"), i18n_domain="eea" ), ), StringField( "operator", schemata="default", required=True, vocabulary=DisplayList([("or", "OR"), ("and", "AND")]), default="or", widget=SelectionWidget( format="select", label=_(u"Default operator"), description=_(u"Search with AND/OR between elements"), i18n_domain="eea", ), ),
from Products.Archetypes.public import SelectionWidget from Products.Archetypes.public import BooleanWidget from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile from eea.facetednavigation.widgets.widget import CountableWidget from eea.facetednavigation import EEAMessageFactory as _ EditSchema = Schema(( StringField('index', schemata="default", required=True, vocabulary_factory='eea.faceted.vocabularies.CatalogIndexes', widget=SelectionWidget( label=_(u'Catalog index'), description=_(u'Catalog index to use for search'), i18n_domain="eea" ) ), StringField('vocabulary', schemata="default", vocabulary_factory='eea.faceted.vocabularies.PortalVocabularies', widget=SelectionWidget( label=_(u"Vocabulary"), description=_(u'Vocabulary to use to render widget items'), ) ), StringField('catalog', schemata="default", vocabulary_factory='eea.faceted.vocabularies.UseCatalog',
from Products.Archetypes.public import Schema from Products.Archetypes.public import StringField from Products.Archetypes.public import SelectionWidget from Products.Archetypes.public import DisplayList from eea.facetednavigation.widgets.widget import Widget as AbstractWidget from eea.facetednavigation import EEAMessageFactory as _ EditSchema = Schema(( StringField('user', schemata="default", required=True, vocabulary=DisplayList(()), widget=SelectionWidget( format='select', label=_(u'Visible to'), description=_(u'Widget will be visible only for selected user'), i18n_domain="eea" ) ), )) class Widget(AbstractWidget): """ Widget """ widget_type = 'debug' widget_label = _('Debugger') view_css = '++resource++eea.facetednavigation.widgets.debug.view.css' edit_css = '++resource++eea.facetednavigation.widgets.debug.edit.css' edit_js = '++resource++eea.facetednavigation.widgets.debug.edit.js' view_js = '++resource++eea.facetednavigation.widgets.debug.view.js'
elif '-' in datestr: datestr = datetime.strptime(datestr, '%Y-%m-%d') elif '/' in datestr: datestr = datetime.strptime(datestr, '%Y/%m/%d') except Exception, err: logger.warn(err) return DateTime(datestr) EditSchema = Schema(( StringField('index', schemata="default", required=True, vocabulary_factory='eea.faceted.vocabularies.DateRangeCatalogIndexes', widget=SelectionWidget( format='select', label=_(u'Catalog index'), description=_(u'Catalog index to use for search'), i18n_domain="eea" ) ), StringField('default', schemata="default", widget=StringWidget( size=25, label=_(u'Default value'), description=_(u"Default daterange (e.g. '2009/12/01=>2009/12/31')"), i18n_domain="eea" ) ), StringField('calYearRange', schemata="display",
from Products.Archetypes.public import Schema from Products.Archetypes.public import SelectionWidget from Products.Archetypes.public import StringField from Products.Archetypes.public import StringWidget from eea.facetednavigation.widgets.widget import Widget as AbstractWidget from eea.facetednavigation import EEAMessageFactory as _ EditSchema = Schema(( StringField('index', schemata="default", required=True, vocabulary_factory='eea.faceted.vocabularies.TextCatalogIndexes', widget=SelectionWidget( label=_(u'Catalog index'), description=_(u'Catalog index to use for search'), i18n_domain="eea" ) ), StringField('default', schemata="default", widget=StringWidget( size=25, label=_(u'Default value'), description=_(u'Default string to search for'), i18n_domain="eea" ) ), ))
from eea.facetednavigation.widgets import ViewPageTemplateFile from eea.facetednavigation.widgets.widget import Widget as AbstractWidget from eea.facetednavigation import EEAMessageFactory as _ logger = logging.getLogger('eea.facetednavigation.widgets.path') EditSchema = Schema(( StringField('index', schemata="default", required=True, default='path', vocabulary_factory='eea.faceted.vocabularies.PathCatalogIndexes', widget=SelectionWidget( format='select', label=_(u'Catalog index'), description=_(u'Catalog index to use for search'), i18n_domain="eea" ) ), StringField('root', schemata="default", widget=StringWidget( size=25, label=_(u'Root folder'), description=_(u'Navigation js-tree starting point ' u'(relative to plone site. ex: SITE/data-and-maps)'), i18n_domain="eea" ) ), StringField('default',
try: from zope.browserpage.viewpagetemplatefile import ViewPageTemplateFile except: from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile from Products.CMFCore.utils import getToolByName from Products.ATContentTypes.criteria import _criterionRegistry from eea.facetednavigation.widgets.widget import Widget as AbstractWidget from eea.facetednavigation import EEAMessageFactory as _ EditSchema = Schema(( StringField('vocabulary', schemata="default", vocabulary_factory='eea.faceted.vocabularies.PortalVocabularies', widget=SelectionWidget( label=_(u'Filter from vocabulary'), description=_(u'Vocabulary to use to filter sorting criteria. ' u'Leave empty for default sorting criteria.'), i18n_domain="eea" ) ), StringField('default', schemata="default", widget=StringWidget( size=25, label=_(u'Default value'), description=_(u"Default sorting index " u"(e.g. 'effective' or 'effective(reverse)')"), i18n_domain="eea" ) ),
from eea.facetednavigation.widgets.interfaces import IWidget def compare(a, b): """ Compare lower values """ return cmp(a.lower(), b.lower()) logger = logging.getLogger('eea.facetednavigation.widgets.widget') CommonEditSchema = Schema(( StringField('title', schemata="default", required=True, widget=StringWidget( size=25, label=_(u"Friendly name"), description=_(u"Title for widget to display in view page"), ) ), StringField('position', schemata="layout", vocabulary_factory="eea.faceted.vocabularies.WidgetPositions", widget=SelectionWidget( format='select', label=_(u'Position'), description=_(u"Widget position in page"), ) ), StringField('section', schemata="layout", vocabulary_factory="eea.faceted.vocabularies.WidgetSections",
) from eea.facetednavigation.widgets.alphabetic.interfaces import ( IAlphabeticWidget, ) from eea.facetednavigation import EEAMessageFactory as _ logger = logging.getLogger('eea.facetednavigation.widgets.alphabetic') EditSchema = Schema(( StringField('index', schemata="default", required=True, vocabulary_factory='eea.faceted.vocabularies.AlphabeticCatalogIndexes', widget=SelectionWidget( format='select', label=_(u"Catalog index"), description=_(u"Catalog index to use for search"), ) ), StringField('default', schemata="default", widget=StringWidget( size=3, maxlength=1, label=_(u"Default value"), description=_(u"Default letter to be selected"), ) ), )) class Widget(CountableWidget):
""" Criteria widget """ from Products.Archetypes.public import Schema from Products.Archetypes.public import BooleanField, BooleanWidget from eea.facetednavigation.widgets import ViewPageTemplateFile from eea.facetednavigation.widgets.widget import Widget as AbstractWidget from eea.facetednavigation import EEAMessageFactory as _ EditSchema = Schema(( BooleanField('hidecriteriaenabled', schemata="default", widget=BooleanWidget( label=_(u'Enable hide/show criteria'), description=_(u"Uncheck this box if you don't want hide/show " "criteria feature enabled on this widget"), i18n_domain="eea" ) ), )) class Widget(AbstractWidget): """ Widget """ # Widget properties widget_type = 'criteria' widget_label = _('Filters') view_js = '++resource++eea.facetednavigation.widgets.criteria.view.js' view_css = '++resource++eea.facetednavigation.widgets.criteria.view.css' edit_css = '++resource++eea.facetednavigation.widgets.criteria.edit.css'
from zope.app.pagetemplate.engine import TrustedEngine, TrustedZopeContext from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile # Package from eea.facetednavigation.widgets.widget import Widget as AbstractWidget from eea.facetednavigation import EEAMessageFactory as _ logger = logging.getLogger('eea.facetednavigation.widgets.tal') EditSchema = Schema(( StringField('index', schemata="default", required=True, vocabulary_factory='eea.faceted.vocabularies.CatalogIndexes', widget=SelectionWidget( label=_(u'Catalog index'), description=_(u'Catalog index to use for search'), i18n_domain="eea" ) ), StringField('default', schemata="default", default='string:', widget=StringWidget( label=_(u'Tal Expression'), description=_(u'Default tal expression for query value'), i18n_domain="eea" ) ), ))
) from eea.facetednavigation.widgets.alphabetic.interfaces import ( IAlphabeticWidget, ) from eea.facetednavigation import EEAMessageFactory as _ logger = logging.getLogger('eea.facetednavigation.widgets.alphabetic') EditSchema = Schema(( StringField('index', schemata="default", required=True, vocabulary_factory='eea.faceted.vocabularies.AlphabeticCatalogIndexes', widget=SelectionWidget( format='select', label=_(u"Catalog index"), description=_(u"Catalog index to use for search"), ) ), BooleanField('count', schemata="countable", widget=BooleanWidget( label=_(u"Count results"), description=_(u'Display number of results per letter'), ) ), BooleanField('hidezerocount', schemata="countable", widget=BooleanWidget( label=_(u"Hide items with zero results"), description=_(u"This option works only if 'count results' "
from eea.facetednavigation.widgets.widget import CountableWidget from eea.facetednavigation import EEAMessageFactory as _ from plone.app.uuid.utils import uuidToCatalogBrain from zope.component import queryUtility EditSchema = Schema(( StringField('index', schemata="default", required=True, vocabulary_factory='eea.faceted.vocabularies.PathCatalogIndexes', widget=SelectionWidget( format='select', label=_(u'Catalog index'), description=_(u'Catalog index to use for search'), i18n_domain="eea" ) ), StringField('root', schemata="default", widget=StringWidget( size=25, label=_(u'Root folder'), description=_(u'Full path to default container relative site root' u'Will be used if All is selected.'), i18n_domain="eea" ) ), StringField('vocabulary',
from eea.faceted.vocabularies.autocomplete import IAutocompleteSuggest from eea.facetednavigation import EEAMessageFactory as _ from eea.facetednavigation.widgets import ViewPageTemplateFile from eea.facetednavigation.widgets.widget import Widget as AbstractWidget from eea.facetednavigation.config import HAS_SOLR from zope.interface import implements EditSchema = Schema(( StringField( 'index', schemata="default", required=True, vocabulary_factory='eea.faceted.vocabularies.TextCatalogIndexes', widget=SelectionWidget( label=_(u'Catalog index'), description=_(u'Catalog index to use for search'), i18n_domain="eea" ) ), StringField( 'default', schemata="default", widget=StringWidget( size=25, label=_(u'Default value'), description=_(u'Default string to search for'), i18n_domain="eea" ) ), StringField(
from eea.facetednavigation.dexterity_support import normalize as atdx_normalize from eea.facetednavigation.widgets import ViewPageTemplateFile from eea.faceted.vocabularies.utils import compare from eea.facetednavigation.widgets.widget import CountableWidget from eea.facetednavigation import EEAMessageFactory as _ from zope.component import getUtility from zope.schema.interfaces import IVocabularyFactory EditSchema = Schema(( IntegerField( 'maxitems', schemata="display", default=0, widget=IntegerWidget( label=_(u"Maximum items"), description=_(u'Number of items visible in widget'), ) ), LinesField( 'default', schemata="default", widget=LinesWidget( label=_(u'Default value'), description=_(u'Default items (one per line)'), i18n_domain="eea" ) ), ))
from eea.facetednavigation.widgets import ViewPageTemplateFile from eea.facetednavigation.widgets.widget import Widget as AbstractWidget from eea.facetednavigation import EEAMessageFactory as _ from Products.Archetypes.Field import BooleanField from Products.Archetypes.Widget import BooleanWidget EditSchema = Schema( ( StringField( "index", schemata="default", required=True, vocabulary_factory="eea.faceted.vocabularies.TextCatalogIndexes", widget=SelectionWidget( label=_(u"Catalog index"), description=_(u"Catalog index to use for search"), i18n_domain="eea" ), ), StringField( "default", schemata="default", widget=StringWidget( size=25, label=_(u"Default value"), description=_(u"Default string to search for"), i18n_domain="eea" ), ), BooleanField( "onlyallelements", schemata="default", widget=BooleanWidget( label=_(u"Search in all elements only"), description=_(