Add plain_name() helper to Person with only first name + last name, switch proxies over to using that
- Legacy-Id: 3848
This commit is contained in:
parent
9a18341f2a
commit
36a3e99417
|
@ -320,7 +320,7 @@ class DocEvent(models.Model):
|
|||
desc = models.TextField()
|
||||
|
||||
def __unicode__(self):
|
||||
return u"%s %s at %s" % (self.by.name, self.get_type_display().lower(), self.time)
|
||||
return u"%s %s at %s" % (self.by.plain_name(), self.get_type_display().lower(), self.time)
|
||||
|
||||
class Meta:
|
||||
ordering = ['-time', '-id']
|
||||
|
|
|
@ -795,11 +795,11 @@ class DocumentComment(DocEvent):
|
|||
def get_absolute_url(self):
|
||||
return "/doc/%s/" % self.doc.name
|
||||
def get_author(self):
|
||||
return self.by.name
|
||||
return self.by.plain_name()
|
||||
def get_username(self):
|
||||
return unicode(self.by)
|
||||
def get_fullname(self):
|
||||
return self.by.name
|
||||
return self.by.plain_name()
|
||||
def datetime(self):
|
||||
return self.time
|
||||
def doc_id(self):
|
||||
|
|
|
@ -25,7 +25,7 @@ class GroupAdmin(admin.ModelAdmin):
|
|||
roles = Role.objects.filter(group=obj).order_by("name", "person__name").select_related('person')
|
||||
res = []
|
||||
for r in roles:
|
||||
res.append(u'<a href="../../person/person/%s/">%s</a> (<a href="../../group/role/%s/">%s)' % (r.person.pk, escape(r.person.name), r.pk, r.name.name))
|
||||
res.append(u'<a href="../../person/person/%s/">%s</a> (<a href="../../group/role/%s/">%s)' % (r.person.pk, escape(r.person.plain_name()), r.pk, r.name.name))
|
||||
return ", ".join(res)
|
||||
role_list.short_description = "Persons"
|
||||
role_list.allow_tags = True
|
||||
|
|
|
@ -97,7 +97,7 @@ class GroupEvent(models.Model):
|
|||
desc = models.TextField()
|
||||
|
||||
def __unicode__(self):
|
||||
return u"%s %s at %s" % (self.by.name, self.get_type_display().lower(), self.time)
|
||||
return u"%s %s at %s" % (self.by.plain_name(), self.get_type_display().lower(), self.time)
|
||||
|
||||
class Meta:
|
||||
ordering = ['-time', 'id']
|
||||
|
@ -111,10 +111,10 @@ class Role(models.Model):
|
|||
person = models.ForeignKey(Person)
|
||||
email = models.ForeignKey(Email, help_text="Email address used by person for this role")
|
||||
def __unicode__(self):
|
||||
return u"%s is %s in %s" % (self.email.get_name(), self.name.name, self.group.acronym or self.group.name)
|
||||
return u"%s is %s in %s" % (self.person.plain_name(), self.name.name, self.group.acronym or self.group.name)
|
||||
|
||||
def formatted_email(self):
|
||||
return u'"%s" <%s>' % (self.person.name, self.email.address)
|
||||
return u'"%s" <%s>' % (self.person.plain_name(), self.email.address)
|
||||
|
||||
class RoleHistory(models.Model):
|
||||
# RoleHistory doesn't have a time field as it's not supposed to be
|
||||
|
@ -126,7 +126,7 @@ class RoleHistory(models.Model):
|
|||
person = models.ForeignKey(Person)
|
||||
email = models.ForeignKey(Email, help_text="Email address used by person for this role")
|
||||
def __unicode__(self):
|
||||
return u"%s is %s in %s" % (self.email.get_name(), self.name.name, self.group.acronym)
|
||||
return u"%s is %s in %s" % (self.person.plain_name(), self.name.name, self.group.acronym)
|
||||
|
||||
class Meta:
|
||||
verbose_name_plural = "role histories"
|
||||
|
|
|
@ -300,7 +300,7 @@ def import_from_idinternal(d, idinternal):
|
|||
e = BallotPositionDocEvent()
|
||||
e.type = "changed_ballot_position"
|
||||
e.ad = ad
|
||||
e.desc = "[Ballot Position Update] New position, Yes, has been recorded by %s" % e.ad.name
|
||||
e.desc = u"[Ballot Position Update] New position, Yes, has been recorded for %s" % e.ad.plain_name()
|
||||
|
||||
e.pos = ballot_position_mapping["Yes"]
|
||||
e.discuss = last_pos.discuss if last_pos else ""
|
||||
|
@ -669,9 +669,9 @@ def import_from_idinternal(d, idinternal):
|
|||
e.comment = last_pos.comment if last_pos else ""
|
||||
e.comment_time = last_pos.comment_time if last_pos else None
|
||||
if last_pos:
|
||||
e.desc = "[Ballot Position Update] Position for %s has been changed to %s from %s" % (ad.name, pos.name, last_pos.pos.name)
|
||||
e.desc = u"[Ballot Position Update] Position for %s has been changed to %s from %s" % (ad.plain_name(), pos.name, last_pos.pos.name)
|
||||
else:
|
||||
e.desc = "[Ballot Position Update] New position, %s, has been recorded for %s" % (pos.name, ad.name)
|
||||
e.desc = u"[Ballot Position Update] New position, %s, has been recorded for %s" % (pos.name, ad.plain_name())
|
||||
e.save()
|
||||
|
||||
# make sure we got the ballot issued event
|
||||
|
|
|
@ -129,7 +129,7 @@ def get_or_create_email(o, create_fake):
|
|||
Alias.objects.create(name=p.name, person=p)
|
||||
if p.ascii != p.name:
|
||||
Alias.objects.create(name=p.ascii, person=p)
|
||||
|
||||
|
||||
e.person = p
|
||||
e.time = calc_email_import_time(priority)
|
||||
e.save()
|
||||
|
|
|
@ -17,7 +17,7 @@ class PersonInfo(models.Model):
|
|||
affiliation = models.CharField(max_length=255, blank=True)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
return self.plain_name()
|
||||
def name_parts(self):
|
||||
return name_parts(self.name)
|
||||
def ascii_parts(self):
|
||||
|
@ -28,6 +28,9 @@ class PersonInfo(models.Model):
|
|||
else:
|
||||
prefix, first, middle, last, suffix = self.ascii_parts()
|
||||
return (first and first[0]+"." or "")+(middle or "")+" "+last+(suffix and " "+suffix or "")
|
||||
def plain_name(self):
|
||||
prefix, first, middle, last, suffix = name_parts(self.name)
|
||||
return u" ".join([first, last])
|
||||
def role_email(self, role_name, group=None):
|
||||
"""Lookup email for role for person, optionally on group which
|
||||
may be an object or the group acronym."""
|
||||
|
@ -58,8 +61,7 @@ class PersonInfo(models.Model):
|
|||
return ""
|
||||
def full_name_as_key(self):
|
||||
# this is mostly a remnant from the old views, needed in the menu
|
||||
prefix, first, middle, last, suffix = name_parts(self.name)
|
||||
return (u"%s %s" % (first, last)).lower().replace(" ", ".")
|
||||
return self.plain_name().lower().replace(" ", ".")
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
|
@ -96,11 +98,11 @@ class Email(models.Model):
|
|||
return self.address
|
||||
|
||||
def get_name(self):
|
||||
return self.person.name if self.person else self.address
|
||||
return self.person.plain_name() if self.person else self.address
|
||||
|
||||
def formatted_email(self):
|
||||
if self.person and self.person.name:
|
||||
return u'"%s" <%s>' % (self.person.name, self.address)
|
||||
return u'"%s" <%s>' % (self.person.plain_name(), self.address)
|
||||
else:
|
||||
return self.address
|
||||
|
||||
|
|
|
@ -44,11 +44,9 @@ class IESGLogin(Person):
|
|||
#default_search = models.NullBooleanField()
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
return self.plain_name()
|
||||
def is_current_ad(self):
|
||||
return self in Person.objects.filter(role__name="ad", role__group__state="active").distinct()
|
||||
return bool(self.role_set.filter(name="ad", group__state="active"))
|
||||
@staticmethod
|
||||
def active_iesg():
|
||||
return IESGLogin.objects.filter(role__name="ad", role__group__state="active").distinct().order_by('name')
|
||||
|
|
|
@ -4,12 +4,12 @@ from django.db.models.query import QuerySet
|
|||
def proxy_personify_role(role):
|
||||
"""Turn role into person with email() method using email from role."""
|
||||
p = role.person
|
||||
p.email = lambda: (p.name, role.email.address)
|
||||
p.email = lambda: (p.plain_name(), role.email.address)
|
||||
return p
|
||||
|
||||
def proxy_role_email(e):
|
||||
"""Add email() method to person on email."""
|
||||
e.person.email = lambda: (e.person.name, e.address)
|
||||
e.person.email = lambda: (e.person.plain_name(), e.address)
|
||||
return e
|
||||
|
||||
def chunks(l, n):
|
||||
|
|
Loading…
Reference in a new issue