Commit e2eb0a408d78308964163800f46e8a46727465db

Authored by haribo
2 parents 164eebbd 729f836f
Exists in master and in 1 other branch dev

Merge branch 'master' of https://gitlab.irap.omp.eu/epallier/pyros.git

install/REQUIREMENTS.txt
... ... @@ -3,7 +3,6 @@ amqplib==1.0.2
3 3 anyjson==0.3.3
4 4 billiard==3.3.0.23
5 5 celery==3.1.23
6   -Comet==2.1.0rc0
7 6 DateTime==4.1.1
8 7 Django==1.9.4
9 8 django-admin-tools==0.7.2
... ...
install/REQUIREMENTS_SQLITE.txt
... ... @@ -3,7 +3,6 @@ amqplib==1.0.2
3 3 anyjson==0.3.3
4 4 billiard==3.3.0.23
5 5 celery==3.1.23
6   -Comet==2.1.0rc0
7 6 DateTime==4.1.1
8 7 Django==1.9.4
9 8 django-admin-tools==0.7.2
... ...
src/common/RequestBuilder.py
... ... @@ -168,5 +168,5 @@ class RequestBuilder():
168 168 max_duration = duration if duration > max_duration else max_duration
169 169 sequence.duration = max_duration
170 170 sequence.save()
171   - scheduler.tasks.scheduling.delay(first_schedule=True, alert=self.request.is_alert) # TODO : changer le first_schedule ...
  171 + #scheduler.tasks.scheduling.delay(first_schedule=True, alert=self.request.is_alert) # TODO : changer le first_schedule ...
172 172 return self.request
... ...
src/pyrosapp/.gitignore
1   -/migrations/0*
  1 +migrations/0*
... ...
src/pyrosapp/migrations/0001_initial.py deleted
... ... @@ -1,547 +0,0 @@
1   -# -*- coding: utf-8 -*-
2   -# Generated by Django 1.9.4 on 2016-06-03 11:31
3   -from __future__ import unicode_literals
4   -
5   -from django.conf import settings
6   -from django.db import migrations, models
7   -import django.db.models.deletion
8   -
9   -
10   -class Migration(migrations.Migration):
11   -
12   - initial = True
13   -
14   - dependencies = [
15   - migrations.swappable_dependency(settings.AUTH_USER_MODEL),
16   - ]
17   -
18   - operations = [
19   - migrations.CreateModel(
20   - name='Album',
21   - fields=[
22   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
23   - ('name', models.CharField(blank=True, max_length=45, null=True)),
24   - ('desc', models.TextField(blank=True, null=True)),
25   - ('created', models.DateTimeField(auto_now_add=True, null=True)),
26   - ('updated', models.DateTimeField(auto_now=True, null=True)),
27   - ],
28   - options={
29   - 'db_table': 'album',
30   - 'managed': True,
31   - },
32   - ),
33   - migrations.CreateModel(
34   - name='Alert',
35   - fields=[
36   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
37   - ('voevent_xml', models.TextField(blank=True, null=True)),
38   - ('type', models.CharField(blank=True, max_length=45, null=True)),
39   - ('client', models.CharField(blank=True, max_length=45, null=True)),
40   - ('burst_jd', models.CharField(blank=True, max_length=45, null=True)),
41   - ('burst_ra', models.CharField(blank=True, max_length=45, null=True)),
42   - ('burst_dec', models.CharField(blank=True, max_length=45, null=True)),
43   - ('equinox', models.CharField(blank=True, max_length=45, null=True)),
44   - ('jd_pkt', models.IntegerField(blank=True, null=True)),
45   - ('jd_send', models.IntegerField(blank=True, null=True)),
46   - ('jd_received', models.IntegerField(blank=True, null=True)),
47   - ('trigger_instrum', models.CharField(blank=True, max_length=45, null=True)),
48   - ('trigger_num', models.CharField(blank=True, max_length=45, null=True)),
49   - ('grb_error', models.CharField(blank=True, max_length=45, null=True)),
50   - ('def_not_grb', models.BooleanField(default=False)),
51   - ('editor', models.CharField(blank=True, max_length=45, null=True)),
52   - ('flag', models.CharField(blank=True, max_length=45, null=True)),
53   - ('idgcn_notice', models.IntegerField(blank=True, null=True)),
54   - ],
55   - options={
56   - 'db_table': 'alert',
57   - 'managed': True,
58   - },
59   - ),
60   - migrations.CreateModel(
61   - name='Country',
62   - fields=[
63   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
64   - ('name', models.CharField(blank=True, max_length=45, null=True)),
65   - ('desc', models.TextField(blank=True, null=True)),
66   - ('quota', models.FloatField(blank=True, null=True)),
67   - ],
68   - options={
69   - 'db_table': 'country',
70   - 'verbose_name_plural': 'Countries',
71   - 'managed': True,
72   - },
73   - ),
74   - migrations.CreateModel(
75   - name='Detector',
76   - fields=[
77   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
78   - ('status', models.CharField(blank=True, max_length=7, null=True)),
79   - ('nb_photo_x', models.IntegerField(blank=True, null=True)),
80   - ('nb_photo_y', models.IntegerField(blank=True, null=True)),
81   - ('photo_size_x', models.IntegerField(blank=True, null=True)),
82   - ('photo_size_y', models.IntegerField(blank=True, null=True)),
83   - ('has_shutter', models.BooleanField(default=False)),
84   - ('equivalent_foc_len', models.CharField(blank=True, max_length=45, null=True)),
85   - ('acq_start', models.DateTimeField(blank=True, null=True)),
86   - ('acq_stop', models.DateTimeField(blank=True, null=True)),
87   - ('check_temp', models.FloatField(blank=True, null=True)),
88   - ('gain', models.FloatField(blank=True, null=True)),
89   - ('readout_noise', models.FloatField(blank=True, null=True)),
90   - ('readout_time', models.FloatField(blank=True, null=True)),
91   - ('idcam_readout_mode', models.IntegerField(blank=True, null=True)),
92   - ],
93   - options={
94   - 'db_table': 'detector',
95   - 'managed': True,
96   - },
97   - ),
98   - migrations.CreateModel(
99   - name='Device',
100   - fields=[
101   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
102   - ('name', models.CharField(blank=True, max_length=45, null=True)),
103   - ('desc', models.TextField(blank=True, null=True)),
104   - ('created', models.DateTimeField(auto_now_add=True, null=True)),
105   - ('updated', models.DateTimeField(auto_now=True, null=True)),
106   - ('is_online', models.BooleanField(default=False)),
107   - ('status', models.CharField(blank=True, max_length=11, null=True)),
108   - ('maintenance_date', models.DateTimeField(blank=True, null=True)),
109   - ],
110   - options={
111   - 'db_table': 'device',
112   - 'managed': True,
113   - },
114   - ),
115   - migrations.CreateModel(
116   - name='Filter',
117   - fields=[
118   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
119   - ('category', models.CharField(blank=True, max_length=1, null=True)),
120   - ('transmission_curve_doc', models.CharField(blank=True, max_length=45, null=True)),
121   - ('detector', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='filters', to='pyrosapp.Detector')),
122   - ('device', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='pyrosapp.Device')),
123   - ],
124   - options={
125   - 'db_table': 'filter',
126   - 'managed': True,
127   - },
128   - ),
129   - migrations.CreateModel(
130   - name='Image',
131   - fields=[
132   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
133   - ('name', models.CharField(blank=True, max_length=45, null=True)),
134   - ('desc', models.TextField(blank=True, null=True)),
135   - ('created', models.DateTimeField(auto_now_add=True, null=True)),
136   - ('updated', models.DateTimeField(auto_now=True, null=True)),
137   - ('date_from_gps', models.CharField(blank=True, max_length=45, null=True)),
138   - ('level', models.IntegerField(blank=True, null=True)),
139   - ('type', models.CharField(blank=True, max_length=5, null=True)),
140   - ('quality', models.CharField(blank=True, max_length=45, null=True)),
141   - ('flaggps', models.CharField(blank=True, max_length=45, null=True)),
142   - ('exposure', models.CharField(blank=True, max_length=45, null=True)),
143   - ('tempext', models.CharField(blank=True, max_length=45, null=True)),
144   - ('pressure', models.CharField(blank=True, max_length=45, null=True)),
145   - ('humidext', models.CharField(blank=True, max_length=45, null=True)),
146   - ('wind', models.CharField(blank=True, max_length=45, null=True)),
147   - ('wind_dir', models.CharField(blank=True, max_length=45, null=True)),
148   - ('dwnimg', models.CharField(blank=True, max_length=45, null=True)),
149   - ('dwncata', models.CharField(blank=True, max_length=45, null=True)),
150   - ('dwn', models.CharField(blank=True, max_length=45, null=True)),
151   - ('level0_fits_name', models.CharField(blank=True, max_length=45, null=True)),
152   - ('level1a_fits_name', models.CharField(blank=True, max_length=45, null=True)),
153   - ('level1b_fits_name', models.CharField(blank=True, max_length=45, null=True)),
154   - ],
155   - options={
156   - 'db_table': 'image',
157   - 'managed': True,
158   - },
159   - ),
160   - migrations.CreateModel(
161   - name='Log',
162   - fields=[
163   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
164   - ('agent', models.CharField(blank=True, max_length=45, null=True)),
165   - ('created', models.DateTimeField(auto_now_add=True, null=True)),
166   - ('message', models.TextField(blank=True, null=True)),
167   - ],
168   - options={
169   - 'db_table': 'log',
170   - 'managed': True,
171   - },
172   - ),
173   - migrations.CreateModel(
174   - name='NrtAnalysis',
175   - fields=[
176   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
177   - ('name', models.CharField(blank=True, max_length=45, null=True)),
178   - ('desc', models.TextField(blank=True, null=True)),
179   - ('created', models.DateTimeField(auto_now_add=True, null=True)),
180   - ('updated', models.DateTimeField(auto_now=True, null=True)),
181   - ('analysis', models.TextField(blank=True, null=True)),
182   - ],
183   - options={
184   - 'db_table': 'nrtanalysis',
185   - 'verbose_name_plural': 'Nrt analyzes',
186   - 'managed': True,
187   - },
188   - ),
189   - migrations.CreateModel(
190   - name='Plan',
191   - fields=[
192   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
193   - ('name', models.CharField(blank=True, max_length=45, null=True)),
194   - ('desc', models.CharField(blank=True, max_length=45, null=True)),
195   - ('created', models.DateTimeField(auto_now_add=True, null=True)),
196   - ('updated', models.DateTimeField(auto_now=True, null=True)),
197   - ('duration', models.FloatField(blank=True, null=True)),
198   - ('position', models.CharField(blank=True, max_length=45, null=True)),
199   - ('exposure_time', models.FloatField(blank=True, null=True)),
200   - ('nb_images', models.IntegerField(blank=True, null=True)),
201   - ('dithering', models.BooleanField(default=False)),
202   - ('album', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='plans', to='pyrosapp.Album')),
203   - ('filter', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='plans', to='pyrosapp.Filter')),
204   - ],
205   - options={
206   - 'db_table': 'plan',
207   - 'managed': True,
208   - },
209   - ),
210   - migrations.CreateModel(
211   - name='PyrosUser',
212   - fields=[
213   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
214   - ('desc', models.TextField(blank=True, null=True)),
215   - ('created', models.DateTimeField(auto_now_add=True, null=True)),
216   - ('updated', models.DateTimeField(auto_now=True, null=True)),
217   - ('tel', models.CharField(blank=True, max_length=45, null=True)),
218   - ('address', models.TextField(blank=True, max_length=100, null=True)),
219   - ('laboratory', models.CharField(blank=True, max_length=45, null=True)),
220   - ('last_connect', models.DateTimeField(blank=True, null=True)),
221   - ('cur_connect', models.DateTimeField(blank=True, null=True)),
222   - ('putvalid_beg', models.DateTimeField(blank=True, null=True)),
223   - ('putvalid_end', models.DateTimeField(blank=True, null=True)),
224   - ('acqvalid_beg', models.CharField(blank=True, max_length=45, null=True)),
225   - ('acqvalid_end', models.CharField(blank=True, max_length=45, null=True)),
226   - ('quota', models.FloatField(blank=True, null=True)),
227   - ('quota_rea', models.FloatField(blank=True, null=True)),
228   - ('u_priority', models.IntegerField(blank=True, null=True)),
229   - ('p_priority', models.IntegerField(blank=True, null=True)),
230   - ('dir_level', models.IntegerField(blank=True, null=True)),
231   - ('can_del_void_req', models.BooleanField(default=False)),
232   - ('country', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='pyros_users', to='pyrosapp.Country')),
233   - ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
234   - ],
235   - options={
236   - 'db_table': 'pyros_user',
237   - 'managed': True,
238   - },
239   - ),
240   - migrations.CreateModel(
241   - name='Request',
242   - fields=[
243   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
244   - ('name', models.CharField(blank=True, max_length=45, null=True)),
245   - ('desc', models.TextField(blank=True, null=True)),
246   - ('created', models.DateTimeField(auto_now_add=True, null=True)),
247   - ('updated', models.DateTimeField(auto_now=True, null=True)),
248   - ('is_alert', models.BooleanField(default=False)),
249   - ('type', models.CharField(blank=True, max_length=8, null=True)),
250   - ('status', models.CharField(blank=True, max_length=10, null=True)),
251   - ('target_or_theme', models.CharField(blank=True, max_length=45, null=True)),
252   - ('priority', models.IntegerField(blank=True, null=True)),
253   - ('autodeposit', models.BooleanField(default=False)),
254   - ('checkpoint', models.CharField(blank=True, max_length=45, null=True)),
255   - ('flag', models.CharField(blank=True, max_length=45, null=True)),
256   - ('pyros_user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='requests', to='pyrosapp.PyrosUser')),
257   - ],
258   - options={
259   - 'db_table': 'request',
260   - 'managed': True,
261   - },
262   - ),
263   - migrations.CreateModel(
264   - name='Schedule',
265   - fields=[
266   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
267   - ('created', models.DateTimeField(auto_now_add=True, null=True)),
268   - ('plan_night_start', models.DecimalField(decimal_places=8, default=0.0, max_digits=15)),
269   - ('plan_end', models.DecimalField(decimal_places=8, default=0.0, max_digits=15)),
270   - ('plan_start', models.DecimalField(decimal_places=8, default=0.0, max_digits=15)),
271   - ('flag', models.CharField(blank=True, max_length=45, null=True)),
272   - ],
273   - options={
274   - 'db_table': 'schedule',
275   - 'verbose_name_plural': 'Schedules',
276   - 'managed': True,
277   - },
278   - ),
279   - migrations.CreateModel(
280   - name='ScheduleHasSequences',
281   - fields=[
282   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
283   - ('status', models.CharField(blank=True, choices=[('TBP', 'To be planned'), ('OBS', 'Observable'), ('UNPLN', 'Unplannable'), ('PNDG', 'Pending'), ('EXD', 'Executed'), ('EXING', 'Executing'), ('RJTD', 'Rejected'), ('CNCLD', 'Cancelled'), ('INVL', 'Invalid')], max_length=11, null=True)),
284   - ('desc', models.CharField(blank=True, max_length=45, null=True)),
285   - ('tsp', models.DecimalField(decimal_places=8, default=-1.0, max_digits=15)),
286   - ('tep', models.DecimalField(decimal_places=8, default=-1.0, max_digits=15)),
287   - ('deltaTL', models.DecimalField(decimal_places=8, default=-1.0, max_digits=15)),
288   - ('deltaTR', models.DecimalField(decimal_places=8, default=-1.0, max_digits=15)),
289   - ('schedule', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='shs', to='pyrosapp.Schedule')),
290   - ],
291   - options={
292   - 'db_table': 'schedule_has_sequences',
293   - 'managed': True,
294   - },
295   - ),
296   - migrations.CreateModel(
297   - name='ScientificProgram',
298   - fields=[
299   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
300   - ('name', models.CharField(blank=True, max_length=45, null=True)),
301   - ('desc', models.TextField(blank=True, null=True)),
302   - ('quota', models.FloatField(blank=True, null=True)),
303   - ('priority', models.IntegerField(blank=True, null=True)),
304   - ('pyros_users', models.ManyToManyField(related_name='scientific_programs', to='pyrosapp.PyrosUser')),
305   - ],
306   - options={
307   - 'db_table': 'scientific_program',
308   - 'managed': True,
309   - },
310   - ),
311   - migrations.CreateModel(
312   - name='Sequence',
313   - fields=[
314   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
315   - ('name', models.CharField(blank=True, max_length=45, null=True)),
316   - ('desc', models.TextField(blank=True, null=True)),
317   - ('created', models.DateTimeField(auto_now_add=True, null=True)),
318   - ('updated', models.DateTimeField(auto_now=True, null=True)),
319   - ('is_alert', models.BooleanField(default=False)),
320   - ('status', models.CharField(blank=True, choices=[('TBP', 'To be planned'), ('OBS', 'Observable'), ('UNPLN', 'Unplannable'), ('PNDG', 'Pending'), ('EXD', 'Executed'), ('EXING', 'Executing'), ('RJTD', 'Rejected'), ('CNCLD', 'Cancelled'), ('INVL', 'Invalid')], max_length=11, null=True)),
321   - ('pointing', models.CharField(blank=True, max_length=45, null=True)),
322   - ('with_drift', models.BooleanField(default=False)),
323   - ('priority', models.IntegerField(blank=True, null=True)),
324   - ('analysis_method', models.CharField(blank=True, max_length=45, null=True)),
325   - ('moon_min', models.IntegerField(blank=True, null=True)),
326   - ('alt_min', models.IntegerField(blank=True, null=True)),
327   - ('type', models.CharField(blank=True, max_length=6, null=True)),
328   - ('img_current', models.CharField(blank=True, max_length=45, null=True)),
329   - ('img_total', models.CharField(blank=True, max_length=45, null=True)),
330   - ('not_obs', models.BooleanField(default=False)),
331   - ('obsolete', models.BooleanField(default=False)),
332   - ('processing', models.BooleanField(default=False)),
333   - ('flag', models.CharField(blank=True, max_length=45, null=True)),
334   - ('jd1', models.DecimalField(decimal_places=8, default=0.0, max_digits=15)),
335   - ('jd2', models.DecimalField(decimal_places=8, default=0.0, max_digits=15)),
336   - ('t_prefered', models.DecimalField(decimal_places=8, default=-1.0, max_digits=15)),
337   - ('duration', models.DecimalField(decimal_places=8, default=-1.0, max_digits=15)),
338   - ('overhead', models.DecimalField(decimal_places=8, default=0, max_digits=15)),
339   - ('request', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sequences', to='pyrosapp.Request')),
340   - ],
341   - options={
342   - 'db_table': 'sequence',
343   - 'managed': True,
344   - },
345   - ),
346   - migrations.CreateModel(
347   - name='SiteWatch',
348   - fields=[
349   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
350   - ('updated', models.DateTimeField(auto_now=True, null=True)),
351   - ('lights', models.CharField(blank=True, max_length=45, null=True)),
352   - ('dome', models.CharField(blank=True, max_length=45, null=True)),
353   - ('doors', models.CharField(blank=True, max_length=45, null=True)),
354   - ('temperature', models.FloatField(blank=True, null=True)),
355   - ],
356   - options={
357   - 'db_table': 'sitewatch',
358   - 'verbose_name_plural': 'Site watches',
359   - 'managed': True,
360   - },
361   - ),
362   - migrations.CreateModel(
363   - name='SiteWatchHistory',
364   - fields=[
365   - ('id', models.IntegerField(primary_key=True, serialize=False)),
366   - ],
367   - options={
368   - 'db_table': 'sitewatchhistory',
369   - 'verbose_name_plural': 'Site watch histories',
370   - 'managed': True,
371   - },
372   - ),
373   - migrations.CreateModel(
374   - name='StrategyObs',
375   - fields=[
376   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
377   - ('name', models.CharField(blank=True, max_length=45, null=True)),
378   - ('desc', models.TextField(blank=True, null=True)),
379   - ('xml_file', models.CharField(blank=True, max_length=45, null=True)),
380   - ],
381   - options={
382   - 'db_table': 'strategyobs',
383   - 'verbose_name_plural': 'Strategy obs',
384   - 'managed': True,
385   - },
386   - ),
387   - migrations.CreateModel(
388   - name='TaskId',
389   - fields=[
390   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
391   - ('task', models.CharField(blank=True, max_length=45, null=True)),
392   - ('created', models.DateTimeField(auto_now_add=True, null=True)),
393   - ('task_id', models.CharField(blank=True, max_length=45, null=True)),
394   - ],
395   - options={
396   - 'db_table': 'task_id',
397   - 'managed': True,
398   - },
399   - ),
400   - migrations.CreateModel(
401   - name='Telescope',
402   - fields=[
403   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
404   - ('mount_type', models.CharField(blank=True, max_length=9, null=True)),
405   - ('diameter', models.FloatField(blank=True, null=True)),
406   - ('status', models.CharField(blank=True, max_length=45, null=True)),
407   - ('latitude', models.FloatField(blank=True, null=True)),
408   - ('longitude', models.FloatField(blank=True, null=True)),
409   - ('sens', models.CharField(blank=True, max_length=1, null=True)),
410   - ('altitude', models.FloatField(blank=True, null=True)),
411   - ('readout_time', models.IntegerField(blank=True, null=True)),
412   - ('slew_time', models.IntegerField(blank=True, null=True)),
413   - ('slew_dead', models.IntegerField(blank=True, null=True)),
414   - ('slew_rate_max', models.FloatField(blank=True, null=True)),
415   - ('horizon_type', models.CharField(blank=True, max_length=45, null=True)),
416   - ('horizon_def', models.FloatField(blank=True, null=True)),
417   - ('lim_dec_max', models.FloatField(blank=True, null=True)),
418   - ('lim_dec_min', models.FloatField(blank=True, null=True)),
419   - ('lim_ha_rise', models.FloatField(blank=True, null=True)),
420   - ('lim_ha_set', models.FloatField(blank=True, null=True)),
421   - ('address', models.CharField(blank=True, max_length=45, null=True)),
422   - ('night_elev_sun', models.FloatField(blank=True, null=True)),
423   - ('mpc_code', models.CharField(blank=True, max_length=45, null=True)),
424   - ('device', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='pyrosapp.Device')),
425   - ],
426   - options={
427   - 'db_table': 'telescope',
428   - 'managed': True,
429   - },
430   - ),
431   - migrations.CreateModel(
432   - name='UserLevel',
433   - fields=[
434   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
435   - ('name', models.CharField(blank=True, max_length=45, null=True)),
436   - ('desc', models.TextField(blank=True, null=True)),
437   - ('priority', models.IntegerField(blank=True, null=True)),
438   - ('quota', models.FloatField(blank=True, null=True)),
439   - ],
440   - options={
441   - 'db_table': 'user_level',
442   - 'managed': True,
443   - },
444   - ),
445   - migrations.CreateModel(
446   - name='WeatherWatch',
447   - fields=[
448   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
449   - ('updated', models.DateTimeField(blank=True, null=True)),
450   - ('humid_int', models.FloatField(blank=True, null=True)),
451   - ('humid_ext', models.FloatField(blank=True, null=True)),
452   - ('wind', models.FloatField(blank=True, null=True)),
453   - ('wind_dir', models.CharField(blank=True, max_length=1, null=True)),
454   - ('temp_int', models.FloatField(blank=True, null=True)),
455   - ('temp_ext', models.FloatField(blank=True, null=True)),
456   - ('pressure', models.FloatField(blank=True, null=True)),
457   - ('rain', models.FloatField(blank=True, null=True)),
458   - ('dwn', models.CharField(blank=True, max_length=45, null=True)),
459   - ],
460   - options={
461   - 'db_table': 'weatherwatch',
462   - 'verbose_name_plural': 'Weather watches',
463   - 'managed': True,
464   - },
465   - ),
466   - migrations.CreateModel(
467   - name='WeatherWatchHistory',
468   - fields=[
469   - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
470   - ('datetime', models.DateTimeField(auto_now_add=True, null=True)),
471   - ('humid_int', models.CharField(blank=True, max_length=45, null=True)),
472   - ('humid_ext', models.CharField(blank=True, max_length=45, null=True)),
473   - ('wind', models.CharField(blank=True, max_length=45, null=True)),
474   - ('wind_dir', models.CharField(blank=True, max_length=45, null=True)),
475   - ('temp_int', models.CharField(blank=True, max_length=45, null=True)),
476   - ('temp_ext', models.CharField(blank=True, max_length=45, null=True)),
477   - ('pressure', models.CharField(blank=True, max_length=45, null=True)),
478   - ('rain', models.CharField(blank=True, max_length=45, null=True)),
479   - ('dwn', models.CharField(blank=True, max_length=45, null=True)),
480   - ],
481   - options={
482   - 'db_table': 'weatherwatchhistory',
483   - 'verbose_name_plural': 'Weather watch histories',
484   - 'managed': True,
485   - },
486   - ),
487   - migrations.AddField(
488   - model_name='schedulehassequences',
489   - name='sequence',
490   - field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='shs', to='pyrosapp.Sequence'),
491   - ),
492   - migrations.AddField(
493   - model_name='schedule',
494   - name='sequences',
495   - field=models.ManyToManyField(related_name='schedules', through='pyrosapp.ScheduleHasSequences', to='pyrosapp.Sequence'),
496   - ),
497   - migrations.AddField(
498   - model_name='request',
499   - name='scientific_program',
500   - field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='requests', to='pyrosapp.ScientificProgram'),
501   - ),
502   - migrations.AddField(
503   - model_name='pyrosuser',
504   - name='user_level',
505   - field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='pyros_users', to='pyrosapp.UserLevel'),
506   - ),
507   - migrations.AddField(
508   - model_name='image',
509   - name='nrtanalysis',
510   - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='images', to='pyrosapp.NrtAnalysis'),
511   - ),
512   - migrations.AddField(
513   - model_name='image',
514   - name='plan',
515   - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='images', to='pyrosapp.Plan'),
516   - ),
517   - migrations.AddField(
518   - model_name='detector',
519   - name='device',
520   - field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='pyrosapp.Device'),
521   - ),
522   - migrations.AddField(
523   - model_name='detector',
524   - name='telescope',
525   - field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='detectors', to='pyrosapp.Telescope'),
526   - ),
527   - migrations.AddField(
528   - model_name='alert',
529   - name='request',
530   - field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='pyrosapp.Request'),
531   - ),
532   - migrations.AddField(
533   - model_name='alert',
534   - name='strategyobs',
535   - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='alerts', to='pyrosapp.StrategyObs'),
536   - ),
537   - migrations.AddField(
538   - model_name='album',
539   - name='detector',
540   - field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='albums', to='pyrosapp.Detector'),
541   - ),
542   - migrations.AddField(
543   - model_name='album',
544   - name='sequence',
545   - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='albums', to='pyrosapp.Sequence'),
546   - ),
547   - ]
src/scripts/start_celery_workers.sh
... ... @@ -5,6 +5,8 @@ SCRIPT_PATH=${SCRIPT_PATH%/*}
5 5  
6 6 cd $SCRIPT_PATH/..
7 7  
  8 +source ../private/venv_py3_pyros/bin/activate
  9 +
8 10 ./scripts/kill_celery_workers.sh
9 11 celery worker -A pyros -Q alert_listener_q -n pyros@alert_listener -c 1 &
10 12 celery worker -A pyros -Q scheduling_q --purge -n pyros@scheduling -c 1 &
... ...
src/scripts/test_all_usual.sh
... ... @@ -8,4 +8,4 @@ SCRIPT_PATH=${SCRIPT_PATH%/*}
8 8  
9 9 cd $SCRIPT_PATH/..
10 10  
11   -python manage.py test pyrosapp common scheduler routine_manager user_manager alert_manager.tests.TestStrategyChange
  11 +../private/venv_py3_pyros/bin/python3 manage.py test pyrosapp common scheduler routine_manager user_manager alert_manager.tests.TestStrategyChange
... ...