From 0aa29b031e7c1447c7bd73a997eb59a9a407bbdc Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Thu, 13 Jan 2011 16:24:31 +0000 Subject: [PATCH] Added a corporation and member view to eve_api --- eve_api/urls.py | 5 +++-- eve_api/views.py | 20 +++++++++++++++++- requirements.txt | 1 + settings.py | 5 ++++- templates/eve_api/character_list.html | 2 +- templates/eve_api/corporation.html | 30 +++++++++++++++++++++++++++ 6 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 templates/eve_api/corporation.html diff --git a/eve_api/urls.py b/eve_api/urls.py index 892ab44..af1b162 100644 --- a/eve_api/urls.py +++ b/eve_api/urls.py @@ -9,8 +9,9 @@ urlpatterns = patterns('', url(r'^eveapi/refresh/(?P\d+)/$', views.eveapi_refresh, name="eveapi-refresh"), url(r'^eveapi/log/(?P\d+)/$', views.eveapi_log, name="eveapi-log"), - url(r'^character/list/$', views.eveapi_characters, name="eveapi-characters-list"), - url(r'^character/(?P.*)/$', views.eveapi_characters, name="eveapi-character"), + url(r'^character/list/$', views.eveapi_character, name="eveapi-characters-list"), + url(r'^character/(?P\d+)/$', views.eveapi_character, name="eveapi-character"), + url(r'^corporation/(?P\d+)/$', views.eveapi_corporation, name="eveapi-corporation"), ) diff --git a/eve_api/views.py b/eve_api/views.py index 1034b66..b23ed0f 100644 --- a/eve_api/views.py +++ b/eve_api/views.py @@ -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)) diff --git a/requirements.txt b/requirements.txt index 2546aff..345cf02 100644 --- a/requirements.txt +++ b/requirements.txt @@ -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 diff --git a/settings.py b/settings.py index 863aaa1..ada7503 100755 --- a/settings.py +++ b/settings.py @@ -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', diff --git a/templates/eve_api/character_list.html b/templates/eve_api/character_list.html index da0479b..554d47d 100644 --- a/templates/eve_api/character_list.html +++ b/templates/eve_api/character_list.html @@ -8,7 +8,7 @@ {% for char in characters %} - + diff --git a/templates/eve_api/corporation.html b/templates/eve_api/corporation.html new file mode 100644 index 0000000..6288003 --- /dev/null +++ b/templates/eve_api/corporation.html @@ -0,0 +1,30 @@ +{% extends "base.html" %} + +{% load humanize %} +{% load naturaltimediff %} +{% load pagination_tags %} + +{% block content %} + +
+

{{ corporation.name }}

+ +
    +
  • Member Count: {{ corporation.member_count }}
  • +
  • Known Members: {{ corporation.eveplayercharacter_set.all.count }}
  • +
+ + {% if view_members %} +
Character NameCorporationAlliance
{{ char.name }}
{{ char.name }} {{ char.corporation }} {% if char.corporation.alliance %}{{ char.corporation.alliance }}{% endif %}
+ + {% autopaginate members 10 %} + {% for char in members %} + + {% endfor %} +
NameJoin Date
{{ char.name }}{{ char.corporation_date }}
+ {% paginate %} + {% endif %} + + + +{% endblock %}