Use separate title for save button for tristate moderation
authorMagnus Hagander <magnus@hagander.net>
Thu, 18 Nov 2021 13:09:28 +0000 (14:09 +0100)
committerMagnus Hagander <magnus@hagander.net>
Thu, 18 Nov 2021 13:21:42 +0000 (14:21 +0100)
When the save and submit steps are different, use "Save draft" for the
save button instead of "submit new" -- since the submit is a separate
step.

pgweb/util/helpers.py

index 2fa0372275710e92418f9ae3843dbe857655a083..7c6d76470e783a8907411e5c9dabf9f586a2c789 100644 (file)
@@ -182,12 +182,25 @@ def simple_form(instancetype, itemid, request, formclass, formtemplate='base/for
     else:
         form_intro = None
 
+    savebutton = 'Save'
+    if itemid == 'new':
+        if 'modstate' in (f.name for f in instance._meta.get_fields()):
+            # This is a three-state moderated entry, so don't say "submit new" for new
+            savebutton = 'Save draft'
+        else:
+            savebutton = 'Submit New'
+    else:
+        # If it's a three-state moderated entry that is not yet approved, we are still editing the draft
+        if 'modstate' in (f.name for f in instance._meta.get_fields()):
+            if instance.modstate == ModerationState.CREATED:
+                savebutton = 'Save draft'
+
     ctx = {
         'form': form,
         'formitemtype': instance._meta.verbose_name,
         'form_intro': form_intro,
         'described_checkboxes': getattr(form, 'described_checkboxes', {}),
-        'savebutton': (itemid == "new") and "Submit New" or "Save",
+        'savebutton': savebutton,
         'operation': (itemid == "new") and "New" or "Edit",
     }
     ctx.update(extracontext)