diff --git a/djrill/admin.py b/djrill/admin.py index 43b6eb5..b54c3fa 100644 --- a/djrill/admin.py +++ b/djrill/admin.py @@ -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") diff --git a/djrill/forms.py b/djrill/forms.py index e69de29..87e48cf 100644 --- a/djrill/forms.py +++ b/djrill/forms.py @@ -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() diff --git a/djrill/templates/djrill/senders_list.html b/djrill/templates/djrill/senders_list.html index 8d73b76..81771e0 100644 --- a/djrill/templates/djrill/senders_list.html +++ b/djrill/templates/djrill/senders_list.html @@ -52,8 +52,16 @@ {% endif %} {% endblock %} + +

Add a new sender

+
+ {{ form.as_p }} + {% csrf_token %} + +
+
- {% block search %}{% endblock %} + {% block search %}{% endblock %} {% block date_hierarchy %}{% endblock %} {% block filters %}{% endblock %} diff --git a/djrill/views.py b/djrill/views.py index eb2f4f2..28bad62 100644 --- a/djrill/views.py +++ b/djrill/views.py @@ -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."