|
|
|
@ -40,7 +40,7 @@ from django.forms import ModelForm, Form |
|
|
|
from django.utils.translation import ugettext_lazy as _ |
|
|
|
|
|
|
|
from re2o.field_permissions import FieldPermissionFormMixin |
|
|
|
from re2o.mixins import FormRevMixin |
|
|
|
from re2o.mixins import FormRevMixin, AutocompleteModelMixin, AutocompleteMultipleModelMixin |
|
|
|
from .models import ( |
|
|
|
Domain, |
|
|
|
Machine, |
|
|
|
@ -71,6 +71,11 @@ class EditMachineForm(FormRevMixin, FieldPermissionFormMixin, ModelForm): |
|
|
|
class Meta: |
|
|
|
model = Machine |
|
|
|
fields = "__all__" |
|
|
|
widgets = { |
|
|
|
"user": AutocompleteModelMixin( |
|
|
|
url="/users/user-autocomplete", |
|
|
|
), |
|
|
|
} |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
prefix = kwargs.pop("prefix", self.Meta.model.__name__) |
|
|
|
@ -91,6 +96,17 @@ class EditInterfaceForm(FormRevMixin, FieldPermissionFormMixin, ModelForm): |
|
|
|
class Meta: |
|
|
|
model = Interface |
|
|
|
fields = ["machine", "machine_type", "ipv4", "mac_address", "details"] |
|
|
|
widgets = { |
|
|
|
"machine": AutocompleteModelMixin( |
|
|
|
url="/machines/machine-autocomplete", |
|
|
|
), |
|
|
|
"machine_type": AutocompleteModelMixin( |
|
|
|
url="/machines/machinetype-autocomplete", |
|
|
|
), |
|
|
|
"ipv4": AutocompleteModelMixin( |
|
|
|
url="/machines/ipv4-autocomplete", |
|
|
|
), |
|
|
|
} |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
prefix = kwargs.pop("prefix", self.Meta.model.__name__) |
|
|
|
@ -139,6 +155,11 @@ class AliasForm(FormRevMixin, FieldPermissionFormMixin, ModelForm): |
|
|
|
class Meta: |
|
|
|
model = Domain |
|
|
|
fields = ["name", "extension", "ttl"] |
|
|
|
widgets = { |
|
|
|
"extension": AutocompleteModelMixin( |
|
|
|
url="/machines/extension-autocomplete", |
|
|
|
), |
|
|
|
} |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
prefix = kwargs.pop("prefix", self.Meta.model.__name__) |
|
|
|
@ -222,6 +243,14 @@ class IpTypeForm(FormRevMixin, ModelForm): |
|
|
|
class Meta: |
|
|
|
model = IpType |
|
|
|
fields = "__all__" |
|
|
|
widgets = { |
|
|
|
"vlan": AutocompleteModelMixin( |
|
|
|
url="/machines/vlan-autocomplete", |
|
|
|
), |
|
|
|
"extension": AutocompleteModelMixin( |
|
|
|
url="/machines/extension-autocomplete", |
|
|
|
), |
|
|
|
} |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
prefix = kwargs.pop("prefix", self.Meta.model.__name__) |
|
|
|
@ -351,6 +380,14 @@ class MxForm(FormRevMixin, ModelForm): |
|
|
|
class Meta: |
|
|
|
model = Mx |
|
|
|
fields = ["zone", "priority", "name", "ttl"] |
|
|
|
widgets = { |
|
|
|
"zone": AutocompleteModelMixin( |
|
|
|
url="/machines/extension-autocomplete", |
|
|
|
), |
|
|
|
"name": AutocompleteModelMixin( |
|
|
|
url="/machines/domain-autocomplete", |
|
|
|
), |
|
|
|
} |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
prefix = kwargs.pop("prefix", self.Meta.model.__name__) |
|
|
|
@ -386,6 +423,14 @@ class NsForm(FormRevMixin, ModelForm): |
|
|
|
class Meta: |
|
|
|
model = Ns |
|
|
|
fields = ["zone", "ns", "ttl"] |
|
|
|
widgets = { |
|
|
|
"zone": AutocompleteModelMixin( |
|
|
|
url="/machines/extension-autocomplete", |
|
|
|
), |
|
|
|
"ns": AutocompleteModelMixin( |
|
|
|
url="/machines/domain-autocomplete", |
|
|
|
), |
|
|
|
} |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
prefix = kwargs.pop("prefix", self.Meta.model.__name__) |
|
|
|
@ -419,6 +464,11 @@ class TxtForm(FormRevMixin, ModelForm): |
|
|
|
class Meta: |
|
|
|
model = Txt |
|
|
|
fields = "__all__" |
|
|
|
widgets = { |
|
|
|
"zone": AutocompleteModelMixin( |
|
|
|
url="/machines/extension-autocomplete", |
|
|
|
), |
|
|
|
} |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
prefix = kwargs.pop("prefix", self.Meta.model.__name__) |
|
|
|
@ -449,6 +499,11 @@ class DNameForm(FormRevMixin, ModelForm): |
|
|
|
class Meta: |
|
|
|
model = DName |
|
|
|
fields = "__all__" |
|
|
|
widgets = { |
|
|
|
"zone": AutocompleteModelMixin( |
|
|
|
url="/machines/extension-autocomplete", |
|
|
|
), |
|
|
|
} |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
prefix = kwargs.pop("prefix", self.Meta.model.__name__) |
|
|
|
@ -479,6 +534,14 @@ class SrvForm(FormRevMixin, ModelForm): |
|
|
|
class Meta: |
|
|
|
model = Srv |
|
|
|
fields = "__all__" |
|
|
|
widgets = { |
|
|
|
"extension": AutocompleteModelMixin( |
|
|
|
url="/machines/extension-autocomplete", |
|
|
|
), |
|
|
|
"target": AutocompleteModelMixin( |
|
|
|
url="/machines/domain-autocomplete", |
|
|
|
), |
|
|
|
} |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
prefix = kwargs.pop("prefix", self.Meta.model.__name__) |
|
|
|
@ -509,6 +572,14 @@ class NasForm(FormRevMixin, ModelForm): |
|
|
|
class Meta: |
|
|
|
model = Nas |
|
|
|
fields = "__all__" |
|
|
|
widgets = { |
|
|
|
"nas_type": AutocompleteModelMixin( |
|
|
|
url="/machines/machinetype-autocomplete", |
|
|
|
), |
|
|
|
"machine_type": AutocompleteModelMixin( |
|
|
|
url="/machines/machinetype-autocomplete", |
|
|
|
), |
|
|
|
} |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
prefix = kwargs.pop("prefix", self.Meta.model.__name__) |
|
|
|
@ -539,6 +610,11 @@ class RoleForm(FormRevMixin, ModelForm): |
|
|
|
class Meta: |
|
|
|
model = Role |
|
|
|
fields = "__all__" |
|
|
|
widgets = { |
|
|
|
"servers": AutocompleteMultipleModelMixin( |
|
|
|
url="/machines/interface-autocomplete", |
|
|
|
), |
|
|
|
} |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
prefix = kwargs.pop("prefix", self.Meta.model.__name__) |
|
|
|
@ -572,6 +648,11 @@ class ServiceForm(FormRevMixin, ModelForm): |
|
|
|
class Meta: |
|
|
|
model = Service |
|
|
|
fields = "__all__" |
|
|
|
widgets = { |
|
|
|
"servers": AutocompleteMultipleModelMixin( |
|
|
|
url="/machines/interface-autocomplete", |
|
|
|
), |
|
|
|
} |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
prefix = kwargs.pop("prefix", self.Meta.model.__name__) |
|
|
|
@ -656,6 +737,11 @@ class EditOuverturePortConfigForm(FormRevMixin, ModelForm): |
|
|
|
class Meta: |
|
|
|
model = Interface |
|
|
|
fields = ["port_lists"] |
|
|
|
widgets = { |
|
|
|
"port_lists": AutocompleteMultipleModelMixin( |
|
|
|
url="/machines/ouvertureportlist-autocomplete", |
|
|
|
), |
|
|
|
} |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
prefix = kwargs.pop("prefix", self.Meta.model.__name__) |
|
|
|
|