Élie Bouttier il y a 7 ans
Parent
commit
4d17ba8671

+ 7 - 2
services/admin.py

@@ -13,7 +13,7 @@ from django.core.serializers import serialize
 from django.http import HttpResponse
 
 from adhesions.models import Adhesion
-from .models import Service, ServiceType, IPPrefix, IPResource, Route, ServiceAllocation, Antenna, AntennaAllocation, Allocation
+from .models import Service, ServiceType, IPPrefix, IPResource, Route, Tunnel, ServiceAllocation, Antenna, AntennaAllocation, Allocation
 from .utils import notify_allocation
 
 
@@ -237,7 +237,7 @@ class IPResourceAdmin(admin.ModelAdmin):
 
 
 class RouteAdmin(admin.ModelAdmin):
-    list_display = ('name', 'description',)
+    list_display = ('name',)
 
     def get_readonly_fields(self, request, obj=None):
         if obj:
@@ -255,6 +255,10 @@ class RouteAdmin(admin.ModelAdmin):
         return False
 
 
+class TunnelAdmin(RouteAdmin):
+    list_display = ('name', 'description',)
+
+
 class ServiceTypeAdmin(admin.ModelAdmin):
     fields = ('name',)
     readonly_fields = ('name',)
@@ -317,4 +321,5 @@ admin.site.register(Service, ServiceAdmin)
 admin.site.register(IPPrefix, IPPrefixAdmin)
 admin.site.register(IPResource, IPResourceAdmin)
 admin.site.register(Route, RouteAdmin)
+admin.site.register(Tunnel, TunnelAdmin)
 geo_admin.site.register(Antenna, AntennaAdmin)

+ 39 - 0
services/migrations/0031_auto_20170612_2234.py

@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11 on 2017-06-12 20:34
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('services', '0030_auto_20170612_1339'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='route',
+            name='description',
+        ),
+        migrations.RemoveField(
+            model_name='route',
+            name='local_ip',
+        ),
+        migrations.RemoveField(
+            model_name='route',
+            name='networks',
+        ),
+        migrations.RemoveField(
+            model_name='route',
+            name='notes',
+        ),
+        migrations.RemoveField(
+            model_name='route',
+            name='port',
+        ),
+        migrations.RemoveField(
+            model_name='route',
+            name='remote_ip',
+        ),
+    ]

+ 29 - 0
services/migrations/0032_tunnel.py

@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11 on 2017-06-12 22:23
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('services', '0031_auto_20170612_2234'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Tunnel',
+            fields=[
+                ('route_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='services.Route')),
+                ('description', models.CharField(blank=True, max_length=128)),
+                ('port', models.IntegerField(blank=True, null=True)),
+                ('local_ip', models.GenericIPAddressField(blank=True, null=True, verbose_name='IP locale')),
+                ('remote_ip', models.GenericIPAddressField(blank=True, null=True, verbose_name='IP distante')),
+                ('notes', models.TextField(blank=True, default='')),
+                ('networks', models.ManyToManyField(blank=True, to='services.IPPrefix', verbose_name='Réseaux')),
+            ],
+            bases=('services.route',),
+        ),
+    ]

+ 6 - 3
services/models.py

@@ -173,6 +173,12 @@ class Antenna(models.Model):
 
 class Route(models.Model):
     name = models.CharField(max_length=64, unique=True)
+
+    def __str__(self):
+        return self.name
+
+
+class Tunnel(Route):
     description = models.CharField(max_length=128, blank=True)
     port = models.IntegerField(null=True, blank=True)
     local_ip = models.GenericIPAddressField(null=True, blank=True, verbose_name='IP locale')
@@ -180,9 +186,6 @@ class Route(models.Model):
     networks = models.ManyToManyField(IPPrefix, blank=True, verbose_name='Réseaux')
     notes = models.TextField(blank=True, default='')
 
-    def __str__(self):
-        return self.name
-
 
 class Allocation(models.Model):
     start = models.DateTimeField(verbose_name='Début de la période d’allocation', default=timezone.now)