Only allow users to add NPC or Player characters.
[matthijs/projects/xerxes.git] / influences / forms.py
index 56e31ca471334d36ed8e446be6ed9536465e48c9..db825cc018362760833c0c2e74a44a11c582e8e4 100644 (file)
@@ -1,4 +1,4 @@
-from django.forms.fields import CharField
+from django.forms.fields import CharField, BooleanField
 from django.forms.widgets import Textarea
 from django.forms.models import ModelMultipleChoiceField
 from threadedcomments.forms import ThreadedCommentForm
@@ -25,6 +25,7 @@ class InfluenceCommentForm(ThreadedCommentForm):
 
 class AdminInfluenceCommentForm(ThreadedCommentForm):
     comment = CharField(widget=Textarea(attrs={'cols' : 80}))
+    is_public = BooleanField(required=False, initial=False)
     def __init__(self, *args, **kwargs):
         super(AdminInfluenceCommentForm, self).__init__(*args, **kwargs)
 
@@ -67,7 +68,11 @@ def _get_influence_comment_form(allow_markup, allow_public, allow_private):
         raise Exception("Unsupported configuration")
 
 class InfluenceForm(ContextModelForm):
-    other_characters = ModelMultipleChoiceField(queryset=Character.objects.all(), widget=DropDownMultiple)
+    # Manually define this field so we can select the DropDownMultiple
+    # widget. However, we leave the queryset empty, which characters can
+    # be selected depends on the logged in user and should be set by
+    # setting the choices property in the view.
+    other_characters = ModelMultipleChoiceField(queryset=Character.objects.none(), widget=DropDownMultiple)
     class Meta:
         model = Influence
         fields = ('initiator', 'summary', 'other_characters', 'other_contacts', 'description')