Revision 9fb7a900

/dev/null
1
# Copyright 2013 GRNET S.A. All rights reserved.
2
#
3
# Redistribution and use in source and binary forms, with or
4
# without modification, are permitted provided that the following
5
# conditions are met:
6
#
7
#   1. Redistributions of source code must retain the above
8
#      copyright notice, this list of conditions and the following
9
#      disclaimer.
10
#
11
#   2. Redistributions in binary form must reproduce the above
12
#      copyright notice, this list of conditions and the following
13
#      disclaimer in the documentation and/or other materials
14
#      provided with the distribution.
15
#
16
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
# POSSIBILITY OF SUCH DAMAGE.
28
#
29
# The views and conclusions contained in the software and
30
# documentation are those of the authors and should not be
31
# interpreted as representing official policies, either expressed
32
# or implied, of GRNET S.A.
33

  
34
from django.contrib import messages
35
from django.utils.translation import ugettext as _
36
import astakos.im.messages as astakos_messages
37
import logging
38

  
39
logger = logging.getLogger(__name__)
40

  
41

  
42
class ExceptionHandler(object):
43
    def __init__(self, request):
44
        self.request = request
45

  
46
    def __enter__(self):
47
        pass
48

  
49
    def __exit__(self, type, value, traceback):
50
        if value is not None:  # exception
51
            logger.exception(value)
52
            m = _(astakos_messages.GENERIC_ERROR)
53
            messages.error(self.request, m)
54
            return True  # suppress exception
b/snf-astakos-app/astakos/im/views/projects.py
1
# Copyright 2011-2012 GRNET S.A. All rights reserved.
1
# Copyright 2011, 2012, 2013 GRNET S.A. All rights reserved.
2 2
#
3 3
# Redistribution and use in source and binary forms, with or
4 4
# without modification, are permitted provided that the following
......
66 66
    get_related_project_id, get_by_chain_or_404, approve_application, \
67 67
    deny_application, cancel_application, dismiss_application
68 68
from astakos.im import settings
69
from astakos.im.ctx import ExceptionHandler
70 69
from astakos.im.views.util import render_response, _create_object, \
71
    _update_object, _resources_catalog
70
    _update_object, _resources_catalog, ExceptionHandler
72 71
from astakos.im.views.decorators import cookie_fix, signed_terms_required,\
73 72
    valid_astakos_user_required
74 73

  
b/snf-astakos-app/astakos/im/views/util.py
1
# Copyright 2011-2012 GRNET S.A. All rights reserved.
1
# Copyright 2011, 2012, 2013 GRNET S.A. All rights reserved.
2 2
#
3 3
# Redistribution and use in source and binary forms, with or
4 4
# without modification, are permitted provided that the following
......
49 49
from astakos.im import presentation
50 50
from astakos.im.util import model_to_dict
51 51
from astakos.im.models import Resource
52
import astakos.im.messages as astakos_messages
53
import logging
54

  
55
logger = logging.getLogger(__name__)
56

  
57

  
58
class ExceptionHandler(object):
59
    def __init__(self, request):
60
        self.request = request
61

  
62
    def __enter__(self):
63
        pass
64

  
65
    def __exit__(self, exc_type, value, traceback):
66
        if value is not None:  # exception
67
            logger.exception(value)
68
            m = _(astakos_messages.GENERIC_ERROR)
69
            messages.error(self.request, m)
70
            return True  # suppress exception
71

  
52 72

  
53 73
def render_response(template, tab=None, status=200, context_instance=None, **kwargs):
54 74
    """

Also available in: Unified diff