netbox-plugin-dns 1.2.10__py3-none-any.whl → 1.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of netbox-plugin-dns might be problematic. Click here for more details.

Files changed (82) hide show
  1. netbox_dns/__init__.py +2 -2
  2. netbox_dns/api/nested_serializers.py +54 -49
  3. netbox_dns/api/serializers_/dnssec_key_template.py +22 -13
  4. netbox_dns/api/serializers_/dnssec_policy.py +89 -40
  5. netbox_dns/api/serializers_/nameserver.py +25 -13
  6. netbox_dns/api/serializers_/record.py +45 -37
  7. netbox_dns/api/serializers_/record_template.py +21 -12
  8. netbox_dns/api/serializers_/registrar.py +14 -5
  9. netbox_dns/api/serializers_/registration_contact.py +13 -5
  10. netbox_dns/api/serializers_/view.py +28 -19
  11. netbox_dns/api/serializers_/zone.py +87 -63
  12. netbox_dns/api/serializers_/zone_template.py +40 -34
  13. netbox_dns/choices/dnssec_key_template.py +4 -0
  14. netbox_dns/filtersets/dnssec_key_template.py +10 -4
  15. netbox_dns/filtersets/dnssec_policy.py +1 -0
  16. netbox_dns/filtersets/nameserver.py +9 -4
  17. netbox_dns/filtersets/record.py +14 -13
  18. netbox_dns/filtersets/record_template.py +13 -12
  19. netbox_dns/filtersets/registrar.py +1 -0
  20. netbox_dns/filtersets/registration_contact.py +1 -0
  21. netbox_dns/filtersets/view.py +10 -4
  22. netbox_dns/filtersets/zone.py +22 -21
  23. netbox_dns/filtersets/zone_template.py +10 -9
  24. netbox_dns/forms/dnssec_key_template.py +97 -46
  25. netbox_dns/forms/dnssec_policy.py +130 -110
  26. netbox_dns/forms/nameserver.py +71 -36
  27. netbox_dns/forms/record.py +96 -78
  28. netbox_dns/forms/record_template.py +87 -59
  29. netbox_dns/forms/registrar.py +55 -39
  30. netbox_dns/forms/registration_contact.py +64 -41
  31. netbox_dns/forms/view.py +98 -51
  32. netbox_dns/forms/zone.py +259 -250
  33. netbox_dns/forms/zone_template.py +151 -101
  34. netbox_dns/graphql/enums.py +41 -0
  35. netbox_dns/graphql/filter_lookups.py +13 -0
  36. netbox_dns/graphql/filters/__init__.py +12 -0
  37. netbox_dns/graphql/filters/dnssec_key_template.py +63 -0
  38. netbox_dns/graphql/filters/dnssec_policy.py +123 -0
  39. netbox_dns/graphql/filters/nameserver.py +32 -0
  40. netbox_dns/graphql/filters/record.py +89 -0
  41. netbox_dns/graphql/filters/record_template.py +55 -0
  42. netbox_dns/graphql/filters/registrar.py +30 -0
  43. netbox_dns/graphql/filters/registration_contact.py +27 -0
  44. netbox_dns/graphql/filters/view.py +28 -0
  45. netbox_dns/graphql/filters/zone.py +146 -0
  46. netbox_dns/graphql/filters/zone_template.py +97 -0
  47. netbox_dns/models/dnssec_key_template.py +24 -27
  48. netbox_dns/models/dnssec_policy.py +17 -21
  49. netbox_dns/models/nameserver.py +26 -30
  50. netbox_dns/models/record.py +42 -46
  51. netbox_dns/models/record_template.py +30 -34
  52. netbox_dns/models/registrar.py +13 -17
  53. netbox_dns/models/registration_contact.py +33 -37
  54. netbox_dns/models/view.py +16 -20
  55. netbox_dns/models/zone.py +75 -78
  56. netbox_dns/models/zone_template.py +35 -39
  57. netbox_dns/tables/dnssec_key_template.py +13 -12
  58. netbox_dns/tables/dnssec_policy.py +18 -15
  59. netbox_dns/tables/nameserver.py +10 -8
  60. netbox_dns/tables/record.py +29 -21
  61. netbox_dns/tables/record_template.py +21 -17
  62. netbox_dns/tables/registrar.py +15 -9
  63. netbox_dns/tables/registration_contact.py +15 -9
  64. netbox_dns/tables/view.py +24 -12
  65. netbox_dns/tables/zone.py +23 -21
  66. netbox_dns/tables/zone_template.py +17 -13
  67. netbox_dns/views/dnssec_key_template.py +0 -9
  68. netbox_dns/views/dnssec_policy.py +0 -9
  69. netbox_dns/views/nameserver.py +0 -9
  70. netbox_dns/views/record.py +0 -9
  71. netbox_dns/views/record_template.py +0 -3
  72. netbox_dns/views/registrar.py +0 -3
  73. netbox_dns/views/registration_contact.py +0 -3
  74. netbox_dns/views/view.py +0 -9
  75. netbox_dns/views/zone.py +0 -10
  76. netbox_dns/views/zone_template.py +0 -4
  77. {netbox_plugin_dns-1.2.10.dist-info → netbox_plugin_dns-1.3.0.dist-info}/METADATA +4 -2
  78. {netbox_plugin_dns-1.2.10.dist-info → netbox_plugin_dns-1.3.0.dist-info}/RECORD +81 -69
  79. netbox_dns/graphql/filters.py +0 -88
  80. {netbox_plugin_dns-1.2.10.dist-info → netbox_plugin_dns-1.3.0.dist-info}/WHEEL +0 -0
  81. {netbox_plugin_dns-1.2.10.dist-info → netbox_plugin_dns-1.3.0.dist-info}/licenses/LICENSE +0 -0
  82. {netbox_plugin_dns-1.2.10.dist-info → netbox_plugin_dns-1.3.0.dist-info}/top_level.txt +0 -0
@@ -35,6 +35,52 @@ __all__ = (
35
35
 
36
36
 
37
37
  class RecordForm(TenancyForm, NetBoxModelForm):
38
+ class Meta:
39
+ model = Record
40
+
41
+ fields = (
42
+ "name",
43
+ "zone",
44
+ "type",
45
+ "value",
46
+ "status",
47
+ "ttl",
48
+ "disable_ptr",
49
+ "description",
50
+ "tenant_group",
51
+ "tenant",
52
+ "tags",
53
+ )
54
+
55
+ labels = {
56
+ "disable_ptr": _("Disable PTR"),
57
+ "ttl": _("TTL"),
58
+ }
59
+
60
+ fieldsets = (
61
+ FieldSet(
62
+ "name",
63
+ "view",
64
+ "zone",
65
+ "type",
66
+ "value",
67
+ "status",
68
+ "ttl",
69
+ "disable_ptr",
70
+ "description",
71
+ name=_("Record"),
72
+ ),
73
+ FieldSet(
74
+ "tenant_group",
75
+ "tenant",
76
+ name=_("Tenancy"),
77
+ ),
78
+ FieldSet(
79
+ "tags",
80
+ name=_("Tags"),
81
+ ),
82
+ )
83
+
38
84
  def __init__(self, *args, **kwargs):
39
85
  super().__init__(*args, **kwargs)
40
86
 
@@ -64,54 +110,16 @@ class RecordForm(TenancyForm, NetBoxModelForm):
64
110
  label=_("Type"),
65
111
  )
66
112
 
67
- disable_ptr = forms.BooleanField(
68
- required=False,
69
- label=_("Disable PTR"),
70
- )
71
- ttl = TimePeriodField(
72
- required=False,
73
- label=_("TTL"),
74
- )
75
-
76
- fieldsets = (
77
- FieldSet(
78
- "name",
79
- "view",
80
- "zone",
81
- "type",
82
- "value",
83
- "status",
84
- "ttl",
85
- "disable_ptr",
86
- "description",
87
- name="Record",
88
- ),
89
- FieldSet("tenant_group", "tenant", name=_("Tenancy")),
90
- FieldSet("tags", name=_("Tags")),
91
- )
92
-
93
- class Meta:
94
- model = Record
95
-
96
- fields = (
97
- "name",
98
- "zone",
99
- "type",
100
- "value",
101
- "status",
102
- "ttl",
103
- "disable_ptr",
104
- "description",
105
- "tenant_group",
106
- "tenant",
107
- "tags",
108
- )
109
-
110
113
 
111
114
  class RecordFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
112
115
  model = Record
116
+
113
117
  fieldsets = (
114
- FieldSet("q", "filter_id", "tag"),
118
+ FieldSet(
119
+ "q",
120
+ "filter_id",
121
+ "tag",
122
+ ),
115
123
  FieldSet(
116
124
  "name",
117
125
  "view_id",
@@ -126,7 +134,11 @@ class RecordFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
126
134
  "active",
127
135
  name=_("Attributes"),
128
136
  ),
129
- FieldSet("tenant_group_id", "tenant_id", name=_("Tenancy")),
137
+ FieldSet(
138
+ "tenant_group_id",
139
+ "tenant_id",
140
+ name=_("Tenancy"),
141
+ ),
130
142
  )
131
143
 
132
144
  type = forms.MultipleChoiceField(
@@ -186,6 +198,27 @@ class RecordFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
186
198
 
187
199
 
188
200
  class RecordImportForm(NetBoxModelImportForm):
201
+ class Meta:
202
+ model = Record
203
+
204
+ fields = (
205
+ "zone",
206
+ "view",
207
+ "type",
208
+ "name",
209
+ "value",
210
+ "ttl",
211
+ "disable_ptr",
212
+ "description",
213
+ "tenant",
214
+ "tags",
215
+ )
216
+
217
+ labels = {
218
+ "disable_ptr": _("Disable PTR"),
219
+ "ttl": _("TTL"),
220
+ }
221
+
189
222
  def __init__(self, *args, **kwargs):
190
223
  super().__init__(*args, **kwargs)
191
224
 
@@ -230,14 +263,6 @@ class RecordImportForm(NetBoxModelImportForm):
230
263
  required=False,
231
264
  label=_("Status"),
232
265
  )
233
- ttl = TimePeriodField(
234
- required=False,
235
- label=_("TTL"),
236
- )
237
- disable_ptr = forms.BooleanField(
238
- required=False,
239
- label=_("Disable PTR"),
240
- )
241
266
  tenant = CSVModelChoiceField(
242
267
  queryset=Tenant.objects.all(),
243
268
  to_field_name="name",
@@ -253,25 +278,33 @@ class RecordImportForm(NetBoxModelImportForm):
253
278
 
254
279
  return is_valid
255
280
 
256
- class Meta:
257
- model = Record
258
281
 
259
- fields = (
282
+ class RecordBulkEditForm(NetBoxModelBulkEditForm):
283
+ model = Record
284
+
285
+ fieldsets = (
286
+ FieldSet(
260
287
  "zone",
261
- "view",
262
288
  "type",
263
- "name",
264
289
  "value",
290
+ "status",
265
291
  "ttl",
266
292
  "disable_ptr",
267
293
  "description",
294
+ name=_("Attributes"),
295
+ ),
296
+ FieldSet(
297
+ "tenant_group",
268
298
  "tenant",
269
- "tags",
270
- )
271
-
299
+ name=_("Tenancy"),
300
+ ),
301
+ )
272
302
 
273
- class RecordBulkEditForm(NetBoxModelBulkEditForm):
274
- model = Record
303
+ nullable_fields = (
304
+ "description",
305
+ "ttl",
306
+ "tenant",
307
+ )
275
308
 
276
309
  zone = DynamicModelChoiceField(
277
310
  queryset=Zone.objects.all(),
@@ -316,18 +349,3 @@ class RecordBulkEditForm(NetBoxModelBulkEditForm):
316
349
  required=False,
317
350
  label=_("Tenant"),
318
351
  )
319
-
320
- fieldsets = (
321
- FieldSet(
322
- "zone",
323
- "type",
324
- "value",
325
- "status",
326
- "ttl",
327
- "disable_ptr",
328
- "description",
329
- name=_("Attributes"),
330
- ),
331
- FieldSet("tenant_group", "tenant", name=_("Tenancy")),
332
- )
333
- nullable_fields = ("description", "ttl", "tenant")
@@ -35,29 +35,10 @@ __all__ = (
35
35
 
36
36
 
37
37
  class RecordTemplateForm(TenancyForm, NetBoxModelForm):
38
- def __init__(self, *args, **kwargs):
39
- super().__init__(*args, **kwargs)
40
-
41
- initial_record_name = self.initial.get("record_name")
42
- if initial_record_name:
43
- self.initial["record_name"] = name_to_unicode(initial_record_name)
44
-
45
- type = forms.ChoiceField(
46
- choices=add_blank_choice(RecordSelectableTypeChoices),
47
- required=True,
48
- label=_("Type"),
49
- )
50
- disable_ptr = forms.BooleanField(
51
- required=False,
52
- label=_("Disable PTR"),
53
- )
54
- ttl = TimePeriodField(
55
- required=False,
56
- label=_("TTL"),
57
- )
38
+ class Meta:
39
+ model = RecordTemplate
58
40
 
59
- fieldsets = (
60
- FieldSet(
41
+ fields = (
61
42
  "name",
62
43
  "record_name",
63
44
  "type",
@@ -66,16 +47,13 @@ class RecordTemplateForm(TenancyForm, NetBoxModelForm):
66
47
  "ttl",
67
48
  "disable_ptr",
68
49
  "description",
69
- name=_("Record Template"),
70
- ),
71
- FieldSet("tenant_group", "tenant", name=_("Tenancy")),
72
- FieldSet("tags", name=_("Tags")),
73
- )
74
-
75
- class Meta:
76
- model = RecordTemplate
50
+ "tenant_group",
51
+ "tenant",
52
+ "tags",
53
+ )
77
54
 
78
- fields = (
55
+ fieldsets = (
56
+ FieldSet(
79
57
  "name",
80
58
  "record_name",
81
59
  "type",
@@ -84,16 +62,50 @@ class RecordTemplateForm(TenancyForm, NetBoxModelForm):
84
62
  "ttl",
85
63
  "disable_ptr",
86
64
  "description",
65
+ name=_("Record Template"),
66
+ ),
67
+ FieldSet(
87
68
  "tenant_group",
88
69
  "tenant",
70
+ name=_("Tenancy"),
71
+ ),
72
+ FieldSet(
89
73
  "tags",
90
- )
74
+ name=_("Tags"),
75
+ ),
76
+ )
77
+
78
+ def __init__(self, *args, **kwargs):
79
+ super().__init__(*args, **kwargs)
80
+
81
+ initial_record_name = self.initial.get("record_name")
82
+ if initial_record_name:
83
+ self.initial["record_name"] = name_to_unicode(initial_record_name)
84
+
85
+ type = forms.ChoiceField(
86
+ choices=add_blank_choice(RecordSelectableTypeChoices),
87
+ required=True,
88
+ label=_("Type"),
89
+ )
90
+ disable_ptr = forms.BooleanField(
91
+ required=False,
92
+ label=_("Disable PTR"),
93
+ )
94
+ ttl = TimePeriodField(
95
+ required=False,
96
+ label=_("TTL"),
97
+ )
91
98
 
92
99
 
93
100
  class RecordTemplateFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
94
101
  model = RecordTemplate
102
+
95
103
  fieldsets = (
96
- FieldSet("q", "filter_id", "tag"),
104
+ FieldSet(
105
+ "q",
106
+ "filter_id",
107
+ "tag",
108
+ ),
97
109
  FieldSet(
98
110
  "name",
99
111
  "record_name",
@@ -105,8 +117,15 @@ class RecordTemplateFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
105
117
  "description",
106
118
  name=_("Attributes"),
107
119
  ),
108
- FieldSet("zone_template_id", name=_("Zone Templates")),
109
- FieldSet("tenant_group_id", "tenant_id", name=_("Tenancy")),
120
+ FieldSet(
121
+ "zone_template_id",
122
+ name=_("Zone Templates"),
123
+ ),
124
+ FieldSet(
125
+ "tenant_group_id",
126
+ "tenant_id",
127
+ name=_("Tenancy"),
128
+ ),
110
129
  )
111
130
 
112
131
  type = forms.MultipleChoiceField(
@@ -153,6 +172,22 @@ class RecordTemplateFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
153
172
 
154
173
 
155
174
  class RecordTemplateImportForm(NetBoxModelImportForm):
175
+ class Meta:
176
+ model = RecordTemplate
177
+
178
+ fields = (
179
+ "name",
180
+ "record_name",
181
+ "type",
182
+ "value",
183
+ "status",
184
+ "ttl",
185
+ "disable_ptr",
186
+ "description",
187
+ "tenant",
188
+ "tags",
189
+ )
190
+
156
191
  type = CSVChoiceField(
157
192
  choices=RecordSelectableTypeChoices,
158
193
  required=True,
@@ -178,11 +213,12 @@ class RecordTemplateImportForm(NetBoxModelImportForm):
178
213
  label=_("Tenant"),
179
214
  )
180
215
 
181
- class Meta:
182
- model = RecordTemplate
183
216
 
184
- fields = (
185
- "name",
217
+ class RecordTemplateBulkEditForm(NetBoxModelBulkEditForm):
218
+ model = RecordTemplate
219
+
220
+ fieldsets = (
221
+ FieldSet(
186
222
  "record_name",
187
223
  "type",
188
224
  "value",
@@ -190,13 +226,20 @@ class RecordTemplateImportForm(NetBoxModelImportForm):
190
226
  "ttl",
191
227
  "disable_ptr",
192
228
  "description",
229
+ name=_("Attributes"),
230
+ ),
231
+ FieldSet(
232
+ "tenant_group",
193
233
  "tenant",
194
- "tags",
195
- )
196
-
234
+ name=_("Tenancy"),
235
+ ),
236
+ )
197
237
 
198
- class RecordTemplateBulkEditForm(NetBoxModelBulkEditForm):
199
- model = RecordTemplate
238
+ nullable_fields = (
239
+ "description",
240
+ "ttl",
241
+ "tenant",
242
+ )
200
243
 
201
244
  record_name = forms.CharField(
202
245
  required=False,
@@ -240,18 +283,3 @@ class RecordTemplateBulkEditForm(NetBoxModelBulkEditForm):
240
283
  required=False,
241
284
  label=_("Tenant"),
242
285
  )
243
-
244
- fieldsets = (
245
- FieldSet(
246
- "record_name",
247
- "type",
248
- "value",
249
- "status",
250
- "ttl",
251
- "disable_ptr",
252
- "description",
253
- name=_("Attributes"),
254
- ),
255
- FieldSet("tenant_group", "tenant", name=_("Tenancy")),
256
- )
257
- nullable_fields = ("description", "ttl", "tenant")
@@ -24,20 +24,7 @@ __all__ = (
24
24
  class RegistrarForm(NetBoxModelForm):
25
25
  class Meta:
26
26
  model = Registrar
27
- fieldsets = (
28
- FieldSet(
29
- "name",
30
- "iana_id",
31
- "description",
32
- "address",
33
- "referral_url",
34
- "whois_server",
35
- "abuse_email",
36
- "abuse_phone",
37
- name=_("Registrar"),
38
- ),
39
- FieldSet("tags", name=_("Tags")),
40
- )
27
+
41
28
  fields = (
42
29
  "name",
43
30
  "iana_id",
@@ -50,12 +37,40 @@ class RegistrarForm(NetBoxModelForm):
50
37
  "tags",
51
38
  )
52
39
 
40
+ fieldsets = (
41
+ FieldSet(
42
+ "name",
43
+ "iana_id",
44
+ "description",
45
+ "address",
46
+ "referral_url",
47
+ "whois_server",
48
+ "abuse_email",
49
+ "abuse_phone",
50
+ name=_("Registrar"),
51
+ ),
52
+ FieldSet(
53
+ "tags",
54
+ name=_("Tags"),
55
+ ),
56
+ )
57
+
53
58
 
54
59
  class RegistrarFilterForm(NetBoxModelFilterSetForm):
55
60
  model = Registrar
61
+
56
62
  fieldsets = (
57
- FieldSet("q", "filter_id", "tag"),
58
- FieldSet("name", "iana_id", "description", name=_("Attributes")),
63
+ FieldSet(
64
+ "q",
65
+ "filter_id",
66
+ "tag",
67
+ ),
68
+ FieldSet(
69
+ "name",
70
+ "iana_id",
71
+ "description",
72
+ name=_("Attributes"),
73
+ ),
59
74
  FieldSet(
60
75
  "address",
61
76
  "referral_url",
@@ -104,6 +119,7 @@ class RegistrarFilterForm(NetBoxModelFilterSetForm):
104
119
  class RegistrarImportForm(NetBoxModelImportForm):
105
120
  class Meta:
106
121
  model = Registrar
122
+
107
123
  fields = (
108
124
  "name",
109
125
  "iana_id",
@@ -120,6 +136,29 @@ class RegistrarImportForm(NetBoxModelImportForm):
120
136
  class RegistrarBulkEditForm(NetBoxModelBulkEditForm):
121
137
  model = Registrar
122
138
 
139
+ fieldsets = (
140
+ FieldSet(
141
+ "iana_id",
142
+ "description",
143
+ "address",
144
+ "referral_url",
145
+ "whois_server",
146
+ "abuse_email",
147
+ "abuse_phone",
148
+ name=_("Attributes"),
149
+ ),
150
+ )
151
+
152
+ nullable_fields = (
153
+ "iana_id",
154
+ "description",
155
+ "address",
156
+ "referral_url",
157
+ "whois_server",
158
+ "abuse_email",
159
+ "abuse_phone",
160
+ )
161
+
123
162
  iana_id = forms.IntegerField(
124
163
  required=False,
125
164
  label=_("IANA ID"),
@@ -148,26 +187,3 @@ class RegistrarBulkEditForm(NetBoxModelBulkEditForm):
148
187
  required=False,
149
188
  label=_("Abuse Phone"),
150
189
  )
151
-
152
- fieldsets = (
153
- FieldSet(
154
- "iana_id",
155
- "description",
156
- "address",
157
- "referral_url",
158
- "whois_server",
159
- "abuse_email",
160
- "abuse_phone",
161
- name=_("Attributes"),
162
- ),
163
- )
164
-
165
- nullable_fields = (
166
- "iana_id",
167
- "description",
168
- "address",
169
- "referral_url",
170
- "whois_server",
171
- "abuse_email",
172
- "abuse_phone",
173
- )
@@ -40,11 +40,15 @@ class RegistrationContactForm(NetBoxModelForm):
40
40
  "email",
41
41
  name=_("Contact"),
42
42
  ),
43
- FieldSet("tags", name="Tags"),
43
+ FieldSet(
44
+ "tags",
45
+ name="Tags",
46
+ ),
44
47
  )
45
48
 
46
49
  class Meta:
47
50
  model = RegistrationContact
51
+
48
52
  fields = (
49
53
  "name",
50
54
  "description",
@@ -68,8 +72,17 @@ class RegistrationContactFilterForm(NetBoxModelFilterSetForm):
68
72
  model = RegistrationContact
69
73
 
70
74
  fieldsets = (
71
- FieldSet("q", "filter_id", "tag"),
72
- FieldSet("name", "contact_id", "description", name=_("Attributes")),
75
+ FieldSet(
76
+ "q",
77
+ "filter_id",
78
+ "tag",
79
+ ),
80
+ FieldSet(
81
+ "name",
82
+ "contact_id",
83
+ "description",
84
+ name=_("Attributes"),
85
+ ),
73
86
  FieldSet(
74
87
  "organization",
75
88
  "street",
@@ -80,7 +93,12 @@ class RegistrationContactFilterForm(NetBoxModelFilterSetForm):
80
93
  name=_("Address"),
81
94
  ),
82
95
  FieldSet(
83
- "phone", "phone_ext", "fax", "fax_ext", "email", name=_("Communication")
96
+ "phone",
97
+ "phone_ext",
98
+ "fax",
99
+ "fax_ext",
100
+ "email",
101
+ name=_("Communication"),
84
102
  ),
85
103
  )
86
104
 
@@ -146,6 +164,7 @@ class RegistrationContactFilterForm(NetBoxModelFilterSetForm):
146
164
  class RegistrationContactImportForm(NetBoxModelImportForm):
147
165
  class Meta:
148
166
  model = RegistrationContact
167
+
149
168
  fields = (
150
169
  "name",
151
170
  "description",
@@ -168,6 +187,47 @@ class RegistrationContactImportForm(NetBoxModelImportForm):
168
187
  class RegistrationContactBulkEditForm(NetBoxModelBulkEditForm):
169
188
  model = RegistrationContact
170
189
 
190
+ fieldsets = (
191
+ FieldSet(
192
+ "name",
193
+ "description",
194
+ name=_("Attributes"),
195
+ ),
196
+ FieldSet(
197
+ "organization",
198
+ "street",
199
+ "city",
200
+ "state_province",
201
+ "postal_code",
202
+ "country",
203
+ name=_("Address"),
204
+ ),
205
+ FieldSet(
206
+ "phone",
207
+ "phone_ext",
208
+ "fax",
209
+ "fax_ext",
210
+ "email",
211
+ name=_("Communication"),
212
+ ),
213
+ )
214
+
215
+ nullable_fields = (
216
+ "name",
217
+ "description",
218
+ "organization",
219
+ "street",
220
+ "city",
221
+ "state_province",
222
+ "postal_code",
223
+ "country",
224
+ "phone",
225
+ "phone_ext",
226
+ "fax",
227
+ "fax_ext",
228
+ "email",
229
+ )
230
+
171
231
  name = forms.CharField(
172
232
  required=False,
173
233
  label=_("Name"),
@@ -220,40 +280,3 @@ class RegistrationContactBulkEditForm(NetBoxModelBulkEditForm):
220
280
  required=False,
221
281
  label=_("Email Address"),
222
282
  )
223
-
224
- fieldsets = (
225
- FieldSet("name", "description", name=_("Attributes")),
226
- FieldSet(
227
- "organization",
228
- "street",
229
- "city",
230
- "state_province",
231
- "postal_code",
232
- "country",
233
- name=_("Address"),
234
- ),
235
- FieldSet(
236
- "phone",
237
- "phone_ext",
238
- "fax",
239
- "fax_ext",
240
- "email",
241
- name=_("Communication"),
242
- ),
243
- )
244
-
245
- nullable_fields = (
246
- "name",
247
- "description",
248
- "organization",
249
- "street",
250
- "city",
251
- "state_province",
252
- "postal_code",
253
- "country",
254
- "phone",
255
- "phone_ext",
256
- "fax",
257
- "fax_ext",
258
- "email",
259
- )