annotate gpp/forums/forms.py @ 83:5b4c812b448e
Forums: Added the ability to add a new topic. This is very much a work in progress.
author |
Brian Neal <bgneal@gmail.com> |
date |
Sat, 29 Aug 2009 20:54:16 +0000 (2009-08-29) |
parents |
|
children |
f81226b5e87b |
rev |
line source |
bgneal@83
|
1 """
|
bgneal@83
|
2 Forms for the forums application.
|
bgneal@83
|
3 """
|
bgneal@83
|
4 from django import forms
|
bgneal@83
|
5
|
bgneal@83
|
6 from forums.models import Topic
|
bgneal@83
|
7 from forums.models import Post
|
bgneal@83
|
8
|
bgneal@83
|
9
|
bgneal@83
|
10 class TopicForm(forms.ModelForm):
|
bgneal@83
|
11 """Form for creating a new topic."""
|
bgneal@83
|
12
|
bgneal@83
|
13 class Meta:
|
bgneal@83
|
14 model = Topic
|
bgneal@83
|
15 fields = ('name', )
|
bgneal@83
|
16
|
bgneal@83
|
17
|
bgneal@83
|
18 class PostForm(forms.ModelForm):
|
bgneal@83
|
19 """Form for creating a new post."""
|
bgneal@83
|
20
|
bgneal@83
|
21 class Meta:
|
bgneal@83
|
22 model = Post
|
bgneal@83
|
23 fields = ('body', )
|
bgneal@83
|
24
|
bgneal@83
|
25
|
bgneal@83
|
26 class NewTopicForm(forms.Form):
|
bgneal@83
|
27 """Form for creating a new topic and 1st post to that topic."""
|
bgneal@83
|
28 name = forms.CharField(label='Subject', max_length=255)
|
bgneal@83
|
29 body = forms.CharField(label='', widget=forms.Textarea)
|
bgneal@83
|
30
|
bgneal@83
|
31 def save(self, forum, user, ip=None):
|
bgneal@83
|
32 """
|
bgneal@83
|
33 Creates the new Topic and first Post from the form data and supplied
|
bgneal@83
|
34 forum and user objects.
|
bgneal@83
|
35 """
|
bgneal@83
|
36 topic = Topic(forum=forum,
|
bgneal@83
|
37 name=self.cleaned_data['name'],
|
bgneal@83
|
38 user=user)
|
bgneal@83
|
39 topic.save()
|
bgneal@83
|
40
|
bgneal@83
|
41 post = Post(topic=topic,
|
bgneal@83
|
42 user=user,
|
bgneal@83
|
43 body=self.cleaned_data['body'],
|
bgneal@83
|
44 user_ip=ip)
|
bgneal@83
|
45 post.save()
|
bgneal@83
|
46
|
bgneal@83
|
47 return topic
|