Skip to content

Commit 1d7883f

Browse files
committed
Patch from yaco to avoid resetting from field. Gave the secretarait the ability to approve any unapproved liaison. Changed all the email code to use ietf.utils.mail
- Legacy-Id: 4761
1 parent 7a1a67f commit 1d7883f

6 files changed

Lines changed: 61 additions & 103 deletions

File tree

ietf/liaisons/mail.py

Lines changed: 0 additions & 26 deletions
This file was deleted.

ietf/liaisons/mails.py

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,6 @@ def send_liaison_by_email(request, liaison, fake=False):
2626
url=settings.IDTRACKER_BASE_URL + urlreverse("liaison_detail", kwargs=dict(object_id=liaison.pk)),
2727
referenced_url=settings.IDTRACKER_BASE_URL + urlreverse("liaison_detail", kwargs=dict(object_id=liaison.related_to.pk)) if liaison.related_to else None,
2828
))
29-
if fake:
30-
# rather than this fake stuff, it's probably better to start a
31-
# debug SMTP server as explained in the Django docs
32-
from ietf.liaisons.mail import IETFEmailMessage
33-
mail = IETFEmailMessage(subject=subject,
34-
to=to_email,
35-
from_email=from_email,
36-
cc = cc,
37-
bcc = bcc,
38-
body = body)
39-
return mail
4029

4130
send_mail_text(request, to_email, from_email, subject, body, cc=", ".join(cc), bcc=", ".join(bcc))
4231

@@ -56,12 +45,6 @@ def notify_pending_by_email(request, liaison, fake):
5645
url=settings.IDTRACKER_BASE_URL + urlreverse("liaison_approval_detail", kwargs=dict(object_id=liaison.pk)),
5746
referenced_url=settings.IDTRACKER_BASE_URL + urlreverse("liaison_detail", kwargs=dict(object_id=liaison.related_to.pk)) if liaison.related_to else None,
5847
))
59-
if fake:
60-
mail = IETFEmailMessage(subject=subject,
61-
to=to_email,
62-
from_email=from_email,
63-
body = body)
64-
return mail
6548
send_mail_text(request, to_email, from_email, subject, body)
6649

6750
def send_sdo_reminder(sdo):

ietf/liaisons/management/commands/check_liaison_deadlines.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
from django.core.urlresolvers import reverse as urlreverse
77

88
from ietf.liaisons.models import LiaisonDetail
9-
from ietf.liaisons.mail import IETFEmailMessage
9+
#from ietf.liaisons.mail import IETFEmailMessage
10+
from ietf.utils.mail import send_mail_text
1011

1112

1213
PREVIOUS_DAYS = {
@@ -44,17 +45,20 @@ def send_reminder(self, liaison, days_to_go):
4445
'url': settings.IDTRACKER_BASE_URL + urlreverse("liaison_approval_detail", kwargs=dict(object_id=liaison.pk)),
4546
'referenced_url': settings.IDTRACKER_BASE_URL + urlreverse("liaison_detail", kwargs=dict(object_id=liaison.related_to.pk)) if liaison.related_to else None,
4647
})
47-
mail = IETFEmailMessage(subject=subject,
48-
to=to_email,
49-
from_email=from_email,
50-
cc=cc,
51-
bcc=bcc,
52-
body=body)
53-
if not settings.DEBUG:
54-
mail.send()
55-
print 'Liaison %05s#: Deadline reminder Sent!' % liaison.pk
56-
else:
57-
print 'Liaison %05s#: Deadline reminder Not Sent because in DEBUG mode!' % liaison.pk
48+
send_mail_text(context=None,to=to_email,frm=from_email,cc=cc,subject=subject,bcc=bcc,txt=body)
49+
print 'Liaison %05s#: Deadline reminder Sent!' % liaison.pk
50+
51+
#mail = IETFEmailMessage(subject=subject,
52+
# to=to_email,
53+
# from_email=from_email,
54+
# cc=cc,
55+
# bcc=bcc,
56+
# body=body)
57+
#if not settings.DEBUG:
58+
# mail.send()
59+
# print 'Liaison %05s#: Deadline reminder Sent!' % liaison.pk
60+
#else:
61+
# print 'Liaison %05s#: Deadline reminder Not Sent because in DEBUG mode!' % liaison.pk
5862

5963
def handle(self, *args, **options):
6064
today = datetime.date.today()

ietf/liaisons/models.py

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
from django.contrib.auth.models import User
88
from django.core.urlresolvers import reverse as urlreverse
99
from ietf.idtracker.models import Acronym, PersonOrOrgInfo, Area, IESGLogin
10-
from ietf.liaisons.mail import IETFEmailMessage
10+
#from ietf.liaisons.mail import IETFEmailMessage
11+
from ietf.utils.mail import send_mail_text
1112
from ietf.ietfauth.models import LegacyLiaisonUser
1213
from ietf.utils.admin import admin_link
1314

@@ -147,13 +148,14 @@ def notify_pending_by_email(self, fake):
147148
'url': settings.IDTRACKER_BASE_URL + urlreverse("liaison_approval_detail", kwargs=dict(object_id=self.pk)),
148149
'referenced_url': settings.IDTRACKER_BASE_URL + urlreverse("liaison_detail", kwargs=dict(object_id=self.related_to.pk)) if self.related_to else None,
149150
})
150-
mail = IETFEmailMessage(subject=subject,
151-
to=to_email,
152-
from_email=from_email,
153-
body = body)
154-
if not fake:
155-
mail.send()
156-
return mail
151+
send_mail_text(context=None, to=to_email, frm=from_email, subject=subject, txt = body)
152+
#mail = IETFEmailMessage(subject=subject,
153+
# to=to_email,
154+
# from_email=from_email,
155+
# body = body)
156+
#if not fake:
157+
# mail.send()
158+
#return mail
157159

158160
def send_by_email(self, fake=False):
159161
if self.is_pending():
@@ -172,15 +174,16 @@ def send_by_email(self, fake=False):
172174
'url': settings.IDTRACKER_BASE_URL + urlreverse("liaison_detail", kwargs=dict(object_id=self.pk)),
173175
'referenced_url': settings.IDTRACKER_BASE_URL + urlreverse("liaison_detail", kwargs=dict(object_id=self.related_to.pk)) if self.related_to else None,
174176
})
175-
mail = IETFEmailMessage(subject=subject,
176-
to=to_email,
177-
from_email=from_email,
178-
cc = cc,
179-
bcc = bcc,
180-
body = body)
181-
if not fake:
182-
mail.send()
183-
return mail
177+
send_mail_text(context=None,to=to_email,frm=from_email,subject=subject,txt=body,cc=cc,bcc=bcc)
178+
#mail = IETFEmailMessage(subject=subject,
179+
# to=to_email,
180+
# from_email=from_email,
181+
# cc = cc,
182+
# bcc = bcc,
183+
# body = body)
184+
#if not fake:
185+
# mail.send()
186+
#return mail
184187

185188
def is_pending(self):
186189
return bool(self.approval and not self.approval.approved)

ietf/liaisons/views.py

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,7 @@ def add_liaison(request, liaison=None):
3333
if form.is_valid():
3434
liaison = form.save()
3535
if request.POST.get('send', None):
36-
if not settings.DEBUG:
37-
liaison.send_by_email()
38-
else:
39-
return _fake_email_view(request, liaison)
36+
liaison.send_by_email()
4037
return HttpResponseRedirect(reverse('liaison_list'))
4138
else:
4239
form = liaison_form_factory(request, liaison=liaison)
@@ -89,14 +86,6 @@ def get_info(request):
8986
return HttpResponse(json_result, mimetype='text/javascript')
9087

9188

92-
def _fake_email_view(request, liaison):
93-
mail = liaison.send_by_email(fake=True)
94-
return render_to_response('liaisons/liaison_mail_detail.html',
95-
{'mail': mail,
96-
'message': mail.message(),
97-
'liaison': liaison},
98-
context_instance=RequestContext(request))
99-
10089
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
10190
def approvable_liaison_statements(group_codes):
10291
# this is a bit complicated because IETFHM encodes the
@@ -160,12 +149,15 @@ def liaison_list(request):
160149

161150
@can_submit_liaison
162151
def liaison_approval_list(request):
163-
person = get_person_for_user(request.user)
164-
approval_codes = IETFHM.get_all_can_approve_codes(person)
165-
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
166-
to_approve = approvable_liaison_statements(approval_codes).order_by("-submitted")
152+
if is_secretariat(request.user):
153+
to_approve = LiaisonDetail.objects.filter(approved=None).order_by("-submitted")
167154
else:
168-
to_approve = LiaisonDetail.objects.filter(approval__isnull=False, approval__approved=False, from_raw_code__in=approval_codes).order_by("-submitted_date")
155+
person = get_person_for_user(request.user)
156+
approval_codes = IETFHM.get_all_can_approve_codes(person)
157+
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
158+
to_approve = approvable_liaison_statements(approval_codes).order_by("-submitted")
159+
else:
160+
to_approve = LiaisonDetail.objects.filter(approval__isnull=False, approval__approved=False, from_raw_code__in=approval_codes).order_by("-submitted_date")
169161

170162
return object_list(request, to_approve,
171163
allow_empty=True,
@@ -175,12 +167,15 @@ def liaison_approval_list(request):
175167

176168
@can_submit_liaison
177169
def liaison_approval_detail(request, object_id):
178-
person = get_person_for_user(request.user)
179-
approval_codes = IETFHM.get_all_can_approve_codes(person)
180-
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
181-
to_approve = approvable_liaison_statements(approval_codes).order_by("-submitted")
170+
if is_secretariat(request.user):
171+
to_approve = LiaisonDetail.objects.filter(approved=None).order_by("-submitted")
182172
else:
183-
to_approve = LiaisonDetail.objects.filter(approval__isnull=False, approval__approved=False, from_raw_code__in=approval_codes).order_by("-submitted_date")
173+
person = get_person_for_user(request.user)
174+
approval_codes = IETFHM.get_all_can_approve_codes(person)
175+
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
176+
to_approve = approvable_liaison_statements(approval_codes).order_by("-submitted")
177+
else:
178+
to_approve = LiaisonDetail.objects.filter(approval__isnull=False, approval__approved=False, from_raw_code__in=approval_codes).order_by("-submitted_date")
184179

185180
if request.method=='POST' and request.POST.get('do_approval', False):
186181
try:
@@ -197,10 +192,7 @@ def liaison_approval_detail(request, object_id):
197192
else:
198193
approval.approved=True
199194
approval.save()
200-
if not settings.DEBUG:
201-
liaison.send_by_email()
202-
else:
203-
return _fake_email_view(request, liaison)
195+
liaison.send_by_email()
204196
except LiaisonDetail.DoesNotExist:
205197
pass
206198
return HttpResponseRedirect(reverse('liaison_list'))

static/js/liaisons.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@
209209
updateReplyTo();
210210
};
211211

212-
var updateInfo = function(first_time) {
212+
var updateInfo = function(first_time, sender) {
213213
var entity = organization;
214214
var to_entity = from;
215215
if (!entity.is('select') || !to_entity.is('select')) {
@@ -232,7 +232,9 @@
232232
render_mails_into(poc, response.poc, true);
233233
toggleApproval(response.needs_approval);
234234
checkPostOnly(response.post_only);
235-
userSelect(response.full_list);
235+
if (sender == 'from') {
236+
userSelect(response.full_list);
237+
}
236238
}
237239
}
238240
});
@@ -330,7 +332,7 @@
330332
var checkFrom = function(first_time) {
331333
var reduce_options = form.find('.reducedToOptions');
332334
if (!reduce_options.length) {
333-
updateInfo(first_time);
335+
updateInfo(first_time, 'from');
334336
return;
335337
}
336338
var to_select = organization;
@@ -351,7 +353,7 @@
351353
to_select.find('optgroup').show();
352354
to_select.find('option').show();
353355
}
354-
updateInfo(first_time);
356+
updateInfo(first_time, 'from');
355357
};
356358

357359
var checkSubmissionDate = function() {
@@ -366,7 +368,7 @@
366368
};
367369

368370
var initTriggers = function() {
369-
organization.change(function() {updateInfo(false);});
371+
organization.change(function() {updateInfo(false, 'to');});
370372
organization.change(checkOtherSDO);
371373
from.change(function() {checkFrom(false);});
372374
reply.keyup(updateFrom);

0 commit comments

Comments
 (0)