Skip to content

Commit 36a3e99

Browse files
committed
Add plain_name() helper to Person with only first name + last name, switch proxies over to using that
- Legacy-Id: 3848
1 parent 9a18341 commit 36a3e99

9 files changed

Lines changed: 23 additions & 23 deletions

File tree

redesign/doc/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ class DocEvent(models.Model):
320320
desc = models.TextField()
321321

322322
def __unicode__(self):
323-
return u"%s %s at %s" % (self.by.name, self.get_type_display().lower(), self.time)
323+
return u"%s %s at %s" % (self.by.plain_name(), self.get_type_display().lower(), self.time)
324324

325325
class Meta:
326326
ordering = ['-time', '-id']

redesign/doc/proxy.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -795,11 +795,11 @@ def comment_text(self):
795795
def get_absolute_url(self):
796796
return "/doc/%s/" % self.doc.name
797797
def get_author(self):
798-
return self.by.name
798+
return self.by.plain_name()
799799
def get_username(self):
800800
return unicode(self.by)
801801
def get_fullname(self):
802-
return self.by.name
802+
return self.by.plain_name()
803803
def datetime(self):
804804
return self.time
805805
def doc_id(self):

redesign/group/admin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def role_list(self, obj):
2525
roles = Role.objects.filter(group=obj).order_by("name", "person__name").select_related('person')
2626
res = []
2727
for r in roles:
28-
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))
28+
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))
2929
return ", ".join(res)
3030
role_list.short_description = "Persons"
3131
role_list.allow_tags = True

redesign/group/models.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class GroupEvent(models.Model):
9797
desc = models.TextField()
9898

9999
def __unicode__(self):
100-
return u"%s %s at %s" % (self.by.name, self.get_type_display().lower(), self.time)
100+
return u"%s %s at %s" % (self.by.plain_name(), self.get_type_display().lower(), self.time)
101101

102102
class Meta:
103103
ordering = ['-time', 'id']
@@ -111,10 +111,10 @@ class Role(models.Model):
111111
person = models.ForeignKey(Person)
112112
email = models.ForeignKey(Email, help_text="Email address used by person for this role")
113113
def __unicode__(self):
114-
return u"%s is %s in %s" % (self.email.get_name(), self.name.name, self.group.acronym or self.group.name)
114+
return u"%s is %s in %s" % (self.person.plain_name(), self.name.name, self.group.acronym or self.group.name)
115115

116116
def formatted_email(self):
117-
return u'"%s" <%s>' % (self.person.name, self.email.address)
117+
return u'"%s" <%s>' % (self.person.plain_name(), self.email.address)
118118

119119
class RoleHistory(models.Model):
120120
# RoleHistory doesn't have a time field as it's not supposed to be
@@ -126,7 +126,7 @@ class RoleHistory(models.Model):
126126
person = models.ForeignKey(Person)
127127
email = models.ForeignKey(Email, help_text="Email address used by person for this role")
128128
def __unicode__(self):
129-
return u"%s is %s in %s" % (self.email.get_name(), self.name.name, self.group.acronym)
129+
return u"%s is %s in %s" % (self.person.plain_name(), self.name.name, self.group.acronym)
130130

131131
class Meta:
132132
verbose_name_plural = "role histories"

redesign/importing/import-docs.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ def import_from_idinternal(d, idinternal):
300300
e = BallotPositionDocEvent()
301301
e.type = "changed_ballot_position"
302302
e.ad = ad
303-
e.desc = "[Ballot Position Update] New position, Yes, has been recorded by %s" % e.ad.name
303+
e.desc = u"[Ballot Position Update] New position, Yes, has been recorded for %s" % e.ad.plain_name()
304304

305305
e.pos = ballot_position_mapping["Yes"]
306306
e.discuss = last_pos.discuss if last_pos else ""
@@ -669,9 +669,9 @@ def import_from_idinternal(d, idinternal):
669669
e.comment = last_pos.comment if last_pos else ""
670670
e.comment_time = last_pos.comment_time if last_pos else None
671671
if last_pos:
672-
e.desc = "[Ballot Position Update] Position for %s has been changed to %s from %s" % (ad.name, pos.name, last_pos.pos.name)
672+
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)
673673
else:
674-
e.desc = "[Ballot Position Update] New position, %s, has been recorded for %s" % (pos.name, ad.name)
674+
e.desc = u"[Ballot Position Update] New position, %s, has been recorded for %s" % (pos.name, ad.plain_name())
675675
e.save()
676676

677677
# make sure we got the ballot issued event

redesign/importing/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ def get_or_create_email(o, create_fake):
129129
Alias.objects.create(name=p.name, person=p)
130130
if p.ascii != p.name:
131131
Alias.objects.create(name=p.ascii, person=p)
132-
132+
133133
e.person = p
134134
e.time = calc_email_import_time(priority)
135135
e.save()

redesign/person/models.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class PersonInfo(models.Model):
1717
affiliation = models.CharField(max_length=255, blank=True)
1818

1919
def __unicode__(self):
20-
return self.name
20+
return self.plain_name()
2121
def name_parts(self):
2222
return name_parts(self.name)
2323
def ascii_parts(self):
@@ -28,6 +28,9 @@ def short(self):
2828
else:
2929
prefix, first, middle, last, suffix = self.ascii_parts()
3030
return (first and first[0]+"." or "")+(middle or "")+" "+last+(suffix and " "+suffix or "")
31+
def plain_name(self):
32+
prefix, first, middle, last, suffix = name_parts(self.name)
33+
return u" ".join([first, last])
3134
def role_email(self, role_name, group=None):
3235
"""Lookup email for role for person, optionally on group which
3336
may be an object or the group acronym."""
@@ -58,8 +61,7 @@ def formatted_email(self):
5861
return ""
5962
def full_name_as_key(self):
6063
# this is mostly a remnant from the old views, needed in the menu
61-
prefix, first, middle, last, suffix = name_parts(self.name)
62-
return (u"%s %s" % (first, last)).lower().replace(" ", ".")
64+
return self.plain_name().lower().replace(" ", ".")
6365
class Meta:
6466
abstract = True
6567

@@ -96,11 +98,11 @@ def __unicode__(self):
9698
return self.address
9799

98100
def get_name(self):
99-
return self.person.name if self.person else self.address
101+
return self.person.plain_name() if self.person else self.address
100102

101103
def formatted_email(self):
102104
if self.person and self.person.name:
103-
return u'"%s" <%s>' % (self.person.name, self.address)
105+
return u'"%s" <%s>' % (self.person.plain_name(), self.address)
104106
else:
105107
return self.address
106108

redesign/person/proxy.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,9 @@ def last_name(self):
4444
#default_search = models.NullBooleanField()
4545

4646
def __str__(self):
47-
return self.name
48-
def __unicode__(self):
49-
return self.name
47+
return self.plain_name()
5048
def is_current_ad(self):
51-
return self in Person.objects.filter(role__name="ad", role__group__state="active").distinct()
49+
return bool(self.role_set.filter(name="ad", group__state="active"))
5250
@staticmethod
5351
def active_iesg():
5452
return IESGLogin.objects.filter(role__name="ad", role__group__state="active").distinct().order_by('name')

redesign/proxy_utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
def proxy_personify_role(role):
55
"""Turn role into person with email() method using email from role."""
66
p = role.person
7-
p.email = lambda: (p.name, role.email.address)
7+
p.email = lambda: (p.plain_name(), role.email.address)
88
return p
99

1010
def proxy_role_email(e):
1111
"""Add email() method to person on email."""
12-
e.person.email = lambda: (e.person.name, e.address)
12+
e.person.email = lambda: (e.person.plain_name(), e.address)
1313
return e
1414

1515
def chunks(l, n):

0 commit comments

Comments
 (0)