Mercurial > piecrust2
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)