Fixed profile update page to keep Alias table up to date. Also, roles for inactive groups are no longer displayed on the profile page.

- Legacy-Id: 4737
This commit is contained in:
Adam Roach 2012-07-31 16:54:17 +00:00
parent 80d7ab9eba
commit 6d87558b06
2 changed files with 17 additions and 2 deletions

View file

@ -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

View file

@ -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)