diff --git a/gracedb/migrations/0002_auto_20150708_1140.py b/gracedb/migrations/0002_auto_20150708_1140.py new file mode 100644 index 0000000000000000000000000000000000000000..62d5263339e1f651f83be98ce0070da8856b22bb --- /dev/null +++ b/gracedb/migrations/0002_auto_20150708_1140.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('gracedb', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='grbevent', + name='designation', + field=models.CharField(max_length=20, null=True), + ), + migrations.AddField( + model_name='grbevent', + name='redshift', + field=models.FloatField(null=True), + ), + ] diff --git a/gracedb/models.py b/gracedb/models.py index f8b85d60a4d759784bd73c667fd957f21b685731..3cce3c555f00f8846cff4ed434f06eaf5ee7ed47 100644 --- a/gracedb/models.py +++ b/gracedb/models.py @@ -788,6 +788,8 @@ class GrbEvent(Event): 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) class CoincInspiralEvent(Event): ifos = models.CharField(max_length=20, default="") diff --git a/gracedb/views.py b/gracedb/views.py index 51ca977c52c65069b1648e8f384bf5e19f769453..57ef630d62b6386a44512ba7ad7b8223fa29a98c 100644 --- a/gracedb/views.py +++ b/gracedb/views.py @@ -838,26 +838,38 @@ def emobservation_entry(request, event, num=None): else: return HttpResponseBadRequest("This URL only supports POST.") +# +# Despite the name, this view function will handle updates to all of the +# hand-entered GRB data, including t90, redshift, and event designation. +# @event_and_auth_required def modify_t90(request, event): if not request.method=='POST': - msg = 'Modify_permissions only allows POST.' + msg = 'This URL only allows POST.' return HttpResponseBadRequest(msg) if not isinstance(event, GrbEvent): - msg = 'Modify_t90 only works on GrbEvent objects.' + msg = 'This method only works on GrbEvent objects.' return HttpResponseBadRequest(msg) if not request.user.has_perm('gracedb.t90_grbevent'): - msg = "You aren't authorized to create permission objects." + msg = "You aren't authorized to modify GRB attributes." return HttpResponseForbidden(msg) - t90 = request.POST.get('t90', None) - if not t90: - msg = 'Modify_t90 requires t90 value in POST.' + designation = request.POST.get('designation', None) + redshift = request.POST.get('redshift', None) + t90 = request.POST.get('t90', None) + + if not (t90 or designation or redshift): + msg = 'This method requires one of: designation, redshift, or t90 in POST.' return HttpResponseBadRequest(msg) - event.t90 = t90 + if t90: + event.t90 = t90 + elif redshift: + event.redshift = redshift + elif designation: + event.designation = designation event.save() - + # Finished. Redirect back to the event. return HttpResponseRedirect(reverse("view", args=[event.graceid()])) diff --git a/templates/gracedb/event_detail_GRB.html b/templates/gracedb/event_detail_GRB.html index 5e98c85770bd2b453d5e3329f96830f54a9f998d..e612cf7161c44907b32349640165a081cd3010a1 100644 --- a/templates/gracedb/event_detail_GRB.html +++ b/templates/gracedb/event_detail_GRB.html @@ -73,6 +73,12 @@ {% endif %} {% if object.t90 %} <tr><th>T90</th><td colspan="2">{{object.t90}}</td></tr> + {% endif %} + {% if object.redshift %} + <tr><th>Redshift</th><td colspan="2">{{object.redshift}}</td></tr> + {% endif %} + {% if object.designation %} + <tr><th>Event designation</th><td colspan="2">{{object.designation}}</td></tr> {% endif %} <tr><th>Location</th><th>Coord System</th><td>{{object.coord_system}}</td></tr> <tr><td></td><th width="150px">RA</th><td>{{object.ra}}</td></tr> @@ -87,6 +93,14 @@ <input type="text" name="t90" value="{{ object.t90 }}"> <input type="submit" value="Update T90" class="t90ButtonClass"> </form> +<form action="{% url "modify_t90" object.graceid %}" method="post"> + <input type="text" name="redshift" value="{{ object.redshift }}"> + <input type="submit" value="Update redshift" class="t90ButtonClass"> +</form> +<form action="{% url "modify_t90" object.graceid %}" method="post"> + <input type="text" name="designation" value="{{ object.designation }}"> + <input type="submit" value="Update designation" class="t90ButtonClass"> +</form> </div> {% endif %}