Exemplo n.º 1
0
    def test_page(self):
        response = self.client.get(self.addr, follow=True)
        self.assertRedirects(response, reverse('login') + "?next=" + self.addr)

        self.client.login(username="******", password="******")
        response = self.client.get(self.addr, follow=True)
        self.assertEqual(response.status_code, 200)
        for x in ('All Pages', 'Page Name',
                  'No wiki pages have been added yet'):
            self.assertContains(response, x)

        page = Page(slug="page")
        page.save()
        revision = Revision(page=page,
                            content="page",
                            content_html="",
                            created_ip="0.0.0.0",
                            created_at=datetime.now(),
                            created_by=self.u)
        revision.save()

        response = self.client.get(self.addr, follow=True)
        self.assertEqual(response.status_code, 200)
        for x in ('Page', 'Last Edited', 'page'):
            self.assertContains(response, x)
Exemplo n.º 2
0
def revision(save=False, **kwargs):
    """Return an empty revision with enough stuff filled out that it can be
    saved.

    Revision's is_approved=False unless you specify otherwise.

    Requires a users fixture if no creator is provided.

    """
    d = None
    if 'document' not in kwargs:
        d = document()
        d.save()

    defaults = {'summary': 'Some summary', 'content': 'Some content',
                'significance': SIGNIFICANCES[0][0], 'comment': 'Some comment',
                'creator': kwargs.get('creator', get_user()), 'document': d,
                'tags': '"some", "tags"'}

    defaults.update(kwargs)

    r = Revision(**defaults)
    if save:
        r.save()
    return r
Exemplo n.º 3
0
def edit(req, pagename):
    if req.user.get_profile().banned:
        return HttpResponseRedirect(
            "/wiki/%s?error=%s" %
            (pagename, "Sorry banned users can't edit the wiki"))

    try:
        page = Page.objects.get(title__iexact=pagename)
    except:
        page = None

    if page and page.op_only and not req.user.is_staff:
        return HttpResponseRedirect(
            "/wiki/%s?error=%s" %
            (pagename, "Sorry only operators edit this page."))

    if req.POST.has_key('body'):  # We should save something
        #if req.POST.has_key( 'base_rev' ):
        # ^ TODO: Add super merging fun time.
        # ^ TODO: Add op-only check.

        if not page:
            page = Page(title=pagename, op_only=False)
            page.save()

        rev = Revision(author=req.user,
                       pub_date=datetime.datetime.now(),
                       body=req.POST['body'],
                       page=page)
        rev.save()
        return HttpResponseRedirect("/wiki/%s" % pagename)

    if page:
        # try to fetch the last our last revision.
        revision = page.get_last_revision()
        wiki_title = page.title.replace('_', ' ')

    else:
        revision = None
        wiki_title = pagename.replace('_', ' ')

    c = RequestContext(req, {
        'wiki_title': wiki_title,
        'pagename': pagename,
        'revision': revision
    })

    return render_to_response("wiki/edit.html", c)
Exemplo n.º 4
0
def revision(**kwargs):
    """Return an empty revision with enough stuff filled out that it can be
    saved.

    Revision's is_approved=False unless you specify otherwise.

    Requires a users fixture if no creator is provided.

    """
    d = kwargs.pop('document', None) or document(save=True)

    defaults = {'summary': 'Some summary', 'content': 'Some content',
                'significance': SIGNIFICANCES[0][0], 'comment': 'Some comment',
                'creator': kwargs.get('creator', get_user()), 'document': d}
    defaults.update(kwargs)

    return Revision(**defaults)