From d0c5c891fd6900a7b4496e39f63df0ba692a654e Mon Sep 17 00:00:00 2001 From: Stephen Michel Date: Mon, 15 Jun 2020 12:02:42 -0400 Subject: [PATCH] Keep draft 'reason' when editing own draft --- games/views/pages.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/games/views/pages.py b/games/views/pages.py index 2ab03031..4c812262 100644 --- a/games/views/pages.py +++ b/games/views/pages.py @@ -294,6 +294,7 @@ def edit_installer(request, slug): revision_id = None draft_data = None + selected_version = None versions = Version.objects.get_for_object(installer) # Reset reason when the installer is edited. @@ -303,20 +304,25 @@ def edit_installer(request, slug): if revision_id: # Display the revision given in the GET parameters if version.revision.id == revision_id: - draft_data = version.field_dict + selected_version = version break else: # Display the latest revision created by the current logged in user if ( version.revision.user == request.user or request.user.is_staff ) and version.revision.date_created > installer.updated_at: - draft_data = version.field_dict + selected_version = version revision_id = version.revision.id break - if draft_data: - draft_data["reason"] = "" - if "runner_id" in draft_data: - draft_data["runner"] = draft_data["runner_id"] + + if selected_version: + draft_data = version.field_dict + if draft_data: + if "runner_id" in draft_data: + draft_data["runner"] = draft_data["runner_id"] + # Reset reason only if user is building on someone else's draft + if version.revision.user != request.user: + draft_data["reason"] = "" form = InstallerEditForm( request.POST or None, instance=installer, initial=draft_data