mirror of https://gitlab.federez.net/re2o/re2o
18 changed files with 332 additions and 26 deletions
@ -0,0 +1,20 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import macaddress.fields |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('machines', '0002_auto_20160703_1444'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='interface', |
||||
|
name='mac_address', |
||||
|
field=macaddress.fields.MACAddressField(integer=True, unique=True), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,19 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('machines', '0003_auto_20160703_1450'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='iplist', |
||||
|
name='ipv4', |
||||
|
field=models.GenericIPAddressField(protocol='IPv4', unique=True), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,24 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('machines', '0004_auto_20160703_1451'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.RenameField( |
||||
|
model_name='interface', |
||||
|
old_name='name', |
||||
|
new_name='dns', |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='machine', |
||||
|
name='name', |
||||
|
field=models.CharField(blank=True, unique=True, max_length=255, help_text='Optionnel'), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,24 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('machines', '0005_auto_20160703_1523'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='interface', |
||||
|
name='details', |
||||
|
field=models.CharField(max_length=255, blank=True), |
||||
|
), |
||||
|
migrations.AlterField( |
||||
|
model_name='interface', |
||||
|
name='dns', |
||||
|
field=models.CharField(max_length=255, unique=True), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,19 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('machines', '0006_auto_20160703_1813'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='interface', |
||||
|
name='ipv6', |
||||
|
field=models.GenericIPAddressField(null=True, protocol='IPv6'), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,18 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('machines', '0007_auto_20160703_1816'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.RemoveField( |
||||
|
model_name='interface', |
||||
|
name='ipv6', |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,20 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import macaddress.fields |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('machines', '0008_remove_interface_ipv6'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='interface', |
||||
|
name='mac_address', |
||||
|
field=macaddress.fields.MACAddressField(integer=False, max_length=17, unique=True), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,23 @@ |
|||||
|
<table class="table table-striped"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>Nom dns</th> |
||||
|
<th>Proprietaire</th> |
||||
|
<th>Type</th> |
||||
|
<th>Mac</th> |
||||
|
<th>Ipv4</th> |
||||
|
<th></th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
{% for machine in machine_list %} |
||||
|
<tr> |
||||
|
<td>{{ machine.dns }}</td> |
||||
|
<td>{{ machine.machine.user }}</td> |
||||
|
<td>{{ machine.machine.type }}</td> |
||||
|
<td>{{ machine.mac_address }}</td> |
||||
|
<td>{{ machine.ipv4 }}</td> |
||||
|
<td><a class="btn btn-primary btn-sm" role="button" href="{% url 'machines:edit-machine' machine.id %}"><i class="glyphicon glyphicon-tree-conifer"></i> Editer</a></td> |
||||
|
</tr> |
||||
|
{% endfor %} |
||||
|
</table> |
||||
|
|
||||
@ -0,0 +1,12 @@ |
|||||
|
{% extends "machines/sidebar.html" %} |
||||
|
{% load bootstrap3 %} |
||||
|
|
||||
|
{% block title %}Machines{% endblock %} |
||||
|
|
||||
|
{% block content %} |
||||
|
{% include "machines/aff_machines.html" with machines_list=machines_list %} |
||||
|
<br /> |
||||
|
<br /> |
||||
|
<br /> |
||||
|
{% endblock %} |
||||
|
|
||||
@ -0,0 +1,19 @@ |
|||||
|
{% extends "machines/sidebar.html" %} |
||||
|
{% load bootstrap3 %} |
||||
|
|
||||
|
{% block title %}Création et modification de machines{% endblock %} |
||||
|
|
||||
|
{% block content %} |
||||
|
{% bootstrap_form_errors machineform %} |
||||
|
{% bootstrap_form_errors interfaceform %} |
||||
|
|
||||
|
<form class="form" method="post"> |
||||
|
{% csrf_token %} |
||||
|
{% bootstrap_form machineform %} |
||||
|
{% bootstrap_form interfaceform %} |
||||
|
{% bootstrap_button "Créer ou modifier" button_type="submit" icon="star" %} |
||||
|
</form> |
||||
|
<br /> |
||||
|
<br /> |
||||
|
<br /> |
||||
|
{% endblock %} |
||||
@ -0,0 +1,5 @@ |
|||||
|
{% extends "base.html" %} |
||||
|
|
||||
|
{% block sidebar %} |
||||
|
<p><a href="{% url "search:search" %}">Nouvelle machine</a></p> |
||||
|
{% endblock %} |
||||
@ -0,0 +1,10 @@ |
|||||
|
from django.conf.urls import url |
||||
|
|
||||
|
from . import views |
||||
|
|
||||
|
urlpatterns = [ |
||||
|
url(r'^new_machine/(?P<userid>[0-9]+)$', views.new_machine, name='new-machine'), |
||||
|
url(r'^edit_machine/(?P<interfaceid>[0-9]+)$', views.edit_machine, name='edit-machine'), |
||||
|
url(r'^new_interface/(?P<machineid>[0-9]+)$', views.new_interface, name='new-interface'), |
||||
|
url(r'^$', views.index, name='index'), |
||||
|
] |
||||
@ -1,3 +1,72 @@ |
|||||
from django.shortcuts import render |
# App de gestion des machines pour re2o |
||||
|
# Gabriel Détraz |
||||
|
# Gplv2 |
||||
|
from django.shortcuts import render, redirect |
||||
|
from django.shortcuts import render_to_response, get_object_or_404 |
||||
|
from django.core.context_processors import csrf |
||||
|
from django.template import Context, RequestContext, loader |
||||
|
from django.contrib import messages |
||||
|
|
||||
# Create your views here. |
from .models import NewMachineForm, EditMachineForm, EditInterfaceForm, AddInterfaceForm, NewInterfaceForm |
||||
|
from .models import Machine, Interface |
||||
|
from users.models import User |
||||
|
|
||||
|
def form(ctx, template, request): |
||||
|
c = ctx |
||||
|
c.update(csrf(request)) |
||||
|
return render_to_response(template, c, context_instance=RequestContext(request)) |
||||
|
|
||||
|
def new_machine(request, userid): |
||||
|
try: |
||||
|
user = User.objects.get(pk=userid) |
||||
|
except User.DoesNotExist: |
||||
|
messages.error(request, u"Utilisateur inexistant" ) |
||||
|
return redirect("/machines/") |
||||
|
machine = NewMachineForm(request.POST or None) |
||||
|
interface = NewInterfaceForm(request.POST or None) |
||||
|
if machine.is_valid() and interface.is_valid(): |
||||
|
new_machine = machine.save(commit=False) |
||||
|
new_machine.user = user |
||||
|
new_machine.save() |
||||
|
new_interface = interface.save(commit=False) |
||||
|
new_interface.machine = new_machine |
||||
|
new_interface.save() |
||||
|
messages.success(request, "La machine a été crée") |
||||
|
return redirect("/users/") |
||||
|
return form({'machineform': machine, 'interfaceform': interface}, 'machines/machine.html', request) |
||||
|
|
||||
|
def edit_machine(request, interfaceid): |
||||
|
try: |
||||
|
interface = Interface.objects.get(pk=interfaceid) |
||||
|
except Interface.DoesNotExist: |
||||
|
messages.error(request, u"Interface inexistante" ) |
||||
|
return redirect("/machines") |
||||
|
machine_form = EditMachineForm(request.POST or None, instance=interface.machine) |
||||
|
interface_form = EditInterfaceForm(request.POST or None, instance=interface) |
||||
|
if machine_form.is_valid() and interface_form.is_valid(): |
||||
|
machine_form.save() |
||||
|
interface_form.save() |
||||
|
messages.success(request, "La machine a été modifiée") |
||||
|
return redirect("/users/") |
||||
|
return form({'machineform': machine_form, 'interfaceform': interface_form}, 'machines/machine.html', request) |
||||
|
|
||||
|
def new_interface(request, machineid): |
||||
|
try: |
||||
|
machine = Machine.objects.get(pk=machineid) |
||||
|
except Machine.DoesNotExist: |
||||
|
messages.error(request, u"Machine inexistante" ) |
||||
|
return redirect("/machines") |
||||
|
interface_form = AddInterfaceForm(request.POST or None) |
||||
|
machine_form = EditMachineForm(request.POST or None, instance=machine) |
||||
|
if interface_form.is_valid() and machine_form.is_valid(): |
||||
|
machine_form.save() |
||||
|
new_interface = interface_form.save(commit=False) |
||||
|
new_interface.machine = machine |
||||
|
new_interface.save() |
||||
|
messages.success(request, "L'interface a été ajoutée") |
||||
|
return redirect("/users/") |
||||
|
return form({'machineform': machine_form, 'interfaceform': interface_form}, 'machines/machine.html', request) |
||||
|
|
||||
|
def index(request): |
||||
|
machine_list = Interface.objects.order_by('pk') |
||||
|
return render(request, 'machines/index.html', {'machine_list': machine_list}) |
||||
|
|||||
Loading…
Reference in new issue