##// END OF EJS Templates
template attribute added to RadarSys Models...
Miguel Urco -
r47:f6d4e6a94b9f
parent child
Show More
@@ -31,7 +31,7 class CampaignForm(forms.ModelForm):
31
31
32 class Meta:
32 class Meta:
33 model = Campaign
33 model = Campaign
34 fields = ['name', 'start_date', 'end_date', 'tags', 'description', 'template']
34 exclude = ['']
35
35
36 class ExperimentForm(forms.ModelForm):
36 class ExperimentForm(forms.ModelForm):
37 def __init__(self, *args, **kwargs):
37 def __init__(self, *args, **kwargs):
@@ -43,7 +43,7 class ExperimentForm(forms.ModelForm):
43
43
44 class Meta:
44 class Meta:
45 model = Experiment
45 model = Experiment
46 fields = ['campaign', 'name', 'start_time', 'end_time']
46 exclude = ['']
47
47
48 class LocationForm(forms.ModelForm):
48 class LocationForm(forms.ModelForm):
49 class Meta:
49 class Meta:
@@ -58,7 +58,7 class DeviceForm(forms.ModelForm):
58 class ConfigurationForm(forms.ModelForm):
58 class ConfigurationForm(forms.ModelForm):
59 class Meta:
59 class Meta:
60 model = Configuration
60 model = Configuration
61 fields = ['experiment', 'device']
61 exclude = ['type', 'created_date', 'programmed_date', 'parameters']
62
62
63 class DeviceTypeForm(forms.Form):
63 class DeviceTypeForm(forms.Form):
64 device_type = forms.ChoiceField(choices=add_empty_choice(DeviceType.objects.all().order_by('name').values_list('id', 'name')))
64 device_type = forms.ChoiceField(choices=add_empty_choice(DeviceType.objects.all().order_by('name').values_list('id', 'name')))
@@ -4,32 +4,41 from polymorphic import PolymorphicModel
4 from django.core.urlresolvers import reverse
4 from django.core.urlresolvers import reverse
5
5
6 CONF_STATES = (
6 CONF_STATES = (
7 (0, 'Disconnected'),
7 (0, 'Disconnected'),
8 (1, 'Connected'),
8 (1, 'Connected'),
9 (1, 'Running'),
9 (1, 'Running'),
10 )
10 )
11
11
12 CONF_TYPES = (
12 CONF_TYPES = (
13 (0, 'Active'),
13 (0, 'Active'),
14 (1, 'Historical'),
14 (1, 'Historical'),
15 )
15 )
16
16
17 DEV_STATES = (
17 DEV_STATES = (
18 (0, 'No connected'),
18 (0, 'No connected'),
19 (1, 'Connected'),
19 (1, 'Connected'),
20 (2, 'Configured'),
20 (2, 'Configured'),
21 (3, 'Running'),
21 (3, 'Running'),
22 )
22 )
23
23
24 DEV_TYPES = (
24 DEV_TYPES = (
25 ('', 'Select a device type'),
25 ('', 'Select a device type'),
26 ('rc', 'Radar Controller'),
26 ('rc', 'Radar Controller'),
27 ('dds', 'Direct Digital Synthesizer'),
27 ('dds', 'Direct Digital Synthesizer'),
28 ('jars', 'Jicamarca Radar Acquisition System'),
28 ('jars', 'Jicamarca Radar Acquisition System'),
29 ('usrp', 'Universal Software Radio Peripheral'),
29 ('usrp', 'Universal Software Radio Peripheral'),
30 ('cgs', 'Clock Generator System'),
30 ('cgs', 'Clock Generator System'),
31 ('abs', 'Automatic Beam Switching'),
31 ('abs', 'Automatic Beam Switching'),
32 )
32 )
33
34 DEV_PORTS = {
35 'rc' : 2000,
36 'dds' : 2000,
37 'jars' : 2000,
38 'usrp' : 2000,
39 'cgs' : 8080,
40 'abs' : 8080
41 }
33
42
34 # Create your models here.
43 # Create your models here.
35
44
@@ -71,15 +80,21 class Device(models.Model):
71
80
72 def __unicode__(self):
81 def __unicode__(self):
73 return u'%s | %s' % (self.name, self.ip_address)
82 return u'%s | %s' % (self.name, self.ip_address)
83
84 def get_status(self):
85
86 return self.status
87
74
88
75 class Campaign(models.Model):
89 class Campaign(models.Model):
76
90
91 template = models.BooleanField(default=False)
92
77 name = models.CharField(max_length=40, unique=True)
93 name = models.CharField(max_length=40, unique=True)
78 start_date = models.DateTimeField(blank=True, null=True)
94 start_date = models.DateTimeField(blank=True, null=True)
79 end_date = models.DateTimeField(blank=True, null=True)
95 end_date = models.DateTimeField(blank=True, null=True)
80 tags = models.CharField(max_length=40)
96 tags = models.CharField(max_length=40)
81 description = models.TextField(blank=True, null=True)
97 description = models.TextField(blank=True, null=True)
82 template = models.BooleanField(default=False)
83
98
84 class Meta:
99 class Meta:
85 db_table = 'db_campaigns'
100 db_table = 'db_campaigns'
@@ -89,6 +104,8 class Campaign(models.Model):
89
104
90 class Experiment(models.Model):
105 class Experiment(models.Model):
91
106
107 template = models.BooleanField(default=False)
108
92 campaign = models.ForeignKey(Campaign)
109 campaign = models.ForeignKey(Campaign)
93 name = models.CharField(max_length=40, default='')
110 name = models.CharField(max_length=40, default='')
94 start_time = models.TimeField(default='00:00:00')
111 start_time = models.TimeField(default='00:00:00')
@@ -102,14 +119,15 class Experiment(models.Model):
102
119
103 class Configuration(PolymorphicModel):
120 class Configuration(PolymorphicModel):
104
121
122 template = models.BooleanField(default=False)
123
124 name = models.CharField(verbose_name="Configuration Name", max_length=40, default='')
125
105 experiment = models.ForeignKey(Experiment)
126 experiment = models.ForeignKey(Experiment)
106 device = models.ForeignKey(Device)
127 device = models.ForeignKey(Device)
107
128
108 status = models.PositiveSmallIntegerField(default=0, choices=CONF_STATES)
109 type = models.PositiveSmallIntegerField(default=0, choices=CONF_TYPES)
129 type = models.PositiveSmallIntegerField(default=0, choices=CONF_TYPES)
110
130
111 name = models.CharField(max_length=40, default='')
112
113 created_date = models.DateTimeField(auto_now_add=True)
131 created_date = models.DateTimeField(auto_now_add=True)
114 programmed_date = models.DateTimeField(auto_now=True)
132 programmed_date = models.DateTimeField(auto_now=True)
115
133
@@ -120,10 +138,10 class Configuration(PolymorphicModel):
120
138
121 def __unicode__(self):
139 def __unicode__(self):
122 return u'[%s - %s]: %s' % (self.experiment.campaign.name,
140 return u'[%s - %s]: %s' % (self.experiment.campaign.name,
123 self.experiment.name,
141 self.experiment.name,
124 self.device.name)
142 self.device.name)
125 def get_absolute_url(self):
126
143
144 def get_absolute_url(self):
127 return reverse('url_%s_conf' % self.device.device_type.name, args=[str(self.id)])
145 return reverse('url_%s_conf' % self.device.device_type.name, args=[str(self.id)])
128
146
129 def get_absolute_url_edit(self):
147 def get_absolute_url_edit(self):
@@ -22,7 +22,6 def value(instance, key):
22
22
23 item = instance
23 item = instance
24 for my_key in key.split("__"):
24 for my_key in key.split("__"):
25 print "TP Value", item, my_key
26 item = attr(item, my_key)
25 item = attr(item, my_key)
27
26
28 print item
27 print item
@@ -448,7 +448,7 def dev_conf(request, id_conf):
448
448
449 kwargs = {}
449 kwargs = {}
450 kwargs['dev_conf'] = dev_conf
450 kwargs['dev_conf'] = dev_conf
451 kwargs['dev_conf_keys'] = ['experiment', 'device']
451 kwargs['dev_conf_keys'] = ['name', 'experiment', 'device']
452
452
453 kwargs['title'] = 'Configuration'
453 kwargs['title'] = 'Configuration'
454 kwargs['suptitle'] = 'Details'
454 kwargs['suptitle'] = 'Details'
@@ -466,22 +466,17 def dev_conf_new(request, id_exp=0):
466 form = ConfigurationForm(initial={'experiment':id_exp})
466 form = ConfigurationForm(initial={'experiment':id_exp})
467
467
468 if request.method == 'POST':
468 if request.method == 'POST':
469 form = ConfigurationForm(request.POST)
469 experiment = Experiment.objects.get(pk=request.POST['experiment'])
470 device = Device.objects.get(pk=request.POST['device'])
471
472 DevConfForm = CONF_FORMS[device.device_type.name]
473
474 form = DevConfForm(request.POST, initial={'experiment':experiment.id})
470
475
471 if form.is_valid():
476 if form.is_valid():
472 experiment = Experiment.objects.get(pk=request.POST['experiment'])
477 dev_conf = form.save()
473 device = Device.objects.get(pk=request.POST['device'])
478
474
479 return redirect('url_experiment', id_exp=experiment.id)
475 exp_devices = Device.objects.filter(configuration__experiment=experiment,
476 configuration__type=0)
477
478 if device.id not in exp_devices.values('id',):
479
480 DevConfModel = CONF_MODELS[device.device_type.name]
481 conf = DevConfModel(experiment=experiment, device=device)
482 conf.save()
483
484 return redirect('url_experiment', id_exp=experiment.id)
485
480
486 kwargs = {}
481 kwargs = {}
487 kwargs['form'] = form
482 kwargs['form'] = form
General Comments 0
You need to be logged in to leave comments. Login now