Skip to content

Commit aba9c2a

Browse files
fix: include outbound constraints in sreq update notification email (ietf-tools#4620)
* fix: include outbound constraints in sreq update notification email * style: clean up whitespace
1 parent 565707f commit aba9c2a

1 file changed

Lines changed: 16 additions & 7 deletions

File tree

ietf/secr/sreq/views.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,16 @@ def status_slug_for_new_session(session, session_number):
267267
return 'schedw'
268268

269269

270+
def get_outbound_conflicts(form: SessionForm):
271+
"""extract wg conflict constraint data from a SessionForm"""
272+
outbound_conflicts = []
273+
for conflictname, cfield_id in form.wg_constraint_field_ids():
274+
conflict_groups = form.cleaned_data[cfield_id]
275+
if len(conflict_groups) > 0:
276+
outbound_conflicts.append(dict(name=conflictname, groups=conflict_groups))
277+
return outbound_conflicts
278+
279+
270280
@role_required(*AUTHORIZED_ROLES)
271281
def confirm(request, acronym):
272282
'''
@@ -299,12 +309,8 @@ def confirm(request, acronym):
299309
session_data['timeranges_display'] = [t.desc for t in form.cleaned_data['timeranges']]
300310
session_data['resources'] = [ ResourceAssociation.objects.get(pk=pk) for pk in request.POST.getlist('resources') ]
301311

302-
# extract wg conflict constraint data for the view
303-
outbound_conflicts = []
304-
for conflictname, cfield_id in form.wg_constraint_field_ids():
305-
conflict_groups = form.cleaned_data[cfield_id]
306-
if len(conflict_groups) > 0:
307-
outbound_conflicts.append(dict(name=conflictname, groups=conflict_groups))
312+
# extract wg conflict constraint data for the view / notifications
313+
outbound_conflicts = get_outbound_conflicts(form)
308314

309315
button_text = request.POST.get('submit', '')
310316
if button_text == 'Cancel':
@@ -534,11 +540,14 @@ def edit(request, acronym, num=None):
534540
#add_session_activity(group,'Session Request was updated',meeting,user)
535541

536542
# send notification
543+
outbound_conflicts = get_outbound_conflicts(form)
544+
session_data = form.cleaned_data.copy() # do not add things to the original cleaned_data
545+
session_data['outbound_conflicts'] = [f"{d['name']}: {d['groups']}" for d in outbound_conflicts]
537546
send_notification(
538547
group,
539548
meeting,
540549
login,
541-
form.cleaned_data,
550+
session_data,
542551
[sf.cleaned_data for sf in form.session_forms.forms_to_keep],
543552
'update',
544553
)

0 commit comments

Comments
 (0)