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