Skip to content

Commit 7d52fff

Browse files
committed
Implement form for sending email feedback and the actual email sending.
- Legacy-Id: 185
1 parent e9221db commit 7d52fff

5 files changed

Lines changed: 59 additions & 0 deletions

File tree

ietf/idtracker/forms.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from django import newforms as forms
2+
3+
class EmailFeedback(forms.Form):
4+
category = forms.CharField(widget=forms.HiddenInput())
5+
name = forms.CharField(label='Your Name')
6+
email = forms.EmailField(label='Your Email')
7+
subject = forms.CharField(widget=forms.TextInput(attrs={'size': 72}))
8+
message = forms.CharField(widget=forms.Textarea(attrs={'rows': 10, 'cols': 70}))
9+
def clean_category(self):
10+
value = self.clean_data.get('category', 'bugs')
11+
if value not in ('bugs', 'discuss'):
12+
raise forms.ValidationError, 'Unknown category, try "discuss" or "bugs".'
13+
return value
14+

ietf/idtracker/urls.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
(r'^ballot_key/$', 'direct_to_template', { 'template': 'idtracker/view_key.html' }),
2222
(r'^evaluation_process/$', 'direct_to_template', { 'template': 'idtracker/view_evaluation_desc.html' }),
2323
)
24+
urlpatterns += patterns('',
25+
(r'^send_email/$', views.send_email),
26+
)
2427
urlpatterns += patterns('django.views.generic.list_detail',
2528
(r'^rfc(?P<object_id>\d+)/$', 'object_detail', rfc_dict),
2629
(r'^(?P<object_id>\d+)/$', 'object_detail', id_dict),

ietf/idtracker/views.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
from django.db.models import Q
77
from django.views.generic.list_detail import object_detail
88
from ietf.idtracker.models import InternetDraft, IDInternal, IDState, IDSubState
9+
from ietf.idtracker.forms import EmailFeedback
10+
from ietf.utils.mail import send_mail_text
911

1012
# Override default form field mappings
1113
# group_acronym: CharField(max_length=10)
@@ -118,3 +120,18 @@ def comment(request, slug, object_id, queryset):
118120
draft = get_object_or_404(InternetDraft, filename=slug)
119121
queryset = queryset.filter(document=draft.id_document_tag)
120122
return object_detail(request, queryset=queryset, object_id=object_id)
123+
124+
def send_email(request):
125+
if request.method == 'POST':
126+
form = EmailFeedback(request.POST)
127+
cat = request.POST.get('category', 'bugs')
128+
if form.is_valid():
129+
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'])
130+
return render_to_response('idtracker/email_sent.html', {},
131+
context_instance=RequestContext(request))
132+
else:
133+
cat = request.REQUEST.get('cat', 'bugs')
134+
form = EmailFeedback(initial={'category': cat})
135+
return render_to_response('idtracker/email_form.html', {'category': cat, 'form': form},
136+
context_instance=RequestContext(request))
137+
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{% extends "base.html" %}
2+
3+
{% block title %}Send E-Mail{% endblock %}
4+
5+
{% block content %}
6+
<h1>{% ifequal category "discuss" %}Your opinion on {% endifequal %}IDTRACKER{% ifequal category "bugs" %} Error Report{% endifequal %}</h1>
7+
<form action="." method="POST">
8+
<table>
9+
{{ form }}
10+
<tr>
11+
<td colspan="2" align="center">
12+
<input type="submit" value="Submit"> <input type="reset" value="Reset">
13+
</td>
14+
</tr>
15+
</table>
16+
</form>
17+
{% endblock %}
18+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{% extends "base.html" %}
2+
3+
{% block title %}Your email has been sent.{% endblock %}
4+
5+
{% block content %}
6+
<h2>Your message has been sent to IDTRACKER Design Team</h2>
7+
{% endblock %}

0 commit comments

Comments
 (0)