62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
from django import forms
|
|
from django.urls import reverse_lazy
|
|
|
|
from netbox.forms import NetBoxModelForm, NetBoxModelImportForm, NetBoxModelBulkEditForm, NetBoxModelFilterSetForm
|
|
from netbox_slm.models import SoftwareProduct, SoftwareProductVersion
|
|
from utilities.forms.fields import CommentField, DynamicModelChoiceField, TagFilterField
|
|
from utilities.forms.rendering import FieldSet
|
|
from utilities.forms.widgets import APISelect, DatePicker
|
|
|
|
|
|
class SoftwareProductVersionForm(NetBoxModelForm):
|
|
"""Form for creating a new SoftwareProductVersion object."""
|
|
|
|
comments = CommentField()
|
|
|
|
release_date = forms.DateField(required=False, widget=DatePicker())
|
|
end_of_support = forms.DateField(required=False, widget=DatePicker())
|
|
|
|
software_product = DynamicModelChoiceField(
|
|
queryset=SoftwareProduct.objects.all(),
|
|
widget=APISelect(attrs={"data-url": reverse_lazy("plugins-api:netbox_slm-api:softwareproduct-list")}),
|
|
)
|
|
|
|
class Meta:
|
|
model = SoftwareProductVersion
|
|
fields = (
|
|
"name",
|
|
"release_date",
|
|
"documentation_url",
|
|
"end_of_support",
|
|
"filename",
|
|
"file_checksum",
|
|
"file_link",
|
|
"release_type",
|
|
"software_product",
|
|
"tags",
|
|
"comments",
|
|
)
|
|
|
|
|
|
class SoftwareProductVersionFilterForm(NetBoxModelFilterSetForm):
|
|
model = SoftwareProductVersion
|
|
fieldsets = (FieldSet(None, ("q", "tag")),)
|
|
tag = TagFilterField(model)
|
|
|
|
|
|
class SoftwareProductVersionImportForm(NetBoxModelImportForm):
|
|
class Meta:
|
|
model = SoftwareProductVersion
|
|
fields = ("name",)
|
|
|
|
|
|
class SoftwareProductVersionBulkEditForm(NetBoxModelBulkEditForm):
|
|
pk = forms.ModelMultipleChoiceField(
|
|
queryset=SoftwareProduct.objects.all(),
|
|
widget=forms.MultipleHiddenInput(),
|
|
)
|
|
|
|
class Meta:
|
|
model = SoftwareProductVersion
|
|
nullable_fields = []
|