diff --git a/allianceauth/urls.py b/allianceauth/urls.py index cb563684..20324af0 100644 --- a/allianceauth/urls.py +++ b/allianceauth/urls.py @@ -10,6 +10,7 @@ urlpatterns = patterns('', url(r'^$', 'portal.views.index', name='index'), url(r'^characters/', 'portal.views.characters_view', name='characters'), url(r'^apikeymanagment/', 'portal.views.apikeymanagment_view', name='apimanagment'), + url(r'^maincharacterchange/(\d+)/$', 'portal.views.main_character_change', name='main_character_change'), url(r'^loginuser/','authentication.views.login_user', name='loginuser'), url(r'^logoutuser/','authentication.views.logout_user', name='logoutuser'), url(r'^register/', 'registration.views.register', name='register'), diff --git a/authentication/models.py b/authentication/models.py index 4e0f6d62..3a3d2904 100644 --- a/authentication/models.py +++ b/authentication/models.py @@ -54,6 +54,11 @@ class AllianceUserManager(BaseUserManager): user.is_moderator = True user.save(using=self._db) return user + + def update_user_main_character(self,character_id, user_id): + user = AllianceUser.objects.get(id=user_id) + user.main_char_id = character_id + user.save(update_fields=['main_char_id']) # The icv user class AllianceUser(AbstractBaseUser): @@ -65,6 +70,7 @@ class AllianceUser(AbstractBaseUser): is_banned = models.BooleanField(default = False) api_id = models.CharField(max_length = 254) api_key = models.CharField(max_length = 254) + main_char_id = models.IntegerField(default = 0) objects = AllianceUserManager() diff --git a/evespecific/managers.py b/evespecific/managers.py index 75bc4e63..2e45930c 100644 --- a/evespecific/managers.py +++ b/evespecific/managers.py @@ -26,6 +26,16 @@ class EveCharacterManager(): def get_characters_by_owner_id(self, owner_id): return EveCharacter.objects.all().filter(allianceuser_owner=owner_id) + + def check_if_character_owned_by_user(self, char_id, user_id): + character = EveCharacter.objects.get(character_id = char_id) + print char_id + print user_id + print character.allianceuser_owner + if character.allianceuser_owner.id == user_id: + return True + + return False class EveApiManager(): diff --git a/portal/views.py b/portal/views.py index 89ca4ab9..f2a4802d 100644 --- a/portal/views.py +++ b/portal/views.py @@ -1,10 +1,11 @@ from django.shortcuts import render -from django.shortcuts import render_to_response +from django.shortcuts import render_to_response, HttpResponseRedirect from django.template import RequestContext from django.contrib.auth.decorators import login_required from forms import UpdateKeyForm -from evespecific.managers import EveCharacterManager +from evespecific.managers import EveCharacterManager +from authentication.models import AllianceUserManager # Create your views here. @login_required def index(request): @@ -17,6 +18,15 @@ def characters_view(request): render_items = {'characters':characterManager.get_characters_by_owner_id(request.user.id)} return render_to_response('public/characters.html', render_items, context_instance=RequestContext(request)) +@login_required +def main_character_change(request, id): + userManager = AllianceUserManager() + characterManager = EveCharacterManager() + if characterManager.check_if_character_owned_by_user(id,request.user.id) == True: + userManager.update_user_main_character(id,request.user.id) + return HttpResponseRedirect("/") + return HttpResponseRedirect("/characters") + @login_required def apikeymanagment_view(request): if request.method == 'POST': diff --git a/templates/public/characters.html b/templates/public/characters.html index be57d696..2c8c5360 100644 --- a/templates/public/characters.html +++ b/templates/public/characters.html @@ -25,7 +25,7 @@
- +