* Make the character list a real character list again and move it /influences/charac...
[matthijs/projects/xerxes.git] / influences / views.py
1 from django.shortcuts import render_to_response
2 from django.shortcuts import get_object_or_404
3 from django.utils.translation import ugettext as _
4 from django.contrib.auth.models import User
5 from ee.influences.models import Character
6 from ee.influences.models import Influence
7 from ee.tools.forms import ContextModelForm
8
9 class InfluenceForm(ContextModelForm):
10     class Meta:
11         model = Influence
12         fields = ('character', 'contact', 'description')
13
14 class CharacterForm(ContextModelForm):
15     class Meta:
16         model = Character
17         fields = ('name')
18
19 def add(request, character_id):
20     message = None
21
22     initial = {}
23     if (character_id):
24         initial['character'] = character_id
25
26     f = InfluenceForm(request=request, initial=initial)
27     if (f.is_valid()):
28         f.save()
29         message = _("Influence added.")
30         f = None
31
32     if f:
33         # Only allow characters of the current user
34         f.fields['character']._set_queryset(request.user.character_set.all())
35
36     return render_to_response('influences/add.html', {'message' : message, 'form' : f})
37
38 def addCharacter(request):
39     message = None
40     f = CharacterForm(request=request)
41     if (f.is_valid()):
42         c = f.save(commit=False)
43         c.player = request.user
44         c.save()
45         message = _("Character added.")
46         f = None
47
48     return render_to_response('influences/add_character.html', {'message' : message, 'form' : f})
49
50 def index(request):
51     characters = request.user.character_set.all()
52     influences = Influence.objects.filter(character__in=characters)
53     return render_to_response('influences/index.html', {'characters' : characters, 'influences' : influences})