From 81e81ffe4a129b77eb9b1ee81377dba91e2d14a4 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Wed, 17 Mar 2010 00:07:35 +0000 Subject: [PATCH] Adds a character viewer --- sso/urls.py | 2 ++ sso/views.py | 24 +++++++++++++++++++++++- templates/base.html | 1 + 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/sso/urls.py b/sso/urls.py index fe2c81a..ceab6b6 100644 --- a/sso/urls.py +++ b/sso/urls.py @@ -16,6 +16,8 @@ urlpatterns = patterns('', (r'^profile/add/reddit', views.reddit_add), (r'^profile/del/reddit/$', views.reddit_del), (r'^profile/del/reddit/(?P\d+)/$', views.reddit_del), + (r'^profile/characters$', views.characters), + (r'^profile/characters/(?P.*)/$', views.characters), (r'^users/(?P.*)/$', views.user_view), (r'^users/$', views.user_view), ) diff --git a/sso/views.py b/sso/views.py index 688804b..480e52a 100644 --- a/sso/views.py +++ b/sso/views.py @@ -10,7 +10,7 @@ from django.template import RequestContext from eve_api.api_exceptions import APIAuthException, APINoUserIDException from eve_api.api_puller.accounts import import_eve_account -from eve_api.models.api_player import EVEAccount +from eve_api.models.api_player import EVEAccount, EVEPlayerCharacter from sso.models import ServiceAccount, Service, SSOUser, ExistingUser from sso.forms import EveAPIForm, UserServiceAccountForm, RedditAccountForm, UserLookupForm @@ -49,6 +49,28 @@ def profile(request): return render_to_response('sso/profile.html', locals(), context_instance=RequestContext(request)) +@login_required +def characters(request, charid=0): + + if charid: + try: + character = EVEPlayerCharacter.objects.get(id=charid) + except EVEPlayerCharacter.DoesNotExist: + return HttpResponseRedirect(reverse('sso.views.profile')) + return render_to_response('sso/character.html', locals(), context_instance=RequestContext(request)) + try: + eveaccounts = EVEAccount.objects.filter(user=request.user).all() + characters = [] + for acc in eveaccounts: + chars = acc.characters.all() + for char in chars: + characters.append({'id': char.id, 'name': char.name, 'corp': char.corporation.name}) + + except EVEAccount.DoesNotExist: + characters = [] + + return render_to_response('sso/characterlist.html', locals(), context_instance=RequestContext(request)) + @login_required def eveapi_add(request): if request.method == 'POST': diff --git a/templates/base.html b/templates/base.html index 430c663..762855c 100644 --- a/templates/base.html +++ b/templates/base.html @@ -17,6 +17,7 @@
  • Home
  • {% if request.user %}
  • Profile
  • +
  • Characters
  • {% if request.user.is_staff %}
  • Lookup User
  • Admin