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

Affichage de la page d'édition d'une liste de ports.

This commit is contained in:
LEVY-FALK Hugo 2017-09-30 10:04:18 +02:00 committed by root
parent 80ac47b4e2
commit 4716d7f343
5 changed files with 28 additions and 5 deletions

View file

@ -24,7 +24,7 @@ from __future__ import unicode_literals
from django.forms import ModelForm, Form, ValidationError from django.forms import ModelForm, Form, ValidationError
from django import forms from django import forms
from .models import Domain, Machine, Interface, IpList, MachineType, Extension, Mx, Text, Ns, Service, Vlan, Nas, IpType from .models import Domain, Machine, Interface, IpList, MachineType, Extension, Mx, Text, Ns, Service, Vlan, Nas, IpType, PortList
from django.db.models import Q from django.db.models import Q
from django.core.validators import validate_email from django.core.validators import validate_email
@ -229,5 +229,12 @@ class VlanForm(ModelForm):
class DelVlanForm(Form): class DelVlanForm(Form):
vlan = forms.ModelMultipleChoiceField(queryset=Vlan.objects.all(), label="Vlan actuels", widget=forms.CheckboxSelectMultiple) vlan = forms.ModelMultipleChoiceField(queryset=Vlan.objects.all(), label="Vlan actuels", widget=forms.CheckboxSelectMultiple)
class EditPortListForm(ModelForm):
tcp_ports = forms.CharField(required=False, label="Ports TCP")
udp_ports = forms.CharField(required=False, label="Ports UDP")
# interfaces = forms.ModelMultipleChoiceField(queryset=Interface.objects.filter(Q(has_public_ip=True)), label="Interface", widget=forms.CheckboxSelectMultiple)
class Meta:
model = PortList
fields = ['name']

View file

@ -223,6 +223,7 @@ class Interface(models.Model):
machine = models.ForeignKey('Machine', on_delete=models.CASCADE) machine = models.ForeignKey('Machine', on_delete=models.CASCADE)
type = models.ForeignKey('MachineType', on_delete=models.PROTECT) type = models.ForeignKey('MachineType', on_delete=models.PROTECT)
details = models.CharField(max_length=255, blank=True) details = models.CharField(max_length=255, blank=True)
has_public_ip = False
@cached_property @cached_property
def is_active(self): def is_active(self):
@ -278,6 +279,7 @@ class Interface(models.Model):
domain = None domain = None
return str(domain) return str(domain)
class Domain(models.Model): class Domain(models.Model):
PRETTY_NAME = "Domaine dns" PRETTY_NAME = "Domaine dns"
@ -447,6 +449,9 @@ class Port(models.Model):
return str(self.begin) return str(self.begin)
return '-'.join([str(self.begin), str(self.end)]) return '-'.join([str(self.begin), str(self.end)])
def show_port(self):
return str(self)
@receiver(post_save, sender=Machine) @receiver(post_save, sender=Machine)
def machine_post_save(sender, **kwargs): def machine_post_save(sender, **kwargs):

View file

@ -19,13 +19,13 @@
{% for pl in port_list %} {% for pl in port_list %}
<tr> <tr>
<td>{{pl.name}}</td> <td>{{pl.name}}</td>
<td>{{pl.tcp_ports}}</td> <td>{% for p in pl.tcp_ports%}{{p.show_port}}, {%endfor%}</td>
<td>{{pl.udp_ports}}</td> <td>{% for p in pl.udp_ports%}{{p.show_port}}, {%endfor%}</td>
<td class="text-right"> <td class="text-right">
{%comment%} {%comment%}
{% include 'buttons/suppr.html' href='machines:del-portlist' id=pl.id %} {% include 'buttons/suppr.html' href='machines:del-portlist' id=pl.id %}
{% include 'buttons/edit.html' href='machines:edit-portlist' id=pl.id %}
{%endcomment%} {%endcomment%}
{% include 'buttons/edit.html' with href='machines:edit-portlist' id=pl.id %}
</td> </td>
</tr> </tr>
{%endfor%} {%endfor%}

View file

@ -93,4 +93,5 @@ urlpatterns = [
url(r'^rest/zones/$', views.zones, name='zones'), url(r'^rest/zones/$', views.zones, name='zones'),
url(r'^rest/service_servers/$', views.service_servers, name='service-servers'), url(r'^rest/service_servers/$', views.service_servers, name='service-servers'),
url(r'index_portlist/$', views.index_portlist, name='index-portlist'), url(r'index_portlist/$', views.index_portlist, name='index-portlist'),
url(r'^edit_portlist/(?P<pk>[0-9]+)$', views.edit_portlist, name='edit-portlist'),
] ]

View file

@ -48,6 +48,7 @@ from reversion.models import Version
import re import re
from .forms import NewMachineForm, EditMachineForm, EditInterfaceForm, AddInterfaceForm, MachineTypeForm, DelMachineTypeForm, ExtensionForm, DelExtensionForm, BaseEditInterfaceForm, BaseEditMachineForm from .forms import NewMachineForm, EditMachineForm, EditInterfaceForm, AddInterfaceForm, MachineTypeForm, DelMachineTypeForm, ExtensionForm, DelExtensionForm, BaseEditInterfaceForm, BaseEditMachineForm
from .forms import EditIpTypeForm, IpTypeForm, DelIpTypeForm, DomainForm, AliasForm, DelAliasForm, NsForm, DelNsForm, TextForm, DelTextForm, MxForm, DelMxForm, VlanForm, DelVlanForm, ServiceForm, DelServiceForm, NasForm, DelNasForm from .forms import EditIpTypeForm, IpTypeForm, DelIpTypeForm, DomainForm, AliasForm, DelAliasForm, NsForm, DelNsForm, TextForm, DelTextForm, MxForm, DelMxForm, VlanForm, DelVlanForm, ServiceForm, DelServiceForm, NasForm, DelNasForm
from .forms import EditPortListForm
from .models import IpType, Machine, Interface, IpList, MachineType, Extension, Mx, Ns, Domain, Service, Service_link, Vlan, Nas, Text, PortList from .models import IpType, Machine, Interface, IpList, MachineType, Extension, Mx, Ns, Domain, Service, Service_link, Vlan, Nas, Text, PortList
from users.models import User from users.models import User
from users.models import all_has_access from users.models import all_has_access
@ -913,11 +914,20 @@ def history(request, object, id):
@login_required @login_required
@permission_required('bureau') @permission_required('cableur')
def index_portlist(request): def index_portlist(request):
port_list = PortList.objects.all().order_by('name') port_list = PortList.objects.all().order_by('name')
return render(request, "machines/index_portlist.html", {'port_list':port_list}) return render(request, "machines/index_portlist.html", {'port_list':port_list})
@login_required
@permission_required('bureau')
def edit_portlist(request, pk):
port_list_instance = get_object_or_404(PortList, pk=pk)
port_list = EditPortListForm(request.POST or None, instance=port_list_instance)
if port_list.is_valid():
return redirect("/machines/index_portlist/")
return form({'machineform' : port_list}, 'machines/machine.html', request)
""" Framework Rest """ """ Framework Rest """
class JSONResponse(HttpResponse): class JSONResponse(HttpResponse):