Skip to content
Snippets Groups Projects
Commit c00eb748 authored by Tanner Prestegard's avatar Tanner Prestegard Committed by GraceDB
Browse files

adding file list and file download views for superevents

parent 4d4a645f
No related branches found
No related tags found
No related merge requests found
......@@ -12,4 +12,10 @@ urlpatterns = [
regex=Superevent.ID_REGEX), views.webview, name="view"),
url(r'^create_log/(?P<superevent_id>{regex})/$'.format(
regex=Superevent.ID_REGEX), views.web_create_log, name="create-log"),
# Files
url(r'^(?P<superevent_id>{regex})/files/$'.format(
regex=Superevent.ID_REGEX), views.file_list, name="file-list"),
url(r'^(?P<superevent_id>{regex})/files/(?P<filename>.*)$'.format(
regex=Superevent.ID_REGEX), views.file_download, name="file-download"),
]
......@@ -2,12 +2,13 @@ from django.http import HttpResponse, HttpResponseRedirect, Http404
from django.shortcuts import render
from django.urls import reverse
from django.utils.html import escape
from django.views.decorators.http import require_POST
from django.views.decorators.http import require_POST, require_GET
from .models import Superevent, Log
from .forms import LogCreateForm
from .utils import get_superevent_by_date_id_or_404
from core.http import check_and_serve_file
from core.vfile import VersionedFile
from events.permission_utils import internal_user_required, is_external
......@@ -135,3 +136,30 @@ def web_create_log(request, superevent_id):
# Return to superevent page
return HttpResponseRedirect(reverse('superevents:view',
args=[superevent_id]))
# TODO:
# filter files for external users (see how this is done for events)
def file_list(request, superevent_id):
superevent = get_superevent_by_date_id_or_404(request, superevent_id)
file_list = superevent.list_files(absolute_paths=False)
context = {
'file_list': file_list,
'title': 'Files for {0}'.format(superevent.superevent_id),
'superevent_id': superevent.superevent_id,
}
return render(request, 'superevents/file_list.html', context=context)
# TODO:
# add permission checking
def file_download(request, superevent_id, filename):
# Get superevent
superevent = get_superevent_by_date_id_or_404(request, superevent_id)
# Construct absolute path to file
file_path = os.path.join(superevent.datadir, filename)
# Check file and serve it
return check_and_serve_file(request, file_path, ResponseClass=HttpResponse)
{% extends "base.html" %}
{% block title %}{{ title }}{% endblock %}
{% block heading %}{{ title }}{% endblock %}
{% block pageid %}Superevent files{% endblock %}
{% block content %}
<p>{{ message }}</p>
<ul>
{% for filename in file_list %}
<li><a href="{% url "superevents:file-download" superevent_id filename %}">{{ filename }}</a></li>
{% endfor %}
</ul>
{% endblock %}
......@@ -13,9 +13,9 @@
TBD:
<ul style="padding-bottom: 30px;">
<li>javascript update for labels</li>
<li>link for log message files, make sure to link to correct file version</li>
<li>event log tagging</li>
<li>Javascript update for labels</li>
<li>Log messages should display links for files (make sure to link to correct version)</li>
<li>Event log tagging from web interface</li>
</ul>
<div id='event_detail_content'>
......@@ -29,6 +29,7 @@ TBD:
<th>Preferred Event</th>
<th>GW events</th>
<th>External events</th>
<th>Links</th>
</tr>
<tr>
<td>{{ superevent.superevent_id }}</td>
......@@ -56,6 +57,7 @@ TBD:
{% endfor %}
</div>
</td>
<td><a href="{% url "superevents:file-list" superevent.superevent_id %}">Data</a></td>
</tr>
</table>
{% endblock %}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment