Skip to content

Commit 95a5093

Browse files
committed
Finish non-wg wizard logic: update database, send email.
Still need several templates (most notably deletion preview and wizard_done) - Legacy-Id: 166
1 parent ec09ffa commit 95a5093

6 files changed

Lines changed: 85 additions & 4 deletions

File tree

ietf/mailinglists/models.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from django.db import models
22
from ietf.idtracker.models import Acronym, Areas, PersonOrOrgInfo
3+
import random
34

45
class ImportedMailingList(models.Model):
56
group_acronym = models.ForeignKey(Acronym, null=True)
@@ -70,6 +71,16 @@ class MailingList(models.Model):
7071
domain_name = models.CharField(blank=True, maxlength=10)
7172
def __str__(self):
7273
return self.mlist_name
74+
def save(self, *args, **kwargs):
75+
if self.mailing_list_id is None:
76+
generate = True
77+
while generate:
78+
self.mailing_list_id = ''.join([random.choice('0123456789abcdefghijklmnopqrstuvwxyz') for i in range(35)])
79+
try:
80+
MailingList.objects.get(pk=self.mailing_list_id)
81+
except MailingList.DoesNotExist:
82+
generate = False
83+
super(MailingList, self).save(*args, **kwargs)
7384
class Meta:
7485
db_table = 'mailing_list'
7586
class Admin:
@@ -94,6 +105,16 @@ class NonWgMailingList(models.Model):
94105
msg_to_ad = models.TextField(blank=True)
95106
def __str__(self):
96107
return self.list_name
108+
def save(self, *args, **kwargs):
109+
if self.id is None:
110+
generate = True
111+
while generate:
112+
self.id = ''.join([random.choice('0123456789abcdefghijklmnopqrstuvwxyz') for i in range(35)])
113+
try:
114+
NonWgMailingList.objects.get(pk=self.id)
115+
except NonWgMailingList.DoesNotExist:
116+
generate = False
117+
super(NonWgMailingList, self).save(*args, **kwargs)
97118
def choices():
98119
return [(list.id, list.list_name) for list in NonWgMailingList.objects.all().filter(status__gt=0)]
99120
choices = staticmethod(choices)

ietf/mailinglists/urls.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,4 @@
1111
urlpatterns += patterns('',
1212
(r'^nonwg_lists/submit/$', views.non_wg_wizard),
1313
(r'^request/$', views.list_req_wizard),
14-
(r'^nonwg_lists/s2/$', views.non_wg_submit),
1514
)

ietf/mailinglists/views.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from django.shortcuts import render_to_response
66
from django.template import RequestContext
77
from ietf.contrib import wizard, form_decorator
8-
from ietf.utils.mail import send_mail
8+
from ietf.utils.mail import send_mail_subj
99

1010
def formchoice(form, field):
1111
if not(form.is_valid()):
@@ -107,15 +107,26 @@ def process_step(self, request, form, step):
107107
super(NonWgWizard, self).process_step(request, form, step)
108108
def done(self, request, form_list):
109109
add_edit = self.clean_forms[0].clean_data['add_edit']
110-
# save row to database properly
110+
list = None
111+
old = None
111112
if add_edit == 'add' or add_edit == 'edit':
112113
template = 'mailinglists/nwg_addedit_email.txt'
113114
approver = self.clean_forms[2].clean_data['approver']
115+
list = NonWgMailingList(**self.clean_forms[1].clean_data)
116+
list.__dict__.update(self.clean_forms[2].clean_data)
117+
list.id = None # create a new row no matter what
118+
list.status = 0
119+
if add_edit == 'edit':
120+
old = NonWgMailingList.objects.get(pk=self.clean_forms[0].clean_data['list_id'])
114121
else:
115122
template = 'mailinglists/nwg_delete_email.txt'
116123
approver = self.clean_forms[1].clean_data['approver']
124+
list = NonWgMailingList.objects.get(pk=self.clean_forms[0].clean_data['list_id_delete'])
125+
list.__dict__.update(self.clean_forms[1].clean_data)
126+
list.status = 1
127+
list.save()
117128
approver_email = PersonOrOrgInfo.objects.get(pk=approver).email()
118-
send_mail(request, [ approver_email ], None, 'Request to %s on the Non-WG Mailing List Web Page' % add_edit, template, {'forms': self.clean_forms})
129+
send_mail_subj(request, [ approver_email ], None, 'mailinglists/nwg_wizard_subject.txt', 'mailinglists/nwg_wizard_done_email.txt', {'add_edit': add_edit, 'old': old, 'list': list, 'forms': self.clean_forms})
119130
return render_to_response( 'mailinglists/nwg_wizard_done.html', {'forms': self.clean_forms}, context_instance=RequestContext(request) )
120131

121132
def non_wg_wizard(request):
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{% extends "mailinglists/nwg_wizard_base.html" %}
2+
3+
{% block nwgcontent %}
4+
Your mail has been sent, blah blah blah.
5+
{% endblock %}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
The Secretariat has received a request to {% ifequal add_edit "edit" %}edit an existing entry on{% else %}{% ifequal add_edit "add" %}add a new entry to{% else %}delete an existing entry from{% endifequal %}{% endifequal %}
2+
the "IETF Non-WG Mailing Lists" Web Page, https://datatracker.ietf.org/public/nwg_list.cgi
3+
The details of the request are provided below.
4+
5+
Please approve or deny this request via the "IETF Non-WG Mailing List Approval Page,"
6+
https://datatracker.ietf.org/cgi-bin/nwg_list_approve.cgi?id={{ list.id }}&old_id={% firstof old.id "0" %}
7+
You can use the same user name and password that you use with the I-D Tracker.
8+
-------------------------
9+
{% if old %}
10+
Current Entry:
11+
12+
Submitter's Name: {{ old.s_name }}
13+
Submitter's Email Address: {{ old.s_email }}
14+
List Name: {{ old.list_name }}
15+
URL or Email Address of Mailing List: {{ old.list_url }}
16+
URL to Subscribe: {{ old.subscribe_url }}
17+
Other Info. to Subscribe: {{ old.subscribe_other }}
18+
Administrator(s)' Email Address(es): {{ old.admin }}
19+
Purpose: {{ old.purpose }}
20+
Area: {{ old.area }}
21+
22+
Revised Entry:
23+
{% endif %}
24+
Submitter's Name: {% ifequal add_edit "delete" %}{{ list.ds_name }}{% else %}{{ list.s_name }}{% endifequal %}
25+
Submitter's Email Address: {% ifequal add_edit "delete" %}{{ list.ds_name }}{% else %}{{ list.s_email }}{% endifequal %}
26+
Mailing List Name: {{ list.list_name }}
27+
URL or Email Address of Mailing List: {{ list.list_url }}
28+
URL to Subscribe: {{ list.subscribe_url }}
29+
Other Info. to Subscribe: {{ list.subscribe_other }}
30+
Administrator(s)' Email Address(es): {{ list.admin }}
31+
Purpose: {{ list.purpose }}
32+
Area: {{ list.area }}
33+
{% ifequal add_edit "delete" %}
34+
Message from submitter:
35+
{{ list.msg_to_ad }}
36+
{% endifequal %}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{% ifequal add_edit "edit" %}
2+
Request to Edit an Existing Entry on the Non-WG Mailing List Web Page
3+
{% else %}
4+
{% ifequal add_edit "add" %}
5+
Request to Add a New Entry to the Non-WG Mailing List Web Page
6+
{% else %}
7+
Request to Delete an Existing Entry on the Non-WG Mailing List Web Page
8+
{% endifequal %}
9+
{% endifequal %}

0 commit comments

Comments
 (0)