* Add an addCharacter view to the influences app.
[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 ee.influences.models import Character
5 from ee.influences.models import Influence
6 from ee.tools.forms import ContextModelForm
7
8 class InfluenceForm(ContextModelForm):
9         class Meta:
10                 model = Influence
11                 fields = ('character', 'contact', 'description')
12
13 class CharacterForm(ContextModelForm):
14     class Meta:
15         model = Character
16         fields = ('name')
17
18 def add(request, character_id):
19         message = None
20
21         if (request.method == "POST"):
22                 f = InfluenceForm(request.POST)
23                 if (f.is_valid()):
24                         f.save()
25                         message = _("Influence added.")
26                         f = None
27         else:
28                 f = InfluenceForm()
29         
30         if f:
31                 # Only allow characters of the current user
32                 f.fields['character']._set_queryset(request.user.character_set.all())
33
34         return render_to_response('influences/character_addinfluence.html', {'message' : message, 'form' : f})
35
36 def addCharacter(request):
37     message = None
38     f = CharacterForm(request=request)
39     if (f.is_valid()):
40         c = f.save(commit=False)
41         c.player = request.user
42         c.save()
43         message = _("Character added.")
44         f = None
45
46     return render_to_response('influences/add_character.html', {'message' : message, 'form' : f})