mirror of
https://github.com/pacnpal/django-anymail.git
synced 2025-12-20 11:51:05 -05:00
Merge pull request #9 from medmunds/admin_remove_verify_sender
Remove obsolete admin related to sender verification
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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")
|
|
||||||
|
|||||||
@@ -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()
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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 %}
|
||||||
|
|||||||
@@ -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 %}
|
||||||
|
|||||||
@@ -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({
|
||||||
|
|||||||
Reference in New Issue
Block a user