##// END OF EJS Templates
Task #714: Modulo Web ABS...
Task #714: Modulo Web ABS git-svn-id: http://jro-dev.igp.gob.pe/svn/jro_hard/radarsys/trunk/webapp@205 aa17d016-51d5-4e8b-934c-7b2bbb1bbe71

File last commit:

r175:a7fbf14a85a6
r182:7e17a44bea6b
Show More
models.py
621 lines | 20.0 KiB | text/x-python | PythonLexer
Fiorella Quino
Export Campaign ...
r100 from django.shortcuts import render, redirect, get_object_or_404, HttpResponse
Juan C. Espinoza
Update several views and models in main app...
r85 from datetime import datetime
Juan C. Espinoza
Proyecto base en Django (refs #259) ...
r0 from django.db import models
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 from polymorphic.models import PolymorphicModel
Juan C. Espinoza
Proyecto base en Django (refs #259) ...
r0
Miguel Urco
DDS app updated...
r32 from django.core.urlresolvers import reverse
Fiorella Quino
Import Experiment Function...
r108
Miguel Urco
Location model added to RadarSys...
r41 CONF_STATES = (
Miguel Urco
template attribute added to RadarSys Models...
r47 (0, 'Disconnected'),
(1, 'Connected'),
Fiorella Quino
Main Models...
r72 (2, 'Running'),
)
EXP_STATES = (
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 (0,'Error'), #RED
Juan C. Espinoza
Add device status in experiment view...
r120 (1,'Configured'), #BLUE
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 (2,'Running'), #GREEN
(3,'Waiting'), #YELLOW
(4,'Not Configured'), #WHITE
Miguel Urco
template attribute added to RadarSys Models...
r47 )
Miguel Urco
Location model added to RadarSys...
r41
Miguel Urco
Configuration model changed: status and date fields were replaced by type and created fields....
r21 CONF_TYPES = (
Miguel Urco
template attribute added to RadarSys Models...
r47 (0, 'Active'),
(1, 'Historical'),
)
Miguel Urco
status field added to Device and DevConfiguration model...
r16
DEV_STATES = (
Miguel Urco
template attribute added to RadarSys Models...
r47 (0, 'No connected'),
(1, 'Connected'),
(2, 'Configured'),
(3, 'Running'),
)
Juan C. Espinoza
Actualizacion de templates y modelos base #263...
r2
Miguel Urco
Campaign has been added to RadarSys Model...
r13 DEV_TYPES = (
Miguel Urco
template attribute added to RadarSys Models...
r47 ('', 'Select a device type'),
('rc', 'Radar Controller'),
Juan C. Espinoza
Update main app (view to mix RC configurations)...
r106 ('rc_mix', 'Radar Controller (Mix)'),
Miguel Urco
template attribute added to RadarSys Models...
r47 ('dds', 'Direct Digital Synthesizer'),
('jars', 'Jicamarca Radar Acquisition System'),
('usrp', 'Universal Software Radio Peripheral'),
('cgs', 'Clock Generator System'),
('abs', 'Automatic Beam Switching'),
)
DEV_PORTS = {
'rc' : 2000,
Juan C. Espinoza
Update main app (view to mix RC configurations)...
r106 'rc_mix': 2000,
Miguel Urco
template attribute added to RadarSys Models...
r47 'dds' : 2000,
'jars' : 2000,
'usrp' : 2000,
'cgs' : 8080,
'abs' : 8080
}
Juan C. Espinoza
Actualizacion de templates y modelos base #263...
r2
Fiorella Quino
Se agrego tabla "Radar" y Estados del Radar...
r49 RADAR_STATES = (
(0, 'No connected'),
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 (1, 'Connected'),
Fiorella Quino
Se agrego tabla "Radar" y Estados del Radar...
r49 (2, 'Configured'),
(3, 'Running'),
(4, 'Scheduled'),
)
Miguel Urco
Campaign has been added to RadarSys Model...
r13 # Create your models here.
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 class Location(models.Model):
name = models.CharField(max_length = 30)
description = models.TextField(blank=True, null=True)
class Meta:
db_table = 'db_location'
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 def __str__(self):
Miguel Urco
Models changed:...
r53 return u'%s' % self.name
Juan C. Espinoza
Update views and templates of main app...
r89 def get_absolute_url(self):
Juan C. Espinoza
Improve Search view (filters and paginator added), add base_list template, delete unused templates...
r138 return reverse('url_location', args=[str(self.id)])
Juan C. Espinoza
Update views and templates of main app...
r89
Juan C. Espinoza
Actualizacion de templates y modelos base #263...
r2 class DeviceType(models.Model):
Miguel Urco
Campaign has been added to RadarSys Model...
r13 name = models.CharField(max_length = 10, choices = DEV_TYPES, default = 'rc')
description = models.TextField(blank=True, null=True)
Juan C. Espinoza
Actualizacion de templates y modelos base #263...
r2
class Meta:
Miguel Urco
Campaign has been added to RadarSys Model...
r13 db_table = 'db_device_types'
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 def __str__(self):
Miguel Urco
models are passed as instances to templates (dictionaries are not used anymore)...
r22 return u'%s' % self.get_name_display()
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Actualizacion de templates y modelos base #263...
r2 class Device(models.Model):
Miguel Urco
Models changed:...
r53 device_type = models.ForeignKey(DeviceType, on_delete=models.CASCADE)
location = models.ForeignKey(Location, on_delete=models.CASCADE)
Fiorella Quino
main updated...
r162
Miguel Urco
Device model changed: ...
r9 name = models.CharField(max_length=40, default='')
Juan C. Espinoza
Updating base models and views ...
r6 ip_address = models.GenericIPAddressField(protocol='IPv4', default='0.0.0.0')
Miguel Urco
Campaign has been added to RadarSys Model...
r13 port_address = models.PositiveSmallIntegerField(default=2000)
Miguel Urco
Device model changed: ...
r9 description = models.TextField(blank=True, null=True)
Miguel Urco
status field added to Device and DevConfiguration model...
r16 status = models.PositiveSmallIntegerField(default=0, choices=DEV_STATES)
Juan C. Espinoza
Actualizacion de templates y modelos base #263...
r2
class Meta:
Miguel Urco
Campaign has been added to RadarSys Model...
r13 db_table = 'db_devices'
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 def __str__(self):
Fiorella Quino
main updated...
r162 return u'[{}]: {}'.format(self.device_type.name.upper(),
Juan C. Espinoza
- Improve display name for Devices & Configurations...
r121 self.name)
Fiorella Quino
main updated...
r162
def get_status(self):
Miguel Urco
template attribute added to RadarSys Models...
r47 return self.status
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Add device status in experiment view...
r120 @property
def status_color(self):
color = 'muted'
if self.status == 0:
color = "danger"
elif self.status == 1:
color = "warning"
elif self.status == 2:
color = "info"
elif self.status == 3:
color = "success"
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Add device status in experiment view...
r120 return color
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Improve RC pulses plot and Operation view...
r175 @property
def url(self):
return 'http://{}:{}/'.format(self.ip_address, self.port_address)
Juan C. Espinoza
Update views and templates of main app...
r89 def get_absolute_url(self):
return reverse('url_device', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Miguel Urco
Campaign has been added to RadarSys Model...
r13
class Campaign(models.Model):
Fiorella Quino
main updated...
r162 template = models.BooleanField(default=False)
Juan C. Espinoza
Update several views and models in main app...
r85 name = models.CharField(max_length=60, unique=True)
Miguel Urco
Campaign has been added to RadarSys Model...
r13 start_date = models.DateTimeField(blank=True, null=True)
end_date = models.DateTimeField(blank=True, null=True)
tags = models.CharField(max_length=40)
description = models.TextField(blank=True, null=True)
Juan C. Espinoza
Update several views and models in main app...
r85 experiments = models.ManyToManyField('Experiment', blank=True)
Miguel Urco
Campaign has been added to RadarSys Model...
r13
class Meta:
db_table = 'db_campaigns'
Juan C. Espinoza
Update several views and models in main app...
r85 ordering = ('name',)
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 def __str__(self):
Juan C. Espinoza
Improve Search view (filters and paginator added), add base_list template, delete unused templates...
r138 if self.template:
return u'{} (template)'.format(self.name)
else:
return u'{}'.format(self.name)
Fiorella Quino
Main Models...
r72
Fiorella Quino
Export Campaign ...
r100 def parms_to_dict(self):
Fiorella Quino
main updated...
r162
Fiorella Quino
Export Campaign ...
r100 import json
Fiorella Quino
main updated...
r162
Fiorella Quino
Export Campaign ...
r100 parameters = {}
Fiorella Quino
Export Campaign. parms_to_dict() (mmain.models)...
r102 exp_parameters = {}
experiments = Experiment.objects.filter(campaign = self)
Fiorella Quino
main updated...
r162
Fiorella Quino
Export Campaign. parms_to_dict() (mmain.models)...
r102 i=1
for experiment in experiments:
exp_parameters['experiment-'+str(i)] = json.loads(experiment.parms_to_dict())
i += 1
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 parameters['experiments'] = exp_parameters
parameters['end_date'] = self.end_date.strftime("%Y-%m-%d")
parameters['start_date'] = self.start_date.strftime("%Y-%m-%d")
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 parameters['campaign'] = self.__str__()
Fiorella Quino
Import Experiment Function...
r108 parameters['tags'] =self.tags
Fiorella Quino
main updated...
r162
Fiorella Quino
Export Campaign. parms_to_dict() (mmain.models)...
r103 parameters = json.dumps(parameters, indent=2, sort_keys=False)
Fiorella Quino
main updated...
r162
Fiorella Quino
Export Campaign ...
r100 return parameters
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 def import_from_file(self, fp):
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 import os, json
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 parms = {}
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 path, ext = os.path.splitext(fp.name)
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 if ext == '.json':
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 parms = json.loads(fp.read())
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 return parms
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Campaign: dict_to_parms(self, parms, CONF_MODELS)(models.py), campaign_import (views.py)...
r109 def dict_to_parms(self, parms, CONF_MODELS):
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Campaign: dict_to_parms(self, parms, CONF_MODELS)(models.py), campaign_import (views.py)...
r109 experiments = Experiment.objects.filter(campaign = self)
configurations = Configuration.objects.filter(experiment = experiments)
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Campaign: dict_to_parms(self, parms, CONF_MODELS)(models.py), campaign_import (views.py)...
r109 if configurations:
for configuration in configurations:
configuration.delete()
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Campaign: dict_to_parms(self, parms, CONF_MODELS)(models.py), campaign_import (views.py)...
r109 if experiments:
for experiment in experiments:
experiment.delete()
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Campaign: dict_to_parms(self, parms, CONF_MODELS)(models.py), campaign_import (views.py)...
r109 for parms_exp in parms['experiments']:
location = Location.objects.get(name = parms['experiments'][parms_exp]['radar'])
new_exp = Experiment(
name = parms['experiments'][parms_exp]['experiment'],
location = location,
start_time = parms['experiments'][parms_exp]['start_time'],
end_time = parms['experiments'][parms_exp]['end_time'],
)
new_exp.save()
new_exp.dict_to_parms(parms['experiments'][parms_exp],CONF_MODELS)
new_exp.save()
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Campaign...
r110 self.name = parms['campaign']
self.start_date = parms['start_date']
self.end_date = parms['end_date']
self.tags = parms['tags']
Fiorella Quino
Import Campaign: dict_to_parms(self, parms, CONF_MODELS)(models.py), campaign_import (views.py)...
r109 self.experiments.add(new_exp)
Fiorella Quino
Import Campaign...
r110 self.save()
Fiorella Quino
main updated...
r162
return self
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 def get_experiments_by_location(self):
ret = []
locations = set([e.location for e in self.experiments.all()])
for loc in locations:
dum = {}
dum['name'] = loc.name
dum['id'] = loc.pk
dum['experiments'] = [e for e in self.experiments.all() if e.location==loc]
ret.append(dum)
return ret
Fiorella Quino
Import Experiment Function...
r108 def get_absolute_url(self):
return reverse('url_campaign', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 def get_absolute_url_edit(self):
return reverse('url_edit_campaign', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Fiorella Quino
Export Campaign ...
r100 def get_absolute_url_export(self):
return reverse('url_export_campaign', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 def get_absolute_url_import(self):
return reverse('url_import_campaign', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 class RunningExperiment(models.Model):
radar = models.OneToOneField('Location', on_delete=models.CASCADE)
Fiorella Quino
Task # 487: Operation View: radar_play...
r92 running_experiment = models.ManyToManyField('Experiment', blank = True)
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 status = models.PositiveSmallIntegerField(default=0, choices=RADAR_STATES)
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Actualizacion de templates y modelos base #263...
r2 class Experiment(models.Model):
Fiorella Quino
main updated...
r162 template = models.BooleanField(default=False)
Juan C. Espinoza
Update several views and models in main app...
r85 name = models.CharField(max_length=40, default='', unique=True)
Miguel Urco
Models changed:...
r53 location = models.ForeignKey('Location', null=True, blank=True, on_delete=models.CASCADE)
Miguel Urco
Campaign has been added to RadarSys Model...
r13 start_time = models.TimeField(default='00:00:00')
end_time = models.TimeField(default='23:59:59')
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 status = models.PositiveSmallIntegerField(default=0, choices=EXP_STATES)
Juan C. Espinoza
Actualizacion de templates y modelos base #263...
r2
class Meta:
Miguel Urco
Campaign has been added to RadarSys Model...
r13 db_table = 'db_experiments'
Juan C. Espinoza
Update new and edit "views"...
r91 ordering = ('template', 'name')
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 def __str__(self):
Juan C. Espinoza
Update new and edit "views"...
r91 if self.template:
return u'%s (template)' % (self.name)
else:
return u'%s' % (self.name)
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update views and templates of main app...
r89 @property
Juan C. Espinoza
Improve Search view (filters and paginator added), add base_list template, delete unused templates...
r138 def radar_system(self):
Juan C. Espinoza
Update views and templates of main app...
r89 return self.location
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update several views and models in main app...
r85 def clone(self, **kwargs):
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update several views and models in main app...
r85 confs = Configuration.objects.filter(experiment=self, type=0)
self.pk = None
self.name = '{} [{:%Y/%m/%d}]'.format(self.name, datetime.now())
for attr, value in kwargs.items():
setattr(self, attr, value)
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update several views and models in main app...
r85 self.save()
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update several views and models in main app...
r85 for conf in confs:
conf.clone(experiment=self, template=False)
Fiorella Quino
main updated...
r162
return self
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 def get_status(self):
configurations = Configuration.objects.filter(experiment=self)
exp_status=[]
for conf in configurations:
exp_status.append(conf.status_device())
Fiorella Quino
main updated...
r162
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 if not exp_status: #No Configuration
self.status = 4
self.save()
Fiorella Quino
main updated...
r162 return
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 total = 1
for e_s in exp_status:
total = total*e_s
Fiorella Quino
main updated...
r162
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 if total == 0: #Error
status = 0
elif total == (3**len(exp_status)): #Running
status = 2
else:
status = 1 #Configurated
Fiorella Quino
main updated...
r162
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 self.status = status
self.save()
Fiorella Quino
main updated...
r162
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 def status_color(self):
Juan C. Espinoza
- Improve display name for Devices & Configurations...
r121 color = 'muted'
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 if self.status == 0:
color = "danger"
elif self.status == 1:
color = "info"
elif self.status == 2:
Juan C. Espinoza
Update new and edit "views"...
r91 color = "success"
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 elif self.status == 3:
color = "warning"
Fiorella Quino
main updated...
r162
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 return color
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update views and templates of main app...
r89 def get_absolute_url(self):
return reverse('url_experiment', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Fiorella Quino
Export Campaign ...
r100 def parms_to_dict(self):
Fiorella Quino
main updated...
r162
Fiorella Quino
Export Campaign ...
r100 import json
Fiorella Quino
main updated...
r162
Fiorella Quino
Export Campaign ...
r100 configurations = Configuration.objects.filter(experiment=self)
conf_parameters = {}
parameters={}
Fiorella Quino
main updated...
r162
Fiorella Quino
Export Campaign ...
r100 for configuration in configurations:
if 'cgs' in configuration.device.device_type.name:
conf_parameters['cgs'] = configuration.parms_to_dict()
if 'dds' in configuration.device.device_type.name:
conf_parameters['dds'] = configuration.parms_to_dict()
if 'rc' in configuration.device.device_type.name:
conf_parameters['rc'] = configuration.parms_to_dict()
if 'jars' in configuration.device.device_type.name:
conf_parameters['jars'] = configuration.parms_to_dict()
if 'usrp' in configuration.device.device_type.name:
conf_parameters['usrp'] = configuration.parms_to_dict()
if 'abs' in configuration.device.device_type.name:
conf_parameters['abs'] = configuration.parms_to_dict()
Fiorella Quino
main updated...
r162
Fiorella Quino
Export Campaign ...
r100 parameters['configurations'] = conf_parameters
Fiorella Quino
Import Experiment Function...
r108 parameters['end_time'] = self.end_time.strftime("%H:%M:%S")
parameters['start_time'] = self.start_time.strftime("%H:%M:%S")
Fiorella Quino
Bug "experiment.radar.name -> experiment.radar_system.name"...
r146 parameters['radar'] = self.radar_system.name
Fiorella Quino
Import Experiment Function...
r108 parameters['experiment'] = self.name
Fiorella Quino
Export Campaign ...
r100 parameters = json.dumps(parameters, indent=2)
Fiorella Quino
main updated...
r162
Fiorella Quino
Export Campaign ...
r100 return parameters
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 def import_from_file(self, fp):
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 import os, json
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 parms = {}
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 path, ext = os.path.splitext(fp.name)
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 if ext == '.json':
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 parms = json.loads(fp.read().decode('utf-8'))
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 return parms
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 def dict_to_parms(self, parms, CONF_MODELS):
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 configurations = Configuration.objects.filter(experiment=self)
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 if configurations:
for configuration in configurations:
configuration.delete()
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 for conf_type in parms['configurations']:
#--For ABS Device:
#--For USRP Device:
#--For JARS Device:
Juan C. Espinoza
sync repo...
r157 if conf_type == 'jars':
device = get_object_or_404(Device, pk=parms['configurations']['jars']['device_id'])
DevConfModel = CONF_MODELS[conf_type]
confjars_form = DevConfModel(
experiment = self,
name = 'JARS',
device=device,
)
confjars_form.dict_to_parms(parms['configurations']['jars'])
confjars_form.save()
Fiorella Quino
Import Experiment Function...
r108 #--For RC Device:
if conf_type == 'rc':
device = get_object_or_404(Device, pk=parms['configurations']['rc']['device_id'])
DevConfModel = CONF_MODELS[conf_type]
confrc_form = DevConfModel(
experiment = self,
name = 'RC',
device=device,
)
confrc_form.dict_to_parms(parms['configurations']['rc'])
confrc_form.save()
#--For DDS Device:
if conf_type == 'dds':
device = get_object_or_404(Device, pk=parms['configurations']['dds']['device_id'])
DevConfModel = CONF_MODELS[conf_type]
confdds_form = DevConfModel(
experiment = self,
name = 'DDS',
device=device,
)
confdds_form.dict_to_parms(parms['configurations']['dds'])
confdds_form.save()
#--For CGS Device:
if conf_type == 'cgs':
device = get_object_or_404(Device, pk=parms['configurations']['cgs']['device_id'])
DevConfModel = CONF_MODELS[conf_type]
confcgs_form = DevConfModel(
experiment = self,
name = 'CGS',
device=device,
)
confcgs_form.dict_to_parms(parms['configurations']['cgs'])
confcgs_form.save()
Fiorella Quino
main updated...
r162
location = Location.objects.get(name = parms['radar'])
Fiorella Quino
Import Campaign...
r110 self.name = parms['experiment']
self.location = location
self.start_time = parms['start_time']
self.end_time = parms['end_time']
self.save()
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Campaign...
r110 return self
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 def get_absolute_url_edit(self):
return reverse('url_edit_experiment', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 def get_absolute_url_import(self):
return reverse('url_import_experiment', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Fiorella Quino
Export Campaign ...
r100 def get_absolute_url_export(self):
return reverse('url_export_experiment', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Updating base models and views ...
r6 class Configuration(PolymorphicModel):
Juan C. Espinoza
Actualizacion de templates y modelos base #263...
r2
Miguel Urco
template attribute added to RadarSys Models...
r47 template = models.BooleanField(default=False)
Fiorella Quino
main updated...
r162
Miguel Urco
template attribute added to RadarSys Models...
r47 name = models.CharField(verbose_name="Configuration Name", max_length=40, default='')
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Improve Search view (filters and paginator added), add base_list template, delete unused templates...
r138 experiment = models.ForeignKey('Experiment', verbose_name='Experiment', null=True, blank=True, on_delete=models.CASCADE)
device = models.ForeignKey('Device', verbose_name='Device', null=True, on_delete=models.CASCADE)
Fiorella Quino
main updated...
r162
Miguel Urco
Configuration model changed: status and date fields were replaced by type and created fields....
r21 type = models.PositiveSmallIntegerField(default=0, choices=CONF_TYPES)
Fiorella Quino
main updated...
r162
Miguel Urco
models are passed as instances to templates (dictionaries are not used anymore)...
r22 created_date = models.DateTimeField(auto_now_add=True)
programmed_date = models.DateTimeField(auto_now=True)
Fiorella Quino
main updated...
r162
Miguel Urco
models are passed as instances to templates (dictionaries are not used anymore)...
r22 parameters = models.TextField(default='{}')
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 message = ""
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Actualizacion de templates y modelos base #263...
r2 class Meta:
Miguel Urco
Campaign has been added to RadarSys Model...
r13 db_table = 'db_configurations'
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 def __str__(self):
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Improve Search view (filters and paginator added), add base_list template, delete unused templates...
r138 device = '{}:'.format(self.device.device_type.name.upper())
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 if 'mix' in [f.name for f in self._meta.get_fields()]:
Juan C. Espinoza
Improve Search view (filters and paginator added), add base_list template, delete unused templates...
r138 if self.mix:
Fiorella Quino
main updated...
r162 device = '{} MIXED:'.format(self.device.device_type.name.upper())
Juan C. Espinoza
Improve Search view (filters and paginator added), add base_list template, delete unused templates...
r138 if self.template:
return u'{} {} (template)'.format(device, self.name)
else:
return u'{} {}'.format(device, self.name)
Juan C. Espinoza
- Update rc app...
r79
Juan C. Espinoza
Update several views and models in main app...
r85 def clone(self, **kwargs):
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update several views and models in main app...
r85 self.pk = None
self.id = None
for attr, value in kwargs.items():
setattr(self, attr, value)
Fiorella Quino
main updated...
r162
self.save()
Juan C. Espinoza
Update several views and models in main app...
r85
return self
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 def parms_to_dict(self):
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 parameters = {}
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 for key in self.__dict__.keys():
parameters[key] = getattr(self, key)
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 return parameters
Fiorella Quino
main updated...
r162
Miguel Urco
DDS commands working...
r57 def parms_to_text(self):
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 raise NotImplementedError("This method should be implemented in %s Configuration model" %str(self.device.device_type.name).upper())
Fiorella Quino
main updated...
r162
Miguel Urco
DDS commands working...
r57 def parms_to_binary(self):
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 raise NotImplementedError("This method should be implemented in %s Configuration model" %str(self.device.device_type.name).upper())
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 def dict_to_parms(self, parameters):
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 if type(parameters) != type({}):
return
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 for key in parameters.keys():
setattr(self, key, parameters[key])
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 def export_to_file(self, format="json"):
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 import json
Fiorella Quino
main updated...
r162
Miguel Urco
DDS commands working...
r57 content_type = ''
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 if format == 'text':
content_type = 'text/plain'
Miguel Urco
DDS commands working...
r57 filename = '%s_%s.%s' %(self.device.device_type.name, self.name, self.device.device_type.name)
content = self.parms_to_text()
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 if format == 'binary':
content_type = 'application/octet-stream'
Miguel Urco
DDS commands working...
r57 filename = '%s_%s.bin' %(self.device.device_type.name, self.name)
content = self.parms_to_binary()
Fiorella Quino
main updated...
r162
Miguel Urco
DDS commands working...
r57 if not content_type:
content_type = 'application/json'
filename = '%s_%s.json' %(self.device.device_type.name, self.name)
Juan C. Espinoza
- Update rc app...
r79 content = json.dumps(self.parms_to_dict(), indent=2)
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 fields = {'content_type':content_type,
'filename':filename,
'content':content
}
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 return fields
Fiorella Quino
main updated...
r162
Miguel Urco
DDS commands working...
r57 def import_from_file(self, fp):
Fiorella Quino
main updated...
r162
Miguel Urco
DDS commands working...
r57 import os, json
Fiorella Quino
main updated...
r162
Miguel Urco
DDS commands working...
r57 parms = {}
Fiorella Quino
main updated...
r162
Miguel Urco
DDS commands working...
r57 path, ext = os.path.splitext(fp.name)
Fiorella Quino
main updated...
r162
Miguel Urco
DDS commands working...
r57 if ext == '.json':
parms = json.load(fp)
Fiorella Quino
main updated...
r162
Miguel Urco
DDS commands working...
r57 return parms
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 def status_device(self):
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 raise NotImplementedError("This method should be implemented in %s Configuration model" %str(self.device.device_type.name).upper())
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 def stop_device(self):
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 raise NotImplementedError("This method should be implemented in %s Configuration model" %str(self.device.device_type.name).upper())
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 def start_device(self):
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 raise NotImplementedError("This method should be implemented in %s Configuration model" %str(self.device.device_type.name).upper())
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 def write_device(self, parms):
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 raise NotImplementedError("This method should be implemented in %s Configuration model" %str(self.device.device_type.name).upper())
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 def read_device(self):
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 raise NotImplementedError("This method should be implemented in %s Configuration model" %str(self.device.device_type.name).upper())
Fiorella Quino
main updated...
r162
Miguel Urco
template attribute added to RadarSys Models...
r47 def get_absolute_url(self):
Juan C. Espinoza
Add rc config mods...
r23 return reverse('url_%s_conf' % self.device.device_type.name, args=[str(self.id)])
Fiorella Quino
main updated...
r162
Miguel Urco
Buttons "Import", "Export, "Read" and "Write" added to Configuration View...
r30 def get_absolute_url_edit(self):
return reverse('url_edit_%s_conf' % self.device.device_type.name, args=[str(self.id)])
Fiorella Quino
main updated...
r162
Miguel Urco
Buttons "Import", "Export, "Read" and "Write" added to Configuration View...
r30 def get_absolute_url_import(self):
Miguel Urco
Models changed:...
r53 return reverse('url_import_dev_conf', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Miguel Urco
Buttons "Import", "Export, "Read" and "Write" added to Configuration View...
r30 def get_absolute_url_export(self):
Miguel Urco
Models changed:...
r53 return reverse('url_export_dev_conf', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Miguel Urco
Buttons "Import", "Export, "Read" and "Write" added to Configuration View...
r30 def get_absolute_url_write(self):
Miguel Urco
Models changed:...
r53 return reverse('url_write_dev_conf', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Miguel Urco
Buttons "Import", "Export, "Read" and "Write" added to Configuration View...
r30 def get_absolute_url_read(self):
Miguel Urco
Models changed:...
r53 return reverse('url_read_dev_conf', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 def get_absolute_url_start(self):
return reverse('url_start_dev_conf', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 def get_absolute_url_stop(self):
return reverse('url_stop_dev_conf', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 def get_absolute_url_status(self):
Fiorella Quino
main updated...
r162 return reverse('url_status_dev_conf', args=[str(self.id)])