Merge pull request #9 from medmunds/admin_remove_verify_sender

Remove obsolete admin related to sender verification
This commit is contained in:
Kenneth Love
2012-11-23 09:53:07 -08:00
7 changed files with 8 additions and 141 deletions

View File

@@ -7,7 +7,6 @@ email service from MailChimp_.
An optional Django admin interface is included. The admin interface allows you to: An optional Django admin interface is included. The admin interface allows you to:
* Check the status of your Mandrill API connection. * Check the status of your Mandrill API connection.
* Add/disable email senders.
* See stats on email tags and urls. * See stats on email tags and urls.
Installation Installation

View File

@@ -1,8 +1,7 @@
from django.contrib import admin from django.contrib import admin
from djrill.views import (DjrillIndexView, DjrillSendersListView, from djrill.views import (DjrillIndexView, DjrillSendersListView,
DjrillDisableSenderView, DjrillVerifySenderView, DjrillTagListView,
DjrillAddSenderView, DjrillTagListView,
DjrillUrlListView) DjrillUrlListView)
admin.site.register_view("djrill/senders/", DjrillSendersListView.as_view(), admin.site.register_view("djrill/senders/", DjrillSendersListView.as_view(),
@@ -13,10 +12,3 @@ admin.site.register_view("djrill/tags/", DjrillTagListView.as_view(),
"djrill_tags", "tags") "djrill_tags", "tags")
admin.site.register_view("djrill/urls/", DjrillUrlListView.as_view(), admin.site.register_view("djrill/urls/", DjrillUrlListView.as_view(),
"djrill_urls", "urls") "djrill_urls", "urls")
admin.site.register_url("djrill/disable/sender/",
DjrillDisableSenderView.as_view(), "djrill_disable_sender")
admin.site.register_url("djrill/verify/sender/",
DjrillVerifySenderView.as_view(), "djrill_verify_sender")
admin.site.register_url("djrill/add/sender/",
DjrillAddSenderView.as_view(), "djrill_add_sender")

View File

@@ -1,7 +0,0 @@
from django import forms
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
class CreateSenderForm(forms.Form):
email = forms.EmailField()

View File

@@ -39,32 +39,8 @@
{% block content %} {% block content %}
<div id="content-main"> <div id="content-main">
{% block object-tools %}
{% if has_add_permission %}
<ul class="object-tools">
{% block object-tools-items %}
<li>
<a href="add/{% if is_popup %}?_popup=1{% endif %}" class="addlink">
{% blocktrans %}Add sender{% endblocktrans %}
</a>
</li>
{% endblock %}
</ul>
{% endif %}
{% endblock %}
<div class="module filtered" id="changelist"> <div class="module filtered" id="changelist">
{% block search %}
<div id="toolbar">
<form action="{% url "admin:djrill_add_sender" %}" method="POST">
<label for="id_email" class="addlink">Add a new sender</label>
<input type="email" placeholder="E-mail address" name="email" id="id_email">
{% csrf_token %}
<input type="submit" value="Submit">
</form>
</div>
{% endblock %}
{% block date_hierarchy %}{% endblock %} {% block date_hierarchy %}{% endblock %}
{% block filters %} {% block filters %}
@@ -80,7 +56,6 @@
{% for header in objects.0.keys %} {% for header in objects.0.keys %}
<th scope="col">{{ header|capfirst }}</th> <th scope="col">{{ header|capfirst }}</th>
{% endfor %} {% endfor %}
<th></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@@ -89,21 +64,6 @@
{% for item in result.values %} {% for item in result.values %}
<td>{{ item }}</td> <td>{{ item }}</td>
{% endfor %} {% endfor %}
<td>
{% if result.is_enabled and result.approved_at %}
<form method="POST" action="{% url "admin:djrill_disable_sender" %}">
{% else %}
<form method="POST" action="{% url "admin:djrill_verify_sender" %}">
{% endif %}
<input type="hidden" name="email" value="{{ result.address }}">
{% csrf_token %}
{% if result.is_enabled and result.approved_at %}
<button>disable</buton>
{% else %}
<button>enable</buton>
{% endif %}
</form>
</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>

View File

@@ -39,19 +39,6 @@
{% block content %} {% block content %}
<div id="content-main"> <div id="content-main">
{% block object-tools %}
{% if has_add_permission %}
<ul class="object-tools">
{% block object-tools-items %}
<li>
<a href="add/{% if is_popup %}?_popup=1{% endif %}" class="addlink">
{% blocktrans %}Add sender{% endblocktrans %}
</a>
</li>
{% endblock %}
</ul>
{% endif %}
{% endblock %}
<div class="module filtered" id="changelist"> <div class="module filtered" id="changelist">
{% block search %} {% endblock %} {% block search %} {% endblock %}

View File

@@ -39,19 +39,6 @@
{% block content %} {% block content %}
<div id="content-main"> <div id="content-main">
{% block object-tools %}
{% if has_add_permission %}
<ul class="object-tools">
{% block object-tools-items %}
<li>
<a href="add/{% if is_popup %}?_popup=1{% endif %}" class="addlink">
{% blocktrans %}Add sender{% endblocktrans %}
</a>
</li>
{% endblock %}
</ul>
{% endif %}
{% endblock %}
<div class="module filtered" id="changelist"> <div class="module filtered" id="changelist">
{% block search %}{% endblock %} {% block search %}{% endblock %}

View File

@@ -2,17 +2,10 @@ from django import forms
from django.conf import settings from django.conf import settings
from django.contrib import messages from django.contrib import messages
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import reverse
from django.http import (HttpResponseForbidden, HttpResponseRedirect)
from django.utils import simplejson as json from django.utils import simplejson as json
from django.views.generic import TemplateView, View from django.views.generic import TemplateView
from djrill.forms import CreateSenderForm import requests
try:
import requests
except ImportError:
raise ImportError("Install the damn requirements!")
class DjrillAdminMedia(object): class DjrillAdminMedia(object):
@@ -28,7 +21,7 @@ class DjrillApiMixin(object):
""" """
Simple Mixin to grab the api info from the settings file. Simple Mixin to grab the api info from the settings file.
""" """
def __init__(self, *args, **kwargs): def __init__(self):
self.api_key = getattr(settings, "MANDRILL_API_KEY", None) self.api_key = getattr(settings, "MANDRILL_API_KEY", None)
self.api_url = getattr(settings, "MANDRILL_API_URL", None) self.api_url = getattr(settings, "MANDRILL_API_URL", None)
@@ -90,7 +83,7 @@ class DjrillApiJsonObjectsMixin(object):
class DjrillIndexView(DjrillApiMixin, TemplateView): class DjrillIndexView(DjrillApiMixin, TemplateView):
template_name = "djrill/status.html" template_name = "djrill/status.html"
def get(self, request): def get(self, request, *args, **kwargs):
payload = json.dumps({"key": self.api_key}) payload = json.dumps({"key": self.api_key})
req = requests.post("%s/users/info.json" % self.api_url, data=payload) req = requests.post("%s/users/info.json" % self.api_url, data=payload)
@@ -104,68 +97,24 @@ class DjrillSendersListView(DjrillAdminMedia, DjrillApiMixin,
api_uri = "users/senders.json" api_uri = "users/senders.json"
template_name = "djrill/senders_list.html" template_name = "djrill/senders_list.html"
def get(self, request): def get(self, request, *args, **kwargs):
form = CreateSenderForm()
objects = self.get_json_objects() objects = self.get_json_objects()
context = self.get_context_data() context = self.get_context_data()
context.update({ context.update({
"objects": json.loads(objects), "objects": json.loads(objects),
"media": self.media, "media": self.media,
"form": form
}) })
return self.render_to_response(context) return self.render_to_response(context)
class DjrillSenderView(DjrillApiMixin, View):
api_action = None
error_message = None
success_message = None
def post(self, request):
email = request.POST.get("email", None)
if email:
payload = {
"key": self.api_key,
"email": email
}
req = requests.post("%s/%s" % (self.api_url, self.api_action),
data=json.dumps(payload))
if req.status_code == 200:
messages.success(request, self.success_message)
else:
messages.error(request, self.error_message)
return HttpResponseRedirect(reverse("admin:djrill_senders"))
return HttpResponseForbidden()
class DjrillDisableSenderView(DjrillSenderView):
api_action = "users/disable-sender.json"
error_message = "Sender was not disabled."
success_message = "Sender was disabled."
class DjrillVerifySenderView(DjrillSenderView):
api_action = "users/verify-sender.json"
error_message = "Sender was not verified."
success_message = "Sender was verified."
class DjrillAddSenderView(DjrillVerifySenderView):
error_message = "Sender was not added."
success_message = "Sender was added."
class DjrillTagListView(DjrillAdminMedia, DjrillApiMixin, class DjrillTagListView(DjrillAdminMedia, DjrillApiMixin,
DjrillApiJsonObjectsMixin, TemplateView): DjrillApiJsonObjectsMixin, TemplateView):
api_uri = "tags/list.json" api_uri = "tags/list.json"
template_name = "djrill/tags_list.html" template_name = "djrill/tags_list.html"
def get(self, request): def get(self, request, *args, **kwargs):
objects = self.get_json_objects() objects = self.get_json_objects()
context = self.get_context_data() context = self.get_context_data()
context.update({ context.update({
@@ -180,7 +129,7 @@ class DjrillUrlListView(DjrillAdminMedia, DjrillApiMixin,
api_uri = "urls/list.json" api_uri = "urls/list.json"
template_name = "djrill/urls_list.html" template_name = "djrill/urls_list.html"
def get(self, request): def get(self, request, *args, **kwargs):
objects = self.get_json_objects() objects = self.get_json_objects()
context = self.get_context_data() context = self.get_context_data()
context.update({ context.update({