changeset 1195:ae9387338db1 draft default tip

admin: add option to publish immediately
author Ludovic Chabant <ludovic@chabant.com>
date Fri, 30 Dec 2022 16:48:04 -0800
parents 09d5c233e840
children
files piecrust/admin/templates/edit_page.html piecrust/admin/views/edit.py
diffstat 2 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/piecrust/admin/templates/edit_page.html	Fri Dec 30 16:49:32 2022 -0800
+++ b/piecrust/admin/templates/edit_page.html	Fri Dec 30 16:48:04 2022 -0800
@@ -26,11 +26,11 @@
     <input type="hidden" name="is_dos_nl" value="{{is_dos_nl}}" />
 
     <div class="row">
-        <div class="col-sm-6 col-sm-offset-1 col-xs-8">
+        <div class="col-sm-6 col-sm-offset-1">
             <a class="btn btn-info" href="{{url_preview}}">Preview</a>
             <a class="btn btn-danger" href="{{url_cancel}}">Cancel</a>
         </div>
-        <div class="col-sm-4 col-xs-4">
+        <div class="col-sm-2">
             <div class="btn-group pull-right">
                 <button type="submit" name="do_save" class="btn btn-primary">Save</button>
                 <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@@ -42,6 +42,10 @@
                 </ul>
             </div>
         </div>
+        <div class="col-sm-2">
+            <input type="checkbox" class="form-check-input" value="" name="do_publish" id="ft-publish-toggle"/>
+            <label class="form-check-label" for="ft-publish-toggle">Publish</label>
+        </div>
     </div>
 
     <div id="ft-commit-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="ft-commit-modal-label">
--- a/piecrust/admin/views/edit.py	Fri Dec 30 16:49:32 2022 -0800
+++ b/piecrust/admin/views/edit.py	Fri Dec 30 16:48:04 2022 -0800
@@ -49,6 +49,13 @@
                     commit_paths += list(os.listdir(assets_dir))
                 site.scm.commit(commit_paths, message)
 
+        if 'do_publish' in request.form:
+            pub_cfg = site_app.config.get('publish', {})
+            if pub_cfg:
+                first_target = pub_cfg.keys()[0]
+                site_app.publish(first_target)
+                return redirect(url_for('.publish'))
+
         if 'do_save' in request.form or 'do_save_and_commit' in request.form:
             return _edit_page_form(page, url)