X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=influences%2Fviews.py;h=22f2a3b03005fc4810c354bdedb00e7b7a5c7bb9;hb=e3ea448b4125bc00c3e585144f9b3eded659771e;hp=50ce60001996f26b82db32c2f8372aab70db8f5a;hpb=69974d5dca02a99311dd5d97ae9907c31f500892;p=matthijs%2Fprojects%2Fxerxes.git diff --git a/influences/views.py b/influences/views.py index 50ce600..22f2a3b 100644 --- a/influences/views.py +++ b/influences/views.py @@ -1,14 +1,16 @@ from django.shortcuts import render_to_response from django.shortcuts import get_object_or_404 +from django.template import RequestContext from django.utils.translation import ugettext as _ +from django.contrib.auth.models import User from ee.influences.models import Character from ee.influences.models import Influence from ee.tools.forms import ContextModelForm class InfluenceForm(ContextModelForm): - class Meta: - model = Influence - fields = ('character', 'contact', 'description') + class Meta: + model = Influence + fields = ('character', 'contact', 'description') class CharacterForm(ContextModelForm): class Meta: @@ -16,22 +18,28 @@ class CharacterForm(ContextModelForm): fields = ('name') def add(request, character_id): - message = None - - if (request.method == "POST"): - f = InfluenceForm(request.POST) - if (f.is_valid()): - f.save() - message = _("Influence added.") - f = None - else: - f = InfluenceForm() - - if f: - # Only allow characters of the current user - f.fields['character']._set_queryset(request.user.character_set.all()) - - return render_to_response('influences/character_addinfluence.html', {'message' : message, 'form' : f}) + message = None + + initial = {} + # Get the current user's characters + chars = request.user.character_set.all() + + if (character_id): + initial['character'] = character_id + elif (chars.count() == 1): + initial['character'] = chars[0].id + + f = InfluenceForm(request=request, initial=initial) + if (f.is_valid()): + f.save() + message = _("Influence added.") + f = None + + # Only allow characters of the current user + if f: + f.fields['character']._set_queryset(chars) + + return render_to_response('influences/add.html', {'message' : message, 'form' : f}, RequestContext(request)) def addCharacter(request): message = None @@ -44,3 +52,8 @@ def addCharacter(request): f = None return render_to_response('influences/add_character.html', {'message' : message, 'form' : f}) + +def index(request): + characters = request.user.character_set.all() + influences = Influence.objects.filter(character__in=characters) + return render_to_response('influences/index.html', {'characters' : characters, 'influences' : influences}, RequestContext(request))