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