def save(self, commit=True): if self.instance.pk: post = super(PostForm, self).save(commit=False) if self.user: post.user = self.user if post.topic.head == post: post.topic.name = self.cleaned_data['name'] if self.may_create_poll: post.topic.poll_type = self.cleaned_data['poll_type'] post.topic.poll_question = self.cleaned_data[ 'poll_question'] post.topic.updated = tznow() if commit: post.topic.save() post.updated = tznow() if commit: post.save() # Subscribe to topic if self.cleaned_data['subscribe']: post.topic.subscribers.add(self.user) else: post.topic.subscribers.remove(self.user) return post, post.topic allow_post = True if defaults.PYBB_PREMODERATION: allow_post = defaults.PYBB_PREMODERATION(self.user, self.cleaned_data['body']) if self.forum: topic = Topic( forum=self.forum, user=self.user, name=self.cleaned_data['name'], poll_type=self.cleaned_data.get('poll_type', Topic.POLL_TYPE_NONE), poll_question=self.cleaned_data.get('poll_question', None), slug=self.cleaned_data.get('slug', None), ) if not allow_post: topic.on_moderation = True else: topic = self.topic post = Post(user=self.user, user_ip=self.ip, body=self.cleaned_data['body']) if not allow_post: post.on_moderation = True if commit: topic.save() post.topic = topic post.save() return post, topic
def save(self, commit=True): if self.instance.pk: post = super(PostForm, self).save(commit=False) if self.user: post.user = self.user if post.topic.head == post: post.topic.name = self.cleaned_data['name'] post.topic.poll_type = self.cleaned_data['poll_type'] post.topic.poll_question = self.cleaned_data['poll_question'] post.topic.updated = tznow() if commit: post.topic.save() if commit: post.save() return post allow_post = True if defaults.PYBB_PREMODERATION: allow_post = defaults.PYBB_PREMODERATION(self.user, self.cleaned_data['body']) if self.forum: topic = Topic( forum=self.forum, user=self.user, name=self.cleaned_data['name'], poll_type=self.cleaned_data['poll_type'], poll_question=self.cleaned_data['poll_question'], ) if not allow_post: topic.on_moderation = True if commit: topic.save() else: topic = self.topic post = Post(topic=topic, user=self.user, user_ip=self.ip, body=self.cleaned_data['body']) if not allow_post: post.on_moderation = True if commit: post.save() return post