MCPcopy
hub / github.com/pallets/werkzeug / on_edit

Function on_edit

examples/simplewiki/actions.py:37–77  ·  view source on GitHub ↗

Edit the current revision of a page.

(request, page_name)

Source from the content-addressed store, hash-verified

35
36
37def on_edit(request, page_name):
38 """Edit the current revision of a page."""
39 change_note = error = ""
40 revision = (
41 Revision.query.filter(
42 (Page.name == page_name) & (Page.page_id == Revision.page_id)
43 )
44 .order_by(Revision.revision_id.desc())
45 .first()
46 )
47 if revision is None:
48 page = None
49 else:
50 page = revision.page
51
52 if request.method == "POST":
53 text = request.form.get("text")
54 if request.form.get("cancel") or revision and revision.text == text:
55 return redirect(href(page.name))
56 elif not text:
57 error = "You cannot save empty revisions."
58 else:
59 change_note = request.form.get("change_note", "")
60 if page is None:
61 page = Page(page_name)
62 session.add(page)
63 session.add(Revision(page, text, change_note))
64 session.commit()
65 return redirect(href(page.name))
66
67 return Response(
68 generate_template(
69 "action_edit.html",
70 revision=revision,
71 page=page,
72 new=page is None,
73 page_name=page_name,
74 change_note=change_note,
75 error=error,
76 )
77 )
78
79
80def on_log(request, page_name):

Callers

nothing calls this directly

Calls 8

redirectFunction · 0.90
hrefFunction · 0.85
RevisionClass · 0.85
generate_templateFunction · 0.85
PageClass · 0.70
ResponseClass · 0.70
getMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected