Ejemplo n.º 1
0
def send_feedback(request):
    error = None
    form = ErrorForm(data=request.POST.copy())
    if form.is_valid():
        error = form.cleaned_data['error']
        comment = form.cleaned_data['comment']
        email = form.cleaned_data['email']
        try:
            sf = SendFeedback(settings.FEEDBACK_URL)
            sf.send_feedback(error=error, comment=comment, email=email,
                             user_agent=get_user_agent(request))
        except Exception, e:
            logger.error('handler500: Feedback could not be sent')
            logger.error(traceback.format_exc())
            error = ("Feedback could not been sent. Please contact"
                     " administrator. %s" % e)
            fileObj = open(
                ("%s/error500-%s.html"
                 % (settings.LOGDIR, datetime.datetime.now())), "w")
            try:
                try:
                    fileObj.write(request.POST['error'])
                except:
                    logger.error('handler500: Error could not be saved.')
                    logger.error(traceback.format_exc())
            finally:
                fileObj.close()
        else:
            if request.is_ajax():
                return HttpResponse(
                    "<h1>Thanks for your feedback</h1><p>You may need to"
                    " refresh your browser to recover from the error</p>")
            return HttpResponseRedirect(reverse("fthanks"))
Ejemplo n.º 2
0
def send_feedback(request):
    error = None
    form = ErrorForm(data=request.REQUEST.copy())
    if form.is_valid():
        error = request.REQUEST['error']
        comment = None
        if request.REQUEST.get('comment',None) is not None and request.REQUEST['comment'] != "":
            comment = request.REQUEST['comment']
        email = None
        if request.REQUEST.get('email', None) is not None and request.REQUEST['email'] != "":
            email = request.REQUEST['email']
        try:
            sf = SendFeedback()
            sf.give_feedback(error, comment, email)
        except:
            logger.error('handler500: Feedback could not be sent')
            logger.error(traceback.format_exc())
            error = "Feedback could not been sent. Please contact administrator."
            fileObj = open(("%s/error500-%s.html" % (settings.LOGDIR, datetime.datetime.now())),"w")
            try:
                try:
                    fileObj.write(request.REQUEST['error'])
                except:
                    logger.error('handler500: Error could not be saved.')
                    logger.error(traceback.format_exc())
            finally:
                fileObj.close()

        return HttpResponseRedirect(reverse("fthanks"))
        
    context = {'form':form, 'error':error}
    t = template_loader.get_template('500.html') 
    c = Context(request, context)
    return HttpResponse(t.render(c))
Ejemplo n.º 3
0
def send_feedback(request):
    error = None
    form = ErrorForm(data=request.POST.copy())
    if form.is_valid():
        error = form.cleaned_data['error']
        comment = form.cleaned_data['comment']
        email = form.cleaned_data['email']
        try:
            sf = SendFeedback(settings.FEEDBACK_URL)
            sf.send_feedback(error=error,
                             comment=comment,
                             email=email,
                             user_agent=get_user_agent(request))
        except Exception, e:
            logger.error('handler500: Feedback could not be sent')
            logger.error(traceback.format_exc())
            error = ("Feedback could not been sent. Please contact"
                     " administrator. %s" % e)
            fileObj = open(("%s/error500-%s.html" %
                            (settings.LOGDIR, datetime.datetime.now())), "w")
            try:
                try:
                    fileObj.write(request.POST['error'])
                except:
                    logger.error('handler500: Error could not be saved.')
                    logger.error(traceback.format_exc())
            finally:
                fileObj.close()
        else:
            if request.is_ajax():
                return HttpResponse(
                    "<h1>Thanks for your feedback</h1><p>You may need to"
                    " refresh your browser to recover from the error</p>")
            return HttpResponseRedirect(reverse("fthanks"))
Ejemplo n.º 4
0
def send_feedback(request):
    if not settings.FEEDBACK_ERROR_ENABLED:
        return HttpResponseRedirect(reverse("feedback_disabled"))

    error = None
    form = ErrorForm(data=request.POST.copy())
    if form.is_valid():
        error = form.cleaned_data["error"]
        comment = form.cleaned_data["comment"]
        email = form.cleaned_data["email"]
        try:
            sf = SendFeedback(settings.FEEDBACK_URL)
            sf.send_feedback(
                error=error,
                comment=comment,
                email=email,
                user_agent=get_user_agent(request),
            )
        except Exception as e:
            logger.error("handler500: Feedback could not be sent")
            logger.error(traceback.format_exc())
            error = ("Feedback could not be sent. Please contact"
                     " administrator. %s" % e)
            fileObj = open(
                ("%s/error500-%s.html" %
                 (settings.LOGDIR, datetime.datetime.now())),
                "w",
            )
            try:
                try:
                    fileObj.write(request.POST["error"])
                except Exception:
                    logger.error("handler500: Error could not be saved.")
                    logger.error(traceback.format_exc())
            finally:
                fileObj.close()
        else:
            if request.is_ajax():
                return HttpResponse(
                    "<h1>Thanks for your feedback</h1><p>You may need to"
                    " refresh your browser to recover from the error</p>")
            return HttpResponseRedirect(reverse("fthanks"))

    context = {"form": form, "error": error}
    return render(request, "500.html", context)
Ejemplo n.º 5
0
def send_feedback(request):
    error = None
    form = ErrorForm(data=request.REQUEST.copy())
    if form.is_valid():
        error = request.REQUEST['error']
        comment = None
        if request.REQUEST.get(
                'comment',
                None) is not None and request.REQUEST['comment'] != "":
            comment = request.REQUEST['comment']
        email = None
        if request.REQUEST.get(
                'email', None) is not None and request.REQUEST['email'] != "":
            email = request.REQUEST['email']
        try:
            sf = SendFeedback()
            sf.give_feedback(error, comment, email)
        except:
            logger.error('handler500: Feedback could not be sent')
            logger.error(traceback.format_exc())
            error = "Feedback could not been sent. Please contact administrator."
            fileObj = open(("%s/error500-%s.html" %
                            (settings.LOGDIR, datetime.datetime.now())), "w")
            try:
                try:
                    fileObj.write(request.REQUEST['error'])
                except:
                    logger.error('handler500: Error could not be saved.')
                    logger.error(traceback.format_exc())
            finally:
                fileObj.close()

        if request.is_ajax():
            return HttpResponse(
                "<h1>Thanks for your feedback</h1><p>You may need to refresh your browser to recover from the error</p>"
            )
        return HttpResponseRedirect(reverse("fthanks"))

    context = {'form': form, 'error': error}
    t = template_loader.get_template('500.html')
    c = RequestContext(request, context)
    return HttpResponse(t.render(c))
Ejemplo n.º 6
0
def custom_server_error(request, error500):
    """
    Custom 500 error handler.

    Templates: `500.html`
    Context: ErrorForm
    """
    form = ErrorForm(initial={'error':error500})
    context = {'form':form}
    t = template_loader.get_template('500.html') 
    c = RequestContext(request, context)
    return HttpResponse(t.render(c))
Ejemplo n.º 7
0
def handler500(request):
    """
    Custom error handling.
    Catches errors that are not handled elsewhere.
    NB: This only gets used by Django if omero.web.debug False (production use)
    If debug is True, Django returns it's own debug error page
    """
    logger.error('handler500: Server error')

    as_string = '\n'.join(traceback.format_exception(*sys.exc_info()))
    logger.error(as_string)

    try:
        error_filter = get_exception_reporter_filter(request)
        try:
            request_repr = '\n{}'.format(
                force_text(error_filter.get_request_repr(request)))
        except:
            request_repr = error_filter.get_request_repr(request)
    except:
        try:
            request_repr = repr(request)
        except:
            request_repr = "Request unavailable"

    error500 = "%s\n%s" % (as_string, request_repr)

    # If AJAX, return JUST the error message (not within html page)
    if request.is_ajax():
        return HttpResponseServerError(error500)

    if settings.FEEDBACK_ERROR_ENABLED:
        form = ErrorForm(initial={'error': error500})
        context = {'form': form}
        t = template_loader.get_template('500.html')
    else:
        context = {'error500': error500}
        t = template_loader.get_template('500-nosubmit.html')
    c = RequestContext(request, context)
    return HttpResponseServerError(t.render(c))