##// END OF EJS Templates
Task #99: Modulo web del JARS...
Fiorella Quino -
r123:4649456d84d9
parent child
Show More
@@ -1,5 +1,5
1 from django import forms
1 from django import forms
2 from apps.main.models import Device
2 from apps.main.models import Device, Experiment
3 from .models import JARSConfiguration
3 from .models import JARSConfiguration
4
4
5 class JARSConfigurationForm(forms.ModelForm):
5 class JARSConfigurationForm(forms.ModelForm):
@@ -9,20 +9,79 class JARSConfigurationForm(forms.ModelForm):
9
9
10 if instance and instance.pk:
10 if instance and instance.pk:
11 devices = Device.objects.filter(device_type__name='jars')
11 devices = Device.objects.filter(device_type__name='jars')
12
13 if instance.experiment:
14 experiments = Experiment.objects.filter(pk=instance.experiment.id)
15 self.fields['experiment'].widget.choices = [(experiment.id, experiment) for experiment in experiments]
16
17 self.fields['device'].widget.choices = [(device.id, device) for device in devices]
12
18
19 #-------------JARS Configuration needs an Experiment-----------------
20 def clean(self):
21 cleaned_data = super(JARSConfigurationForm, self).clean()
22 experiment = cleaned_data.get('experiment')
23 if experiment == None:
24 msg = "Error: Jars Configuration needs an Experiment"
25 self.add_error('experiment', msg)
26
27 class Meta:
28 model = JARSConfiguration
29 exclude = ('type', 'parameters', 'status', 'rc', 'cards_number',
30 'channels_number', 'channels', 'rd_directory', 'raw_data_blocks',
31 'data_type', 'acq_profiles', 'profiles_block', 'filter',
32 'create_directory', 'include_expname', 'acq_link',
33 'view_raw_data')
34
35
36 class JARSConfigurationForm_Raw(forms.ModelForm):
37 def __init__(self, *args, **kwargs):
38 super(JARSConfigurationForm, self).__init__(*args, **kwargs)
39 instance = getattr(self, 'instance', None)
40
41 if instance and instance.pk:
42 devices = Device.objects.filter(device_type__name='jars')
43
13 if instance.experiment:
44 if instance.experiment:
14 self.fields['experiment'].widget.attrs['disabled'] = 'disabled'
45 experiments = Experiment.objects.filter(pk=instance.experiment.id)
46 self.fields['experiment'].widget.choices = [(experiment.id, experiment) for experiment in experiments]
47
48 self.fields['device'].widget.choices = [(device.id, device) for device in devices]
15
49
50 #-------------JARS Configuration needs an Experiment-----------------
51 def clean(self):
52 cleaned_data = super(JARSConfigurationForm, self).clean()
53 experiment = cleaned_data.get('experiment')
54 if experiment == None:
55 msg = "Error: Jars Configuration needs an Experiment"
56 self.add_error('experiment', msg)
57
58 class Meta:
59 model = JARSConfiguration
60 exclude = ('type', 'parameters', 'status')
61
62
63 class JARSConfigurationForm_Pro(forms.ModelForm):
64 def __init__(self, *args, **kwargs):
65 super(JARSConfigurationForm, self).__init__(*args, **kwargs)
66 instance = getattr(self, 'instance', None)
67
68 if instance and instance.pk:
69 devices = Device.objects.filter(device_type__name='jars')
70
71 if instance.experiment:
72 experiments = Experiment.objects.filter(pk=instance.experiment.id)
73 self.fields['experiment'].widget.choices = [(experiment.id, experiment) for experiment in experiments]
74
16 self.fields['device'].widget.choices = [(device.id, device) for device in devices]
75 self.fields['device'].widget.choices = [(device.id, device) for device in devices]
17
76
18 #-------------JARS Configuration needs an Experiment-----------------
77 #-------------JARS Configuration needs an Experiment-----------------
19 def clean(self):
78 def clean(self):
20 cleaned_data = super(JARSConfigurationForm, self).clean()
79 cleaned_data = super(JARSConfigurationForm, self).clean()
21 experiment = cleaned_data.get("experiment")
80 experiment = cleaned_data.get('experiment')
22 if experiment == None:
81 if experiment == None:
23 msg = "Jars Configuration needs an Experiment."
82 msg = "Error: Jars Configuration needs an Experiment"
24 self.add_error('experiment', msg)
83 self.add_error('experiment', msg)
25
84
26 class Meta:
85 class Meta:
27 model = JARSConfiguration
86 model = JARSConfiguration
28 exclude = ('type', 'parameters', 'status')
87 exclude = ('type', 'parameters', 'status')
@@ -1,27 +1,90
1 from django.db import models
1 from django.db import models
2 from apps.main.models import Configuration
2 from apps.main.models import Configuration
3 from django.core.validators import MinValueValidator, MaxValueValidator
3 from django.core.validators import MinValueValidator, MaxValueValidator
4
5 from apps.rc.models import RCConfiguration
4 # Create your models here.
6 # Create your models here.
5
7
6 ANSWER = (
8 EXPERIMENT_TYPE = (
7 (False, 'NO'),
9 (0, 'RAW_DATA'),
8 (True, 'YES'),
10 (1, 'PDATA'),
9 )
11 )
12
13 DATA_TYPE = (
14 (0, 'SHORT'),
15 (1, 'FLOAT'),
16 )
17
18 class JARSfilter(models.Model):
19
20 name = models.CharField(max_length=60, unique=True, default='')
21 filter_fir = models.PositiveIntegerField(verbose_name='FIR Filter',validators=[MinValueValidator(1), MaxValueValidator(20)], default = 1)
22 filter_2 = models.PositiveIntegerField(verbose_name='Filter 2',validators=[MinValueValidator(1), MaxValueValidator(20)], default = 1)
23 filter_5 = models.PositiveIntegerField(verbose_name='Filter 5',validators=[MinValueValidator(1), MaxValueValidator(20)], default = 1)
24
25 class Meta:
26 db_table = 'jars_filters'
27 #ordering = ['channel']
28
10
29
11 class JARSConfiguration(Configuration):
30 class JARSConfiguration(Configuration):
12
31
13 ADC_RESOLUTION = 8
32 ADC_RESOLUTION = 8
14 PCI_DIO_BUSWIDTH = 32
33 PCI_DIO_BUSWIDTH = 32
34 HEADER_VERSION = 1103
35 BEGIN_ON_START = True
36 REFRESH_RATE = 1
15
37
16 cards_number = models.PositiveIntegerField(verbose_name='Number of Cards',validators=[MaxValueValidator(4)], default = 1)
38 rc = models.ForeignKey(RCConfiguration, on_delete=models.CASCADE, null=True)
17 channels_number = models.PositiveIntegerField(verbose_name='Number of Channels',validators=[MinValueValidator(1), MaxValueValidator(8)], default = 1)
39 exp_type = models.PositiveIntegerField(verbose_name='Experiment Type', choices=EXPERIMENT_TYPE, default=0)
40 cards_number = models.PositiveIntegerField(verbose_name='Number of Cards',validators=[MinValueValidator(1), MaxValueValidator(4)], default = 1)
41 channels_number = models.PositiveIntegerField(verbose_name='Number of Channels',validators=[MinValueValidator(1), MaxValueValidator(8)], default = 5)
42 channels = models.CharField(verbose_name='Channels', max_length=15, default = '1,2,3,4,5')
18 rd_directory = models.CharField(verbose_name='Raw Data Directory', max_length=40, default='', blank=True, null=True)
43 rd_directory = models.CharField(verbose_name='Raw Data Directory', max_length=40, default='', blank=True, null=True)
19 raw_data_blocks = models.PositiveIntegerField(verbose_name='Raw Data Blocks',validators=[MaxValueValidator(5000)], default=120)
44 raw_data_blocks = models.PositiveIntegerField(verbose_name='Raw Data Blocks',validators=[MaxValueValidator(5000)], default=120)
45 data_type = models.PositiveIntegerField(verbose_name='Data Type', choices=DATA_TYPE, default=0)
20 acq_profiles = models.PositiveIntegerField(verbose_name='Acquired Profiles',validators=[MaxValueValidator(5000)], default=400)
46 acq_profiles = models.PositiveIntegerField(verbose_name='Acquired Profiles',validators=[MaxValueValidator(5000)], default=400)
21 profiles_block = models.PositiveIntegerField(verbose_name='Profiles Per Block',validators=[MaxValueValidator(5000)], default=400)
47 profiles_block = models.PositiveIntegerField(verbose_name='Profiles Per Block',validators=[MaxValueValidator(5000)], default=400)
48 filter = models.ForeignKey(JARSfilter, on_delete=models.CASCADE, null=True, blank=True)
22 create_directory = models.BooleanField(verbose_name='Create Directory Per Day', default=True)
49 create_directory = models.BooleanField(verbose_name='Create Directory Per Day', default=True)
23 include_expname = models.BooleanField(verbose_name='Include Experiment Name in Directory', default=True)
50 include_expname = models.BooleanField(verbose_name='Experiment Name in Directory', default=True)
51 acq_link = models.BooleanField(verbose_name='Acquisition Link', default=True)
52 view_raw_data = models.BooleanField(verbose_name='View Raw Data', default=True)
24
53
25 class Meta:
54 class Meta:
26 db_table = 'jars_configurations'
55 db_table = 'jars_configurations'
27 No newline at end of file
56
57 def parms_to_dict(self):
58
59 parameters = {}
60
61 parameters['name'] = self.name
62 parameters['rc'] = self.rc.name
63 parameters['exp_type'] = self.exp_type
64 parameters['cards_number'] = self.cards_number
65 parameters['channels_number'] = self.channels_number
66 parameters['channels'] = self.channels
67 parameters['rd_directory'] = self.rd_directory
68 parameters['raw_data_blocks'] = self.raw_data_blocks
69 parameters['data_type'] = self.data_type
70 parameters['acq_profiles'] = self.acq_profiles
71 parameters['profiles_block'] = self.profiles_block
72 parameters['filter'] = self.filter.name
73 parameters['create_directory'] = bool(self.create_directory)
74 parameters['include_expname'] = bool(self.include_expname)
75 parameters['acq_link'] = bool(self.acq_link)
76 parameters['view_raw_data'] = bool(self.view_raw_data)
77
78 return parameters
79
80 def dict_to_parms(self, parameters):
81 return
82
83 def status_device(self):
84 return
85
86 def read_device(self):
87 return
88
89 def write_device(self):
90 return No newline at end of file
@@ -4,5 +4,44
4 {% load main_tags %}
4 {% load main_tags %}
5
5
6 {% block extra-js%}
6 {% block extra-js%}
7 <script type="text/javascript">
8 $("#id_exp_type").on('change', function() {
9 });
7
10
11 $("#id_channels_number").on('change', function() {
12 updateChannelsNumber();
13 });
14
15 function updateChannelsNumber() {
16
17 var channels_number = $("#id_channels_number").val();
18 channels = $("#id_channels")
19
20 if (channels_number == 1) {
21 $(channels).val('1')
22 }
23 else if (channels_number == 2){
24 $(channels).val('1,2')
25 }
26 else if (channels_number == 3){
27 $(channels).val('1,2,3')
28 }
29 else if (channels_number == 4){
30 $(channels).val('1,2,3,4')
31 }
32 else if (channels_number == 5){
33 $(channels).val('1,2,3,4,5')
34 }
35 else if (channels_number == 6){
36 $(channels).val('1,2,3,4,5,6')
37 }
38 else if (channels_number == 7){
39 $(channels).val('1,2,3,5,6,7')
40 }
41 else {
42 $(channels).val('1,2,3,4,5,6,7,8')
43 }
44
45 }
46 </script>
8 {% endblock %} No newline at end of file
47 {% endblock %}
@@ -52,7 +52,7 def jars_conf_edit(request, id_conf):
52
52
53 if form.is_valid():
53 if form.is_valid():
54 conf = form.save(commit=False)
54 conf = form.save(commit=False)
55
55 conf.save()
56 return redirect('url_jars_conf', id_conf=conf.id)
56 return redirect('url_jars_conf', id_conf=conf.id)
57
57
58 ##ERRORS
58 ##ERRORS
General Comments 0
You need to be logged in to leave comments. Login now