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