Commit 0393f729ef236f062fc079859797fb14676940c3

Authored by Etienne Pallier
1 parent 1bcd46a6
Exists in master and in 1 other branch dev

test install mac

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