models.py
83 lines
| 2.4 KiB
| text/x-python
|
PythonLexer
|
r0 | from django.db import models | |
|
r2 | STATES = ( | |
(0, 'Inactive'), | |||
(1, 'Active'), | |||
) | |||
|
r0 | # Create your models here. | |
|
r2 | ||
class DeviceType(models.Model): | |||
name = models.CharField(max_length=40) | |||
alias = models.CharField(max_length=40) | |||
info = models.TextField(blank=True, null=True) | |||
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='') | |||
ip_address = models.GenericIPAddressField(protocol='IPv4', default='0.0.0.0') | |||
status = models.PositiveSmallIntegerField(default=1, choices=STATES) | |||
class Meta: | |||
db_table = 'devices' | |||
def __unicode__(self): | |||
return u'%s-%s' % (self.device_type, self.ip_address) | |||
class Experiment(models.Model): | |||
name = models.CharField(max_length=40) | |||
alias = models.CharField(max_length=40) | |||
start_date = models.DateTimeField() | |||
end_date = models.DateTimeField() | |||
status = models.PositiveSmallIntegerField(default=1, choices=STATES) | |||
class Meta: | |||
db_table = 'experiments' | |||
def __unicode__(self): | |||
return u'%s: %s-%s' % (self.name, self.start_date, self.end_date) | |||
class Configuration(models.Model): | |||
device = models.ForeignKey(Device) | |||
parameters = models.TextField() | |||
status = models.PositiveSmallIntegerField(default=1, choices=STATES) | |||
def __unicode__(self): | |||
return u'%s Conf' % self.device | |||
class Meta: | |||
db_table = 'configurations' | |||
class ExperimentDetail(models.Model): | |||
experiment = models.ForeignKey(Experiment) | |||
configurations = models.ManyToManyField(Configuration) | |||
status = models.PositiveSmallIntegerField(default=1, choices=STATES) | |||
class Meta: | |||
db_table = 'experiments_detail' | |||
def __unicode__(self): | |||
return u'%s Configuration' % self.experiment.name | |||
class ExperimentTemplate(models.Model): | |||
experiment_detail = models.ForeignKey(ExperimentDetail) | |||
status = models.PositiveSmallIntegerField(default=1, choices=STATES) | |||
class Meta: | |||
db_table = 'templates' | |||
def __unicode__(self): | |||
return u'%s Template' % (self.experiment_detail.experiment.name) | |||