Adds a tabular view of the topology data

The traditional network engineer workflow includes a diagram, a
spreadsheet, and the CLI.  This adds an experimental view of the
network topology data in a spreadsheet like table view.

* Adds angular-xeditable dependency for tables view.
* Add data binding models
* Add message transformations from table to topology formats
* Adding dependencies for tables view
This commit is contained in:
Ben Thomasson
2018-03-15 11:17:48 -04:00
parent d0e402c39a
commit 8fb54efa8e
17 changed files with 649 additions and 33 deletions

View File

@@ -34,7 +34,7 @@ class Topology(models.Model):
scale = models.FloatField()
panX = models.FloatField()
panY = models.FloatField()
device_id_seq = models.IntegerField('Topology', default=0)
device_id_seq = models.IntegerField(default=0)
link_id_seq = models.IntegerField(default=0)
group_id_seq = models.IntegerField(default=0)
@@ -81,11 +81,11 @@ class Interface(models.Model):
class Group(models.Model):
group_id = models.AutoField(primary_key=True,)
id = models.IntegerField('Group',)
id = models.IntegerField()
name = models.CharField(max_length=200,)
x1 = models.IntegerField()
y1 = models.IntegerField('Group',)
x2 = models.IntegerField('Group',)
y1 = models.IntegerField()
x2 = models.IntegerField()
y2 = models.IntegerField()
topology = models.ForeignKey('Topology',)
@@ -95,3 +95,29 @@ class GroupDevice(models.Model):
group_device_id = models.AutoField(primary_key=True,)
group = models.ForeignKey('Group',)
device = models.ForeignKey('Device',)
class DataBinding(models.Model):
data_binding_id = models.AutoField(primary_key=True,)
column = models.IntegerField()
row = models.IntegerField()
table = models.CharField(max_length=200,)
primary_key_id = models.IntegerField()
field = models.CharField(max_length=200,)
data_type = models.ForeignKey('DataType',)
sheet = models.ForeignKey('DataSheet',)
class DataType(models.Model):
data_type_id = models.AutoField(primary_key=True,)
type_name = models.CharField(max_length=200,)
class DataSheet(models.Model):
data_sheet_id = models.AutoField(primary_key=True,)
name = models.CharField(max_length=200,)
topology = models.ForeignKey('Topology',)
client = models.ForeignKey('Client',)