From 7d52fffdcd8ac1992b3a18441836f9a2fdca47e3 Mon Sep 17 00:00:00 2001 From: Bill Fenner Date: Wed, 30 May 2007 17:11:48 +0000 Subject: [PATCH] Implement form for sending email feedback and the actual email sending. - Legacy-Id: 185 --- ietf/idtracker/forms.py | 14 ++++++++++++++ ietf/idtracker/urls.py | 3 +++ ietf/idtracker/views.py | 17 +++++++++++++++++ ietf/templates/idtracker/email_form.html | 18 ++++++++++++++++++ ietf/templates/idtracker/email_sent.html | 7 +++++++ 5 files changed, 59 insertions(+) create mode 100644 ietf/idtracker/forms.py create mode 100644 ietf/templates/idtracker/email_form.html create mode 100644 ietf/templates/idtracker/email_sent.html diff --git a/ietf/idtracker/forms.py b/ietf/idtracker/forms.py new file mode 100644 index 000000000..1a2886db8 --- /dev/null +++ b/ietf/idtracker/forms.py @@ -0,0 +1,14 @@ +from django import newforms as forms + +class EmailFeedback(forms.Form): + category = forms.CharField(widget=forms.HiddenInput()) + name = forms.CharField(label='Your Name') + email = forms.EmailField(label='Your Email') + subject = forms.CharField(widget=forms.TextInput(attrs={'size': 72})) + message = forms.CharField(widget=forms.Textarea(attrs={'rows': 10, 'cols': 70})) + def clean_category(self): + value = self.clean_data.get('category', 'bugs') + if value not in ('bugs', 'discuss'): + raise forms.ValidationError, 'Unknown category, try "discuss" or "bugs".' + return value + diff --git a/ietf/idtracker/urls.py b/ietf/idtracker/urls.py index 6b6a09e19..1836ab11e 100644 --- a/ietf/idtracker/urls.py +++ b/ietf/idtracker/urls.py @@ -21,6 +21,9 @@ urlpatterns = patterns('django.views.generic.simple', (r'^ballot_key/$', 'direct_to_template', { 'template': 'idtracker/view_key.html' }), (r'^evaluation_process/$', 'direct_to_template', { 'template': 'idtracker/view_evaluation_desc.html' }), ) +urlpatterns += patterns('', + (r'^send_email/$', views.send_email), +) urlpatterns += patterns('django.views.generic.list_detail', (r'^rfc(?P\d+)/$', 'object_detail', rfc_dict), (r'^(?P\d+)/$', 'object_detail', id_dict), diff --git a/ietf/idtracker/views.py b/ietf/idtracker/views.py index dcc317594..7d6d6128d 100644 --- a/ietf/idtracker/views.py +++ b/ietf/idtracker/views.py @@ -6,6 +6,8 @@ from django.shortcuts import get_object_or_404, render_to_response from django.db.models import Q from django.views.generic.list_detail import object_detail from ietf.idtracker.models import InternetDraft, IDInternal, IDState, IDSubState +from ietf.idtracker.forms import EmailFeedback +from ietf.utils.mail import send_mail_text # Override default form field mappings # group_acronym: CharField(max_length=10) @@ -118,3 +120,18 @@ def comment(request, slug, object_id, queryset): draft = get_object_or_404(InternetDraft, filename=slug) queryset = queryset.filter(document=draft.id_document_tag) return object_detail(request, queryset=queryset, object_id=object_id) + +def send_email(request): + if request.method == 'POST': + form = EmailFeedback(request.POST) + cat = request.POST.get('category', 'bugs') + if form.is_valid(): + send_mail_text(request, "idtracker-%s@ietf.org" % form.clean_data['category'], (form.clean_data['name'], form.clean_data['email']), '[ID TRACKER %s] %s' % (form.clean_data['category'].upper(), form.clean_data['subject']), form.clean_data['message']) + return render_to_response('idtracker/email_sent.html', {}, + context_instance=RequestContext(request)) + else: + cat = request.REQUEST.get('cat', 'bugs') + form = EmailFeedback(initial={'category': cat}) + return render_to_response('idtracker/email_form.html', {'category': cat, 'form': form}, + context_instance=RequestContext(request)) + diff --git a/ietf/templates/idtracker/email_form.html b/ietf/templates/idtracker/email_form.html new file mode 100644 index 000000000..0e243c50e --- /dev/null +++ b/ietf/templates/idtracker/email_form.html @@ -0,0 +1,18 @@ +{% extends "base.html" %} + +{% block title %}Send E-Mail{% endblock %} + +{% block content %} +

{% ifequal category "discuss" %}Your opinion on {% endifequal %}IDTRACKER{% ifequal category "bugs" %} Error Report{% endifequal %}

+
+ +{{ form }} + + + +
+ +
+
+{% endblock %} + diff --git a/ietf/templates/idtracker/email_sent.html b/ietf/templates/idtracker/email_sent.html new file mode 100644 index 000000000..c3591ed06 --- /dev/null +++ b/ietf/templates/idtracker/email_sent.html @@ -0,0 +1,7 @@ +{% extends "base.html" %} + +{% block title %}Your email has been sent.{% endblock %} + +{% block content %} +

Your message has been sent to IDTRACKER Design Team

+{% endblock %}