Check for valid director API keys

This commit is contained in:
2011-07-19 12:55:59 +01:00
parent fd8e8792db
commit f2b1954291
3 changed files with 8 additions and 2 deletions

View File

@@ -40,12 +40,16 @@ class EVEPlayerCorporation(EVEAPIModel):
""" Returns the number of characters with stored API keys """
return self.eveplayercharacter_set.filter(eveaccount__isnull=False).count()
@property
def director_api_keys(self):
return self.directors.filter(eveaccount__isnull=False, eveaccount__api_keytype=API_KEYTYPE_FULL, eveaccount__api_status=API_STATUS_OK)
@property
def api_key_coverage(self):
""" Returns the percentage coverage of API keys for the corporation's members """
# Check if we have a full director key, see if we can base our assumptions off what is in auth already
if self.directors.filter(eveaccount__isnull=False, eveaccount__api_keytype=API_KEYTYPE_FULL).count():
if self.director_api_keys.count():
membercount = self.eveplayercharacter_set.count()
else:
membercount = self.member_count

View File

@@ -13,6 +13,7 @@
<li><b>Member Count:</b> {{ corporation.member_count }}</li>
<li><b>Known Members:</b> {{ corporation.eveplayercharacter_set.count }}</li>
{% if view_members %}
<li><b>Full Director API Available: {% if corporation.director_api_keys %}<span style="color: green;">Yes</span>{% else %}<span style="color: red;">No</span>{% endif %}</b></li>
<li><b>Members with API Keys:</b> {{ corporation.api_keys }}</li>
<li><b>API Coverage:</b> {{ corporation.api_key_coverage|floatformat:2 }}%</li>
{% endif %}

View File

@@ -11,6 +11,7 @@ from django.core import serializers
from eve_proxy.models import ApiAccessLog
from eve_proxy.exceptions import DocumentRetrievalError
from eve_api.app_defines import *
from eve_api.forms import EveAPIForm
from eve_api.models import EVEAccount, EVEPlayerCharacter, EVEPlayerCorporation
from eve_api.tasks import import_apikey_result
@@ -191,6 +192,6 @@ def eveapi_corporation(request, corporationid, template='eve_api/corporation.htm
context = {
'corporation': corporation,
'members': corporation.eveplayercharacter_set.select_related('eveaccount', 'roles').order_by('corporation_date').only('id', 'name', 'corporation_date'),
'view_members': corporation.eveplayercharacter_set.filter(eveaccount__user=request.user, roles__name="Director").count() or request.user.is_superuser,
'view_members': corporation.eveplayercharacter_set.filter(eveaccount__user=request.user, roles__name="roleDirector").count() or request.user.is_superuser,
}
return render_to_response(template, context, context_instance=RequestContext(request))