Finish non-wg wizard logic: update database, send email.
Still need several templates (most notably deletion preview and wizard_done) - Legacy-Id: 166
This commit is contained in:
parent
ec09ffa870
commit
95a5093e53
|
@ -1,5 +1,6 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from ietf.idtracker.models import Acronym, Areas, PersonOrOrgInfo
|
from ietf.idtracker.models import Acronym, Areas, PersonOrOrgInfo
|
||||||
|
import random
|
||||||
|
|
||||||
class ImportedMailingList(models.Model):
|
class ImportedMailingList(models.Model):
|
||||||
group_acronym = models.ForeignKey(Acronym, null=True)
|
group_acronym = models.ForeignKey(Acronym, null=True)
|
||||||
|
@ -70,6 +71,16 @@ class MailingList(models.Model):
|
||||||
domain_name = models.CharField(blank=True, maxlength=10)
|
domain_name = models.CharField(blank=True, maxlength=10)
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.mlist_name
|
return self.mlist_name
|
||||||
|
def save(self, *args, **kwargs):
|
||||||
|
if self.mailing_list_id is None:
|
||||||
|
generate = True
|
||||||
|
while generate:
|
||||||
|
self.mailing_list_id = ''.join([random.choice('0123456789abcdefghijklmnopqrstuvwxyz') for i in range(35)])
|
||||||
|
try:
|
||||||
|
MailingList.objects.get(pk=self.mailing_list_id)
|
||||||
|
except MailingList.DoesNotExist:
|
||||||
|
generate = False
|
||||||
|
super(MailingList, self).save(*args, **kwargs)
|
||||||
class Meta:
|
class Meta:
|
||||||
db_table = 'mailing_list'
|
db_table = 'mailing_list'
|
||||||
class Admin:
|
class Admin:
|
||||||
|
@ -94,6 +105,16 @@ class NonWgMailingList(models.Model):
|
||||||
msg_to_ad = models.TextField(blank=True)
|
msg_to_ad = models.TextField(blank=True)
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.list_name
|
return self.list_name
|
||||||
|
def save(self, *args, **kwargs):
|
||||||
|
if self.id is None:
|
||||||
|
generate = True
|
||||||
|
while generate:
|
||||||
|
self.id = ''.join([random.choice('0123456789abcdefghijklmnopqrstuvwxyz') for i in range(35)])
|
||||||
|
try:
|
||||||
|
NonWgMailingList.objects.get(pk=self.id)
|
||||||
|
except NonWgMailingList.DoesNotExist:
|
||||||
|
generate = False
|
||||||
|
super(NonWgMailingList, self).save(*args, **kwargs)
|
||||||
def choices():
|
def choices():
|
||||||
return [(list.id, list.list_name) for list in NonWgMailingList.objects.all().filter(status__gt=0)]
|
return [(list.id, list.list_name) for list in NonWgMailingList.objects.all().filter(status__gt=0)]
|
||||||
choices = staticmethod(choices)
|
choices = staticmethod(choices)
|
||||||
|
|
|
@ -11,5 +11,4 @@ urlpatterns = patterns('django.views.generic.list_detail',
|
||||||
urlpatterns += patterns('',
|
urlpatterns += patterns('',
|
||||||
(r'^nonwg_lists/submit/$', views.non_wg_wizard),
|
(r'^nonwg_lists/submit/$', views.non_wg_wizard),
|
||||||
(r'^request/$', views.list_req_wizard),
|
(r'^request/$', views.list_req_wizard),
|
||||||
(r'^nonwg_lists/s2/$', views.non_wg_submit),
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -5,7 +5,7 @@ from django import newforms as forms
|
||||||
from django.shortcuts import render_to_response
|
from django.shortcuts import render_to_response
|
||||||
from django.template import RequestContext
|
from django.template import RequestContext
|
||||||
from ietf.contrib import wizard, form_decorator
|
from ietf.contrib import wizard, form_decorator
|
||||||
from ietf.utils.mail import send_mail
|
from ietf.utils.mail import send_mail_subj
|
||||||
|
|
||||||
def formchoice(form, field):
|
def formchoice(form, field):
|
||||||
if not(form.is_valid()):
|
if not(form.is_valid()):
|
||||||
|
@ -107,15 +107,26 @@ class NonWgWizard(wizard.Wizard):
|
||||||
super(NonWgWizard, self).process_step(request, form, step)
|
super(NonWgWizard, self).process_step(request, form, step)
|
||||||
def done(self, request, form_list):
|
def done(self, request, form_list):
|
||||||
add_edit = self.clean_forms[0].clean_data['add_edit']
|
add_edit = self.clean_forms[0].clean_data['add_edit']
|
||||||
# save row to database properly
|
list = None
|
||||||
|
old = None
|
||||||
if add_edit == 'add' or add_edit == 'edit':
|
if add_edit == 'add' or add_edit == 'edit':
|
||||||
template = 'mailinglists/nwg_addedit_email.txt'
|
template = 'mailinglists/nwg_addedit_email.txt'
|
||||||
approver = self.clean_forms[2].clean_data['approver']
|
approver = self.clean_forms[2].clean_data['approver']
|
||||||
|
list = NonWgMailingList(**self.clean_forms[1].clean_data)
|
||||||
|
list.__dict__.update(self.clean_forms[2].clean_data)
|
||||||
|
list.id = None # create a new row no matter what
|
||||||
|
list.status = 0
|
||||||
|
if add_edit == 'edit':
|
||||||
|
old = NonWgMailingList.objects.get(pk=self.clean_forms[0].clean_data['list_id'])
|
||||||
else:
|
else:
|
||||||
template = 'mailinglists/nwg_delete_email.txt'
|
template = 'mailinglists/nwg_delete_email.txt'
|
||||||
approver = self.clean_forms[1].clean_data['approver']
|
approver = self.clean_forms[1].clean_data['approver']
|
||||||
|
list = NonWgMailingList.objects.get(pk=self.clean_forms[0].clean_data['list_id_delete'])
|
||||||
|
list.__dict__.update(self.clean_forms[1].clean_data)
|
||||||
|
list.status = 1
|
||||||
|
list.save()
|
||||||
approver_email = PersonOrOrgInfo.objects.get(pk=approver).email()
|
approver_email = PersonOrOrgInfo.objects.get(pk=approver).email()
|
||||||
send_mail(request, [ approver_email ], None, 'Request to %s on the Non-WG Mailing List Web Page' % add_edit, template, {'forms': self.clean_forms})
|
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})
|
||||||
return render_to_response( 'mailinglists/nwg_wizard_done.html', {'forms': self.clean_forms}, context_instance=RequestContext(request) )
|
return render_to_response( 'mailinglists/nwg_wizard_done.html', {'forms': self.clean_forms}, context_instance=RequestContext(request) )
|
||||||
|
|
||||||
def non_wg_wizard(request):
|
def non_wg_wizard(request):
|
||||||
|
|
5
ietf/templates/mailinglists/nwg_wizard_done.html
Normal file
5
ietf/templates/mailinglists/nwg_wizard_done.html
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{% extends "mailinglists/nwg_wizard_base.html" %}
|
||||||
|
|
||||||
|
{% block nwgcontent %}
|
||||||
|
Your mail has been sent, blah blah blah.
|
||||||
|
{% endblock %}
|
36
ietf/templates/mailinglists/nwg_wizard_done_email.txt
Normal file
36
ietf/templates/mailinglists/nwg_wizard_done_email.txt
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
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 %}
|
||||||
|
the "IETF Non-WG Mailing Lists" Web Page, https://datatracker.ietf.org/public/nwg_list.cgi
|
||||||
|
The details of the request are provided below.
|
||||||
|
|
||||||
|
Please approve or deny this request via the "IETF Non-WG Mailing List Approval Page,"
|
||||||
|
https://datatracker.ietf.org/cgi-bin/nwg_list_approve.cgi?id={{ list.id }}&old_id={% firstof old.id "0" %}
|
||||||
|
You can use the same user name and password that you use with the I-D Tracker.
|
||||||
|
-------------------------
|
||||||
|
{% if old %}
|
||||||
|
Current Entry:
|
||||||
|
|
||||||
|
Submitter's Name: {{ old.s_name }}
|
||||||
|
Submitter's Email Address: {{ old.s_email }}
|
||||||
|
List Name: {{ old.list_name }}
|
||||||
|
URL or Email Address of Mailing List: {{ old.list_url }}
|
||||||
|
URL to Subscribe: {{ old.subscribe_url }}
|
||||||
|
Other Info. to Subscribe: {{ old.subscribe_other }}
|
||||||
|
Administrator(s)' Email Address(es): {{ old.admin }}
|
||||||
|
Purpose: {{ old.purpose }}
|
||||||
|
Area: {{ old.area }}
|
||||||
|
|
||||||
|
Revised Entry:
|
||||||
|
{% endif %}
|
||||||
|
Submitter's Name: {% ifequal add_edit "delete" %}{{ list.ds_name }}{% else %}{{ list.s_name }}{% endifequal %}
|
||||||
|
Submitter's Email Address: {% ifequal add_edit "delete" %}{{ list.ds_name }}{% else %}{{ list.s_email }}{% endifequal %}
|
||||||
|
Mailing List Name: {{ list.list_name }}
|
||||||
|
URL or Email Address of Mailing List: {{ list.list_url }}
|
||||||
|
URL to Subscribe: {{ list.subscribe_url }}
|
||||||
|
Other Info. to Subscribe: {{ list.subscribe_other }}
|
||||||
|
Administrator(s)' Email Address(es): {{ list.admin }}
|
||||||
|
Purpose: {{ list.purpose }}
|
||||||
|
Area: {{ list.area }}
|
||||||
|
{% ifequal add_edit "delete" %}
|
||||||
|
Message from submitter:
|
||||||
|
{{ list.msg_to_ad }}
|
||||||
|
{% endifequal %}
|
9
ietf/templates/mailinglists/nwg_wizard_subject.txt
Normal file
9
ietf/templates/mailinglists/nwg_wizard_subject.txt
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{% ifequal add_edit "edit" %}
|
||||||
|
Request to Edit an Existing Entry on the Non-WG Mailing List Web Page
|
||||||
|
{% else %}
|
||||||
|
{% ifequal add_edit "add" %}
|
||||||
|
Request to Add a New Entry to the Non-WG Mailing List Web Page
|
||||||
|
{% else %}
|
||||||
|
Request to Delete an Existing Entry on the Non-WG Mailing List Web Page
|
||||||
|
{% endifequal %}
|
||||||
|
{% endifequal %}
|
Loading…
Reference in a new issue