Coverage for extras/dashboard/forms.py: 93%
15 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1from django import forms
2from django.urls import reverse_lazy
3from django.utils.translation import gettext as _
5from extras.choices import DashboardWidgetColorChoices
6from netbox.registry import registry
7from utilities.forms import add_blank_choice
9__all__ = (
10 'DashboardWidgetAddForm',
11 'DashboardWidgetForm',
12)
15def get_widget_choices():
16 return registry['widgets'].items()
19class DashboardWidgetForm(forms.Form):
20 title = forms.CharField(
21 required=False
22 )
23 color = forms.ChoiceField(
24 choices=add_blank_choice(DashboardWidgetColorChoices),
25 required=False,
26 )
29class DashboardWidgetAddForm(DashboardWidgetForm):
30 widget_class = forms.ChoiceField(
31 choices=get_widget_choices,
32 widget=forms.Select(
33 attrs={
34 'hx-get': reverse_lazy('extras:dashboardwidget_add'),
35 'hx-target': '#widget_add_form',
36 }
37 ),
38 label=_('Widget type')
39 )
40 field_order = ('widget_class', 'title', 'color')