X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/fdd62169ba22c4c1be2f2306b5339eadd74ffb6d..4cdc0fc88d27843994fb6203eb4e5898f46c2c83:/apps/wiki/views.py diff --git a/apps/wiki/views.py b/apps/wiki/views.py index 75650e09..2a317f25 100644 --- a/apps/wiki/views.py +++ b/apps/wiki/views.py @@ -114,7 +114,10 @@ def text(request, slug, chunk=None): author = None text = form.cleaned_data['text'] parent_revision = form.cleaned_data['parent_revision'] - parent = doc.at_revision(parent_revision) + if parent_revision is not None: + parent = doc.at_revision(parent_revision) + else: + parent = None stage = form.cleaned_data['stage_completed'] tags = [stage] if stage else [] doc.commit(author=author, @@ -137,12 +140,17 @@ def text(request, slug, chunk=None): try: revision = int(revision) except (ValueError, TypeError): - revision = None + revision = doc.revision() + + if revision is not None: + text = doc.at_revision(revision).materialize() + else: + text = '' return JSONResponse({ - 'text': doc.at_revision(revision).materialize(), + 'text': text, 'meta': {}, - 'revision': revision if revision else doc.revision(), + 'revision': revision, }) @@ -221,7 +229,11 @@ def diff(request, slug, chunk=None): doc = Chunk.get(slug, chunk) except (Chunk.MultipleObjectsReturned, Chunk.DoesNotExist): raise Http404 - docA = doc.at_revision(revA).materialize() + # allow diff from the beginning + if revA: + docA = doc.at_revision(revA).materialize() + else: + docA = "" docB = doc.at_revision(revB).materialize() return http.HttpResponse(nice_diff.html_diff_table(docA.splitlines(), @@ -272,8 +284,7 @@ def pubmark(request, slug, chunk=None): publishable = form.cleaned_data['publishable'] change = doc.at_revision(revision) if publishable != change.publishable: - change.publishable = publishable - change.save() + change.set_publishable(publishable) return JSONResponse({"message": _("Revision marked")}) else: return JSONResponse({"message": _("Nothing changed")})