diff --git a/ietf/ietfauth/forms.py b/ietf/ietfauth/forms.py index 4479888ce..9e712e60c 100644 --- a/ietf/ietfauth/forms.py +++ b/ietf/ietfauth/forms.py @@ -187,7 +187,8 @@ class PersonForm(ModelForm): send_mail(self.request, to_email, from_email, subject, 'registration/add_email_email.txt', context) def save(self, force_insert=False, force_update=False, commit=True): - from ietf.group.models import Role + from ietf.group.models import Role + from ietf.person.models import Alias m = super(PersonForm, self).save(commit=False) self.new_emails = [v for k,v in self.data.items() if k[:10] == u'new_email_' and u'@' in v] @@ -210,6 +211,20 @@ class PersonForm(ModelForm): if commit: role.save() + # Make sure the alias table contains any new and/or old names. + old_names = set([x.name for x in Alias.objects.filter(person=self.instance)]) + curr_names = set([x for x in [self.instance.name, + self.instance.ascii, + self.instance.ascii_short, + self.data['name'], + self.data['ascii'], + self.data['ascii_short']] if len(x)]) + new_names = curr_names - old_names + for name in new_names: + alias = Alias(person=self.instance,name=name) + if commit: + alias.save() + if commit: m.save() return m diff --git a/ietf/ietfauth/views.py b/ietf/ietfauth/views.py index eee1e85ab..8b147fc75 100644 --- a/ietf/ietfauth/views.py +++ b/ietf/ietfauth/views.py @@ -107,7 +107,7 @@ def profile(request): { 'success': success, 'new_emails': new_emails, 'error': error} , context_instance=RequestContext(request)) else: - roles = Role.objects.filter(person=person).order_by('name__name','group__name') + roles = Role.objects.filter(person=person,group__state='active').order_by('name__name','group__name') emails = Email.objects.filter(person=person).order_by('-active','-time') aliases = Alias.objects.filter(person=person)