datatracker/ietf/person/admin.py
Ole Laursen ef251c6bc7 Add author affiliation chart.
Also add a model for registering an alias for an affiliation so that
we can group affiliations that are considered the same for statistical
purposes, and a model for registering unimportant endings like Inc.
and GmbH.

Affiliation grouping is done through three means: stripping
uninteresting endings, merging entries that only differ in case and
aliases that map from case-insensitive alias to name.

Stripping endings and merging based on case seem to reduce the number
of needed manually maintained aliases greatly.
 - Legacy-Id: 12785
2017-02-03 18:49:43 +00:00

46 lines
1.5 KiB
Python

from django.contrib import admin
from ietf.person.models import Email, Alias, Person, AffiliationAlias, AffiliationIgnoredEnding
from ietf.person.name import name_parts
class EmailAdmin(admin.ModelAdmin):
list_display = ["address", "person", "time", "active", ]
raw_id_fields = ["person", ]
search_fields = ["address", "person__name", ]
admin.site.register(Email, EmailAdmin)
class EmailInline(admin.TabularInline):
model = Email
class AliasAdmin(admin.ModelAdmin):
list_display = ["name", "person", ]
search_fields = ["name",]
raw_id_fields = ["person"]
admin.site.register(Alias, AliasAdmin)
class AliasInline(admin.StackedInline):
model = Alias
class PersonAdmin(admin.ModelAdmin):
def plain_name(self, obj):
prefix, first, middle, last, suffix = name_parts(obj.name)
return "%s %s" % (first, last)
list_display = ["name", "short", "plain_name", "time", "user", ]
search_fields = ["name", "ascii"]
raw_id_fields = ["user"]
inlines = [ EmailInline, AliasInline, ]
# actions = None
admin.site.register(Person, PersonAdmin)
class AffiliationAliasAdmin(admin.ModelAdmin):
list_filter = ["name"]
list_display = ["alias", "name"]
search_fields = ["alias", "name"]
admin.site.register(AffiliationAlias, AffiliationAliasAdmin)
class AffiliationIgnoredEndingAdmin(admin.ModelAdmin):
list_display = ["ending"]
search_fields = ["ending"]
admin.site.register(AffiliationIgnoredEnding, AffiliationIgnoredEndingAdmin)