Mercurial > piecrust2
diff foodtruck/views/create.py @ 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 | efc1dc916e7c |
children | a7726e4862c4 |
line wrap: on
line diff
--- 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))