Example #1
0
def single(request, log_id, display="full"):
    log = ExceptionRecord.get(log_id)
    if request.method == "POST":
        action = request.POST.get("action", None)
        username = request.user.username if request.user and not request.user.is_anonymous() else "unknown"
        if action == "delete":
            log.delete()
            messages.success(request, "Log was deleted!")
            return HttpResponseRedirect(reverse("couchlog_home"))
        elif action == "archive":
            log.archive(username)
            messages.success(request, "Log was archived!")
        elif action == "move_to_inbox":
            log.reopen(username)
            messages.success(request, "Log was moved!")
    
    if display == "ajax":
        template = "couchlog/ajax/single.html"
    elif display == "full":
        template = "couchlog/single.html"
    else:
        raise ValueError("Unknown display type: %s" % display)
    return render_to_response(template, 
                              {"log": log,
                               "couchlog_config": config},
                              context_instance=RequestContext(request))
Example #2
0
def update(request):
    """
    Update a couch log.
    """
    id = request.POST["id"]
    action = request.POST["action"]
    if not id:
        raise Exception("no id!")
    log = ExceptionRecord.get(id)
    username = request.user.username if request.user and not request.user.is_anonymous() else "unknown"
    if action == "archive":
        log.archive(username)
        text = "archived! press to undo"
        next_action = "move_to_inbox"
    elif action == "move_to_inbox":
        log.reopen(username)
        text = "moved! press to undo"
        next_action = "archive"
    elif action == "delete":
        log.delete()
        text = "deleted!"
        next_action = ""
    to_return = {"id": id, "text": text, "next_action": next_action,
                 "action": action, 
                 "style_class": "archived" if log.archived else "inbox"}
    return HttpResponse(json.dumps(to_return))
 def wrapper(row):
     id = row["id"]
     doc = ExceptionRecord.get(id)
     domain = doc.domain if hasattr(doc, "domain") else ""
     try:
         domain, case_id = domain.split(',')
     except ValueError:
         return {'exception': doc}
     return {
         'domain': domain,
         'case_id': case_id,
         'exception': doc
     }
Example #4
0
def email(request):
    """
    Update a couch log.
    """
    id = request.POST["id"]
    to = request.POST["to"].split(",")
    notes = request.POST["notes"]
    log = ExceptionRecord.get(id)
    if request.user and not request.user.is_anonymous():
        name = request.user.get_full_name()
        username = request.user.username
        reply_to = "%s <%s>" % (request.user.get_full_name(), request.user.email)
    else:
        name = ""
        username = "******"
        reply_to = config.SUPPORT_EMAIL

    url = "{}{}".format(get_url_base(), reverse("couchlog_single", args=[id]))
    email_body = render_to_string("couchlog/email.txt",
                                  {"user_info": "%s (%s)" % (name, username),
                                   "notes": notes,
                                   "exception_url": url})

    try:
        email = EmailMessage("[COUCHLOG ERROR] %s" % Truncator(log.message).words(10),
                             email_body, "%s <%s>" % (name, config.SUPPORT_EMAIL),
                             to, 
                             headers = {'Reply-To': reply_to})
        email.send(fail_silently=False)
        return HttpResponse(json.dumps({"id": id,
                                        "success": True}))
    except Exception, e:
        logging.exception("problem sending couchlog mail")
        return HttpResponse(json.dumps({"id": id,
                                        "success": False, 
                                        "message": str(e)}))
Example #5
0
 def wrapper(row):
     id = row["id"]
     doc = ExceptionRecord.get(id)
     return _record_to_json(doc)