diff --git a/caravel/controllers/moderation.py b/caravel/controllers/moderation.py index f43384a..e249ebd 100644 --- a/caravel/controllers/moderation.py +++ b/caravel/controllers/moderation.py @@ -14,6 +14,11 @@ def user_agent(user_agent): return str(user_agents.parse(user_agent)) +def email_order(entity): + user, domain = entity.principal.email.split("@") + return (domain, user) + + @app.route("/moderation", methods=["GET", "POST"]) def moderation_view(): """ @@ -48,6 +53,9 @@ def moderation_view(): inquiries = model.UnapprovedInquiry().query().fetch(100) listings = model.UnapprovedListing().query().fetch(100) + inquiries.sort(key=email_order) + listings.sort(key=email_order) + return render_template("moderation/view.html", inquiries=inquiries, listings=listings) diff --git a/caravel/static/js/moderation.js b/caravel/static/js/moderation.js index 82599b2..a292db6 100644 --- a/caravel/static/js/moderation.js +++ b/caravel/static/js/moderation.js @@ -11,12 +11,10 @@ var enableModeration = function(csrfToken) { elem.addEventListener("click", function() { var this_ = this, xhr = new XMLHttpRequest; xhr.open("POST", "/moderation", true); - this_.parentNode.parentNode.style.opacity = 0.5; + this_.parentNode.parentNode.remove(); xhr.onreadystatechange = function() { if (xhr.status >= 200 && xhr.status < 300) { - this_.parentNode.parentNode.remove(); - } else { - console.error("XHR FAILED"); + window.alert("XHR FAILED"); } }; xhr.setRequestHeader("Content-type", diff --git a/caravel/templates/moderation/view.html b/caravel/templates/moderation/view.html index 43f1f96..a2ba1fa 100644 --- a/caravel/templates/moderation/view.html +++ b/caravel/templates/moderation/view.html @@ -9,23 +9,22 @@
User Agent | -IP | -Device | Listing | Message | +Moderation | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{{ user_agent(inquiry.principal.device.user_agent) }} | -{{ inquiry.principal.device.ip_address }} | -{{ inquiry.principal.email }} | +{{ user_agent(inquiry.principal.device.user_agent) }} + {{ inquiry.principal.device.ip_address }} |
{{ inquiry.listing.get().title }} | {{ inquiry.message }} | +{{ inquiry.principal.email }} | Approve
Listings
|