Skip to content

Commit 143c621

Browse files
committed
fixup! Handle form errors in status navlet
1 parent c4f86d9 commit 143c621

File tree

3 files changed

+13
-13
lines changed

3 files changed

+13
-13
lines changed

python/nav/web/navlets/__init__.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ def post(self, request, *_, **kwargs):
160160
161161
Make sure you're not overriding stuff with the form
162162
"""
163-
form = kwargs.get('form')
163+
form = kwargs.pop('form')
164164
if not form:
165165
return HttpResponse('No form supplied', status=400)
166166

@@ -169,17 +169,13 @@ def post(self, request, *_, **kwargs):
169169
self.account_navlet.save()
170170
return self.get(request=request)
171171
else:
172-
return self.handle_error_response(request, form, **kwargs)
172+
return self.handle_error_response(request, form=form, **kwargs)
173173

174174
def handle_error_response(self, request, form, **kwargs):
175175
"""Render error response for invalid form submissions"""
176-
errors = []
177-
for field, field_errors in form.errors.items():
178-
for error in field_errors:
179-
errors.append(str(error))
180-
181-
context = self.get_context_data(override_mode=NAVLET_MODE_EDIT, **kwargs)
182-
context['errors'] = errors
176+
context = self.get_context_data(
177+
override_mode=NAVLET_MODE_EDIT, form=form, **kwargs
178+
)
183179
return render(
184180
request, self.get_template_names(override_mode=NAVLET_MODE_EDIT), context
185181
)

python/nav/web/status2/forms.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,13 @@ class StatusWidgetForm(StatusPanelForm):
192192
),
193193
)
194194

195+
interval = forms.IntegerField(
196+
required=True,
197+
min_value=1,
198+
label='Refresh interval (seconds)',
199+
widget=forms.NumberInput(attrs={'min': 1, 'step': 1}),
200+
)
201+
195202
def __init__(self, *args, **kwargs):
196203
super(StatusWidgetForm, self).__init__(*args, **kwargs)
197204

@@ -217,6 +224,7 @@ def __init__(self, *args, **kwargs):
217224

218225
self.attrs = set_flat_form_attributes(
219226
form_fields=[
227+
FormRow(fields=[FormColumn(fields=[self["interval"]])]),
220228
FormRow(
221229
fields=[
222230
FormColumn(

python/nav/web/templates/navlets/status2_edit.html

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@
99
hx-swap="innerHTML"
1010
hx-preserve="true"
1111
>
12-
<label>
13-
Refresh interval (seconds)
14-
<input type="text" name="interval" value="{{ interval }}">
15-
</label>
1612
{% include 'custom_crispy_templates/_form_content.html' %}
1713
</form>
1814

0 commit comments

Comments
 (0)