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 djrill.views import (DjrillIndexView, DjrillSendersListView,
DjrillDisableSenderView, DjrillVerifySenderView)
DjrillDisableSenderView, DjrillVerifySenderView,
DjrillAddSenderView)
admin.site.register_view("djrill/senders/", DjrillSendersListView.as_view(),
"djrill_senders", "senders")
@@ -12,3 +13,5 @@ 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

@@ -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>
{% endif %}
{% 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">
{% block search %}{% 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.views.generic import TemplateView, View
from djrill.forms import CreateSenderForm
try:
import requests
except ImportError:
@@ -71,12 +73,29 @@ class DjrillSendersListView(DjrillAdminMedia, DjrillApiMixin,
template_name = "djrill/senders_list.html"
def get(self, request):
form = CreateSenderForm()
objects = self.get_json_objects()
return self.render_to_response({
"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):
api_action = None
@@ -113,3 +132,8 @@ 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."