8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-11-22 11:23:10 +00:00

Add autocomplete on machine, interface edit forms

This commit is contained in:
chirac 2020-12-28 18:27:15 +01:00
parent b1fcfc306a
commit 7dfaf6ff65
3 changed files with 23 additions and 2 deletions

View file

@ -104,7 +104,10 @@ class EditInterfaceForm(FormRevMixin, FieldPermissionFormMixin, ModelForm):
url="/machines/machinetype-autocomplete", url="/machines/machinetype-autocomplete",
), ),
"ipv4": AutocompleteModelMixin( "ipv4": AutocompleteModelMixin(
url="/machines/ipv4-autocomplete", url="/machines/iplist-autocomplete", forward=['machine_type'],
attrs={
'data-placeholder': 'Automatic assigment. Type to choose specific ip.',
}
), ),
} }

View file

@ -162,4 +162,5 @@ urlpatterns = [
url(r'^extension-autocomplete/$', views_autocomplete.ExtensionAutocomplete.as_view(), name='extension-autocomplete',), url(r'^extension-autocomplete/$', views_autocomplete.ExtensionAutocomplete.as_view(), name='extension-autocomplete',),
url(r'^domain-autocomplete/$', views_autocomplete.DomainAutocomplete.as_view(), name='domain-autocomplete',), url(r'^domain-autocomplete/$', views_autocomplete.DomainAutocomplete.as_view(), name='domain-autocomplete',),
url(r'^ouvertureportlist-autocomplete/$', views_autocomplete.OuverturePortListAutocomplete.as_view(), name='ouvertureportlist-autocomplete',), url(r'^ouvertureportlist-autocomplete/$', views_autocomplete.OuverturePortListAutocomplete.as_view(), name='ouvertureportlist-autocomplete',),
url(r'^iplist-autocomplete/$', views_autocomplete.IpListAutocomplete.as_view(), name='iplist-autocomplete',),
] ]

View file

@ -41,7 +41,8 @@ from .models import (
MachineType, MachineType,
Extension, Extension,
Domain, Domain,
OuverturePortList OuverturePortList,
IpList
) )
from re2o.mixins import AutocompleteViewMixin from re2o.mixins import AutocompleteViewMixin
@ -88,3 +89,19 @@ class InterfaceAutocomplete(AutocompleteViewMixin):
) )
return qs return qs
class IpListAutocomplete(AutocompleteViewMixin):
obj_type = IpList
def get_queryset(self):
machine_type = self.forwarded.get('machine_type', None)
qs = self.obj_type.objects.filter(interface__isnull=True)
if machine_type:
qs = qs.filter(ip_type__machinetype__id=machine_type)
if self.q:
qs = qs.filter(
Q(ipv4__startswith=self.q)
)
return qs