models.py
66 lines
| 2.0 KiB
| text/x-python
|
PythonLexer
|
r6 | from itertools import chain | |
|
r0 | from django.db import models | |
|
r6 | from polymorphic import PolymorphicModel | |
|
r0 | ||
|
r2 | STATES = ( | |
(0, 'Inactive'), | |||
(1, 'Active'), | |||
) | |||
|
r0 | # Create your models here. | |
|
r2 | ||
class DeviceType(models.Model): | |||
name = models.CharField(max_length=40) | |||
|
r6 | alias = models.CharField(max_length=40) | |
info = models.TextField(blank=True, null=True) | |||
|
r2 | status = models.PositiveSmallIntegerField(default=1, choices=STATES) | |
class Meta: | |||
db_table = 'device_types' | |||
def __unicode__(self): | |||
return u'%s' % self.alias | |||
class Device(models.Model): | |||
device_type = models.ForeignKey(DeviceType) | |||
model = models.CharField(max_length=40, default='') | |||
serial = models.CharField(max_length=40, default='') | |||
|
r6 | ip_address = models.GenericIPAddressField(protocol='IPv4', default='0.0.0.0') | |
mac_address = models.CharField(max_length = 20, null=True, blank=True) | |||
|
r2 | status = models.PositiveSmallIntegerField(default=1, choices=STATES) | |
class Meta: | |||
db_table = 'devices' | |||
def __unicode__(self): | |||
|
r6 | return u'%s - %s' % (self.device_type, self.ip_address) | |
|
r2 | ||
class Experiment(models.Model): | |||
name = models.CharField(max_length=40) | |||
alias = models.CharField(max_length=40) | |||
start_date = models.DateTimeField() | |||
|
r6 | end_date = models.DateTimeField() | |
template = models.BooleanField(default=False) | |||
|
r2 | status = models.PositiveSmallIntegerField(default=1, choices=STATES) | |
class Meta: | |||
db_table = 'experiments' | |||
def __unicode__(self): | |||
|
r6 | return u'%s: %s - %s' % (self.alias, self.start_date, self.end_date) | |
class Configuration(PolymorphicModel): | |||
|
r2 | ||
|
r6 | experiment = models.ForeignKey(Experiment) | |
|
r2 | device = models.ForeignKey(Device) | |
|
r6 | parameters = models.TextField(default='{}') | |
|
r2 | status = models.PositiveSmallIntegerField(default=1, choices=STATES) | |
class Meta: | |||
db_table = 'configurations' | |||
def __unicode__(self): | |||
|
r6 | return u'%s - %s' % (self.experiment.alias, self.device) | |
|
r2 |