* Make the add view pass a request to ContextModelForm.
[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     initial = {}
22     if (character_id):
23         initial['character'] = character_id
24
25     f = InfluenceForm(request=request, initial=initial)
26     if (f.is_valid()):
27         f.save()
28         message = _("Influence added.")
29         f = None
30
31     if f:
32         # Only allow characters of the current user
33         f.fields['character']._set_queryset(request.user.character_set.all())
34
35     return render_to_response('influences/character_addinfluence.html', {'message' : message, 'form' : f})
36
37 def addCharacter(request):
38     message = None
39     f = CharacterForm(request=request)
40     if (f.is_valid()):
41         c = f.save(commit=False)
42         c.player = request.user
43         c.save()
44         message = _("Character added.")
45         f = None
46
47     return render_to_response('influences/add_character.html', {'message' : message, 'form' : f})