8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-12-27 01:13:46 +00:00

Permet d'ajouter une interface à une machine

This commit is contained in:
Gabriel Detraz 2016-07-07 19:15:33 +02:00
parent 26107ca6a3
commit fba45e63ab
8 changed files with 26 additions and 18 deletions

View file

@ -31,11 +31,14 @@ class AddInterfaceForm(EditInterfaceForm):
class Meta(EditInterfaceForm.Meta): class Meta(EditInterfaceForm.Meta):
fields = ['ipv4','mac_address','dns','details'] fields = ['ipv4','mac_address','dns','details']
def __init__(self, *args, **kwargs):
super(AddInterfaceForm, self).__init__(*args, **kwargs)
self.fields['ipv4'].empty_label = "Assignation automatique de l'ipv4"
class NewInterfaceForm(EditInterfaceForm): class NewInterfaceForm(EditInterfaceForm):
class Meta(EditInterfaceForm.Meta): class Meta(EditInterfaceForm.Meta):
fields = ['mac_address','dns','details'] fields = ['mac_address','dns','details']
class MachineTypeForm(ModelForm): class MachineTypeForm(ModelForm):
class Meta: class Meta:
model = MachineType model = MachineType

View file

@ -9,14 +9,15 @@
<th></th> <th></th>
</tr> </tr>
</thead> </thead>
{% for machine in machine_list %} {% for interface in interfaces_list %}
<tr> <tr>
<td>{{ machine.dns }}</td> <td>{{ interface.dns }}</td>
<td>{{ machine.machine.user }}</td> <td>{{ interface.machine.user }}</td>
<td>{{ machine.machine.type }}</td> <td>{{ interface.machine.type }}</td>
<td>{{ machine.mac_address }}</td> <td>{{ interface.mac_address }}</td>
<td>{{ machine.ipv4 }}</td> <td>{{ interface.ipv4 }}</td>
<td><a class="btn btn-primary btn-sm" role="button" href="{% url 'machines:edit-machine' machine.id %}"><i class="glyphicon glyphicon-hdd"></i> Editer</a></td> <td><a class="btn btn-primary btn-sm" role="button" href="{% url 'machines:edit-machine' interface.id %}"><i class="glyphicon glyphicon-hdd"></i> Editer</a>
<a class="btn btn-primary btn-sm" role="button" href="{% url 'machines:new-interface' interface.machine.id %}"><i class="glyphicon glyphicon-plus"></i> Ajouter une interface</a></td>
</tr> </tr>
{% endfor %} {% endfor %}
</table> </table>

View file

@ -4,7 +4,7 @@
{% block title %}Machines{% endblock %} {% block title %}Machines{% endblock %}
{% block content %} {% block content %}
{% include "machines/aff_machines.html" with machines_list=machines_list %} {% include "machines/aff_machines.html" with interfaces_list=interfaces_list %}
<br /> <br />
<br /> <br />
<br /> <br />

View file

@ -97,6 +97,10 @@ def new_interface(request, machineid):
machine_form.save() machine_form.save()
new_interface = interface_form.save(commit=False) new_interface = interface_form.save(commit=False)
new_interface.machine = machine new_interface.machine = machine
if free_ip() and not new_interface.ipv4:
new_interface = assign_ipv4(new_interface)
elif not new_interface.ipv4:
messages.error(request, u"Il n'y a plus d'ip disponibles")
new_interface.save() new_interface.save()
messages.success(request, "L'interface a été ajoutée") messages.success(request, "L'interface a été ajoutée")
return redirect("/machines/") return redirect("/machines/")
@ -124,5 +128,5 @@ def del_machinetype(request):
return form({'machineform': machinetype, 'interfaceform': None}, 'machines/machine.html', request) return form({'machineform': machinetype, 'interfaceform': None}, 'machines/machine.html', request)
def index(request): def index(request):
machine_list = Interface.objects.order_by('pk') interfaces_list = Interface.objects.order_by('pk')
return render(request, 'machines/index.html', {'machine_list': machine_list}) return render(request, 'machines/index.html', {'interfaces_list': interfaces_list})

View file

@ -8,9 +8,9 @@
<h2>Résultats dans les utilisateurs</h2> <h2>Résultats dans les utilisateurs</h2>
{% include "users/aff_users.html" with users_list=users_list %} {% include "users/aff_users.html" with users_list=users_list %}
{% endif%} {% endif%}
{% if machine_list %} {% if interfaces_list %}
<h2>Résultats dans les machines : </h2> <h2>Résultats dans les machines : </h2>
{% include "machines/aff_machines.html" with machine_list=machine_list %} {% include "machines/aff_machines.html" with interfaces_list=interfaces_list %}
{% endif %} {% endif %}
{% if facture_list %} {% if facture_list %}
<h2>Résultats dans les factures : </h2> <h2>Résultats dans les factures : </h2>
@ -32,7 +32,7 @@
<h2>Résultats dans les ports : </h2> <h2>Résultats dans les ports : </h2>
{% include "topologie/aff_port.html" with port_list=port_list %} {% include "topologie/aff_port.html" with port_list=port_list %}
{% endif %} {% endif %}
{% if not ban_list and not machine_list and not users_list and not facture_list and not white_list and not port_list and not switch_list%} {% if not ban_list and not interfaces_list and not users_list and not facture_list and not white_list and not port_list and not switch_list%}
<h3>Aucun résultat</h3> <h3>Aucun résultat</h3>
{% endif %} {% endif %}
<br /> <br />

View file

@ -78,7 +78,7 @@ def search_result(search, type):
portlist = Port.objects.filter(details__icontains = search) portlist = Port.objects.filter(details__icontains = search)
if i == '6': if i == '6':
switchlist = Switch.objects.filter(details__icontains = search) switchlist = Switch.objects.filter(details__icontains = search)
return {'users_list': connexion, 'machine_list' : machines, 'facture_list' : factures, 'ban_list' : bans, 'white_list': whitelists, 'port_list':portlist, 'switch_list':switchlist} return {'users_list': connexion, 'interfaces_list' : machines, 'facture_list' : factures, 'ban_list' : bans, 'white_list': whitelists, 'port_list':portlist, 'switch_list':switchlist}
def search(request): def search(request):
if request.method == 'POST': if request.method == 'POST':

View file

@ -81,8 +81,8 @@
</table> </table>
<h2>Machines :</h2> <h2>Machines :</h2>
<h4><a class="btn btn-primary btn-sm" role="button" href="{% url 'machines:new-machine' user.id %}"><i class="glyphicon glyphicon-phone"></i> Ajouter une machine</a></h4> <h4><a class="btn btn-primary btn-sm" role="button" href="{% url 'machines:new-machine' user.id %}"><i class="glyphicon glyphicon-phone"></i> Ajouter une machine</a></h4>
{% if machine_list %} {% if interfaces_list %}
{% include "machines/aff_machines.html" with machine_list=machine_list %} {% include "machines/aff_machines.html" with interfaces_list=interfaces_list %}
{% else %} {% else %}
<p>Aucune machine</p> <p>Aucune machine</p>
{% endif %} {% endif %}

View file

@ -275,5 +275,5 @@ def profil(request, userid):
if(is_whitelisted(users)): if(is_whitelisted(users)):
end_whitelists=end_whitelist(users) end_whitelists=end_whitelist(users)
list_droits = Right.objects.filter(user=users) list_droits = Right.objects.filter(user=users)
return render(request, 'users/profil.html', {'user': users, 'machine_list' :machines, 'facture_list':factures, 'ban_list':bans, 'white_list':whitelists,'end_ban':end_bans,'end_whitelist':end_whitelists, 'end_adhesion':end_adhesion(users), 'actif':has_access(users), 'list_droits': list_droits}) return render(request, 'users/profil.html', {'user': users, 'interfaces_list' :machines, 'facture_list':factures, 'ban_list':bans, 'white_list':whitelists,'end_ban':end_bans,'end_whitelist':end_whitelists, 'end_adhesion':end_adhesion(users), 'actif':has_access(users), 'list_droits': list_droits})