A page as students see it before answering anything. The preview needs no login, so exercise
specs, model solutions and review settings other than the instructions are left out.
What the preview link of the whole changeset renders: page_id, or the first changed page
without one, with the changed pages to switch between. The caller checks the same things as
for resolve_preview. Errors with NotFound also if the changeset changes no pages and
page_id is None.
What a preview link of page_id in changeset renders. The caller checks that the changeset
is the link’s user’s and that they may still edit its course. Errors with NotFound if the
changeset is no longer open or if the page does not exist in it or live.
What the preview link of the whole published course renders: page_id, or the first page
without one, with all pages to switch between. The caller checks the same things as for
resolve_published_preview.
What a preview link of the published page_id of course_id renders. The caller checks that
the link’s user may still edit the course. Errors with NotFound if the page is not in the
course.