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"))
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))
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"))
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)
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))
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))
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))