Browse Source

make rendered layout of optgroup look nicer

Daniel Sheffield 1 year ago
parent
commit
33303d52a8

+ 6 - 6
app/rest/templates/optgroup.tpl

@@ -1,7 +1,7 @@
-<optgroup label="{{name}}">
-<%
-  for opt in options:
-    include('app/rest/templates/option', **opt)
-  end
-%>
+<optgroup label="{{name}}">\\
+% for opt in options:
+
+%   include('app/rest/templates/option', **opt)
+% end
+
 </optgroup>
 </optgroup>

+ 5 - 6
app/rest/templates/option.tpl

@@ -1,6 +1,5 @@
-<option
-  value="{{value}}"
-  {{"disabled" if get("disabled", False) else ""}}
-  {{"selected" if get("selected", False) else ""}}>
-  {{display if defined("display") else value}}
-</option>
+% disabled = (get("disabled", False) and "disabled") or ""
+% selected = (get("selected", False) and "selected") or ""
+% display = get("display", value)
+% setdefault("indent", "  ")
+{{indent}}<option value="{{value}}" {{disabled}} {{selected}}>{{display}}</option>

+ 7 - 24
test/rest/templates/test_optgroup.py

@@ -4,12 +4,8 @@ from bottle import template
 
 
 @mark.parametrize('expected, params', [
 @mark.parametrize('expected, params', [
     ("""<optgroup label="Group">
     ("""<optgroup label="Group">
-<option
-  value="val-to-backend"
-  
-  selected>
-  val-displayed
-</option></optgroup>""", {
+  <option value="val-to-backend"  selected>val-displayed</option>
+</optgroup>""", {
     "name": "Group", "options": [
     "name": "Group", "options": [
     {
     {
         "value": "val-to-backend",
         "value": "val-to-backend",
@@ -17,31 +13,18 @@ from bottle import template
         "display": "val-displayed",
         "display": "val-displayed",
     }, ] }),
     }, ] }),
     ("""<optgroup label="Group">
     ("""<optgroup label="Group">
-<option
-  value="val-to-backend"
-  disabled
-  >
-  val-to-backend
-</option></optgroup>""", { "name": "Group", "options": [
+  <option value="val-to-backend" disabled >val-to-backend</option>
+</optgroup>""", { "name": "Group", "options": [
     {
     {
         "value": "val-to-backend",
         "value": "val-to-backend",
         "disabled": True,
         "disabled": True,
     }, ] }),
     }, ] }),
     ("""<optgroup label="Group">
     ("""<optgroup label="Group">
-<option
-  value="val-to-backend"
-  
-  selected>
-  val-displayed
-</option><option
-  value="val-to-backend"
-  disabled
-  >
-  val-to-backend
-</option></optgroup>""", { "name": "Group", "options": [
+  <option value="val-to-backend"  >val-displayed</option>
+  <option value="val-to-backend" disabled >val-to-backend</option>
+</optgroup>""", { "name": "Group", "options": [
     {
     {
         "value": "val-to-backend",
         "value": "val-to-backend",
-        "selected": True,
         "display": "val-displayed",
         "display": "val-displayed",
     },
     },
     {
     {