Only allow users to add NPC or Player characters.
[matthijs/projects/xerxes.git] / influences / views.py
index 334bfc70d076f71455dc7329e1282c5d1a928d84..cf6429f0755dfa98ca21e73225089cc54fce8d88 100644 (file)
@@ -14,15 +14,15 @@ from threadedcomments.views import free_comment, _preview
 from xerxes.influences.models import Character
 from xerxes.influences.models import Influence
 from forms import get_influence_comment_form, InfluenceForm, CharacterForm
-from xerxes.tools.misc import make_choices
+from xerxes.tools.misc import make_choices, filter_choices
 
 @login_required
 def add_influence(request, character_id=None):
     initial = {}
     # Get the current user's characters
-    my_chars = request.user.character_set.all().filter(type__in=['P', 'N'])
+    my_chars = request.user.character_set.all().filter(type__in=[Character.PLAYER, Character.NPC])
     # Get all chars
-    all_chars = Character.objects.all().filter(type__in=['P', 'N'])
+    all_chars = Character.objects.all().filter(type__in=[Character.PLAYER, Character.NPC])
 
     # If a character_id was specified in the url, or there is only one
     # character, preselect it.
@@ -60,6 +60,10 @@ def add_influence(request, character_id=None):
 @login_required
 def add_character(request):
     f = CharacterForm(request=request)
+    f.fields['type'].choices = filter_choices(
+        f.fields['type'].choices,
+        [Character.PLAYER, Character.NPC]
+    )
     if (f.is_valid()):
         character = f.save(commit=False)
         character.player = request.user