Ejemplo n.º 1
0
def landing_view(request):
    """ The external landing."""
    revision = None
    can_edit = False
    edit_url = None

    if "farnswiki" in settings.INSTALLED_APPS:
        from wiki.models import Page
        from wiki.hooks import hookset

        binder = settings.WIKI_BINDERS[0]
        wiki = binder.lookup()
        try:
            if wiki:
                page = wiki.pages.get(slug="landing")
            else:
                page = Page.objects.get(slug="landing")
        except (Page.DoesNotExist, Page.MultipleObjectsReturned):
            can_edit = hookset.can_create_page(wiki, request.user, slug="landing")
            edit_url = binder.page_url(wiki, "landing")
        else:
            revision = page.revisions.latest()
            can_edit = hookset.can_edit_page(page, request.user)
            edit_url = page.get_edit_url()

    return render_to_response(
        "external.html",
        {"page_name": "Landing", "revision": revision, "can_edit": can_edit, "edit_url": edit_url},
        context_instance=RequestContext(request),
    )
Ejemplo n.º 2
0
def landing_view(request):
    ''' The external landing.'''
    revision = None
    can_edit = False
    edit_url = None

    if "farnswiki" in settings.INSTALLED_APPS:
        from wiki.models import Page
        from wiki.hooks import hookset
        binder = settings.WIKI_BINDERS[0]
        wiki = binder.lookup()
        try:
            if wiki:
                page = wiki.pages.get(slug="landing")
            else:
                page = Page.objects.get(slug="landing")
        except (Page.DoesNotExist, Page.MultipleObjectsReturned):
            can_edit = hookset.can_create_page(wiki,
                                               request.user,
                                               slug="landing")
            edit_url = binder.page_url(wiki, "landing")
        else:
            revision = page.revisions.latest()
            can_edit = hookset.can_edit_page(page, request.user)
            edit_url = page.get_edit_url()

    return render_to_response('external.html', {
        "page_name": "Landing",
        "revision": revision,
        "can_edit": can_edit,
        "edit_url": edit_url,
    },
                              context_instance=RequestContext(request))
Ejemplo n.º 3
0
def add_page_view(request, binder, *args, **kwargs):
    wiki = binder.lookup(*args, **kwargs)
    slug = request.GET.get("slug", "")
    if not slug:
        slug = "Page Name"

    try:
        if wiki:
            page = wiki.pages.get(slug=slug)
        else:
            page = Page.objects.get(slug=slug)
    except Page.DoesNotExist:
        pass
    else:
        return HttpResponseRedirect(page.get_edit_url())

    if not hookset.can_create_page(wiki, request.user, slug=slug):
        messages.add_message(
            request, messages.ERROR,
            "You do not have permission to create this page.")
        return HttpResponseRedirect(reverse("wiki_all"))

    form = RevisionForm(
        request.POST if "edit" in request.POST else None,
        revision=None,
    )
    if form.is_valid():
        page = Page.objects.create(wiki=wiki, slug=slug)
        revision = form.save(commit=False)
        revision.page = page
        revision.created_by = request.user
        revision.created_ip = request.META.get(
            settings.WIKI_IP_ADDRESS_META_FIELD,
            request.META.get("REMOTE_ADDR"))
        revision.parse()
        revision.save()
        return HttpResponseRedirect(binder.page_url(wiki, slug))

    form.fields["content"].help_text = ""

    page_name = "Add {0}".format(slug)

    return render_to_response("wiki/edit.html", {
        "page_name": page_name,
        "form": form,
        "can_delete": False,
    },
                              context_instance=RequestContext(request))
Ejemplo n.º 4
0
def all_pages_view(request, binder, *args, **kwargs):
    wiki = binder.lookup(*args, **kwargs)
    if wiki:
        pages = wiki.pages.all()
    else:
        pages = Page.objects.all()

    pages = [page for page in pages if hookset.can_view_page(page, request.user)]

    page_name = "All Pages"
    can_add = hookset.can_create_page(wiki, request.user)
    return render_to_response(
        "wiki/all.html",
        {"page_name": page_name, "pages": pages, "can_add": can_add},
        context_instance=RequestContext(request),
    )
Ejemplo n.º 5
0
def all_pages_view(request, binder, *args, **kwargs):
    wiki = binder.lookup(*args, **kwargs)
    if wiki:
        pages = wiki.pages.all()
    else:
        pages = Page.objects.all()

    pages = [
        page for page in pages if hookset.can_view_page(page, request.user)
    ]

    page_name = "All Pages"
    can_add = hookset.can_create_page(wiki, request.user)
    return render_to_response("wiki/all.html", {
        "page_name": page_name,
        "pages": pages,
        "can_add": can_add,
    },
                              context_instance=RequestContext(request))
Ejemplo n.º 6
0
def add_page_view(request, binder, *args, **kwargs):
    wiki = binder.lookup(*args, **kwargs)
    slug = request.GET.get("slug", "")
    if not slug:
        slug = "Page Name"

    try:
        if wiki:
            page = wiki.pages.get(slug=slug)
        else:
            page = Page.objects.get(slug=slug)
    except Page.DoesNotExist:
        pass
    else:
        return HttpResponseRedirect(page.get_edit_url())

    if not hookset.can_create_page(wiki, request.user):
        raise Http404()

    form = RevisionForm(
        request.POST if "edit" in request.POST else None,
        revision=None,
    )
    if form.is_valid():
        page = Page.objects.create(wiki=wiki, slug=slug)
        revision = form.save(commit=False)
        revision.page = page
        revision.created_by = request.user
        revision.created_ip = request.META.get(settings.WIKI_IP_ADDRESS_META_FIELD,
                                               request.META.get("REMOTE_ADDR"))
        revision.parse()
        revision.save()
        return HttpResponseRedirect(binder.page_url(wiki, slug))

    form.fields["content"].help_text = ""

    page_name = "Add {0}".format(slug)

    return render_to_response("wiki/edit.html", {
        "page_name": page_name,
        "form": form,
        "can_delete": False,
    }, context_instance=RequestContext(request))