- try:
- doc = Chunk.get(slug, chunk)
- except (Chunk.MultipleObjectsReturned, Chunk.DoesNotExist):
- raise Http404
-
- changes = []
- for change in doc.history().order_by('-created_at'):
- changes.append({
- "version": change.revision,
- "description": change.description,
- "author": change.author_str(),
- "date": change.created_at,
- "publishable": "Publishable\n" if change.publishable else "",
- "tag": ',\n'.join(unicode(tag) for tag in change.tags.all()),
- })
- return JSONResponse(changes)
-
-
-@require_POST
-@ajax_require_permission('wiki.can_pubmark')
-def pubmark(request, slug, chunk=None):
- form = forms.DocumentPubmarkForm(request.POST, prefix="pubmark")
- if form.is_valid():
- try:
- doc = Chunk.get(slug, chunk)
- except (Chunk.MultipleObjectsReturned, Chunk.DoesNotExist):
- raise Http404
-
- revision = form.cleaned_data['revision']
- publishable = form.cleaned_data['publishable']
- change = doc.at_revision(revision)
- if publishable != change.publishable:
- change.publishable = publishable
- change.save()
- return JSONResponse({"message": _("Revision marked")})
- else:
- return JSONResponse({"message": _("Nothing changed")})
- else:
- return JSONFormInvalid(form)
-