+from django.forms.fields import CharField
+from django.forms.widgets import Textarea
+from django.forms.models import ModelMultipleChoiceField
from threadedcomments.forms import ThreadedCommentForm
from xerxes.tools.forms import ContextModelForm
+from xerxes.tools.widgets import DropDownMultiple
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)
exclude = ('markup', )
class AdminInfluenceCommentForm(ThreadedCommentForm):
+ comment = CharField(widget=Textarea(attrs={'cols' : 80}))
def __init__(self, *args, **kwargs):
super(AdminInfluenceCommentForm, self).__init__(*args, **kwargs)
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
raise Exception("Unsupported configuration")
class InfluenceForm(ContextModelForm):
+ # 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 = ('character', 'contact', 'summary', 'description')
+ fields = ('initiator', 'summary', 'other_characters', 'other_contacts', 'description')
class CharacterForm(ContextModelForm):
class Meta:
model = Character
- fields = ('name')
+ fields = ('name', 'type')