##// END OF EJS Templates
README fix
README fix

File last commit:

r360:46316742ce9f
r362:1578c7297ecf
Show More
models.py
756 lines | 23.9 KiB | text/x-python | PythonLexer
Juan C. Espinoza
Update RC model, RC api for testing...
r185
Fiorella Quino
Main files have been updated...
r266 import os
import json
Juan C. Espinoza
Update RC control methods, add change_ip for RC, fix win_reference for sub-baudio...
r236 import requests
Fiorella Quino
Main files have been updated...
r266 import time
Juan C. Espinoza
Update several views and models in main app...
r85 from datetime import datetime
Juan C. Espinoza
Update RC model, RC api for testing...
r185 try:
from polymorphic.models import PolymorphicModel
except:
from polymorphic import PolymorphicModel
Juan C. Espinoza
Proyecto base en Django (refs #259) ...
r0
Fiorella Quino
Main files have been updated...
r266 from django.template.base import kwarg_re
Juan C. Espinoza
Update RC model, RC api for testing...
r185 from django.db import models
Nueva plantilla, prueba comunicacion y nuevos campos ddsrest
r335 from django.urls import reverse
Fiorella Quino
Main files have been updated...
r266 from django.core.validators import MinValueValidator, MaxValueValidator
Juan C. Espinoza
Update RC model, RC api for testing...
r185 from django.shortcuts import get_object_or_404
Juan C. Espinoza
Update Views y several improvements
r316 from django.contrib.auth.models import User
Juan C. Espinoza
Add profile model to user
r319 from django.db.models.signals import post_save
from django.dispatch import receiver
Fiorella Quino
Import Experiment Function...
r108
Fiorella Quino
Main files have been updated...
r266 from apps.main.utils import Params
Fiorella Quino
Main Models...
r72
Fiorella Quino
Main files have been updated...
r266 DEV_PORTS = {
Generator parameter type fixed, devices status & warning messages
r350 'pedestal' : 80,
'pedestal_dev' : 80,
'generator' : 80,
'usrp_rx' : 2000,
'usrp_tx' : 2000,
Fiorella Quino
Main files have been updated...
r266 }
RADAR_STATES = (
(0, 'No connected'),
(1, 'Connected'),
(2, 'Configured'),
(3, 'Running'),
(4, 'Scheduled'),
Miguel Urco
template attribute added to RadarSys Models...
r47 )
Miguel Urco
Location model added to RadarSys...
r41
Fiorella Quino
Main files have been updated...
r266 EXPERIMENT_TYPE = (
(0, 'RAW_DATA'),
(1, 'PDATA'),
)
DECODE_TYPE = (
(0, 'None'),
(1, 'TimeDomain'),
(2, 'FreqDomain'),
(3, 'InvFreqDomain'),
Miguel Urco
template attribute added to RadarSys Models...
r47 )
Miguel Urco
status field added to Device and DevConfiguration model...
r16
Fiorella Quino
start() and stop() experiment functions have been modificated...
r226 DEV_STATES = (
Generator parameter type fixed, devices status & warning messages
r350 (0, 'Unknown'),
Miguel Urco
template attribute added to RadarSys Models...
r47 (1, 'Connected'),
(2, 'Configured'),
(3, 'Running'),
Generator parameter type fixed, devices status & warning messages
r350 (4, 'Offline'),
Miguel Urco
template attribute added to RadarSys Models...
r47 )
Juan C. Espinoza
Actualizacion de templates y modelos base #263...
r2
Miguel Urco
Campaign has been added to RadarSys Model...
r13 DEV_TYPES = (
Primer commit radarsys_met
r345 ('', 'Select a device type'),
('pedestal', 'Pedestal Controller'),
Generator parameter type fixed, devices status & warning messages
r350 ('pedestal_dev', 'Pedestal Controller Dev Mode'),
Primer commit radarsys_met
r345 ('generator', 'Pulse Generator'),
('usrp_rx', 'Universal Software Radio Peripheral Rx'),
('usrp_tx', 'Universal Software Radio Peripheral Tx'),
Miguel Urco
template attribute added to RadarSys Models...
r47 )
Fiorella Quino
Main files have been updated...
r266 EXP_STATES = (
(0,'Error'), #RED
Juan C. Espinoza
Check for active configuration for status update
r329 (1,'Cancelled'), #YELLOW
Fiorella Quino
Main files have been updated...
r266 (2,'Running'), #GREEN
Juan C. Espinoza
Check for active configuration for status update
r329 (3,'Scheduled'), #BLUE
(4,'Unknown'), #WHITE
Fiorella Quino
Se agrego tabla "Radar" y Estados del Radar...
r49 )
Juan C. Espinoza
Use of cards instead of tables in operation & experiment views...
r216
Fiorella Quino
Main files have been updated...
r266 CONF_TYPES = (
(0, 'Active'),
(1, 'Historical'),
)
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Add profile model to user
r319 class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
Juan C. Espinoza
Add support to read abs module status
r326 theme = models.CharField(max_length=30, default='spacelab')
Juan C. Espinoza
Add profile model to user
r319
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()
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):
Generator parameter type fixed, devices status & warning messages
r350 name = models.CharField(max_length = 15, choices = DEV_TYPES, default = 'pedestal')
Nueva plantilla, prueba comunicacion y nuevos campos ddsrest
r335 sequence = models.PositiveSmallIntegerField(default=55)
Miguel Urco
Campaign has been added to RadarSys Model...
r13 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):
Clean code and docker files
r349 return u'%s' % self.name.title()
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Actualizacion de templates y modelos base #263...
r2 class Device(models.Model):
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 device_type = models.ForeignKey('DeviceType', on_delete=models.CASCADE)
location = models.ForeignKey('Location', on_delete=models.CASCADE)
Limpieza de código y funcionalidades usrp
r346 ip_address = models.GenericIPAddressField(verbose_name = 'IP address', protocol='IPv4', default='0.0.0.0')
Miguel Urco
Campaign has been added to RadarSys Model...
r13 port_address = models.PositiveSmallIntegerField(default=2000)
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 description = models.TextField(blank=True, null=True)
status = models.PositiveSmallIntegerField(default=4, choices=DEV_STATES)
conf_active = models.PositiveIntegerField(default=0, verbose_name='Current configuration')
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):
Clean code and docker files
r349 ret = self.device_type
Limpieza de código y funcionalidades usrp
r346 #ret = u'{} [{}]'.format(self.device_type.name.upper(), self.location.name)
Clean code and docker files
r349 return str(ret)
Juan C. Espinoza
Update Views y several improvements
r316
@property
def name(self):
return str(self)
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:
New experiment views
r360 color = "primary"
Juan C. Espinoza
Add device status in experiment view...
r120 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
start() and stop() experiment functions have been modificated...
r226
Juan C. Espinoza
Update RC model, RC api for testing...
r185 def url(self, path=None):
Fiorella Quino
start() and stop() experiment functions have been modificated...
r226
Juan C. Espinoza
Update RC model, RC api for testing...
r185 if path:
return 'http://{}:{}/{}/'.format(self.ip_address, self.port_address, path)
else:
return 'http://{}:{}/'.format(self.ip_address, self.port_address)
Fiorella Quino
start() and stop() experiment functions have been modificated...
r226
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
Juan C. Espinoza
Update Views y several improvements
r316 def get_absolute_url_edit(self):
return reverse('url_edit_device', args=[str(self.id)])
def get_absolute_url_delete(self):
return reverse('url_delete_device', args=[str(self.id)])
Fiorella Quino
Main files have been updated...
r266 def change_ip(self, ip_address, mask, gateway, dns, **kwargs):
Fiorella Quino
start() and stop() experiment functions have been modificated...
r226
Limpieza de código y funcionalidades usrp
r346 if self.device_type.name=='pedestal':
Fiorella Quino
Main files have been updated...
r266 headers = {'content-type': "application/json",
'cache-control': "no-cache"}
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 ip = [int(x) for x in ip_address.split('.')]
dns = [int(x) for x in dns.split('.')]
Fiorella Quino
Main files have been updated...
r266 gateway = [int(x) for x in gateway.split('.')]
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 subnet = [int(x) for x in mask.split('.')]
Fiorella Quino
Main files have been updated...
r266
payload = {
"ip": ip,
"dns": dns,
"gateway": gateway,
"subnet": subnet
}
req = requests.post(self.url('changeip'), data=json.dumps(payload), headers=headers)
Juan C. Espinoza
Update RC control methods, add change_ip for RC, fix win_reference for sub-baudio...
r236 try:
answer = req.json()
Fiorella Quino
import/export functions have been updated...
r243 if answer['changeip']=='ok':
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 self.message = '25|IP succesfully changed'
Juan C. Espinoza
Update RC control methods, add change_ip for RC, fix win_reference for sub-baudio...
r236 self.ip_address = ip_address
self.save()
else:
self.message = '30|An error ocuur when changing IP'
except Exception as e:
self.message = '40|{}'.format(str(e))
Juan C. Espinoza
Add Change IP function for DDS Device...
r219 else:
self.message = 'Not implemented'
return False
Fiorella Quino
start() and stop() experiment functions have been modificated...
r226
Juan C. Espinoza
Add Change IP function for DDS Device...
r219 return True
Miguel Urco
Campaign has been added to RadarSys Model...
r13
class Campaign(models.Model):
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 template = models.BooleanField(default=False)
name = models.CharField(max_length=60, unique=True)
start_date = models.DateTimeField(blank=True, null=True)
end_date = models.DateTimeField(blank=True, null=True)
tags = models.CharField(max_length=40, blank=True, null=True)
Miguel Urco
Campaign has been added to RadarSys Model...
r13 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)
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 author = models.ForeignKey(User, null=True, blank=True,on_delete=models.CASCADE)
Nueva plantilla, prueba comunicacion y nuevos campos ddsrest
r335
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
Main files have been updated...
r266 def jsonify(self):
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 data = {}
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 ignored = ('template')
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 for field in self._meta.fields:
if field.name in ignored:
continue
data[field.name] = field.value_from_object(self)
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 data['start_date'] = data['start_date'].strftime('%Y-%m-%d')
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 data['end_date'] = data['end_date'].strftime('%Y-%m-%d')
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 return data
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 def parms_to_dict(self):
Fiorella Quino
main updated...
r162
Fix mix experiment and scheduler
r311 params = Params({})
Fiorella Quino
Main files have been updated...
r266 params.add(self.jsonify(), 'campaigns')
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 for exp in Experiment.objects.filter(campaign = self):
params.add(exp.jsonify(), 'experiments')
configurations = Configuration.objects.filter(experiment=exp, type=0)
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 for conf in configurations:
params.add(conf.jsonify(), 'configurations')
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 return params.data
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)
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
Main files have been updated...
r266 for id_exp in parms['experiments']['allIds']:
exp_parms = parms['experiments']['byId'][id_exp]
dum = (datetime.now() - datetime(1970, 1, 1)).total_seconds()
exp = Experiment(name='{}'.format(dum))
exp.save()
exp.dict_to_parms(parms, CONF_MODELS, id_exp=id_exp)
self.experiments.add(exp)
camp_parms = parms['campaigns']['byId'][parms['campaigns']['allIds'][0]]
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 self.name = '{}-{}'.format(camp_parms['name'], datetime.now().strftime('%y%m%d'))
Fiorella Quino
Main files have been updated...
r266 self.start_date = camp_parms['start_date']
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 self.end_date = camp_parms['end_date']
self.tags = camp_parms['tags']
Fiorella Quino
Main files have been updated...
r266 self.save()
Fiorella Quino
main updated...
r162
return self
Fiorella Quino
Main files have been fixed...
r267 def get_experiments_by_radar(self, radar=None):
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172
ret = []
Juan C. Espinoza
Add scheduler for campaigns/experiments using celery #718, fix views and models bugs...
r196 if radar:
locations = Location.objects.filter(pk=radar)
else:
locations = set([e.location for e in self.experiments.all()])
Fiorella Quino
start() and stop() experiment functions have been modificated...
r226
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 for loc in locations:
dum = {}
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 dum['name'] = loc.name
dum['id'] = loc.pk
Juan C. Espinoza
Update code for django 1.10, python 3 and latest third party packages, review operation view ...
r172 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
Juan C. Espinoza
Update Views y several improvements
r316 def get_absolute_url_delete(self):
return reverse('url_delete_campaign', args=[str(self.id)])
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):
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 radar = models.OneToOneField('Location', on_delete=models.CASCADE)
Fiorella Quino
Task # 487: Operation View: radar_play...
r92 running_experiment = models.ManyToManyField('Experiment', blank = True)
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 status = models.PositiveSmallIntegerField(default=0, choices=RADAR_STATES)
Fiorella Quino
main updated...
r162
New experiment views
r360 class Experiment(PolymorphicModel):
experiment menu edition
r358
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 template = models.BooleanField(default=False)
name = models.CharField(max_length=40, default='', unique=True)
experiment menu edition
r358 location = models.ForeignKey('Location', null=False, blank=False, on_delete=models.CASCADE, default=None)
Limpieza de código y funcionalidades usrp
r346 #freq = models.FloatField(verbose_name='Operating Freq. (MHz)', validators=[MinValueValidator(1), MaxValueValidator(10000)], default=49.9200)
experiment menu edition
r358 #start_time = models.TimeField(default='00:00:00')
#end_time = models.TimeField(default='23:59:59')
New experiment views
r360 pedestal = models.ForeignKey('pedestal.PedestalConfiguration', null=False, blank=False, on_delete=models.PROTECT, default=None, related_name = "pedestal_conf")
generator = models.ForeignKey('Device', null=False, blank=False, on_delete=models.PROTECT, default=None, limit_choices_to={'device_type__name': 'generator'}, related_name = "generator_conf")
reception_rx = models.ForeignKey('usrp_rx.USRPRXConfiguration', null=False, blank=False, on_delete=models.PROTECT, default=None, related_name = "usrp_rx_CONF")
transmission_tx = models.ForeignKey('usrp_tx.USRPTXConfiguration', null=False, blank=False, on_delete=models.PROTECT, default=None, related_name = "usrp_tx")
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 task = models.CharField(max_length=36, default='', blank=True, null=True)
status = models.PositiveSmallIntegerField(default=4, choices=EXP_STATES)
New experiment views
r360 author = models.ForeignKey(User, null=True, blank=True, on_delete=models.CASCADE)
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 hash = models.CharField(default='', max_length=64, null=True, blank=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_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:
Juan C. Espinoza
Add profile model to user
r319 return u'%s (template)' % (self.name)
Juan C. Espinoza
Update new and edit "views"...
r91 else:
Juan C. Espinoza
Add profile model to user
r319 return u'%s' % (self.name)
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 def jsonify(self):
data = {}
ignored = ('template')
for field in self._meta.fields:
if field.name in ignored:
continue
data[field.name] = field.value_from_object(self)
experiment menu edition
r358
Fiorella Quino
Main files have been updated...
r266 data['start_time'] = data['start_time'].strftime('%H:%M:%S')
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 data['end_time'] = data['end_time'].strftime('%H:%M:%S')
data['location'] = self.location.name
Fiorella Quino
Main files have been updated...
r266 data['configurations'] = ['{}'.format(conf.pk) for
Juan C. Espinoza
Improve operation & search views
r306 conf in Configuration.objects.filter(experiment=self, type=0)]
Fiorella Quino
Main files have been updated...
r266
return data
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
Juan C. Espinoza
Update Views y several improvements
r316 self.name = '{}_{:%y%m%d}'.format(self.name, datetime.now())
Juan C. Espinoza
Update several views and models in main app...
r85 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
Juan C. Espinoza
Add scheduler for campaigns/experiments using celery #718, fix views and models bugs...
r196 def start(self):
'''
Fiorella Quino
start() and stop() experiment functions have been modificated...
r226 Configure and start experiments's devices
Juan C. Espinoza
Add scheduler for campaigns/experiments using celery #718, fix views and models bugs...
r196 '''
New experiment views
r360 #confs = []
#allconfs = Configuration.objects.filter(experiment=self, type = 0).order_by('-device__device_type__sequence')
#confs = allconfs
experiment = get_object_or_404(Experiment, pk=self.id)
id_p = experiment.pedestal_id
id_rx = experiment.reception_rx_id
id_tx = experiment.transmission_tx_id
generator_periode = 1 /experiment.transmission_tx.frequency
generator_delay = experiment.transmission_tx.delay_1
generator_width = int((experiment.transmission_tx.ipp * 2 / 300000) * 1000000) * experiment.transmission_tx.pulse_1 / 100
print(generator_width)
generator_selector = 1
Nueva plantilla, prueba comunicacion y nuevos campos ddsrest
r335
Juan C. Espinoza
Check for active configuration for status update
r329 try:
New experiment views
r360 print("Hola")
#Configuration.objects.get(id = id_rx).start_device()
#Configuration.objects.get(id = id_p).start_device()
#Configuration.objects.get(id = id_tx).start_device()
# for conf in confs:
# conf.stop_device()
# print("OK")
# #conf.write_device()
# conf.device.conf_active = conf.pk
# conf.device.save()
# conf.start_device()
# print("OK")
# time.sleep(1)
Juan C. Espinoza
Check for active configuration for status update
r329 except:
return 0
return 2
Fiorella Quino
start() and stop() experiment functions have been modificated...
r226
Fiorella Quino
start and stop experiment functions have been updated ...
r250
Fiorella Quino
start() and stop() experiment functions have been modificated...
r226 def stop(self):
Juan C. Espinoza
Add scheduler for campaigns/experiments using celery #718, fix views and models bugs...
r196 '''
Fiorella Quino
start() and stop() experiment functions have been modificated...
r226 Stop experiments's devices
Limpieza de código y funcionalidades usrp
r346 PEDESTAL, PULSE GENERATOR & USRP's
Juan C. Espinoza
Add scheduler for campaigns/experiments using celery #718, fix views and models bugs...
r196 '''
Fiorella Quino
start() and stop() experiment functions have been modificated...
r226
New experiment views
r360 #confs = Configuration.objects.filter(experiment=self, type = 0).order_by('device__device_type__sequence')
experiment = get_object_or_404(Experiment, pk=self.id)
id_p = experiment.pedestal_id
id_rx = experiment.reception_rx_id
id_tx = experiment.transmission_tx_id
Juan C. Espinoza
Check for active configuration for status update
r329 try:
New experiment views
r360 Configuration.objects.get(id = id_rx).stop_device()
Configuration.objects.get(id = id_p).stop_device()
Configuration.objects.get(id = id_tx).stop_device()
# for conf in confs:
# conf.stop_device()
Juan C. Espinoza
Check for active configuration for status update
r329 except:
return 0
return 1
Fiorella Quino
start and stop experiment functions have been updated ...
r250
Juan C. Espinoza
Add scheduler for campaigns/experiments using celery #718, fix views and models bugs...
r196 def get_status(self):
Fiorella Quino
start() and stop() experiment functions have been modificated...
r226
Juan C. Espinoza
Improve operation & search views
r306 if self.status == 3:
return
confs = Configuration.objects.filter(experiment=self, type=0)
Fiorella Quino
import/export functions have been updated...
r243
Juan C. Espinoza
Add start, stop methods to experiment, fix RC dat export file...
r240 for conf in confs:
conf.status_device()
Fiorella Quino
import/export functions have been updated...
r243
Juan C. Espinoza
Use of cards instead of tables in operation & experiment views...
r216 total = confs.aggregate(models.Sum('device__status'))['device__status__sum']
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Add scheduler for campaigns/experiments using celery #718, fix views and models bugs...
r196 if total==2*confs.count():
status = 1
elif total == 3*confs.count():
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 status = 2
else:
Juan C. Espinoza
Add scheduler for campaigns/experiments using celery #718, fix views and models bugs...
r196 status = 0
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Improve operation & search views
r306 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:
Juan C. Espinoza
Check for active configuration for status update
r329 color = "warning"
Fiorella Quino
Task #487: Operation. Views: radar_play y radar_stop. Models: RunningExperiment. Attributes: status. Methods: get_status(), status_color()...
r84 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:
Juan C. Espinoza
Check for active configuration for status update
r329 color = "info"
Fiorella Quino
main updated...
r162
Fiorella Quino
start() and stop() experiment functions have been modificated...
r226 return color
Fiorella Quino
main updated...
r162
Fiorella Quino
Export Campaign ...
r100 def parms_to_dict(self):
Fiorella Quino
main updated...
r162
Fix mix experiment and scheduler
r311 params = Params({})
Fiorella Quino
Main files have been updated...
r266 params.add(self.jsonify(), 'experiments')
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 configurations = Configuration.objects.filter(experiment=self, type=0)
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 for conf in configurations:
params.add(conf.jsonify(), 'configurations')
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 return params.data
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 def dict_to_parms(self, parms, CONF_MODELS, id_exp=None):
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Experiment Function...
r108 configurations = Configuration.objects.filter(experiment=self)
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 if id_exp is not None:
exp_parms = parms['experiments']['byId'][id_exp]
else:
exp_parms = parms['experiments']['byId'][parms['experiments']['allIds'][0]]
Fiorella Quino
Import Experiment Function...
r108 if configurations:
Fiorella Quino
import/export functions have been updated...
r243 for configuration in configurations:
configuration.delete()
Fiorella Quino
Main files have been updated...
r266
for id_conf in exp_parms['configurations']:
conf_parms = parms['configurations']['byId'][id_conf]
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 device = Device.objects.filter(device_type__name=conf_parms['device_type'])[0]
model = CONF_MODELS[conf_parms['device_type']]
Fiorella Quino
Main files have been updated...
r266 conf = model(
experiment = self,
device = device,
)
conf.dict_to_parms(parms, id=id_conf)
experiment menu edition
r358
Fiorella Quino
Main files have been updated...
r266 location, created = Location.objects.get_or_create(name=exp_parms['location'])
self.name = '{}-{}'.format(exp_parms['name'], datetime.now().strftime('%y%m%d'))
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 self.location = location
Fiorella Quino
Main files have been updated...
r266 self.start_time = exp_parms['start_time']
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 self.end_time = exp_parms['end_time']
Fiorella Quino
Import Campaign...
r110 self.save()
Fiorella Quino
main updated...
r162
Fiorella Quino
Import Campaign...
r110 return self
Fiorella Quino
start() and stop() experiment functions have been modificated...
r226
Juan C. Espinoza
Add scheduler for campaigns/experiments using celery #718, fix views and models bugs...
r196 def get_absolute_url(self):
return reverse('url_experiment', 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_experiment', args=[str(self.id)])
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update Views y several improvements
r316 def get_absolute_url_delete(self):
return reverse('url_delete_experiment', args=[str(self.id)])
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
Add start, stop methods to experiment, fix RC dat export file...
r240 def get_absolute_url_start(self):
return reverse('url_start_experiment', args=[str(self.id)])
def get_absolute_url_stop(self):
return reverse('url_stop_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
Clean code and docker files
r349 id = models.AutoField(primary_key=True)
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 template = models.BooleanField(default=False)
# name = models.CharField(verbose_name="Configuration Name", max_length=40, default='')
device = models.ForeignKey('Device', verbose_name='Device', null=True, on_delete=models.CASCADE)
Pedestal comma bug fixed, help text added and more
r352 label = models.CharField(verbose_name="Label", max_length=40, default='', blank=False, null=False)
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 type = models.PositiveSmallIntegerField(default=0, choices=CONF_TYPES)
created_date = models.DateTimeField(auto_now_add=True)
Miguel Urco
models are passed as instances to templates (dictionaries are not used anymore)...
r22 programmed_date = models.DateTimeField(auto_now=True)
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 parameters = models.TextField(default='{}')
author = models.ForeignKey(User, null=True, blank=True,on_delete=models.CASCADE)
hash = models.CharField(default='', max_length=64, null=True, blank=True)
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'
Juan C. Espinoza
Update Views y several improvements
r316 ordering = ('device__device_type__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):
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Update Views y several improvements
r316 ret = u'{} '.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:
Juan C. Espinoza
Update Views y several improvements
r316 ret = '{} MIX '.format(self.device.device_type.name.upper())
Nueva plantilla, prueba comunicacion y nuevos campos ddsrest
r335
Juan C. Espinoza
Update Views y several improvements
r316 if 'label' in [f.name for f in self._meta.get_fields()]:
Juan C. Espinoza
Add profile model to user
r319 ret += '{}'.format(self.label)
Fiorella Quino
main updated...
r162
Juan C. Espinoza
Improve Search view (filters and paginator added), add base_list template, delete unused templates...
r138 if self.template:
Juan C. Espinoza
Update Views y several improvements
r316 ret += ' (template)'
Nueva plantilla, prueba comunicacion y nuevos campos ddsrest
r335
Juan C. Espinoza
Update Views y several improvements
r316 return ret
@property
def name(self):
return str(self)
Juan C. Espinoza
- Update rc app...
r79
Fiorella Quino
Main files have been updated...
r266 def jsonify(self):
data = {}
ignored = ('type', 'polymorphic_ctype', 'configuration_ptr',
'created_date', 'programmed_date', 'template', 'device',
New experiment views
r360 'experiment', 'author')
Fiorella Quino
Main files have been updated...
r266
for field in self._meta.fields:
if field.name in ignored:
continue
data[field.name] = field.value_from_object(self)
data['device_type'] = self.device.device_type.name
return data
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
Fix mix experiment and scheduler
r311 params = Params({})
Fiorella Quino
Main files have been updated...
r266 params.add(self.jsonify(), 'configurations')
return params.data
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
Fiorella Quino
Main files have been updated...
r266 def dict_to_parms(self, parameters, id=None):
params = Params(parameters)
if id:
data = params.get_conf(id_conf=id)
else:
data = params.get_conf(dtype=self.device.device_type.name)
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 for key, value in data.items():
if key not in ('id', 'device_type'):
setattr(self, key, value)
Limpieza de código y funcionalidades usrp
r346
Fiorella Quino
Main files have been updated...
r266 self.save()
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been fixed...
r267
def export_to_file(self, format="json"):
Fiorella Quino
main updated...
r162
Miguel Urco
DDS commands working...
r57 content_type = ''
Fiorella Quino
main updated...
r162
Fiorella Quino
Task #1068: Export racp and jars files function has been implemented...
r276 if format == 'racp':
content_type = 'text/plain'
filename = '%s_%s.%s' %(self.device.device_type.name, self.name, 'racp')
content = self.parms_to_text(file_format = 'racp')
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'
Fiorella Quino
Main files have been updated...
r266 filename = '%s_%s.bin' %(self.device.device_type.name, self.name)
Miguel Urco
DDS commands working...
r57 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)
New experiment views
r360 print(content)
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
Fiorella Quino
Main files have been fixed...
r267 def import_from_file(self, fp):
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
New experiment views
r360 self.message = 'Function not supported'
Juan C. Espinoza
Update RC model, RC api for testing...
r185 return False
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 def stop_device(self):
Fiorella Quino
main updated...
r162
New experiment views
r360 self.message = 'Function not supported'
Juan C. Espinoza
Update RC model, RC api for testing...
r185 return False
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 def start_device(self):
New experiment views
r360
self.message = 'Function not supported'
Juan C. Espinoza
Update RC model, RC api for testing...
r185 return False
Fiorella Quino
main updated...
r162
Limpieza de código y funcionalidades usrp
r346 def write_device(self):
Fiorella Quino
main updated...
r162
New experiment views
r360 self.message = 'Function not supported'
Juan C. Espinoza
Update RC model, RC api for testing...
r185 return False
Fiorella Quino
main updated...
r162
Miguel Urco
Models changed:...
r53 def read_device(self):
Fiorella Quino
main updated...
r162
New experiment views
r360 self.message = 'Function not supported'
Juan C. Espinoza
Update RC model, RC api for testing...
r185 return False
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
Juan C. Espinoza
Update Views y several improvements
r316 def get_absolute_url_delete(self):
return reverse('url_delete_dev_conf', args=[str(self.id)])
Nueva plantilla, prueba comunicacion y nuevos campos ddsrest
r335
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)])