mirror of
https://github.com/zvx-echo6/central.git
synced 2026-05-21 18:14:44 +02:00
refactor(wizard): use dynamic cadence validation
Update wizard POST handler to use the same dynamic cadence validation pattern as the adapter edit form: - Use AdapterConfig.model_fields["cadence_s"].metadata[0].ge for min bound - Remove hardcoded 60-3600 range check - Remove min/max attributes from setup_adapters.html template No tests in test_wizard.py referenced the old cadence range. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
91f1d67abd
commit
d42b540e16
2 changed files with 8 additions and 4 deletions
|
|
@ -763,12 +763,16 @@ async def setup_adapters_submit(request: Request) -> Response:
|
||||||
# Parse enabled
|
# Parse enabled
|
||||||
enabled = f"{adapter_name}_enabled" in form
|
enabled = f"{adapter_name}_enabled" in form
|
||||||
|
|
||||||
# Parse cadence
|
# Parse cadence using AdapterConfig field constraint
|
||||||
cadence_str = form.get(f"{adapter_name}_cadence_s", "")
|
cadence_str = form.get(f"{adapter_name}_cadence_s", "")
|
||||||
try:
|
try:
|
||||||
cadence_s = int(cadence_str)
|
cadence_s = int(cadence_str)
|
||||||
if cadence_s < 60 or cadence_s > 3600:
|
from central.config_models import AdapterConfig
|
||||||
errors[f"{adapter_name}_cadence_s"] = "Cadence must be between 60 and 3600 seconds"
|
min_cadence = AdapterConfig.model_fields["cadence_s"].metadata[0].ge
|
||||||
|
if cadence_s < min_cadence:
|
||||||
|
errors[f"{adapter_name}_cadence_s"] = (
|
||||||
|
f"Input should be greater than or equal to {min_cadence}"
|
||||||
|
)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
errors[f"{adapter_name}_cadence_s"] = "Cadence must be a valid integer"
|
errors[f"{adapter_name}_cadence_s"] = "Cadence must be a valid integer"
|
||||||
cadence_s = current.get("cadence_s", 300)
|
cadence_s = current.get("cadence_s", 300)
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@
|
||||||
<label for="{{ adapter.name }}_cadence_s">Cadence (seconds)</label>
|
<label for="{{ adapter.name }}_cadence_s">Cadence (seconds)</label>
|
||||||
<input type="number" id="{{ adapter.name }}_cadence_s" name="{{ adapter.name }}_cadence_s"
|
<input type="number" id="{{ adapter.name }}_cadence_s" name="{{ adapter.name }}_cadence_s"
|
||||||
value="{{ form_data.get(adapter.name + '_cadence_s') if form_data else adapter.cadence_s }}"
|
value="{{ form_data.get(adapter.name + '_cadence_s') if form_data else adapter.cadence_s }}"
|
||||||
min="60" max="3600">
|
>
|
||||||
{% if errors and errors.get(adapter.name + '_cadence_s') %}
|
{% if errors and errors.get(adapter.name + '_cadence_s') %}
|
||||||
<small style="color: var(--pico-color-red-500);">{{ errors[adapter.name + '_cadence_s'] }}</small>
|
<small style="color: var(--pico-color-red-500);">{{ errors[adapter.name + '_cadence_s'] }}</small>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue