Rename Influence.character to iniatator.
[matthijs/projects/xerxes.git] / influences / forms.py
index 7a222e2324daaa2087b8a3efa91cdfaf621d3d5a..a5f414fcf3a5b4f0392a36f9ff0b3b771a10afed 100644 (file)
@@ -1,3 +1,5 @@
+from django.forms.fields import CharField
+from django.forms.widgets import Textarea
 from threadedcomments.forms import ThreadedCommentForm
 from xerxes.tools.forms import ContextModelForm
 from models import Influence, Character
@@ -10,6 +12,9 @@ from models import Influence, Character
 # didn't get this to work yet.
 # 
 class InfluenceCommentForm(ThreadedCommentForm):
+    # Force the textare to 80 columns. This is really a hack, we should
+    # rather create a template tag to do this at the template level.
+    comment = CharField(widget=Textarea(attrs={'cols' : 80}))
     def __init__(self, *args, **kwargs):
         super(InfluenceCommentForm, self).__init__(*args, **kwargs)
 
@@ -17,22 +22,29 @@ class InfluenceCommentForm(ThreadedCommentForm):
         exclude = ('markup', )
 
 class AdminInfluenceCommentForm(ThreadedCommentForm):
+    comment = CharField(widget=Textarea(attrs={'cols' : 80}))
     def __init__(self, *args, **kwargs):
         super(AdminInfluenceCommentForm, self).__init__(*args, **kwargs)
 
     class Meta(ThreadedCommentForm.Meta):
         fields = ThreadedCommentForm.Meta.fields + ('is_public',)
+        exclude = ('markup', )
 
 class AdminPrivateInfluenceCommentForm(ThreadedCommentForm):
+    comment = CharField(widget=Textarea(attrs={'cols' : 80}))
     def __init__(self, *args, **kwargs):
         super(AdminPrivateInfluenceCommentForm, self).__init__(*args, **kwargs)
         self.instance.is_public = False
 
+    class Meta(ThreadedCommentForm.Meta):
+        exclude = ('markup', )
+
 def get_influence_comment_form(is_staff, reply_to):
     """ Gets the form class that a user can use to reply to the given comment.
     reply_to can be None, in which case the form class for a new comment is
     returned. """
-    allow_markup = allow_private = is_staff
+    allow_markup = False
+    allow_private = is_staff
     if reply_to:
         allow_public = reply_to.is_public
     else:
@@ -43,9 +55,9 @@ def _get_influence_comment_form(allow_markup, allow_public, allow_private):
     """ Internal wrapper that selects the right form class depending on the
     given options. Should not be called directly, call
     get_influence_comment_form instead. """
-    if allow_markup and allow_public and allow_private:
+    if not allow_markup and allow_public and allow_private:
         return AdminInfluenceCommentForm
-    elif allow_markup and not allow_public and allow_private:
+    elif not allow_markup and not allow_public and allow_private:
         return AdminPrivateInfluenceCommentForm
     elif not allow_markup and allow_public and not allow_private:
         return InfluenceCommentForm
@@ -55,7 +67,7 @@ def _get_influence_comment_form(allow_markup, allow_public, allow_private):
 class InfluenceForm(ContextModelForm):
     class Meta:
         model = Influence
-        fields = ('character', 'contact', 'summary', 'description')
+        fields = ('initiator', 'contact', 'summary', 'description')
 
 class CharacterForm(ContextModelForm):
     class Meta: