Improved sphinx import admin page
authorKostas Papadimitriou <kpap@grnet.gr>
Mon, 16 Jul 2012 15:20:29 +0000 (18:20 +0300)
committerKostas Papadimitriou <kpap@grnet.gr>
Mon, 16 Jul 2012 15:20:29 +0000 (18:20 +0300)
- Display log
- Improved vew exception handling

cloudcms/admin.py
cloudcms/templates/cms/admin_import_guide_faq.html

index 4d42eaf..bc362e4 100644 (file)
@@ -80,15 +80,26 @@ def import_from_sphinx(request):
     context = {}
     form = RstZipImportForm()
 
+    if request.GET.get('form_saved'):
+        context['save_log'] = request.session.get('save_log')
+    else:
+        if request.session.get('save_log'):
+            del request.session['save_log']
+
     if request.method == 'POST':
         form = RstZipImportForm(request.POST, request.FILES)
         if form.is_valid():
             try:
-                ret = form.save(request.user)
-                messages.add_message(request, messages.INFO, 'Form saved')
-                return redirect('/cmsmanage/sphinximport/')
+                saved, log = form.save(request.user)
+                if saved:
+                    messages.add_message(request, messages.INFO, 'Form saved')
+                    request.session['save_log'] = log.replace("\n", "<br />")
+                    return redirect('/cmsmanage/sphinximport/' + '?form_saved=1')
+                else:
+                    messages.add_message(request, messages.ERROR, 'Form failed')
+                    context['save_log'] = log.replace("\n", "<br />")
             except Exception, e:
-                context['exception'] = e
+                context['save_log'] = e
 
         else:
             context['error'] = True
index 3d1d2b0..bcd094d 100644 (file)
@@ -3,6 +3,15 @@
 
 
 {% block extrahead %}{{ block.super }}
+<style>
+    .log-entry { padding: 5px; }
+    .log-entry pre { color: #000 }
+    .log-entry.WARNING { background-color: #8D560F; font-weight: bold }
+    .log-entry.INFO { background-color: #F0F0F0 }
+    .log-entry.DEBUG { background-color: #BDBDBD }
+    .log-entry.ERROR { background-color: #8D1C03; font-weight: bold }
+    .log-entry.ERROR *, .log-entry.WARNING * { color: #fff; }
+</style>
 {% url admin:jsi18n as jsi18nurl %}
 <script type="text/javascript" src="{{ jsi18nurl|default:"../../../jsi18n/" }}"></script>
 {{ media }}
         {{ form.as_p }}
         <input type="submit" />
     </div>
-</form></div>
+</form>
+
+{% if save_log %}
+<div class="form-log">
+    <h3>Log</h3>
+    <br />
+    <div>
+        {{ save_log|safe }}
+    </div>
+</div>
+{% endif %}
+
+</div>
 {% endblock %}