diff --git a/gracedb/migrations/0001_initial.py b/gracedb/migrations/0001_initial.py index 6dc69e8609e7ddc6643556eeebe0730cfe4655bd..c27acabde513472ca449a5b88ac2fe4cfd27f2ab 100644 --- a/gracedb/migrations/0001_initial.py +++ b/gracedb/migrations/0001_initial.py @@ -1,12 +1,16 @@ # -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-10-25 18:57 from __future__ import unicode_literals -from django.db import models, migrations from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): + initial = True + dependencies = [ ('auth', '0008_auto_20171020_1045'), ] @@ -15,23 +19,20 @@ class Migration(migrations.Migration): migrations.CreateModel( name='Approval', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True)), - ('approvingCollaboration', models.CharField(max_length=1, choices=[(b'L', b'LIGO'), (b'V', b'Virgo')])), + ('approvingCollaboration', models.CharField(choices=[(b'L', b'LIGO'), (b'V', b'Virgo')], max_length=1)), ], - options={ - }, - bases=(models.Model,), ), migrations.CreateModel( name='EMBBEventLog', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('N', models.IntegerField()), ('created', models.DateTimeField(auto_now_add=True)), - ('instrument', models.CharField(max_length=200, blank=True)), + ('instrument', models.CharField(blank=True, max_length=200)), ('footprintID', models.TextField(blank=True)), - ('waveband', models.CharField(max_length=25, choices=[(b'em.gamma', b'Gamma rays part of the spectrum'), (b'em.gamma.soft', b'Soft gamma ray (120 - 500 keV)'), (b'em.gamma.hard', b'Hard gamma ray (>500 keV)'), (b'em.X-ray', b'X-ray part of the spectrum'), (b'em.X-ray.soft', b'Soft X-ray (0.12 - 2 keV)'), (b'em.X-ray.medium', b'Medium X-ray (2 - 12 keV)'), (b'em.X-ray.hard', b'Hard X-ray (12 - 120 keV)'), (b'em.UV', b'Ultraviolet part of the spectrum'), (b'em.UV.10-50nm', b'Ultraviolet between 10 and 50 nm'), (b'em.UV.50-100nm', b'Ultraviolet between 50 and 100 nm'), (b'em.UV.100-200nm', b'Ultraviolet between 100 and 200 nm'), (b'em.UV.200-300nm', b'Ultraviolet between 200 and 300 nm'), (b'em.UV.FUV', b'Far-Infrared, 30-100 microns'), (b'em.opt', b'Optical part of the spectrum'), (b'em.opt.U', b'Optical band between 300 and 400 nm'), (b'em.opt.B', b'Optical band between 400 and 500 nm'), (b'em.opt.V', b'Optical band between 500 and 600 nm'), (b'em.opt.R', b'Optical band between 600 and 750 nm'), (b'em.opt.I', b'Optical band between 750 and 1000 nm'), (b'em.IR', b'Infrared part of the spectrum'), (b'em.IR.NIR', b'Near-Infrared, 1-5 microns'), (b'em.IR.J', b'Infrared between 1.0 and 1.5 micron'), (b'em.IR.H', b'Infrared between 1.5 and 2 micron'), (b'em.IR.K', b'Infrared between 2 and 3 micron'), (b'em.IR.MIR', b'Medium-Infrared, 5-30 microns'), (b'em.IR.3-4um', b'Infrared between 3 and 4 micron'), (b'em.IR.4-8um', b'Infrared between 4 and 8 micron'), (b'em.IR.8-15um', b'Infrared between 8 and 15 micron'), (b'em.IR.15-30um', b'Infrared between 15 and 30 micron'), (b'em.IR.30-60um', b'Infrared between 30 and 60 micron'), (b'em.IR.60-100um', b'Infrared between 60 and 100 micron'), (b'em.IR.FIR', b'Far-Infrared, 30-100 microns'), (b'em.mm', b'Millimetric part of the spectrum'), (b'em.mm.1500-3000GHz', b'Millimetric between 1500 and 3000 GHz'), (b'em.mm.750-1500GHz', b'Millimetric between 750 and 1500 GHz'), (b'em.mm.400-750GHz', b'Millimetric between 400 and 750 GHz'), (b'em.mm.200-400GHz', b'Millimetric between 200 and 400 GHz'), (b'em.mm.100-200GHz', b'Millimetric between 100 and 200 GHz'), (b'em.mm.50-100GHz', b'Millimetric between 50 and 100 GHz'), (b'em.mm.30-50GHz', b'Millimetric between 30 and 50 GHz'), (b'em.radio', b'Radio part of the spectrum'), (b'em.radio.12-30GHz', b'Radio between 12 and 30 GHz'), (b'em.radio.6-12GHz', b'Radio between 6 and 12 GHz'), (b'em.radio.3-6GHz', b'Radio between 3 and 6 GHz'), (b'em.radio.1500-3000MHz', b'Radio between 1500 and 3000 MHz'), (b'em.radio.750-1500MHz', b'Radio between 750 and 1500 MHz'), (b'em.radio.400-750MHz', b'Radio between 400 and 750 MHz'), (b'em.radio.200-400MHz', b'Radio between 200 and 400 MHz'), (b'em.radio.100-200MHz', b'Radio between 100 and 200 MHz'), (b'em.radio.20-100MHz', b'Radio between 20 and 100 MHz')])), + ('waveband', models.CharField(choices=[(b'em.gamma', b'Gamma rays part of the spectrum'), (b'em.gamma.soft', b'Soft gamma ray (120 - 500 keV)'), (b'em.gamma.hard', b'Hard gamma ray (>500 keV)'), (b'em.X-ray', b'X-ray part of the spectrum'), (b'em.X-ray.soft', b'Soft X-ray (0.12 - 2 keV)'), (b'em.X-ray.medium', b'Medium X-ray (2 - 12 keV)'), (b'em.X-ray.hard', b'Hard X-ray (12 - 120 keV)'), (b'em.UV', b'Ultraviolet part of the spectrum'), (b'em.UV.10-50nm', b'Ultraviolet between 10 and 50 nm'), (b'em.UV.50-100nm', b'Ultraviolet between 50 and 100 nm'), (b'em.UV.100-200nm', b'Ultraviolet between 100 and 200 nm'), (b'em.UV.200-300nm', b'Ultraviolet between 200 and 300 nm'), (b'em.UV.FUV', b'Far-Infrared, 30-100 microns'), (b'em.opt', b'Optical part of the spectrum'), (b'em.opt.U', b'Optical band between 300 and 400 nm'), (b'em.opt.B', b'Optical band between 400 and 500 nm'), (b'em.opt.V', b'Optical band between 500 and 600 nm'), (b'em.opt.R', b'Optical band between 600 and 750 nm'), (b'em.opt.I', b'Optical band between 750 and 1000 nm'), (b'em.IR', b'Infrared part of the spectrum'), (b'em.IR.NIR', b'Near-Infrared, 1-5 microns'), (b'em.IR.J', b'Infrared between 1.0 and 1.5 micron'), (b'em.IR.H', b'Infrared between 1.5 and 2 micron'), (b'em.IR.K', b'Infrared between 2 and 3 micron'), (b'em.IR.MIR', b'Medium-Infrared, 5-30 microns'), (b'em.IR.3-4um', b'Infrared between 3 and 4 micron'), (b'em.IR.4-8um', b'Infrared between 4 and 8 micron'), (b'em.IR.8-15um', b'Infrared between 8 and 15 micron'), (b'em.IR.15-30um', b'Infrared between 15 and 30 micron'), (b'em.IR.30-60um', b'Infrared between 30 and 60 micron'), (b'em.IR.60-100um', b'Infrared between 60 and 100 micron'), (b'em.IR.FIR', b'Far-Infrared, 30-100 microns'), (b'em.mm', b'Millimetric part of the spectrum'), (b'em.mm.1500-3000GHz', b'Millimetric between 1500 and 3000 GHz'), (b'em.mm.750-1500GHz', b'Millimetric between 750 and 1500 GHz'), (b'em.mm.400-750GHz', b'Millimetric between 400 and 750 GHz'), (b'em.mm.200-400GHz', b'Millimetric between 200 and 400 GHz'), (b'em.mm.100-200GHz', b'Millimetric between 100 and 200 GHz'), (b'em.mm.50-100GHz', b'Millimetric between 50 and 100 GHz'), (b'em.mm.30-50GHz', b'Millimetric between 30 and 50 GHz'), (b'em.radio', b'Radio part of the spectrum'), (b'em.radio.12-30GHz', b'Radio between 12 and 30 GHz'), (b'em.radio.6-12GHz', b'Radio between 6 and 12 GHz'), (b'em.radio.3-6GHz', b'Radio between 3 and 6 GHz'), (b'em.radio.1500-3000MHz', b'Radio between 1500 and 3000 MHz'), (b'em.radio.750-1500MHz', b'Radio between 750 and 1500 MHz'), (b'em.radio.400-750MHz', b'Radio between 400 and 750 MHz'), (b'em.radio.200-400MHz', b'Radio between 200 and 400 MHz'), (b'em.radio.100-200MHz', b'Radio between 100 and 200 MHz'), (b'em.radio.20-100MHz', b'Radio between 20 and 100 MHz')], max_length=25)), ('ra', models.FloatField(null=True)), ('dec', models.FloatField(null=True)), ('raWidth', models.FloatField(null=True)), @@ -44,20 +45,19 @@ class Migration(migrations.Migration): ('decWidthList', models.TextField(blank=True)), ('gpstimeList', models.TextField(blank=True)), ('durationList', models.TextField(blank=True)), - ('eel_status', models.CharField(max_length=2, choices=[(b'FO', b'FOOTPRINT'), (b'SO', b'SOURCE'), (b'CO', b'COMMENT'), (b'CI', b'CIRCULAR')])), - ('obs_status', models.CharField(max_length=2, choices=[(b'NA', b'NOT APPLICABLE'), (b'OB', b'OBSERVATION'), (b'TE', b'TEST'), (b'PR', b'PREDICTION')])), + ('eel_status', models.CharField(choices=[(b'FO', b'FOOTPRINT'), (b'SO', b'SOURCE'), (b'CO', b'COMMENT'), (b'CI', b'CIRCULAR')], max_length=2)), + ('obs_status', models.CharField(choices=[(b'NA', b'NOT APPLICABLE'), (b'OB', b'OBSERVATION'), (b'TE', b'TEST'), (b'PR', b'PREDICTION')], max_length=2)), ('comment', models.TextField(blank=True)), ('extra_info_dict', models.TextField(blank=True)), ], options={ 'ordering': ['-created', '-N'], }, - bases=(models.Model,), ), migrations.CreateModel( name='EMFootprint', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('N', models.IntegerField()), ('ra', models.FloatField()), ('dec', models.FloatField()), @@ -69,22 +69,18 @@ class Migration(migrations.Migration): options={ 'ordering': ['-N'], }, - bases=(models.Model,), ), migrations.CreateModel( name='EMGroup', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('name', models.CharField(unique=True, max_length=20)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=50, unique=True)), ], - options={ - }, - bases=(models.Model,), ), migrations.CreateModel( name='EMObservation', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('N', models.IntegerField()), ('created', models.DateTimeField(auto_now_add=True)), ('ra', models.FloatField(null=True)), @@ -96,47 +92,28 @@ class Migration(migrations.Migration): options={ 'ordering': ['-created', '-N'], }, - bases=(models.Model,), ), migrations.CreateModel( name='Event', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True)), ('instruments', models.CharField(default=b'', max_length=20)), ('nevents', models.PositiveIntegerField(null=True)), ('far', models.FloatField(null=True)), ('likelihood', models.FloatField(null=True)), - ('gpstime', models.DecimalField(null=True, max_digits=16, decimal_places=6)), + ('gpstime', models.DecimalField(decimal_places=6, max_digits=16, null=True)), ('perms', models.TextField(null=True)), + ('offline', models.BooleanField(default=False)), ], options={ 'ordering': ['-id'], }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='CoincInspiralEvent', - fields=[ - ('event_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='gracedb.Event')), - ('ifos', models.CharField(default=b'', max_length=20)), - ('end_time', models.PositiveIntegerField(null=True)), - ('end_time_ns', models.PositiveIntegerField(null=True)), - ('mass', models.FloatField(null=True)), - ('mchirp', models.FloatField(null=True)), - ('minimum_duration', models.FloatField(null=True)), - ('snr', models.FloatField(null=True)), - ('false_alarm_rate', models.FloatField(null=True)), - ('combined_far', models.FloatField(null=True)), - ], - options={ - }, - bases=('gracedb.event',), ), migrations.CreateModel( name='EventLog', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True)), ('filename', models.CharField(default=b'', max_length=100)), ('comment', models.TextField()), @@ -146,181 +123,63 @@ class Migration(migrations.Migration): options={ 'ordering': ['-created', '-N'], }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='GrbEvent', - fields=[ - ('event_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='gracedb.Event')), - ('ivorn', models.CharField(max_length=200, null=True)), - ('author_ivorn', models.CharField(max_length=200, null=True)), - ('author_shortname', models.CharField(max_length=200, null=True)), - ('observatory_location_id', models.CharField(max_length=200, null=True)), - ('coord_system', models.CharField(max_length=200, null=True)), - ('ra', models.FloatField(null=True)), - ('dec', models.FloatField(null=True)), - ('error_radius', models.FloatField(null=True)), - ('how_description', models.CharField(max_length=200, null=True)), - ('how_reference_url', models.URLField(null=True)), - ('trigger_duration', models.FloatField(null=True)), - ('t90', models.FloatField(null=True)), - ], - options={ - }, - bases=('gracedb.event',), ), migrations.CreateModel( name='Group', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=20)), ], - options={ - }, - bases=(models.Model,), ), migrations.CreateModel( name='Label', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('name', models.CharField(unique=True, max_length=20)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=20, unique=True)), ('defaultColor', models.CharField(default=b'black', max_length=20)), + ('description', models.TextField()), ], - options={ - }, - bases=(models.Model,), ), migrations.CreateModel( name='Labelling', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True)), - ('creator', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('creator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='MultiBurstEvent', - fields=[ - ('event_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='gracedb.Event')), - ('ifos', models.CharField(default=b'', max_length=20)), - ('start_time', models.PositiveIntegerField(null=True)), - ('start_time_ns', models.PositiveIntegerField(null=True)), - ('duration', models.FloatField(null=True)), - ('peak_time', models.PositiveIntegerField(null=True)), - ('peak_time_ns', models.PositiveIntegerField(null=True)), - ('central_freq', models.FloatField(null=True)), - ('bandwidth', models.FloatField(null=True)), - ('amplitude', models.FloatField(null=True)), - ('snr', models.FloatField(null=True)), - ('confidence', models.FloatField(null=True)), - ('false_alarm_rate', models.FloatField(null=True)), - ('ligo_axis_ra', models.FloatField(null=True)), - ('ligo_axis_dec', models.FloatField(null=True)), - ('ligo_angle', models.FloatField(null=True)), - ('ligo_angle_sig', models.FloatField(null=True)), - ], - options={ - }, - bases=('gracedb.event',), ), migrations.CreateModel( name='Pipeline', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100)), ], - options={ - }, - bases=(models.Model,), ), migrations.CreateModel( name='Search', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100)), ('description', models.TextField(blank=True)), ], - options={ - }, - bases=(models.Model,), ), migrations.CreateModel( - name='SimInspiralEvent', + name='Signoff', fields=[ - ('event_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='gracedb.Event')), - ('mass1', models.FloatField(null=True)), - ('mass2', models.FloatField(null=True)), - ('eta', models.FloatField(null=True)), - ('amp_order', models.IntegerField(null=True)), - ('coa_phase', models.FloatField(null=True)), - ('mchirp', models.FloatField(null=True)), - ('spin1y', models.FloatField(null=True)), - ('spin1x', models.FloatField(null=True)), - ('spin1z', models.FloatField(null=True)), - ('spin2x', models.FloatField(null=True)), - ('spin2y', models.FloatField(null=True)), - ('spin2z', models.FloatField(null=True)), - ('geocent_end_time', models.IntegerField(null=True)), - ('geocent_end_time_ns', models.IntegerField(null=True)), - ('end_time_gmst', models.FloatField(null=True)), - ('f_lower', models.FloatField(null=True)), - ('f_final', models.FloatField(null=True)), - ('distance', models.FloatField(null=True)), - ('latitude', models.FloatField(null=True)), - ('longitude', models.FloatField(null=True)), - ('polarization', models.FloatField(null=True)), - ('inclination', models.FloatField(null=True)), - ('theta0', models.FloatField(null=True)), - ('phi0', models.FloatField(null=True)), - ('waveform', models.CharField(default=b'', max_length=50, blank=True)), - ('numrel_mode_min', models.IntegerField(null=True)), - ('numrel_mode_max', models.IntegerField(null=True)), - ('numrel_data', models.CharField(default=b'', max_length=50, blank=True)), - ('source', models.CharField(default=b'', max_length=50, blank=True)), - ('taper', models.CharField(default=b'', max_length=50, blank=True)), - ('bandpass', models.IntegerField(null=True)), - ('alpha', models.FloatField(null=True)), - ('beta', models.FloatField(null=True)), - ('psi0', models.FloatField(null=True)), - ('psi3', models.FloatField(null=True)), - ('alpha1', models.FloatField(null=True)), - ('alpha2', models.FloatField(null=True)), - ('alpha3', models.FloatField(null=True)), - ('alpha4', models.FloatField(null=True)), - ('alpha5', models.FloatField(null=True)), - ('alpha6', models.FloatField(null=True)), - ('g_end_time', models.IntegerField(null=True)), - ('g_end_time_ns', models.IntegerField(null=True)), - ('h_end_time', models.IntegerField(null=True)), - ('h_end_time_ns', models.IntegerField(null=True)), - ('l_end_time', models.IntegerField(null=True)), - ('l_end_time_ns', models.IntegerField(null=True)), - ('t_end_time', models.IntegerField(null=True)), - ('t_end_time_ns', models.IntegerField(null=True)), - ('v_end_time', models.IntegerField(null=True)), - ('v_end_time_ns', models.IntegerField(null=True)), - ('eff_dist_g', models.FloatField(null=True)), - ('eff_dist_h', models.FloatField(null=True)), - ('eff_dist_l', models.FloatField(null=True)), - ('eff_dist_t', models.FloatField(null=True)), - ('eff_dist_v', models.FloatField(null=True)), - ('source_channel', models.CharField(default=b'', max_length=50, blank=True)), - ('destination_channel', models.CharField(default=b'', max_length=50, blank=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('signoff_type', models.CharField(choices=[(b'OP', b'operator'), (b'ADV', b'advocate')], max_length=3)), + ('instrument', models.CharField(blank=True, choices=[(b'H1', b'LHO'), (b'L1', b'LLO'), (b'V1', b'Virgo')], max_length=2)), + ('status', models.CharField(choices=[(b'OK', b'OKAY'), (b'NO', b'NOT OKAY')], max_length=2)), + ('comment', models.TextField(blank=True)), ], - options={ - }, - bases=('gracedb.event',), ), migrations.CreateModel( name='SingleInspiral', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('ifo', models.CharField(max_length=20, null=True)), ('search', models.CharField(max_length=20, null=True)), - ('channel', models.CharField(max_length=20)), + ('channel', models.CharField(blank=True, max_length=20)), ('end_time', models.IntegerField(null=True)), ('end_time_ns', models.IntegerField(null=True)), ('end_time_gmst', models.FloatField(null=True)), @@ -380,168 +239,315 @@ class Migration(migrations.Migration): ('spin2x', models.FloatField(null=True)), ('spin2y', models.FloatField(null=True)), ('spin2z', models.FloatField(null=True)), - ('event', models.ForeignKey(to='gracedb.Event')), ], - options={ - }, - bases=(models.Model,), ), migrations.CreateModel( name='Tag', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100)), ('displayName', models.CharField(max_length=200, null=True)), ('eventlogs', models.ManyToManyField(to='gracedb.EventLog')), ], - options={ - }, - bases=(models.Model,), ), migrations.CreateModel( name='VOEvent', fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True)), ('ivorn', models.CharField(default=b'', max_length=200)), ('filename', models.CharField(default=b'', max_length=100)), ('file_version', models.IntegerField(null=True)), ('N', models.IntegerField()), - ('voevent_type', models.CharField(max_length=2, choices=[(b'PR', b'preliminary'), (b'IN', b'initial'), (b'UP', b'update'), (b'RE', b'retraction')])), - ('event', models.ForeignKey(to='gracedb.Event')), - ('issuer', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('voevent_type', models.CharField(choices=[(b'PR', b'preliminary'), (b'IN', b'initial'), (b'UP', b'update'), (b'RE', b'retraction')], max_length=2)), ], options={ 'ordering': ['-created', '-N'], }, - bases=(models.Model,), ), - migrations.AlterUniqueTogether( - name='voevent', - unique_together=set([('event', 'N')]), + migrations.CreateModel( + name='CoincInspiralEvent', + fields=[ + ('event_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='gracedb.Event')), + ('ifos', models.CharField(default=b'', max_length=20)), + ('end_time', models.PositiveIntegerField(null=True)), + ('end_time_ns', models.PositiveIntegerField(null=True)), + ('mass', models.FloatField(null=True)), + ('mchirp', models.FloatField(null=True)), + ('minimum_duration', models.FloatField(null=True)), + ('snr', models.FloatField(null=True)), + ('false_alarm_rate', models.FloatField(null=True)), + ('combined_far', models.FloatField(null=True)), + ], + bases=('gracedb.event',), + ), + migrations.CreateModel( + name='GrbEvent', + fields=[ + ('event_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='gracedb.Event')), + ('ivorn', models.CharField(max_length=200, null=True)), + ('author_ivorn', models.CharField(max_length=200, null=True)), + ('author_shortname', models.CharField(max_length=200, null=True)), + ('observatory_location_id', models.CharField(max_length=200, null=True)), + ('coord_system', models.CharField(max_length=200, null=True)), + ('ra', models.FloatField(null=True)), + ('dec', models.FloatField(null=True)), + ('error_radius', models.FloatField(null=True)), + ('how_description', models.CharField(max_length=200, null=True)), + ('how_reference_url', models.URLField(null=True)), + ('trigger_duration', models.FloatField(null=True)), + ('t90', models.FloatField(null=True)), + ('designation', models.CharField(max_length=20, null=True)), + ('redshift', models.FloatField(null=True)), + ('trigger_id', models.CharField(max_length=25, null=True)), + ], + bases=('gracedb.event',), + ), + migrations.CreateModel( + name='LalInferenceBurstEvent', + fields=[ + ('event_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='gracedb.Event')), + ('bci', models.FloatField(null=True)), + ('quality_mean', models.FloatField(null=True)), + ('quality_median', models.FloatField(null=True)), + ('bsn', models.FloatField(null=True)), + ('omicron_snr_network', models.FloatField(null=True)), + ('omicron_snr_H1', models.FloatField(null=True)), + ('omicron_snr_L1', models.FloatField(null=True)), + ('omicron_snr_V1', models.FloatField(null=True)), + ('hrss_mean', models.FloatField(null=True)), + ('hrss_median', models.FloatField(null=True)), + ('frequency_mean', models.FloatField(null=True)), + ('frequency_median', models.FloatField(null=True)), + ], + bases=('gracedb.event',), + ), + migrations.CreateModel( + name='MultiBurstEvent', + fields=[ + ('event_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='gracedb.Event')), + ('ifos', models.CharField(default=b'', max_length=20)), + ('start_time', models.PositiveIntegerField(null=True)), + ('start_time_ns', models.PositiveIntegerField(null=True)), + ('duration', models.FloatField(null=True)), + ('peak_time', models.PositiveIntegerField(null=True)), + ('peak_time_ns', models.PositiveIntegerField(null=True)), + ('central_freq', models.FloatField(null=True)), + ('bandwidth', models.FloatField(null=True)), + ('amplitude', models.FloatField(null=True)), + ('snr', models.FloatField(null=True)), + ('confidence', models.FloatField(null=True)), + ('false_alarm_rate', models.FloatField(null=True)), + ('ligo_axis_ra', models.FloatField(null=True)), + ('ligo_axis_dec', models.FloatField(null=True)), + ('ligo_angle', models.FloatField(null=True)), + ('ligo_angle_sig', models.FloatField(null=True)), + ('single_ifo_times', models.CharField(default=b'', max_length=255)), + ], + bases=('gracedb.event',), + ), + migrations.CreateModel( + name='SimInspiralEvent', + fields=[ + ('event_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='gracedb.Event')), + ('mass1', models.FloatField(null=True)), + ('mass2', models.FloatField(null=True)), + ('eta', models.FloatField(null=True)), + ('amp_order', models.IntegerField(null=True)), + ('coa_phase', models.FloatField(null=True)), + ('mchirp', models.FloatField(null=True)), + ('spin1y', models.FloatField(null=True)), + ('spin1x', models.FloatField(null=True)), + ('spin1z', models.FloatField(null=True)), + ('spin2x', models.FloatField(null=True)), + ('spin2y', models.FloatField(null=True)), + ('spin2z', models.FloatField(null=True)), + ('geocent_end_time', models.IntegerField(null=True)), + ('geocent_end_time_ns', models.IntegerField(null=True)), + ('end_time_gmst', models.FloatField(null=True)), + ('f_lower', models.FloatField(null=True)), + ('f_final', models.FloatField(null=True)), + ('distance', models.FloatField(null=True)), + ('latitude', models.FloatField(null=True)), + ('longitude', models.FloatField(null=True)), + ('polarization', models.FloatField(null=True)), + ('inclination', models.FloatField(null=True)), + ('theta0', models.FloatField(null=True)), + ('phi0', models.FloatField(null=True)), + ('waveform', models.CharField(blank=True, default=b'', max_length=50)), + ('numrel_mode_min', models.IntegerField(null=True)), + ('numrel_mode_max', models.IntegerField(null=True)), + ('numrel_data', models.CharField(blank=True, default=b'', max_length=50)), + ('source', models.CharField(blank=True, default=b'', max_length=50)), + ('taper', models.CharField(blank=True, default=b'', max_length=50)), + ('bandpass', models.IntegerField(null=True)), + ('alpha', models.FloatField(null=True)), + ('beta', models.FloatField(null=True)), + ('psi0', models.FloatField(null=True)), + ('psi3', models.FloatField(null=True)), + ('alpha1', models.FloatField(null=True)), + ('alpha2', models.FloatField(null=True)), + ('alpha3', models.FloatField(null=True)), + ('alpha4', models.FloatField(null=True)), + ('alpha5', models.FloatField(null=True)), + ('alpha6', models.FloatField(null=True)), + ('g_end_time', models.IntegerField(null=True)), + ('g_end_time_ns', models.IntegerField(null=True)), + ('h_end_time', models.IntegerField(null=True)), + ('h_end_time_ns', models.IntegerField(null=True)), + ('l_end_time', models.IntegerField(null=True)), + ('l_end_time_ns', models.IntegerField(null=True)), + ('t_end_time', models.IntegerField(null=True)), + ('t_end_time_ns', models.IntegerField(null=True)), + ('v_end_time', models.IntegerField(null=True)), + ('v_end_time_ns', models.IntegerField(null=True)), + ('eff_dist_g', models.FloatField(null=True)), + ('eff_dist_h', models.FloatField(null=True)), + ('eff_dist_l', models.FloatField(null=True)), + ('eff_dist_t', models.FloatField(null=True)), + ('eff_dist_v', models.FloatField(null=True)), + ('source_channel', models.CharField(blank=True, default=b'', max_length=50)), + ('destination_channel', models.CharField(blank=True, default=b'', max_length=50)), + ], + bases=('gracedb.event',), + ), + migrations.AddField( + model_name='voevent', + name='event', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gracedb.Event'), + ), + migrations.AddField( + model_name='voevent', + name='issuer', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + migrations.AddField( + model_name='singleinspiral', + name='event', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gracedb.Event'), + ), + migrations.AddField( + model_name='signoff', + name='event', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gracedb.Event'), + ), + migrations.AddField( + model_name='signoff', + name='submitter', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='labelling', name='event', - field=models.ForeignKey(to='gracedb.Event'), - preserve_default=True, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gracedb.Event'), ), migrations.AddField( model_name='labelling', name='label', - field=models.ForeignKey(to='gracedb.Label'), - preserve_default=True, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gracedb.Label'), ), migrations.AddField( model_name='eventlog', name='event', - field=models.ForeignKey(to='gracedb.Event'), - preserve_default=True, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gracedb.Event'), ), migrations.AddField( model_name='eventlog', name='issuer', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), - preserve_default=True, - ), - migrations.AlterUniqueTogether( - name='eventlog', - unique_together=set([('event', 'N')]), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='event', name='group', - field=models.ForeignKey(to='gracedb.Group'), - preserve_default=True, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gracedb.Group'), ), migrations.AddField( model_name='event', name='labels', - field=models.ManyToManyField(to='gracedb.Label', through='gracedb.Labelling'), - preserve_default=True, + field=models.ManyToManyField(through='gracedb.Labelling', to='gracedb.Label'), ), migrations.AddField( model_name='event', name='pipeline', - field=models.ForeignKey(to='gracedb.Pipeline'), - preserve_default=True, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gracedb.Pipeline'), ), migrations.AddField( model_name='event', name='search', - field=models.ForeignKey(to='gracedb.Search', null=True), - preserve_default=True, + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='gracedb.Search'), ), migrations.AddField( model_name='event', name='submitter', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), - preserve_default=True, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='emobservation', name='event', - field=models.ForeignKey(to='gracedb.Event'), - preserve_default=True, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gracedb.Event'), ), migrations.AddField( model_name='emobservation', name='group', - field=models.ForeignKey(to='gracedb.EMGroup'), - preserve_default=True, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gracedb.EMGroup'), ), migrations.AddField( model_name='emobservation', name='submitter', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), - preserve_default=True, - ), - migrations.AlterUniqueTogether( - name='emobservation', - unique_together=set([('event', 'N')]), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='emfootprint', name='observation', - field=models.ForeignKey(to='gracedb.EMObservation'), - preserve_default=True, - ), - migrations.AlterUniqueTogether( - name='emfootprint', - unique_together=set([('observation', 'N')]), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gracedb.EMObservation'), ), migrations.AddField( model_name='embbeventlog', name='event', - field=models.ForeignKey(to='gracedb.Event'), - preserve_default=True, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gracedb.Event'), ), migrations.AddField( model_name='embbeventlog', name='group', - field=models.ForeignKey(to='gracedb.EMGroup'), - preserve_default=True, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gracedb.EMGroup'), ), migrations.AddField( model_name='embbeventlog', name='submitter', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), - preserve_default=True, - ), - migrations.AlterUniqueTogether( - name='embbeventlog', - unique_together=set([('event', 'N')]), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='approval', name='approvedEvent', - field=models.ForeignKey(to='gracedb.Event'), - preserve_default=True, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='gracedb.Event'), ), migrations.AddField( model_name='approval', name='approver', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), - preserve_default=True, + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + migrations.AlterUniqueTogether( + name='voevent', + unique_together=set([('event', 'N')]), + ), + migrations.AlterUniqueTogether( + name='signoff', + unique_together=set([('event', 'instrument')]), + ), + migrations.AlterUniqueTogether( + name='eventlog', + unique_together=set([('event', 'N')]), + ), + migrations.AlterUniqueTogether( + name='emobservation', + unique_together=set([('event', 'N')]), + ), + migrations.AlterUniqueTogether( + name='emfootprint', + unique_together=set([('observation', 'N')]), + ), + migrations.AlterUniqueTogether( + name='embbeventlog', + unique_together=set([('event', 'N')]), ), ] diff --git a/gracedb/migrations/0008_add_AllSkyLong_search.py b/gracedb/migrations/0008_add_AllSkyLong_search.py index 8c779a9d593a0be821fc5993c460a2e19bab14aa..dd0f05a7f615cc11db86d28d8beb97ceb8d2fe33 100644 --- a/gracedb/migrations/0008_add_AllSkyLong_search.py +++ b/gracedb/migrations/0008_add_AllSkyLong_search.py @@ -3,26 +3,35 @@ from __future__ import unicode_literals from django.db import migrations, models -SEARCH = {'name': 'AllSkyLong', - 'description': 'all-sky long burst online' +# Add AllSkyLong search + +# Search name and description +SEARCH = { + 'name': 'AllSkyLong', + 'description': 'all-sky long burst online' } def add_search(apps, schema_editor): Search = apps.get_model('gracedb','Search') + + # Create search new_search, created = Search.objects.get_or_create(name=SEARCH['name']) - if created: - for key in SEARCH.keys(): - setattr(new_search, key, SEARCH[key]) - new_search.save() + new_search.description = SEARCH['description'] + new_search.save() def remove_search(apps, schema_editor): Search = apps.get_model('gracedb','Search') - Search.objects.get(name=SEARCH['name']).delete() + + # Delete search + try: + Search.objects.get(name=SEARCH['name']).delete() + except Search.DoesNotExist: + print("Error: can't 'get' search {0}, skipping".format(SEARCH['name'])) class Migration(migrations.Migration): dependencies = [ - ('gracedb', '0010_lalinferenceburstevent'), + ('gracedb', '0007_initial_emgroup_data'), ] operations = [ diff --git a/gracedb/migrations/0009_add_em_sent_label.py b/gracedb/migrations/0009_add_em_sent_label.py index 1272dc91baccaac29fdbde2476e37d958c3db1fa..b103c209fc024b1a279b983ea8d71c41ef60c683 100644 --- a/gracedb/migrations/0009_add_em_sent_label.py +++ b/gracedb/migrations/0009_add_em_sent_label.py @@ -3,26 +3,33 @@ from __future__ import unicode_literals from django.db import models, migrations -labels = { - 'EM_SENT': 'green', -} +# Add EM_SENT label + +# Label name, default color, description +LABELS = [ + {'name': 'EM_SENT', 'defaultColor': 'green', 'description': 'Has been sent to MOU partners.'}, +] def add_labels(apps, schema_editor): Label = apps.get_model('gracedb', 'Label') - for name, color in labels.iteritems(): - Label.objects.create(name=name, defaultColor=color) + + # Create labels + for label_dict in LABELS: + l, created = Label.objects.get_or_create(name=label_dict['name']) + l.defaultColor = label_dict['defaultColor'] + l.description = label_dict['description'] + l.save() def remove_labels(apps, schema_editor): Label = apps.get_model('gracedb', 'Label') - for name, color in labels.iteritems(): - l = Label.objects.get(name=name) - l.delete() + # Delete labels + Label.objects.filter(name__in=[l['name'] for l in LABELS]).delete() class Migration(migrations.Migration): dependencies = [ - ('gracedb', '0015_multiburstevent_single_ifo_times') + ('gracedb', '0008_add_AllSkyLong_search') ] operations = [ diff --git a/gracedb/migrations/0010_add_virgo_labels.py b/gracedb/migrations/0010_add_virgo_labels.py index 4be35e4f6d3c7557b91b530989b815982c7d6cfd..df0e9a844e5baf0a1e28419c0ed0503817773cb1 100644 --- a/gracedb/migrations/0010_add_virgo_labels.py +++ b/gracedb/migrations/0010_add_virgo_labels.py @@ -3,33 +3,35 @@ from __future__ import unicode_literals from django.db import models, migrations -ifos = ['V1'] -labels = { - 'OPS': 'black', - 'OK': 'green', - 'NO': 'red', -} +# Add labels for Virgo operator signoff + +# Label names, default colors, and descriptions +LABELS = [ + {'name': 'V1OPS', 'defaultColor': 'black', 'description': 'V1 operator signoff requested.'}, + {'name': 'V1OK', 'defaultColor': 'green', 'description': 'V1 operator says event is okay.'}, + {'name': 'V1NO', 'defaultColor': 'red', 'description': 'V1 operator says event is not okay.'}, +] def add_labels(apps, schema_editor): Label = apps.get_model('gracedb', 'Label') - for ifo in ifos: - for name, color in labels.iteritems(): - label_name = ifo + name - Label.objects.create(name=label_name, defaultColor=color) + + # Create labels + for label_dict in LABELS: + l, created = Label.objects.get_or_create(name=label_dict['name']) + l.defaultColor = label_dict['defaultColor'] + l.description = label_dict['description'] + l.save() def remove_labels(apps, schema_editor): Label = apps.get_model('gracedb', 'Label') - for ifo in ifos: - for name, color in labels.iteritems(): - label_name = ifo + name - l = Label.objects.get(name=label_name) - l.delete() + # Delete labels + Label.objects.filter(name__in=[l['name'] for l in LABELS]).delete() class Migration(migrations.Migration): dependencies = [ - ('gracedb', '0016_add_em_sent_label') + ('gracedb', '0009_add_em_sent_label') ] operations = [ diff --git a/gracedb/migrations/0011_add_O2VirgoTest_search.py b/gracedb/migrations/0011_add_O2VirgoTest_search.py index 852bcfda3fc67d8c1e84082d587bca1350d7a9f5..85df13e44c24f042ee3c4f908417e1f92adeaed6 100644 --- a/gracedb/migrations/0011_add_O2VirgoTest_search.py +++ b/gracedb/migrations/0011_add_O2VirgoTest_search.py @@ -3,12 +3,19 @@ from __future__ import unicode_literals from django.db import migrations, models -SEARCH = {'name': 'O2VirgoTest', - 'description': 'Testing 3-IFO pipelines for adding Virgo in O2' +# Add O2VirgoTest search for initial production tests of 3-IFO searches +# May be removed at some point in the future? + +# Search name and description +SEARCH = { + 'name': 'O2VirgoTest', + 'description': 'Testing 3-IFO pipelines for adding Virgo in O2' } def add_search(apps, schema_editor): Search = apps.get_model('gracedb','Search') + + # Create search new_search, created = Search.objects.get_or_create(name=SEARCH['name']) if created: for key in SEARCH.keys(): @@ -17,12 +24,17 @@ def add_search(apps, schema_editor): def remove_search(apps, schema_editor): Search = apps.get_model('gracedb','Search') - Search.objects.get(name=SEARCH['name']).delete() + + # Delete search + try: + Search.objects.get(name=SEARCH['name']).delete() + except Search.DoesNotExist: + print("Error: can't 'get' search {0}, skipping".format(SEARCH['name'])) class Migration(migrations.Migration): dependencies = [ - ('gracedb', '0021_event_offline'), + ('gracedb', '0010_add_virgo_labels'), ] operations = [ diff --git a/gracedb/migrations/0012_add_DESGW_to_EMGroups.py b/gracedb/migrations/0012_add_DESGW_to_EMGroups.py index 7ec4c5d6f32b8e4c276e6262c2f8a162ab190250..e6ba659e43c4661b3e184da5eaa3fdbe41509d05 100644 --- a/gracedb/migrations/0012_add_DESGW_to_EMGroups.py +++ b/gracedb/migrations/0012_add_DESGW_to_EMGroups.py @@ -3,22 +3,30 @@ from __future__ import unicode_literals from django.db import migrations, models +# Add DESGW to EMGroups + +# EMGroup name GROUP_NAME = "DESGW" def add_group(apps, schema_editor): EMGroup = apps.get_model('gracedb','EMGroup') + + # Create group grp, created = EMGroup.objects.get_or_create(name=GROUP_NAME) - if created: - grp.save() def remove_group(apps, schema_editor): EMGroup = apps.get_model('gracedb','EMGroup') - EMGroup.objects.get(name=GROUP_NAME).delete() + + # Delete group + try: + EMGroup.objects.get(name=GROUP_NAME).delete() + except EMGroup.DoesNotExist: + print("Error: can't 'get' EMGroup {0}, skipping".format(GROUP_NAME)) class Migration(migrations.Migration): dependencies = [ - ('gracedb', '0022_add_O2VirgoTest_search'), + ('gracedb', '0011_add_O2VirgoTest_search'), ] operations = [