Skip to content

Commit f5f838d

Browse files
committed
Added guards against duplicate m2m entries.
- Legacy-Id: 16304
1 parent 32a0647 commit f5f838d

2 files changed

Lines changed: 14 additions & 7 deletions

File tree

ietf/community/tests.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@ def test_view_list(self):
8787

8888
# with list
8989
clist = CommunityList.objects.create(user=User.objects.get(username="plain"))
90-
clist.added_docs.add(draft)
90+
if not draft in clist.added_docs.all():
91+
clist.added_docs.add(draft)
9192
SearchRule.objects.create(
9293
community_list=clist,
9394
rule_type="name_contains",
@@ -249,7 +250,8 @@ def test_csv(self):
249250

250251
# with list
251252
clist = CommunityList.objects.create(user=User.objects.get(username="plain"))
252-
clist.added_docs.add(draft)
253+
if not draft in clist.added_docs.all():
254+
clist.added_docs.add(draft)
253255
SearchRule.objects.create(
254256
community_list=clist,
255257
rule_type="name_contains",
@@ -284,7 +286,8 @@ def test_feed(self):
284286

285287
# with list
286288
clist = CommunityList.objects.create(user=User.objects.get(username="plain"))
287-
clist.added_docs.add(draft)
289+
if not draft in clist.added_docs.all():
290+
clist.added_docs.add(draft)
288291
SearchRule.objects.create(
289292
community_list=clist,
290293
rule_type="name_contains",
@@ -325,7 +328,8 @@ def test_subscription(self):
325328

326329
# subscription with list
327330
clist = CommunityList.objects.create(user=User.objects.get(username="plain"))
328-
clist.added_docs.add(draft)
331+
if not draft in clist.added_docs.all():
332+
clist.added_docs.add(draft)
329333
SearchRule.objects.create(
330334
community_list=clist,
331335
rule_type="name_contains",
@@ -368,7 +372,8 @@ def test_notification(self):
368372
draft = WgDraftFactory()
369373

370374
clist = CommunityList.objects.create(user=User.objects.get(username="plain"))
371-
clist.added_docs.add(draft)
375+
if not draft in clist.added_docs.all():
376+
clist.added_docs.add(draft)
372377

373378
EmailSubscription.objects.create(community_list=clist, email=Email.objects.filter(person__user__username="plain").first(), notify_on="significant")
374379

ietf/community/views.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ def manage_list(request, username=None, acronym=None, group_type=None):
5353
clist.save()
5454

5555
for d in add_doc_form.cleaned_data['documents']:
56-
clist.added_docs.add(d)
56+
if not d in clist.added_docs.all():
57+
clist.added_docs.add(d)
5758

5859
return HttpResponseRedirect("")
5960
else:
@@ -130,7 +131,8 @@ def track_document(request, name, username=None, acronym=None):
130131
if clist.pk is None:
131132
clist.save()
132133

133-
clist.added_docs.add(doc)
134+
if not doc in clist.added_docs.all():
135+
clist.added_docs.add(doc)
134136

135137
if request.is_ajax():
136138
return HttpResponse(json.dumps({ 'success': True }), content_type='text/plain')

0 commit comments

Comments
 (0)