Add form and view for adding a new sender.

This commit is contained in:
Chris Jones
2012-01-20 16:33:29 -08:00
parent e8c3d84b28
commit b18b3ced46
4 changed files with 45 additions and 3 deletions

View File

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

View File

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

View File

@@ -52,6 +52,14 @@
</ul> </ul>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
<p>Add a new sender</p>
<form action="{% url "admin:djrill_add_sender" %}" method="POST">
{{ form.as_p }}
{% csrf_token %}
<input type="submit" value="Submit">
</form>
<div class="module" id="changelist"> <div class="module" id="changelist">
{% block search %}{% endblock %} {% block search %}{% endblock %}
{% block date_hierarchy %}{% endblock %} {% block date_hierarchy %}{% endblock %}

View File

@@ -7,6 +7,8 @@ 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, View
from djrill.forms import CreateSenderForm
try: try:
import requests import requests
except ImportError: except ImportError:
@@ -71,12 +73,29 @@ class DjrillSendersListView(DjrillAdminMedia, DjrillApiMixin,
template_name = "djrill/senders_list.html" template_name = "djrill/senders_list.html"
def get(self, request): def get(self, request):
form = CreateSenderForm()
objects = self.get_json_objects() objects = self.get_json_objects()
return self.render_to_response({ return self.render_to_response({
"objects": json.loads(objects), "objects": json.loads(objects),
"media": self.media "media": self.media,
"form": form
}) })
def post(self, request):
form = CreateSenderForm(request.POST or None)
if form.is_valid():
return HttpResponseRedirect(reverse("admin:djrill_senders"))
objects = self.get_json_objects()
return self.render_to_response({
"objects": json.loads(objects),
"media": self.media,
"form": form
})
class DjrillSenderView(DjrillApiMixin, View): class DjrillSenderView(DjrillApiMixin, View):
api_action = None api_action = None
@@ -113,3 +132,8 @@ class DjrillVerifySenderView(DjrillSenderView):
api_action = "users/verify-sender.json" api_action = "users/verify-sender.json"
error_message = "Sender was not verified." error_message = "Sender was not verified."
success_message = "Sender was verified." success_message = "Sender was verified."
class DjrillAddSenderView(DjrillVerifySenderView):
error_message = "Sender was not added."
success_message = "Sender was added."