def get(self, *args, **kwargs): urlpath = kwargs.pop('urlpath', self.urlpath) if force_redirect(urlpath, self.article): return redirect(reverse('wiki:dir', kwargs={'path': urlpath.path})) self.forms = [] # There is a bug where articles fetched with select_related have bad boolean field https://code.djangoproject.com/ticket/15040 # We fetch a fresh new article for this reason new_article = models.Article.objects.get(id=self.article.id) for Form in self.get_form_classes(): self.forms.append(Form(new_article, self.request)) return super(Settings, self).get(*args, **kwargs)
def get(self, request, *args, **kwargs): urlpath = kwargs.pop('urlpath', self.urlpath) if force_redirect(urlpath, self.article): return redirect(reverse('wiki:dir', kwargs={'path': urlpath.path})) # Generate sidebar forms self.sidebar_forms = [] for form_id, (plugin, Form) in list(self.get_sidebar_form_classes().items()): if Form: form = Form(self.article, self.request.user) setattr(form, 'form_id', form_id) else: form = None self.sidebar.append((plugin, form)) return super(Edit, self).get(request, *args, **kwargs)
def post(self, request, *args, **kwargs): urlpath = kwargs.pop('urlpath', self.urlpath) if force_redirect(urlpath, self.article): return redirect(reverse('wiki:dir', kwargs={'path': urlpath.path})) # Generate sidebar forms self.sidebar_forms = [] for form_id, (plugin, Form) in list(self.get_sidebar_form_classes().items()): if Form: if form_id == self.request.GET.get('f', None): form = Form(self.article, self.request, data=self.request.POST, files=self.request.FILES) if form.is_valid(): form.save() usermessage = form.get_usermessage() if usermessage: messages.success(self.request, usermessage) else: messages.success(self.request, _('Your changes were saved.')) title = form.cleaned_data['unsaved_article_title'] content = form.cleaned_data['unsaved_article_content'] if title != self.article.current_revision.title or content != self.article.current_revision.content: request.session['unsaved_article_title_%d' % self.article.id] = title request.session['unsaved_article_content_%d' % self.article.id] = content messages.warning(request, _('Please note that your article text has not yet been saved!')) if self.urlpath: return redirect('wiki:edit', path=self.urlpath.path) return redirect('wiki:edit', article_id=self.article.id) else: form = Form(self.article, self.request) setattr(form, 'form_id', form_id) else: form = None self.sidebar.append((plugin, form)) return super(Edit, self).post(request, *args, **kwargs)
def get(self, request, *args, **kwargs): urlpath = kwargs.pop('urlpath', self.urlpath) if force_redirect(urlpath, self.article): return redirect(reverse('wiki:dir', kwargs={'path': urlpath.path})) return super(ArticleView, self).get(request, *args, **kwargs)