diff --git a/gracedb/models.py b/gracedb/models.py index 429321c7028214500615c9b64057069b7069eb09..17912f837fad04f763579f1bc0e6eba888bc2947 100644 --- a/gracedb/models.py +++ b/gracedb/models.py @@ -113,8 +113,9 @@ class Event(models.Model): def weburl(self): # XXX Not good. But then, it never was. - return "https://gracedb.ligo.org/gracedb-files/%s" % self.graceid() - return "https://ldas-jobs.phys.uwm.edu/gracedb/data/%s" % self.graceid() + #return "https://ldas-jobs.phys.uwm.edu/gracedb/data/%s" % self.graceid() + #return "https://gracedb.ligo.org/gracedb-files/%s" % self.graceid() + return reverse('file_list', args=[self.graceid()]) # XXX This should be considered deprecated. (Branson, July 22, 2014.) def clusterurl(self): diff --git a/gracedb/urls.py b/gracedb/urls.py index e2856b4f09a1a3a0274186efb44926fcfe23d366..a77fc45a38480ec1096b906661b0795d73e2438b 100644 --- a/gracedb/urls.py +++ b/gracedb/urls.py @@ -16,6 +16,7 @@ urlpatterns = patterns('gracedb.views', url (r'^skyalert/(?P<graceid>[GEHT]\d+)', 'skyalert', name="skyalert"), url (r'^neighbors/(?P<graceid>[GEHT]\d+)/\(?(?P<delta1>[-+]?\d+)(,(?P<delta2>[-+]?\d+)\)?)?', 'neighbors', name="neighbors"), url (r'^(?P<graceid>[GEHT]\d+)$', 'view', name="view2"), + url (r'^(?P<graceid>[GEHT]\d+)/files/$', 'file_list', name="file_list"), url (r'^(?P<graceid>[GEHT]\d+)/files/(?P<filename>.*)$', download, name="file"), url (r'^(?P<graceid>[GEHT]\d+)/log/(?P<num>([\d]*|preview))$', 'logentry', name="logentry"), url (r'^(?P<graceid>[GEHT]\d+)/log/(?P<num>\d+)/tag/(?P<tagname>\w+)$', 'taglogentry', name="taglogentry"), diff --git a/gracedb/views.py b/gracedb/views.py index e9f6036a5c4ee722c684b371c5c2f1fe5fb0f523..2131e92dfd584e52a8180de7dded467027dcfc5f 100644 --- a/gracedb/views.py +++ b/gracedb/views.py @@ -1285,4 +1285,27 @@ def performance(request): 'gracedb/performance.html', context, context_instance=RequestContext(request)) - + +# A view for the list of files associated with an event. +# We're deliberately leaving out the /general directory. +# The idea is to get rid of that horrible /gracedb-files/ url. +def file_list(request, graceid): + try: + event = Event.getByGraceid(graceid) + except Event.DoesNotExist: + return HttpResponseNotFound("Event not found") + + f = [] + for dirname, dirnames, filenames in os.walk(event.datadir()): + f.extend(filenames) + break + + context = {} + context['file_list'] = f + context['title'] = 'Files for %s' % graceid + context['graceid'] = graceid + + return render_to_response( + 'gracedb/event_filelist.html', + context, + context_instance=RequestContext(request)) diff --git a/templates/gracedb/event_filelist.html b/templates/gracedb/event_filelist.html new file mode 100644 index 0000000000000000000000000000000000000000..1f413294a77f60a7284c907017b44aa70fe39b20 --- /dev/null +++ b/templates/gracedb/event_filelist.html @@ -0,0 +1,15 @@ +{% extends "base.html" %} +{% block title %}{{ title }}{% endblock %} +{% block heading %}{{ title }}{% endblock %} +{% block pageid %}event files{% endblock %} + +{% block content %} +<p>{{ message }}</p> + +<ul> +{% for filename in file_list %} +<li><a href="{% url "file" graceid filename %}">{{ filename }}</a></li> +{% endfor %} +</ul> + +{% endblock %}