Mercurial > piecrust2
changeset 628:14c51f5accc9
admin: Fix crashes when creating a new page.
* Use proper default values when the user doesn't provide any.
* Make sure the new page's directory exists.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Mon, 08 Feb 2016 23:28:39 -0800 |
parents | 6c205066067a |
children | 40e897e2f11e |
files | foodtruck/templates/create_page.html foodtruck/views/create.py |
diffstat | 2 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/foodtruck/templates/create_page.html Mon Feb 08 23:27:41 2016 -0800 +++ b/foodtruck/templates/create_page.html Mon Feb 08 23:28:39 2016 -0800 @@ -10,7 +10,7 @@ <div class="form-group"> <div class="input-group input-group-lg"> <span class="input-group-addon" id="meta-{{field.name}}">{{field.display_name}}</span> - <input type="text" class="form-control" placeholder="{{field.value}}" aria-describedby="meta-{{field.name}}" name="meta-{{field.name}}" /> + <input type="text" class="form-control" value="{{field.value}}" aria-describedby="meta-{{field.name}}" name="meta-{{field.name}}" /> </div> </div> </div>
--- a/foodtruck/views/create.py Mon Feb 08 23:27:41 2016 -0800 +++ b/foodtruck/views/create.py Mon Feb 08 23:28:39 2016 -0800 @@ -1,3 +1,4 @@ +import os import os.path import logging from flask import ( @@ -26,6 +27,8 @@ if request.method == 'POST': if 'do_save' in request.form: metadata = {} + for f in source.getInteractiveFields(): + metadata[f.name] = f.default_value for fk, fv in request.form.items(): if fk.startswith('meta-'): metadata[fk[5:]] = fv @@ -37,6 +40,7 @@ abort(500) logger.debug("Creating page: %s" % fac.path) + os.makedirs(os.path.dirname(fac.path), exist_ok=True) with open(fac.path, 'w', encoding='utf8') as fp: fp.write('') flash("%s was created." % os.path.relpath(fac.path, site.root_dir))