def get_context_data(self, **kwargs): ctx = super(PostEditMixin, self).get_context_data(**kwargs) if perms.may_attach_files(self.request.user) and (not 'aformset' in kwargs): ctx['aformset'] = AttachmentFormSet(instance=self.object if getattr(self, 'object') else None) if perms.may_create_poll(self.request.user) and ('pollformset' not in kwargs): ctx['pollformset'] = PollAnswerFormSet(instance=self.object.topic if getattr(self, 'object') else None) return ctx
def get_form_kwargs(self): ip = self.request.META.get("REMOTE_ADDR", "") form_kwargs = super(AddPostView, self).get_form_kwargs() form_kwargs.update(dict(topic=self.topic, forum=self.forum, user=self.user, ip=ip, initial={})) if getattr(self, "quote", None): form_kwargs["initial"]["body"] = self.quote if perms.may_post_as_admin(self.user): form_kwargs["initial"]["login"] = getattr(self.user, username_field) form_kwargs["may_create_poll"] = perms.may_create_poll(self.user) return form_kwargs
def form_valid(self, form): success = True save_attachments = False save_poll_answers = False self.object, topic = form.save(commit=False) if perms.may_attach_files(self.request.user): aformset = self.get_attachment_formset_class()( self.request.POST, self.request.FILES, instance=self.object ) if aformset.is_valid(): save_attachments = True else: success = False else: aformset = None if perms.may_create_poll(self.request.user): pollformset = self.get_poll_answer_formset_class()() if getattr(self, 'forum', None) or topic.head == self.object: if topic.poll_type != Topic.POLL_TYPE_NONE: pollformset = self.get_poll_answer_formset_class()( self.request.POST, instance=topic ) if pollformset.is_valid(): save_poll_answers = True else: success = False else: topic.poll_question = None topic.poll_answers.all().delete() else: pollformset = None if success: try: topic.save() except ValidationError as e: success = False errors = form._errors.setdefault('name', ErrorList()) errors += e.error_list else: self.object.topic = topic self.object.save() if save_attachments: aformset.save() if self.object.attachments.count(): # re-parse the body to replace attachment's references by URLs self.object.save() if save_poll_answers: pollformset.save() return HttpResponseRedirect(self.get_success_url()) return self.render_to_response(self.get_context_data(form=form, aformset=aformset, pollformset=pollformset))
def get_form_kwargs(self): ip = self.request.META.get('REMOTE_ADDR', '') form_kwargs = super(AddPostView, self).get_form_kwargs() form_kwargs.update(dict(topic=self.topic, forum=self.forum, user=self.user, ip=ip, initial={})) if getattr(self, 'quote', None): form_kwargs['initial']['body'] = self.quote if perms.may_post_as_admin(self.user): form_kwargs['initial']['login'] = getattr(self.user, username_field) form_kwargs['may_create_poll'] = perms.may_create_poll(self.user) return form_kwargs
def get_context_data(self, **kwargs): ctx = super(PostEditMixin, self).get_context_data(**kwargs) if perms.may_attach_files(self.request.user) and "aformset" not in kwargs: ctx["aformset"] = self.get_attachment_formset_class()(instance=getattr(self, "object", None)) if perms.may_create_poll(self.request.user) and "pollformset" not in kwargs: ctx["pollformset"] = self.get_poll_answer_formset_class()( instance=self.object.topic if getattr(self, "object", None) else None ) return ctx
def get_context_data(self, **kwargs): ctx = super(PostEditMixin, self).get_context_data(**kwargs) if perms.may_attach_files( self.request.user) and 'aformset' not in kwargs: ctx['aformset'] = self.get_attachment_formset_class()( instance=getattr(self, 'object', None)) if perms.may_create_poll( self.request.user) and 'pollformset' not in kwargs: ctx['pollformset'] = self.get_poll_answer_formset_class()( instance=self.object.topic if getattr(self, 'object', None ) else None) return ctx
def get_form_kwargs(self): ip = self.request.META.get('REMOTE_ADDR', '') form_kwargs = super(AddPostView, self).get_form_kwargs() form_kwargs.update( dict(topic=self.topic, forum=self.forum, user=self.user, ip=ip, initial={})) if getattr(self, 'quote', None): form_kwargs['initial']['body'] = self.quote if perms.may_post_as_admin(self.user): form_kwargs['initial']['login'] = getattr(self.user, username_field) form_kwargs['may_create_poll'] = perms.may_create_poll(self.user) return form_kwargs
def form_valid(self, form): success = True save_attachments = False save_poll_answers = False self.object = form.save(commit=False) if perms.may_attach_files(self.request.user): aformset = self.get_attachment_formset_class()( self.request.POST, self.request.FILES, instance=self.object) if aformset.is_valid(): save_attachments = True else: success = False else: aformset = None if perms.may_create_poll(self.request.user): pollformset = self.get_poll_answer_formset_class()() if getattr(self, 'forum', None) or self.object.topic.head == self.object: if self.object.topic.poll_type != Topic.POLL_TYPE_NONE: pollformset = self.get_poll_answer_formset_class()( self.request.POST, instance=self.object.topic) if pollformset.is_valid(): save_poll_answers = True else: success = False else: self.object.topic.poll_question = None self.object.topic.poll_answers.all().delete() else: pollformset = None if success: self.object.topic.save() self.object.topic = self.object.topic self.object.save() if save_attachments: aformset.save() if save_poll_answers: pollformset.save() return HttpResponseRedirect(self.get_success_url()) else: return self.render_to_response( self.get_context_data(form=form, aformset=aformset, pollformset=pollformset))
def form_valid(self, form): success = True save_attachments = False save_poll_answers = False self.object = form.save(commit=False) if perms.may_attach_files(self.request.user): aformset = AttachmentFormSet( self.request.POST, self.request.FILES, instance=self.object) if aformset.is_valid(): save_attachments = True else: success = False else: aformset = None if perms.may_create_poll(self.request.user): pollformset = PollAnswerFormSet() if getattr(self, 'forum', None) or \ self.object.topic.head == self.object: if self.object.topic.poll_type != Topic.POLL_TYPE_NONE: pollformset = PollAnswerFormSet( self.request.POST, instance=self.object.topic) if pollformset.is_valid(): save_poll_answers = True else: success = False else: self.object.topic.poll_question = None self.object.topic.poll_answers.all().delete() else: pollformset = None if success: self.object.topic.save() self.object.topic = self.object.topic self.object.save() if save_attachments: aformset.save() if save_poll_answers: pollformset.save() return super(ModelFormMixin, self).form_valid(form) else: return self.render_to_response(self.get_context_data( form=form, aformset=aformset, pollformset=pollformset))
def form_valid(self, form): success = True save_attachments = False save_poll_answers = False self.object = form.save(commit=False) if perms.may_attach_files(self.request.user): aformset = self.get_attachment_formset_class()(self.request.POST, self.request.FILES, instance=self.object) if aformset.is_valid(): save_attachments = True else: success = False else: aformset = None if perms.may_create_poll(self.request.user): pollformset = self.get_poll_answer_formset_class()() if getattr(self, "forum", None) or self.object.topic.head == self.object: if self.object.topic.poll_type != Topic.POLL_TYPE_NONE: pollformset = self.get_poll_answer_formset_class()(self.request.POST, instance=self.object.topic) if pollformset.is_valid(): save_poll_answers = True else: success = False else: self.object.topic.poll_question = None self.object.topic.poll_answers.all().delete() else: pollformset = None if success: self.object.topic.save() self.object.topic = self.object.topic self.object.save() if save_attachments: aformset.save() if save_poll_answers: pollformset.save() return HttpResponseRedirect(self.get_success_url()) else: return self.render_to_response(self.get_context_data(form=form, aformset=aformset, pollformset=pollformset))
def get_form_kwargs(self): form_kwargs = super(EditPostView, self).get_form_kwargs() form_kwargs['may_create_poll'] = perms.may_create_poll(self.request.user) return form_kwargs
def get_form_kwargs(self): form_kwargs = super(EditPostView, self).get_form_kwargs() form_kwargs['may_create_poll'] = perms.may_create_poll( self.request.user) return form_kwargs