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

Refondation de topologie

This commit is contained in:
Gabriel Detraz 2016-07-03 14:02:46 +02:00
parent 8efe3c358c
commit 5a5dd39a88
26 changed files with 217 additions and 69 deletions

View file

@ -1,20 +1,17 @@
from django.contrib import admin from django.contrib import admin
from .models import Port, Room, Link from .models import Port, Room, Switch
class SwitchAdmin(admin.ModelAdmin):
list_display = ('building','number','details')
class PortAdmin(admin.ModelAdmin): class PortAdmin(admin.ModelAdmin):
list_display = ('building','switch', 'port','details') list_display = ('switch', 'port','details')
class RoomAdmin(admin.ModelAdmin): class RoomAdmin(admin.ModelAdmin):
list_display = ('room','details') list_display = ('building','room','number','details')
class RoomAdmin(admin.ModelAdmin):
list_display = ('room','details')
class LinkAdmin(admin.ModelAdmin):
list_display = ('port', 'room','details')
admin.site.register(Port, PortAdmin) admin.site.register(Port, PortAdmin)
admin.site.register(Room, RoomAdmin) admin.site.register(Room, RoomAdmin)
admin.site.register(Link, LinkAdmin) admin.site.register(Switch, SwitchAdmin)

View file

@ -11,25 +11,12 @@ class Migration(migrations.Migration):
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(
name='Port', name='Switch',
fields=[ fields=[
('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, verbose_name='ID', serialize=False)),
('building', models.CharField(max_length=10)), ('building', models.CharField(max_length=10)),
('switch', models.IntegerField()), ('number', models.IntegerField()),
('port', models.IntegerField()), ('details', models.CharField(max_length=255, blank=True)),
('details', models.CharField(blank=True, max_length=255)),
], ],
), ),
migrations.CreateModel(
name='Room',
fields=[
('id', models.AutoField(serialize=False, primary_key=True, auto_created=True, verbose_name='ID')),
('details', models.CharField(blank=True, max_length=255)),
('room', models.CharField(max_length=255)),
],
),
migrations.AlterUniqueTogether(
name='port',
unique_together=set([('building', 'switch', 'port')]),
),
] ]

View file

@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('contenttypes', '0002_remove_content_type_name'),
('topologie', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='Port',
fields=[
('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')),
('port', models.IntegerField()),
('details', models.CharField(max_length=255, blank=True)),
('_object_id', models.PositiveIntegerField(null=True, blank=True)),
('_content_type', models.ForeignKey(null=True, blank=True, to='contenttypes.ContentType')),
('switch', models.ForeignKey(related_name='ports', to='topologie.Switch')),
],
),
migrations.AlterUniqueTogether(
name='port',
unique_together=set([('_content_type', '_object_id')]),
),
]

View file

@ -1,24 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('topologie', '0002_auto_20160703_0103'),
]
operations = [
migrations.CreateModel(
name='Link',
fields=[
('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
('details', models.CharField(blank=True, max_length=255)),
('port', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='topologie.Port')),
('room', models.ForeignKey(to='topologie.Room', on_delete=django.db.models.deletion.PROTECT, blank=True)),
],
),
]

View file

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('topologie', '0002_auto_20160703_1118'),
]
operations = [
migrations.CreateModel(
name='Room',
fields=[
('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)),
('details', models.CharField(max_length=255, blank=True)),
('building', models.CharField(max_length=255, unique=True)),
('number', models.IntegerField()),
],
),
]

View file

@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('topologie', '0003_room'),
]
operations = [
migrations.AlterUniqueTogether(
name='switch',
unique_together=set([('building', 'number')]),
),
]

View file

@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('topologie', '0004_auto_20160703_1122'),
]
operations = [
migrations.AlterUniqueTogether(
name='room',
unique_together=set([('building', 'number')]),
),
]

View file

@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('topologie', '0005_auto_20160703_1123'),
]
operations = [
migrations.AddField(
model_name='room',
name='room',
field=models.IntegerField(default=1),
preserve_default=False,
),
migrations.AlterField(
model_name='room',
name='building',
field=models.CharField(max_length=255),
),
migrations.AlterField(
model_name='room',
name='number',
field=models.IntegerField(blank=True),
),
migrations.AlterUniqueTogether(
name='room',
unique_together=set([('building', 'room', 'number')]),
),
]

View file

@ -7,13 +7,13 @@ from django.db import migrations, models
class Migration(migrations.Migration): class Migration(migrations.Migration):
dependencies = [ dependencies = [
('topologie', '0001_initial'), ('topologie', '0006_auto_20160703_1129'),
] ]
operations = [ operations = [
migrations.AlterField( migrations.AlterField(
model_name='room', model_name='room',
name='room', name='number',
field=models.CharField(unique=True, max_length=255), field=models.IntegerField(null=True, blank=True),
), ),
] ]

View file

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('topologie', '0007_auto_20160703_1148'),
]
operations = [
migrations.AddField(
model_name='port',
name='room',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, blank=True, default=1, to='topologie.Room'),
preserve_default=False,
),
]

View file

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('topologie', '0008_port_room'),
]
operations = [
migrations.AlterField(
model_name='port',
name='room',
field=models.ForeignKey(to='topologie.Room', on_delete=django.db.models.deletion.PROTECT, blank=True, null=True),
),
]

View file

@ -1,29 +1,53 @@
from django.db import models from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes.fields import GenericForeignKey
class Port(models.Model):
class Switch(models.Model):
building = models.CharField(max_length=10) building = models.CharField(max_length=10)
switch = models.IntegerField() number = models.IntegerField()
port = models.IntegerField()
details = models.CharField(max_length=255, blank=True) details = models.CharField(max_length=255, blank=True)
class Meta: class Meta:
unique_together = ("building", "switch", "port") unique_together = ('building', 'number')
def __str__(self): def __str__(self):
return str(self.building) + " - " + str(self.switch) + " - " + str(self.port) return str(self.building) + str(self.number)
class Port(models.Model):
switch = models.ForeignKey(Switch, related_name="ports")
port = models.IntegerField()
details = models.CharField(max_length=255, blank=True)
room = models.ForeignKey('Room', on_delete=models.PROTECT, blank=True, null=True)
class Meta:
unique_together = ('_content_type', '_object_id')
_content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE, blank=True, null=True)
_object_id = models.PositiveIntegerField(blank=True, null=True)
goto = GenericForeignKey('_content_type', '_object_id')
@property
def comefrom(self):
ctype = ContentType.objects.get_for_model(self.__class__)
try:
event = Port.objects.get(_content_type__pk=ctype.id, _object_id=self.id)
except:
return None
return event
def __str__(self):
return str(self.switch) + " - " + str(self.port)
class Room(models.Model): class Room(models.Model):
details = models.CharField(max_length=255, blank=True) details = models.CharField(max_length=255, blank=True)
room = models.CharField(max_length=255, unique=True) building = models.CharField(max_length=255)
room = models.IntegerField()
number = models.IntegerField(blank=True, null=True)
class Meta:
unique_together = ('building', 'room', 'number')
def __str__(self): def __str__(self):
return str(self.room) return str(self.building) + str(self.room) + '-' + str(self.number)
class Link(models.Model):
port = models.ForeignKey('Port', on_delete=models.PROTECT)
details = models.CharField(max_length=255, blank=True)
#port_linked = models.ForeignKey('Port', on_delete=models.PROTECT, blank=True)
room = models.ForeignKey('Room', on_delete=models.PROTECT, blank=True)
def __str__(self):
return str(self.port)