src/pyams_notify/views/notification.py
changeset 56 39d7bddcd810
parent 15 eb863d6bc5a9
equal deleted inserted replaced
55:15d11232b0dc 56:39d7bddcd810
    10 # FOR A PARTICULAR PURPOSE.
    10 # FOR A PARTICULAR PURPOSE.
    11 #
    11 #
    12 
    12 
    13 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    14 
    14 
    15 
       
    16 # import standard library
       
    17 import pickle
    15 import pickle
    18 from datetime import datetime
    16 from datetime import datetime
    19 
    17 
    20 # import interfaces
    18 from pyramid.view import view_config
       
    19 
       
    20 from pyams_cache.cache import get_cache_handler
    21 from pyams_cache.interfaces import ICacheHandler
    21 from pyams_cache.interfaces import ICacheHandler
    22 from pyams_notify.interfaces import CACHE_QUEUE_KEY, CACHE_CONFIGURATION_KEY
    22 from pyams_notify.interfaces import CACHE_CONFIGURATION_KEY, CACHE_QUEUE_KEY
    23 from pyams_skin.layer import IPyAMSLayer
    23 from pyams_skin.layer import IPyAMSLayer
    24 from pyams_utils.date import format_datetime
    24 from pyams_utils.date import format_datetime
    25 from pyams_utils.timezone import tztime
    25 from pyams_utils.timezone import tztime
    26 
       
    27 # import packages
       
    28 from pyams_cache.cache import get_cache_handler
       
    29 from pyramid.view import view_config
       
    30 
    26 
    31 
    27 
    32 def get_user_notifications(cache_server, request):
    28 def get_user_notifications(cache_server, request):
    33     """Get notifications for given request"""
    29     """Get notifications for given request"""
    34 
    30 
    35     def filtered(notification, request):
    31     def filtered(notification, request):
    36         """Filter notification against current request"""
    32         """Filter notification against current request"""
       
    33         if request.host != notification.get('host'):
       
    34             return False
    37         target = notification.pop('target', {})
    35         target = notification.pop('target', {})
    38         return request.principal.id in target.get('principals', ())
    36         return request.principal.id in target.get('principals', ())
    39 
    37 
    40     timestamp = format_datetime(tztime(datetime.utcnow()), request=request)
    38     timestamp = format_datetime(tztime(datetime.utcnow()), request=request)
    41     if cache_server is not None:
    39     if cache_server is not None: