Example #1
0
    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)
Example #2
0
 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)
Example #3
0
    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)
Example #4
0
 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)