##// END OF EJS Templates
Fix saving data position
Fix saving data position

File last commit:

r391:453cf2094089
r392:16208270cf50
Show More
models.py
627 lines | 19.4 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
Experiment views update
r364 import base64
Juan C. Espinoza
Update several views and models in main app...
r85
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()
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)
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
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
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 name = models.CharField(max_length=40, default='', unique=True)
New experiment views
r360 pedestal = models.ForeignKey('pedestal.PedestalConfiguration', null=False, blank=False, on_delete=models.PROTECT, default=None, related_name = "pedestal_conf")
Update experiment start / stop
r386 generator = models.ForeignKey('generator.GeneratorConfiguration', null=False, blank=False, on_delete=models.PROTECT, default=None, related_name = "generator_conf")
New experiment views
r360 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)
Clean code and update Pedestal model
r368 latitude = models.FloatField(null=True, blank=True)
longitude = models.FloatField(null=True, blank=True)
heading = models.FloatField(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'
Clean code and update Pedestal model
r368 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):
Clean code and update Pedestal model
r368 return u'%s' % (self.name)
Fiorella Quino
main updated...
r162
Fiorella Quino
Main files have been updated...
r266 def jsonify(self):
data = {}
Clean code and update Pedestal model
r368 ignored = []
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)
experiment menu edition
r358
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 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:
Clean code and update Pedestal model
r368 conf.clone(experiment=self)
Fiorella Quino
main updated...
r162
return self
Experiment views update
r364
Update experiment start / stop
r386 def generator_start(self):
Experiment views update
r364 try:
Update experiment start / stop
r386 period = self.transmission_tx.ipp*2/0.3
if self.transmission_tx.enable_2:
payload = {"Delay": 0, "periode1": period, "width1": self.transmission_tx.pulse_1, "repeatability1": self.transmission_tx.repetitions_1, "periode2": period, "width2": self.transmission_tx.pulse_2, "repeatability2": self.transmission_tx.repetitions_2, "enable": 1}
else:
payload = {"Delay": 0, "periode1": period, "width1": self.transmission_tx.pulse_1, "repeatability1": 1, "periode2": self.transmission_tx.periode_1, "width2": self.transmission_tx.pulse_1, "repeatability2": 1, "enable": 1}
json_trmode = json.dumps(payload)
Experiment views update
r364 base64_trmode = base64.standard_b64encode(json_trmode.encode('ascii'))
Update experiment start / stop
r386
trmode_url = self.generator.device.url() + "trmode?params="
Experiment views update
r364 complete_url_trmode = trmode_url + base64_trmode.decode('ascii')
Update experiment start / stop
r386
Experiment views update
r364 r = requests.get(complete_url_trmode)
except:
return False
return True
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 '''
Update experiment start / stop
r386
data = {
'name': '%s_%d' % (self.name, int(time.time())),
'latitude': self.latitude,
'longitude': self.longitude,
'heading': self.heading
}
Nueva plantilla, prueba comunicacion y nuevos campos ddsrest
r335
Set data path for raw data in experiment
r391 self.reception_rx.datadir = os.path.join(os.environ['EXPOSE_NAS'], data['name'], 'rawdata')
self.reception_rx.save()
Juan C. Espinoza
Check for active configuration for status update
r329 try:
Update experiment start / stop
r386 proc_url = 'http://10.10.10.130:8086/start'
data['pedestal'] = self.pedestal.jsonify()
data['usrp_rx'] = self.reception_rx.jsonify()
data['usrp_tx'] = self.transmission_tx.jsonify()
payload = json.dumps(data)
ret = requests.post(proc_url, json=data)
self.reception_rx.start_device()
self.pedestal.start_device()
self.generator_start()
self.transmission_tx.start_device()
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
Experiment detail view update
r365 PEDESTAL, 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
Experiment views update
r364 generator_url = experiment.generator.url()
New experiment views
r360
Juan C. Espinoza
Check for active configuration for status update
r329 try:
Update experiment start / stop
r386 proc_url = 'http://10.10.10.130:8086/stop'
ret = requests.get(proc_url)
New experiment views
r360 Configuration.objects.get(id = id_p).stop_device()
Configuration.objects.get(id = id_tx).stop_device()
Experiment views update
r364 generator_stop = generator_url + "stop"
r = requests.get(generator_stop)
Configuration.objects.get(id = id_rx).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 self.name = '{}-{}'.format(exp_parms['name'], datetime.now().strftime('%y%m%d'))
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 device = models.ForeignKey('Device', verbose_name='Device', null=True, on_delete=models.CASCADE)
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
Update Views y several improvements
r316 return ret
@property
def name(self):
return str(self)
Juan C. Espinoza
- Update rc app...
r79
Clean code and update Pedestal model
r368 @property
def label(self):
return str(self)
Fiorella Quino
Main files have been updated...
r266 def jsonify(self):
data = {}
ignored = ('type', 'polymorphic_ctype', 'configuration_ptr',
Clean code and update Pedestal model
r368 'created_date', 'programmed_date', '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)
Clean code and update Pedestal model
r368
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)])