# HG changeset patch # User Thierry Florac # Date 1401831107 -7200 # Node ID d4270d6b448a1acd73ee4c2371f2608e3c2e65a2 # Parent 4ec2f5fdb47ec365ac049959a7acdde56a71fc50 Added flags and search viewlets diff -r 4ec2f5fdb47e -r d4270d6b448a src/ztfy/myams/viewlet/flags/__init__.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ztfy/myams/viewlet/flags/__init__.py Tue Jun 03 23:31:47 2014 +0200 @@ -0,0 +1,51 @@ +# +# Copyright (c) 2012 Thierry Florac +# All Rights Reserved. +# + + +# import standard packages + +# import Zope3 interfaces +from z3c.language.negotiator.interfaces import INegotiatorManager +from zope.i18n.interfaces import INegotiator + +# import local interfaces + +# import Zope3 packages +from zope.component import adapts, queryUtility +from zope.i18n import translate +from zope.interface import Interface + +# import local packages +from ztfy.baseskin.viewlet import ContentProviderBase +from ztfy.myams.layer import MyAMSLayer + + +class FlagsContentProvider(ContentProviderBase): + """Flags content provider""" + + adapts(Interface, MyAMSLayer, Interface) + + @property + def langs(self): + manager = queryUtility(INegotiatorManager) + if manager is not None: + return manager.offeredLanguages + return () + + def getLabel(self, lang): + try: + from ztfy.i18n.languages import BASE_LANGUAGES + except ImportError: + return lang + else: + return translate(BASE_LANGUAGES.get(lang), context=self.request) + + @property + def current(self): + manager = queryUtility(INegotiatorManager) + negotiator = queryUtility(INegotiator) + if (manager is not None) and (negotiator is not None): + return negotiator.getLanguage(manager.offeredLanguages, self.request) + return None diff -r 4ec2f5fdb47e -r d4270d6b448a src/ztfy/myams/viewlet/flags/configure.zcml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ztfy/myams/viewlet/flags/configure.zcml Tue Jun 03 23:31:47 2014 +0200 @@ -0,0 +1,16 @@ + + + + + + + diff -r 4ec2f5fdb47e -r d4270d6b448a src/ztfy/myams/viewlet/flags/flags.pt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ztfy/myams/viewlet/flags/flags.pt Tue Jun 03 23:31:47 2014 +0200 @@ -0,0 +1,19 @@ + + + + + + + diff -r 4ec2f5fdb47e -r d4270d6b448a src/ztfy/myams/viewlet/search/__init__.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ztfy/myams/viewlet/search/__init__.py Tue Jun 03 23:31:47 2014 +0200 @@ -0,0 +1,72 @@ +# +# Copyright (c) 2014 Thierry Florac +# All Rights Reserved. +# + + +# import standard packages + +# import Zope3 interfaces + +# import local interfaces +from ztfy.myams.interfaces import IMyAMSApplication +from ztfy.myams.interfaces.search import IMyAMSApplicationSearch +from ztfy.myams.viewlet.search.interfaces import ISearchViewlet + +# import Zope3 packages +from zope.component import adapts +from zope.i18n import translate +from zope.interface import implements, Interface + +# import local packages +from ztfy.baseskin.viewlet import ContentProviderBase +from ztfy.myams.layer import MyAMSLayer +from ztfy.utils.traversing import getParent + + +class SiteSearchViewlet(ContentProviderBase): + """Site search content provider""" + + adapts(Interface, MyAMSLayer, Interface) + implements(ISearchViewlet) + + search_config = None + + def update(self): + app = getParent(self.context, IMyAMSApplication) + if app is not None: + self.search_config = IMyAMSApplicationSearch(app, None) + + @property + def placeholder(self): + if self.search_config is not None: + return translate(self.search_config.site_search_placeholder, context=self.request) + + @property + def handler(self): + if self.search_config is not None: + return self.search_config.site_search_handler + + +class MobileSearchViewlet(ContentProviderBase): + """Mobile search content provider""" + + adapts(Interface, MyAMSLayer, Interface) + implements(ISearchViewlet) + + search_config = None + + def update(self): + app = getParent(self.context, IMyAMSApplication) + if app is not None: + self.search_config = IMyAMSApplicationSearch(app, None) + + @property + def placeholder(self): + if self.search_config is not None: + return translate(self.search_config.mobile_search_placeholder, context=self.request) + + @property + def handler(self): + if self.search_config is not None: + return self.search_config.mobile_search_handler diff -r 4ec2f5fdb47e -r d4270d6b448a src/ztfy/myams/viewlet/search/configure.zcml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ztfy/myams/viewlet/search/configure.zcml Tue Jun 03 23:31:47 2014 +0200 @@ -0,0 +1,28 @@ + + + + + + + + + + + diff -r 4ec2f5fdb47e -r d4270d6b448a src/ztfy/myams/viewlet/search/interfaces.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ztfy/myams/viewlet/search/interfaces.py Tue Jun 03 23:31:47 2014 +0200 @@ -0,0 +1,26 @@ +# +# Copyright (c) 2012 Thierry Florac +# All Rights Reserved. +# + + +# import standard packages + +# import Zope3 interfaces + +# import local interfaces + +# import Zope3 packages +from zope.interface import Interface, Attribute + +# import local packages + +from ztfy.myams import _ + + +class ISearchViewlet(Interface): + """Site search viewlet interface""" + + placeholder = Attribute(_("Search input placeholder")) + + handler = Attribute(_("Search handler")) diff -r 4ec2f5fdb47e -r d4270d6b448a src/ztfy/myams/viewlet/search/mobile-search.pt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ztfy/myams/viewlet/search/mobile-search.pt Tue Jun 03 23:31:47 2014 +0200 @@ -0,0 +1,5 @@ +
+ + + +
diff -r 4ec2f5fdb47e -r d4270d6b448a src/ztfy/myams/viewlet/search/site-search.pt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ztfy/myams/viewlet/search/site-search.pt Tue Jun 03 23:31:47 2014 +0200 @@ -0,0 +1,11 @@ +