Skip to content

Commit 6c3ec5b

Browse files
committed
Added Email origin to Email record creation throughout the codebase.
- Legacy-Id: 15149
1 parent 619b20d commit 6c3ec5b

12 files changed

Lines changed: 45 additions & 5 deletions

File tree

ietf/doc/views_draft.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -954,6 +954,9 @@ def edit_shepherd(request, name):
954954
events = []
955955

956956
doc.shepherd = form.cleaned_data['shepherd']
957+
if not doc.shepherd.origin:
958+
doc.shepherd.origin = 'shepherd: %s' % doc.name
959+
doc.shepherd.save()
957960

958961
c = DocEvent(type="added_comment", doc=doc, rev=doc.rev, by=request.user.person)
959962
c.desc = "Document shepherd changed to "+ (doc.shepherd.person.name if doc.shepherd else "(None)")

ietf/group/views.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -958,6 +958,10 @@ def diff(attr, name):
958958
group.role_set.filter(name=slug).delete()
959959
for e in new:
960960
Role.objects.get_or_create(name_id=slug, email=e, group=group, person=e.person)
961+
if not e.origin or e.origin == e.person.user.username:
962+
e.origin = "role: %s %s" % (group.acronym, slug)
963+
e.save()
964+
961965
added = set(new) - set(old)
962966
deleted = set(old) - set(new)
963967
if added:
@@ -1206,6 +1210,9 @@ def stream_edit(request, acronym):
12061210
group.role_set.filter(name=slug).delete()
12071211
for e in new:
12081212
Role.objects.get_or_create(name_id=slug, email=e, group=group, person=e.person)
1213+
if not e.origin or e.origin == e.person.user.username:
1214+
e.origin = "role: %s %s" % (group.acronym, slug)
1215+
e.save()
12091216

12101217
return redirect("ietf.group.views.streams")
12111218
else:

ietf/liaisons/forms.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,15 @@ def set_to_fields(self):
500500
if has_role(self.user, "Liaison Manager"):
501501
self.fields['to_groups'].initial = [queryset.first()]
502502

503+
def save(self, commit=False):
504+
instance = super(EditModelForm, self).save(commit=False)
505+
506+
if 'from_contact' in self.changed_data:
507+
email = self.cleaned_data.get('from_contact')
508+
if not email.origin:
509+
email.origin = "liaison: %s" % (','.join([ g.acronym for g in instance.from_groups.all() ]))
510+
email.save()
511+
503512
class EditLiaisonForm(LiaisonModelForm):
504513
def __init__(self, *args, **kwargs):
505514
super(EditLiaisonForm, self).__init__(*args, **kwargs)

ietf/nomcom/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ def make_nomineeposition(nomcom, candidate, position, author):
372372
def make_nomineeposition_for_newperson(nomcom, candidate_name, candidate_email, position, author):
373373

374374
# This is expected to fail if called with an existing email address
375-
email = Email.objects.create(address=candidate_email, origin=nomcom.group.acronym)
375+
email = Email.objects.create(address=candidate_email, origin="nominee: %s" % nomcom.group.acronym)
376376
person = Person.objects.create(name=candidate_name,
377377
ascii=unidecode_name(candidate_name),
378378
)

ietf/review/import_from_review_tool.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ def parse_timestamp(t):
101101
for name in new_aliases:
102102
Alias.objects.create(person=person, name=name)
103103

104-
email, created = Email.objects.get_or_create(address=row.email, person=person, origin=__name__)
104+
email, created = Email.objects.get_or_create(address=row.email, person=person, origin="import: %s" % __name__)
105105
if created:
106106
print "created email", email
107107

ietf/secr/areas/views.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,10 @@ def people(request, name):
214214
# create role
215215
Role.objects.create(name_id='pre-ad',group=area,email=email,person=person)
216216

217+
if not email.origin or email.origin == person.user.username:
218+
email.origin = "role: %s %s" % (area.acronym, 'pre-ad')
219+
email.save()
220+
217221
messages.success(request, 'New Area Director added successfully!')
218222
return redirect('ietf.secr.areas.views.view', name=name)
219223
else:

ietf/secr/drafts/forms.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,12 @@ def save(self, commit=False):
178178
else:
179179
m.tags.remove('rfc-rev')
180180

181+
if 'shepherd' in self.changed_data:
182+
email = self.cleaned_data.get('shepherd')
183+
if not email.origin:
184+
email.origin = 'shepherd: %s' % m.name
185+
email.save()
186+
181187
# handle replaced by
182188

183189
return m

ietf/secr/groups/forms.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,9 @@ def clean(self):
193193
name = cleaned_data['name']
194194
group_acronym = cleaned_data['group_acronym']
195195

196+
if email.person != person:
197+
raise forms.ValidationError('ERROR: The person associated with the chosen email address is different from the chosen person')
198+
196199
if Role.objects.filter(name=name,group=self.group,person=person,email=email):
197200
raise forms.ValidationError('ERROR: This is a duplicate entry')
198201

ietf/secr/groups/views.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,10 @@ def people(request, acronym):
347347
email=email,
348348
group=group)
349349

350+
if not email.origin or email.origin == person.user.username:
351+
email.origin = "role: %s %s" % (group.acronym, name.slug)
352+
email.save()
353+
350354
messages.success(request, 'New %s added successfully!' % name)
351355
return redirect('ietf.secr.groups.views.people', acronym=group.acronym)
352356
else:

ietf/secr/roles/views.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,10 @@ def main(request):
9393
email=email,
9494
group=group)
9595

96+
if not email.origin or email.origin == person.user.username:
97+
email.origin = "role: %s %s" % (group.acronym, name.slug)
98+
email.save()
99+
96100
messages.success(request, 'New %s added successfully!' % name)
97101
url = reverse('ietf.secr.roles.views.main') + '?group=%s' % group.acronym
98102
return HttpResponseRedirect(url)

0 commit comments

Comments
 (0)