Implement form for sending email feedback and the actual email sending.

- Legacy-Id: 185
This commit is contained in:
Bill Fenner 2007-05-30 17:11:48 +00:00
parent e9221db2be
commit 7d52fffdcd
5 changed files with 59 additions and 0 deletions

14
ietf/idtracker/forms.py Normal file
View file

@ -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

View file

@ -21,6 +21,9 @@ urlpatterns = patterns('django.views.generic.simple',
(r'^ballot_key/$', 'direct_to_template', { 'template': 'idtracker/view_key.html' }), (r'^ballot_key/$', 'direct_to_template', { 'template': 'idtracker/view_key.html' }),
(r'^evaluation_process/$', 'direct_to_template', { 'template': 'idtracker/view_evaluation_desc.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', urlpatterns += patterns('django.views.generic.list_detail',
(r'^rfc(?P<object_id>\d+)/$', 'object_detail', rfc_dict), (r'^rfc(?P<object_id>\d+)/$', 'object_detail', rfc_dict),
(r'^(?P<object_id>\d+)/$', 'object_detail', id_dict), (r'^(?P<object_id>\d+)/$', 'object_detail', id_dict),

View file

@ -6,6 +6,8 @@ from django.shortcuts import get_object_or_404, render_to_response
from django.db.models import Q from django.db.models import Q
from django.views.generic.list_detail import object_detail from django.views.generic.list_detail import object_detail
from ietf.idtracker.models import InternetDraft, IDInternal, IDState, IDSubState 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 # Override default form field mappings
# group_acronym: CharField(max_length=10) # 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) draft = get_object_or_404(InternetDraft, filename=slug)
queryset = queryset.filter(document=draft.id_document_tag) queryset = queryset.filter(document=draft.id_document_tag)
return object_detail(request, queryset=queryset, object_id=object_id) 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))

View file

@ -0,0 +1,18 @@
{% extends "base.html" %}
{% block title %}Send E-Mail{% endblock %}
{% block content %}
<h1>{% ifequal category "discuss" %}Your opinion on {% endifequal %}IDTRACKER{% ifequal category "bugs" %} Error Report{% endifequal %}</h1>
<form action="." method="POST">
<table>
{{ form }}
<tr>
<td colspan="2" align="center">
<input type="submit" value="Submit"> <input type="reset" value="Reset">
</td>
</tr>
</table>
</form>
{% endblock %}

View file

@ -0,0 +1,7 @@
{% extends "base.html" %}
{% block title %}Your email has been sent.{% endblock %}
{% block content %}
<h2>Your message has been sent to IDTRACKER Design Team</h2>
{% endblock %}