src/cm/utils/log.py
author Simon Descarpentries <sid@sopinspace.com>
Mon, 21 Oct 2013 16:50:41 +0200
changeset 554 8e116b8ddbc3
parent 201 e0032b64c314
permissions -rw-r--r--
Merge [text_view_comments] To allow scrolling in Safari mobile, we set the content of text_view_comments frame in a jQuery UI layout. [c_sync.js] So the automated scrolling operations in c_sync.js must be adjustable to the right part to scroll. [c_sync.js] Also, if a comment have to be shown outside of the current viewport, we scroll the correct part to that viewport and then set the comment top Y offset to juste what it needs to avoid the "Add comment" button after scrolling operation. [c_sync.js] If not in Safari mobile, we add an offset here to avoid comment to display under the "Add comment" button.

from django.conf import settings
from django.core.mail import mail_admins
import sys

def _get_traceback(exc_info):
    import traceback
    return '\n'.join(traceback.format_exception(*(exc_info or sys.exc_info())))

def error_mail_admins(subject='Error', request=None):
    if request:        
        subject = 'Error (%s IP): %s' % ((request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS and 'internal' or 'EXTERNAL'), request.path)
        
    try:
        request_repr = repr(request)
    except:
        request_repr = "Request repr() unavailable"
        
    exc_info = sys.exc_info()
    message = "%s\n\n%s" % (_get_traceback(exc_info), request_repr)
    
    mail_admins(subject, message, fail_silently=True)