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))
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 }
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)}))
def wrapper(row): id = row["id"] doc = ExceptionRecord.get(id) return _record_to_json(doc)