diff --git a/corputils/models.py b/corputils/models.py index 80ea011e..11d49a76 100644 --- a/corputils/models.py +++ b/corputils/models.py @@ -118,6 +118,13 @@ class CorpStats(models.Model): def member_count(self): return len(self.members) + def user_count(self, members): + mainchars = [] + for member in members: + if hasattr(member.main, 'character_name'): + mainchars.append(member.main.character_name) + return len(set(mainchars)) + @python_2_unicode_compatible class MemberObject(object): def __init__(self, character_id, character_name, show_apis=False): @@ -128,8 +135,10 @@ class CorpStats(models.Model): auth = AuthServicesInfo.objects.get(user=char.user) try: self.main = EveCharacter.objects.get(character_id=auth.main_char_id) + self.main_user = self.main.character_name except EveCharacter.DoesNotExist: self.main = None + self.main_user = '' api = EveApiKeyPair.objects.get(api_id=char.api_id) self.registered = True if show_apis: @@ -140,9 +149,11 @@ class CorpStats(models.Model): self.main = None self.api = None self.registered = False + self.main_user = '' except EveApiKeyPair.DoesNotExist: self.api = None self.registered = False + self.main_user = '' def __str__(self): return self.character_name @@ -152,8 +163,7 @@ class CorpStats(models.Model): def get_member_objects(self, user): show_apis = self.show_apis(user) - return sorted([CorpStats.MemberObject(id, name, show_apis=show_apis) for id, name in self.members.items()], - key=attrgetter('character_name')) + return sorted([CorpStats.MemberObject(id, name, show_apis=show_apis) for id, name in self.members.items()], key=attrgetter('main_user', 'character_name')) def can_update(self, user): return user.is_superuser or user == self.token.user @@ -165,6 +175,7 @@ class CorpStats(models.Model): self.members = corpstats.get_member_objects(user) self.can_update = corpstats.can_update(user) self.total_members = len(self.members) + self.total_users = corpstats.user_count(self.members) self.registered_members = corpstats.entered_apis() self.show_apis = corpstats.show_apis(user) self.last_updated = corpstats.last_update diff --git a/corputils/templates/corputils/corpstats.html b/corputils/templates/corputils/corpstats.html index eba8958a..9f26a871 100644 --- a/corputils/templates/corputils/corpstats.html +++ b/corputils/templates/corputils/corpstats.html @@ -25,7 +25,7 @@