diff -r 000000000000 -r fd39db613f8b src/pyams_media/site.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_media/site.py Wed Sep 02 15:31:55 2015 +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_media.interfaces import IMediaConversionUtility, CONVERTER_NAME +from pyams_utils.interfaces.site import ISiteGenerations +from zope.site.interfaces import INewLocalSite + +# import packages +from pyams_media.utility import MediaConversionUtility +from pyams_utils.registry import utility_config +from pyams_utils.site import check_required_utilities +from pyramid.events import subscriber + + +REQUIRED_UTILITIES = ((IMediaConversionUtility, '', MediaConversionUtility, CONVERTER_NAME), ) + + +@subscriber(INewLocalSite) +def handle_new_local_site(event): + """Create a new conversion utility when a site is created""" + site = event.manager.__parent__ + check_required_utilities(site, REQUIRED_UTILITIES) + + +@utility_config(name='PyAMS medias converter', provides=ISiteGenerations) +class MediaConversionGenerationsChecker(object): + """Medias conversion utility generations checker""" + + generation = 1 + + def evolve(self, site, current=None): + """Check for required utilities""" + check_required_utilities(site, REQUIRED_UTILITIES)