From b6eb2c421b629c17b7048fbed060139b2a413b63 Mon Sep 17 00:00:00 2001
From: "alexander.pace@ligo.org" <alexander.pace@ligo.org>
Date: Wed, 23 Oct 2019 15:46:12 -0500
Subject: [PATCH] adding raven voevent fields

---
 config/settings/base.py                       |  1 -
 gracedb/api/v1/events/views.py                |  4 +-
 gracedb/api/v1/superevents/serializers.py     | 13 ++++-
 gracedb/events/models.py                      |  3 +-
 .../0006_add_raven_voevent_fields.py          | 56 +++++++++++++++++++
 gracedb/superevents/utils.py                  |  7 ++-
 6 files changed, 77 insertions(+), 7 deletions(-)
 create mode 100644 gracedb/superevents/migrations/0006_add_raven_voevent_fields.py

diff --git a/config/settings/base.py b/config/settings/base.py
index e605585da..1d463efde 100644
--- a/config/settings/base.py
+++ b/config/settings/base.py
@@ -51,7 +51,6 @@ TEST_RUNNER = 'django.test.runner.DiscoverRunner'
 # MANAGERS defines who gets broken link notifications when
 # BrokenLinkEmailsMiddleware is enabled
 ADMINS = [
-    ("Tanner Prestegard", "tanner.prestegard@ligo.org"),
     ("Alexander Pace", "alexander.pace@ligo.org"),
     ("Duncan Meacher", "duncan.meacher@ligo.org"),
 ]
diff --git a/gracedb/api/v1/events/views.py b/gracedb/api/v1/events/views.py
index ef52e5d03..1f259dccd 100644
--- a/gracedb/api/v1/events/views.py
+++ b/gracedb/api/v1/events/views.py
@@ -1695,8 +1695,10 @@ class VOEventList(InheritPermissionsAPIView):
         ext_search = request.data.get('ext_search', None)
         time_coinc_far = request.data.get('time_coinc_far', None)
         space_coinc_far = request.data.get('space_coinc_far', None)
-        comb_skymap_filename = request.data.get('comb_skymap_filename', None)
+        combined_skymap_filename = request.data.get('combined_skymap_filename',
+             None)
         delta_t = request.data.get('delta_t', None)
+        raven_coinc = request.data.get('raven_coinc', None)
 
         # Get VOEvent types as a dict (key = short form, value = long form)
         VOEVENT_TYPE_DICT = dict(VOEvent.VOEVENT_TYPE_CHOICES)
diff --git a/gracedb/api/v1/superevents/serializers.py b/gracedb/api/v1/superevents/serializers.py
index 9f6815b60..3a2e82e5e 100644
--- a/gracedb/api/v1/superevents/serializers.py
+++ b/gracedb/api/v1/superevents/serializers.py
@@ -578,6 +578,7 @@ class SupereventVOEventSerializer(serializers.ModelSerializer):
         max_value=1, required=False)
 
     # Additional RAVEN fields
+    raven_coinc = serializers.BooleanField(default=False)
     ext_gcn = serializers.CharField(required=False)
     ext_pipeline = serializers.CharField(required=False) 
     ext_search = serializers.CharField(required=False)
@@ -585,7 +586,7 @@ class SupereventVOEventSerializer(serializers.ModelSerializer):
         max_value=1000, required=False)
     space_coinc_far = serializers.FloatField(write_only=True, min_value=0,
         max_value=1000, required=False)
-    comb_skymap_filename = serializers.CharField(required=False)
+    combined_skymap_filename = serializers.CharField(required=False)
     delta_t = serializers.FloatField(write_only=True, min_value=-1000,
         max_value=1000, required=False)
 
@@ -599,11 +600,19 @@ class SupereventVOEventSerializer(serializers.ModelSerializer):
             'prob_has_remnant', 'prob_bns', 'prob_nsbh', 'prob_bbh',
             'prob_terrestrial', 'prob_mass_gap', 'superevent', 'user')
 
+        raven_fields = ('raven_coinc','ext_gcn', 'ext_pipeline', 'ext_search',
+            'time_coinc_far', 'space_coinc_far', 'combined_skymap_filename',
+            'delta_t')
+
+        # Combine the fields:
+        fields = fields + raven_fields
+
     def __init__(self, *args, **kwargs):
         super(SupereventVOEventSerializer, self).__init__(*args, **kwargs)
         read_only_fields = ['file_version', 'filename', 'ivorn',
             'coinc_comment', 'prob_has_ns', 'prob_has_remnant', 'prob_bns',
-            'prob_nsbh', 'prob_bbh', 'prob_terrestrial', 'prob_mass_gap']
+            'prob_nsbh', 'prob_bbh', 'prob_terrestrial', 'prob_mass_gap',
+            'raven_coinc']
         for f in read_only_fields:
             self.fields.get(f).read_only = True
 
diff --git a/gracedb/events/models.py b/gracedb/events/models.py
index 7bc74192e..f41c303dd 100644
--- a/gracedb/events/models.py
+++ b/gracedb/events/models.py
@@ -1009,6 +1009,7 @@ class VOEventBase(CleanSaveModel):
         models.fields.validators.MaxValueValidator(1.0)])
 
     # Additional RAVEN Fields
+    raven_coinc = models.BooleanField(null=False, default=True, blank=True)
     ext_gcn = models.CharField(max_length=20, default="", blank=True,
         editable=False)
     ext_pipeline = models.CharField(max_length=20, default="", blank=True,
@@ -1019,7 +1020,7 @@ class VOEventBase(CleanSaveModel):
         validators=[models.fields.validators.MinValueValidator(0.0)])
     space_coinc_far = models.FloatField(null=True, default=None, blank=True,
         validators=[models.fields.validators.MinValueValidator(0.0)])
-    comb_skymap_filename = models.CharField(max_length=100, null=True,
+    combined_skymap_filename = models.CharField(max_length=100, null=True,
         default=None, blank=True)
     delta_t = models.FloatField(null=True, default=None, blank=True,
         validators=[models.fields.validators.MinValueValidator(-1000),
diff --git a/gracedb/superevents/migrations/0006_add_raven_voevent_fields.py b/gracedb/superevents/migrations/0006_add_raven_voevent_fields.py
new file mode 100644
index 000000000..7efed677d
--- /dev/null
+++ b/gracedb/superevents/migrations/0006_add_raven_voevent_fields.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-05-15 18:07
+from __future__ import unicode_literals
+
+import django.core.validators
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('superevents', '0005_add_coinc_far_and_em_type'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='voevent',
+            name='raven_coinc',
+            field=models.BooleanField(default=False),
+        ),
+        migrations.AddField(
+            model_name='voevent',
+            name='combined_skymap_filename',
+            field=models.CharField(blank=True, default=None, max_length=100, null=True),
+        ),
+        migrations.AddField(
+            model_name='voevent',
+            name='ext_gcn',
+            field=models.CharField(blank=True, default=None, max_length=100, null=True),
+        ),
+        migrations.AddField(
+            model_name='voevent',
+            name='ext_pipeline',
+            field=models.CharField(blank=True, default=None, max_length=100, null=True),
+        ),
+        migrations.AddField(
+            model_name='voevent',
+            name='ext_search',
+            field=models.CharField(blank=True, default=None, max_length=100, null=True),
+        ),
+        migrations.AddField(
+            model_name='voevent',
+            name='time_coinc_far',
+            field=models.FloatField(blank=True, default=None, null=True),
+        ),
+        migrations.AddField(
+            model_name='voevent',
+            name='space_coinc_far',
+            field=models.FloatField(blank=True, default=None, null=True),
+        ),
+        migrations.AddField(
+            model_name='voevent',
+            name='delta_t',
+            field=models.FloatField(blank=True, default=None, null=True),
+        ),
+    ]
diff --git a/gracedb/superevents/utils.py b/gracedb/superevents/utils.py
index a662e9be0..277a7003f 100644
--- a/gracedb/superevents/utils.py
+++ b/gracedb/superevents/utils.py
@@ -594,7 +594,8 @@ def create_voevent_for_superevent(superevent, issuer, voevent_type,
     skymap_type=None, skymap_filename=None, internal=True, open_alert=False,
     hardware_inj=False, CoincComment=False, ProbHasNS=None,
     ProbHasRemnant=None, BNS=None, NSBH=None, BBH=None, Terrestrial=None,
-    MassGap=None, add_log_message=True, issue_alert=True):
+    MassGap=None, add_log_message=True, issue_alert=True,
+    combined_skymap_filename=None, raven_coinc=False):
 
     # Instantiate VOEvent object
     voevent = VOEvent.objects.create(superevent=superevent, issuer=issuer,
@@ -603,7 +604,9 @@ def create_voevent_for_superevent(superevent, issuer, voevent_type,
         open_alert=open_alert, hardware_inj=hardware_inj,
         coinc_comment=CoincComment, prob_has_ns=ProbHasNS,
         prob_has_remnant=ProbHasRemnant, prob_bns=BNS, prob_nsbh=NSBH,
-        prob_bbh=BBH, prob_terrestrial=Terrestrial, prob_mass_gap=MassGap)
+        prob_bbh=BBH, prob_terrestrial=Terrestrial, prob_mass_gap=MassGap,
+        combined_skymap_filename=combined_skymap_filename, 
+        raven_coinc=raven_coinc)
 
     # Construct VOEvent file text
     voevent_text, ivorn = construct_voevent_file(superevent, voevent)
-- 
GitLab