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: |