Added a corporation and member view to eve_api

This commit is contained in:
2011-01-13 16:24:31 +00:00
parent c2ea3f09b0
commit 0aa29b031e
6 changed files with 58 additions and 5 deletions

View File

@@ -9,8 +9,9 @@ urlpatterns = patterns('',
url(r'^eveapi/refresh/(?P<userid>\d+)/$', views.eveapi_refresh, name="eveapi-refresh"),
url(r'^eveapi/log/(?P<userid>\d+)/$', views.eveapi_log, name="eveapi-log"),
url(r'^character/list/$', views.eveapi_characters, name="eveapi-characters-list"),
url(r'^character/(?P<charid>.*)/$', views.eveapi_characters, name="eveapi-character"),
url(r'^character/list/$', views.eveapi_character, name="eveapi-characters-list"),
url(r'^character/(?P<charid>\d+)/$', views.eveapi_character, name="eveapi-character"),
url(r'^corporation/(?P<corporationid>\d+)/$', views.eveapi_corporation, name="eveapi-corporation"),
)

View File

@@ -8,7 +8,7 @@ from django.template import RequestContext
from django.http import Http404
from eve_api.forms import EveAPIForm
from eve_api.models import EVEAccount, EVEPlayerCharacter
from eve_api.models import EVEAccount, EVEPlayerCharacter, EVEPlayerCorporation
from eve_api.tasks import import_apikey_result
@@ -101,3 +101,21 @@ def eveapi_character(request, charid=None):
characters = EVEPlayerCharacter.objects.select_related('corporation', 'corporation__alliance').filter(eveaccount__user=request.user).only('id', 'name', 'corporation__name', 'corporation__alliance__name')
return render_to_response('eve_api/character_list.html', locals(), context_instance=RequestContext(request))
@login_required
def eveapi_corporation(request, corporationid):
"""
Provide details of a corporation, and for admins, a list of members
"""
try:
corporation = EVEPlayerCorporation.objects.get(id=corporationid)
except EVEPlayerCorporation.DoesNotExist:
raise Http404
if request.user.is_superuser:
view_members = True
members = corporation.eveplayercharacter_set.all().order_by('corporation_date').only('id', 'name', 'corporation_date')
return render_to_response('eve_api/corporation.html', locals(), context_instance=RequestContext(request))

View File

@@ -11,3 +11,4 @@ django-debug-toolbar==0.8.3
simplejson
celery==2.1.2
django-celery==2.1.2
-e git+https://github.com/ericflo/django-pagination.git@47e7ec874cd7dddda5ed#egg=django-pagination

View File

@@ -67,6 +67,7 @@ MIDDLEWARE_CLASSES = (
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'pagination.middleware.PaginationMiddleware',
)
ROOT_URLCONF = 'urls'
@@ -80,7 +81,8 @@ TEMPLATE_CONTEXT_PRCESSORS = (
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.contrib.staticfiles.context_processors.staticfiles",
"django.contrib.messages.context_processors.messages"
"django.contrib.messages.context_processors.messages",
"django.core.context_processors.request"
)
MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage'
@@ -98,6 +100,7 @@ INSTALLED_APPS = (
'djcelery',
'registration',
'debug_toolbar',
'pagination',
'eve_proxy',
'eve_api',
'reddit',

View File

@@ -8,7 +8,7 @@
<table>
<tr><th>Character Name</th><th>Corporation</th><th>Alliance</th></tr>
{% for char in characters %}
<tr><td><a href="{% url sso.views.characters char.id %}">{{ char.name }}</a></td>
<tr><td><a href="{% url eveapi-character char.id %}">{{ char.name }}</a></td>
<td>{{ char.corporation }}</td>
<td>{% if char.corporation.alliance %}{{ char.corporation.alliance }}{% endif %}</td>
</tr>

View File

@@ -0,0 +1,30 @@
{% extends "base.html" %}
{% load humanize %}
{% load naturaltimediff %}
{% load pagination_tags %}
{% block content %}
<div class="corporation_info">
<h1>{{ corporation.name }}</h1>
<ul>
<li><b>Member Count:</b> {{ corporation.member_count }}</li>
<li><b>Known Members:</b> {{ corporation.eveplayercharacter_set.all.count }}</li>
</ul>
{% if view_members %}
<table>
<tr><th>Name</th><th>Join Date</th></tr>
{% autopaginate members 10 %}
{% for char in members %}
<tr><td><a href="{% url eveapi-character char.id %}">{{ char.name }}</a></td><td>{{ char.corporation_date }}</td></tr>
{% endfor %}
</table>
{% paginate %}
{% endif %}
</div>
{% endblock %}