Forráskód Böngészése

Option to set option defaults

willpiper 4 éve
szülő
commit
9140802ed8
2 módosított fájl, 35 hozzáadás és 20 törlés
  1. 15 13
      app.py
  2. 20 7
      templates/index.html

+ 15 - 13
app.py

@@ -19,6 +19,10 @@ os.nice(20)
 
 appdir = os.path.dirname(__file__)
 
+VEHICLES = [ 'Copter', 'Plane', 'Rover', 'Sub' ]
+default_vehicle = 'Copter'
+default_board = 'BeastF7'
+
 def get_boards():
     '''return a list of boards to build'''
     import importlib.util
@@ -28,24 +32,22 @@ def get_boards():
                                                   'board_list.py'))
     mod = importlib.util.module_from_spec(spec)
     spec.loader.exec_module(mod)
-    return mod.AUTOBUILD_BOARDS
+    return (mod.AUTOBUILD_BOARDS, default_board)
     
     #return BOARDS
 
 # list of build options to offer
 BUILD_OPTIONS = [ 
-    ('EKF2', 'HAL_NAVEKF2_AVAILABLE', 'Enable EKF2'),
-    ('EKF3', 'HAL_NAVEKF3_AVAILABLE', 'Enable EKF3'),
-    ('DSP',  'HAL_WITH_DSP', 'Enable DSP'),
-    ('SPRAYER', 'HAL_SPRAYER_ENABLED', 'Enable Sprayer'),
-    ('PARACHUTE', 'HAL_PARACHUTE_ENABLED', 'Enable Parachute'),
-    ('MOUNT', 'HAL_MOUNT_ENABLED', 'Enable Mount'),
-    ('HOTT_TELEM', 'HAL_HOTT_TELEM_ENABLED', 'Enable HoTT Telemetry'),
-    ('BATTMON_FUEL', 'HAL_BATTMON_FUEL_ENABLE', 'Enable Fuel BatteryMonitor')
+    ('EKF2', 'HAL_NAVEKF2_AVAILABLE', 'Enable EKF2', '1'),
+    ('EKF3', 'HAL_NAVEKF3_AVAILABLE', 'Enable EKF3', '0'),
+    ('DSP',  'HAL_WITH_DSP', 'Enable DSP', '1'),
+    ('SPRAYER', 'HAL_SPRAYER_ENABLED', 'Enable Sprayer', '0'),
+    ('PARACHUTE', 'HAL_PARACHUTE_ENABLED', 'Enable Parachute', '0'),
+    ('MOUNT', 'HAL_MOUNT_ENABLED', 'Enable Mount', '0'),
+    ('HOTT_TELEM', 'HAL_HOTT_TELEM_ENABLED', 'Enable HoTT Telemetry', '0'),
+    ('BATTMON_FUEL', 'HAL_BATTMON_FUEL_ENABLE', 'Enable Fuel BatteryMonitor', '0')
     ]
 
-VEHICLES = [ 'Copter', 'Plane', 'Rover', 'Sub' ]
-
 queue_lock = Lock()
 
 from logging.config import dictConfig
@@ -339,7 +341,7 @@ def generate():
         feature_list = []
         selected_features = []
         app.logger.info('Fetching features from user input')
-        for (label, define, text) in BUILD_OPTIONS:
+        for (label, define, text, default) in BUILD_OPTIONS:
             if label not in request.form:
                 continue
             extra_hwdef.append(request.form[label])
@@ -467,7 +469,7 @@ def get_build_options():
     return BUILD_OPTIONS
 
 def get_vehicles():
-    return VEHICLES
+    return (VEHICLES, default_vehicle)
 
 @app.route('/')
 def home():

+ 20 - 7
templates/index.html

@@ -23,21 +23,34 @@
         <form action="/generate" method="post">
             <label for="vehicle">Choose a vehicle:</label>
             <select name="vehicle">
-                {% for vehicle in get_vehicles() %}
-                <option value="{{vehicle}}">{{vehicle}}</option>
+                {% for vehicle in get_vehicles()[0] %}
+                    {% if vehicle == get_vehicles()[1] %}
+                        <option value="{{vehicle}}" selected>{{vehicle}}</option>
+                    {% else %}
+                        <option value="{{vehicle}}">{{vehicle}}</option>
+                    {% endif %}
                 {% endfor %}
             </select>
             <br><br>
             <label for="board">Choose a board:</label>
             <select name="board">
-                {% for board in get_boards() %}
-                <option value="{{board}}">{{board}}</option>
+                {% for board in get_boards()[0] %}
+                    {% if board == get_boards()[1] %}
+                        <option value="{{board}}" selected>{{board}}</option>
+                    {% else %}
+                        <option value="{{board}}">{{board}}</option>
+                    {% endif %}
                 {% endfor %}
             </select>
             <br><br>
-            {% for (label,define,text) in get_build_options() %}
-            <input type="checkbox" name="{{label}}" value="define {{define}} 1">
-            <input type="hidden" name="{{label}}" value="define {{define}} 0"> {{text}}
+            {% for (label,define,text,default) in get_build_options() %}
+                {% if default == '0' %}
+                    <input type="checkbox" name="{{label}}" value="define {{define}} 1">
+                    <input type="hidden" name="{{label}}" value="define {{define}} 0"> {{text}}
+                {% else %}
+                    <input type="checkbox" name="{{label}}" value="define {{define}} 1" checked>
+                    <input type="hidden" name="{{label}}" value="define {{define}} 0"> {{text}}
+                {% endif %}
             <br>
             {% endfor %}
             <br>