diff -r 000000000000 -r c73bb834ccbe src/pyams_gis/site.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_gis/site.py Thu May 18 17:23:48 2017 +0200 @@ -0,0 +1,48 @@ +# +# Copyright (c) 2008-2015 Thierry Florac +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# + +__docformat__ = 'restructuredtext' + + +# import standard library + +# import interfaces +from pyams_gis.interfaces.utility import IMapManager +from pyams_utils.interfaces.site import ISiteGenerations +from zope.site.interfaces import INewLocalSite + +# import packages +from pyams_gis.utility import MapManager +from pyams_utils.registry import utility_config +from pyams_utils.site import check_required_utilities +from pyramid.events import subscriber + + +REQUIRED_UTILITIES = ((IMapManager, '', MapManager, 'Maps manager'), ) + + +@subscriber(INewLocalSite) +def handle_new_local_site(event): + """Create a new map manager when a site is created""" + site = event.manager.__parent__ + check_required_utilities(site, REQUIRED_UTILITIES) + + +@utility_config(name='PyAMS GIS', provides=ISiteGenerations) +class MapGenerationsChecker(object): + """Maps generations checker""" + + generation = 1 + + def evolve(self, site, current=None): + """Check for required utilities""" + check_required_utilities(site, REQUIRED_UTILITIES)