def account_settings(request): if request.method == "POST": accountform = AccountForm(request.POST, instance=request.user) if accountform.is_valid(): accountform.save() messages.success(request, _("Account settings successfully updated")) return redirect("account_settings") messages.error(request, _("Please fix these errors and resubmit the form")) else: accountform = AccountForm(instance=request.user) return render_to_response("user/account_settings.jinja", locals())
def show_diffs(request, page_title): """ show diffs of revisions of given page """ rev1 = request.GET.get("revision_1") rev2 = request.GET.get("revision_2") if rev1 == rev2: messages.warning(request, _("Please chose two different revisions")) else: revision1 = get_object_or_404(Revision, page__title=page_title, id=rev1) revision2 = get_object_or_404(Revision, page__title=page_title, id=rev2) diff = show_diff(revision1.content_html, revision2.content_html) return render_to_response("wiki/show_diff.jinja", locals())
def profile_settings(request): if request.method == "POST": profileform = ProfileForm(request.POST, instance=request.user.profile) if profileform.is_valid(): profileform.save() messages.success(request, _("Profile settings successfully updated")) return redirect("profile_settings") messages.error(request, _("Please fix these errors and resubmit the form")) else: profileform = ProfileForm(instance=request.user.profile) return render_to_response("user/profile_settings.jinja", locals())
def create_page(request, page_title): if request.method == "POST": form = PageRevisionForm(request.POST) if form.is_valid(): page, created = Page.objects.get_or_create(title=page_title) form.save(page) messages.success(request, action_messages.get("page_created")) return HttpResponseRedirect(reverse_lazy("view_page", args=[page_title])) else: form = PageRevisionForm() return render_to_response("wiki/create_or_edit_page.jinja", locals())
def revert_page_to_revision(request, page_title, revision_id): page = get_object_or_404(Page, title=page_title) revision = get_object_or_404(Revision, page=page, id=revision_id) if request.method == "POST": form = RevertRevisionForm(request.POST) if form.is_valid(): form.save(page, revision) messages.success(request, action_messages.get("page_reverted") % revision.datetime) return HttpResponseRedirect(reverse_lazy("view_page", args=[page_title])) else: form = RevertRevisionForm() return render_to_response("wiki/revert_page_to_revision.jinja", locals())
def register(request): if request.method == "POST": register_form = RegisterForm(request.POST) if register_form.is_valid(): cdata = register_form.cleaned_data user = User.objects.create(email=cdata.get("email"), username=cdata.get("email")) user.set_password(cdata.get("password")) user.save() return HttpResponseRedirect("/") else: register_form = RegisterForm() return render_to_response("auth/login_or_register.jinja", locals())
def edit_page(request, page_title): page = get_object_or_404(Page, title=page_title) current_revision = page.current form = PageRevisionForm(initial=current_revision.to_dict()) if request.method == "POST": """ do not allow any other changes """ form = PageRevisionForm(request.POST, initial=current_revision.to_dict()) if form.is_valid(): form.save(page) messages.success(request, action_messages.get("page_updated")) return HttpResponseRedirect(reverse_lazy("view_page", args=[page_title])) return render_to_response("wiki/create_or_edit_page.jinja", locals())
def login(request): register_form = RegisterForm() if request.method == "POST": login_form = LoginForm(request.POST) if login_form.is_valid(): cdata = login_form.cleaned_data user = authenticate(email=cdata.get("email"), password=cdata.get("password")) if user: dj_login(request, user) return HttpResponseRedirect(request.COOKIES.get("next", "/")) messages.error(request, _("Wrong email or password ")) else: login_form = LoginForm() return render_to_response("auth/login_or_register.jinja", locals())
def index(request): return render_to_response("index.jinja", locals())
def view_profile(request, user_id=None, full_name=None): user = (user_id is None or request.user.id == user_id) and request.user \ or get_object_or_404(User, is_superuser=False, pk=user_id) return render_to_response("user/view_profile.jinja", locals())
def list_revisions(request, page_title): """ list revisions of given page """ page = get_object_or_404(Page.objects.select_related("revision", "revision__user"), title=page_title) revisions = page.revisions.values("user__first_name", "user__last_name", "user__id", "datetime", "id") return render_to_response("wiki/list_revisions.jinja", locals())
def show_similar_pages(request, page_title): """ This is a fallback method, that is executed upon Http404 exceptions that will list the pages named similarly to the page_title """ pages = Page.objects.get_similar_pages(page_title) return render_to_response("wiki/show_similar_pages.jinja", locals())
def view_page(request, page_title): page = get_object_or_404(Page, title=page_title) return render_to_response("wiki/view_page.jinja", locals())
def recent_changes(request): actions = ActionLog.objects.all() return render_to_response("wiki/recent_changes.jinja", locals())
def search(request): query_string = request.GET.get("q", "") results = Page.objects.filter(Q(title__icontains=query_string) | Q(revision__content__icontains=query_string)) return render_to_response("wiki/search.jinja", locals())