Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/changes/568.change.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Renamed the “Refresh” button to “Update” and adjusted its visibility based on the ANTARES source.
Original file line number Diff line number Diff line change
@@ -1,41 +1,68 @@
{% load tom_common_extras %}

<div class="card">
<div class="card-header px-2 d-flex justify-content-between align-items-center">
<h4 class="mb-0">Recent Photometry</h4>
<div
class="card-header px-2 d-flex justify-content-between align-items-center"
>
<h4 class="mb-0">Recent Photometry</h4>

<form method="post"
action="{% url 'refresh_antares_photometry' target.id %}"
class="mb-0">
{% csrf_token %}
<button type="submit" class="btn btn-sm btn-primary">
Refresh
</button>
</form>
</div>
{% if target.name|upper|slice:":3" == "ANT" %}
<form
method="post"
action="{% url 'refresh_antares_photometry' target.id %}"
class="mb-0 js-refresh-form"
>
{% csrf_token %}

<table class="table mb-0">
<thead>
<tr>
<th>Timestamp</th>
<th>Magnitude</th>
</tr>
</thead>
<tbody>
{% for datum in data %}
<tr>
<td>{{ datum.timestamp }}</td>
<td>
{% if datum.limit %}&gt;{% endif %}
{{ datum.magnitude|truncate_value_for_display:8 }}
</td>
</tr>
{% empty %}
<tr>
<td colspan="2">No recent photometry.</td>
</tr>
{% endfor %}
</tbody>
</table>
<button type="submit" class="btn btn-sm btn-primary js-refresh-btn">
<span
class="spinner-border spinner-border-sm me-2 d-none js-btn-spinner"
role="status"
aria-hidden="true"
></span>
<span class="js-btn-label">Update</span>
</button>
</form>
{% endif %}
</div>

<table class="table mb-0">
<thead>
<tr>
<th>Timestamp</th>
<th>Magnitude</th>
</tr>
</thead>
<tbody>
{% for datum in data %}
<tr>
<td>{{ datum.timestamp }}</td>
<td>
{% if datum.limit %}&gt;{% endif %}
{{datum.magnitude|truncate_value_for_display:8 }}
</td>
</tr>
{% empty %}
<tr>
<td colspan="2">No recent photometry.</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<script>
document.addEventListener("DOMContentLoaded", () => {
const form = document.querySelector(".js-refresh-form");
if (!form) return;

form.addEventListener("submit", () => {
const btn = form.querySelector(".js-refresh-btn");
const spinner = form.querySelector(".js-btn-spinner");
const label = form.querySelector(".js-btn-label");

if (btn) btn.disabled = true;
if (label) label.textContent = "Updating...";
if (spinner) spinner.classList.remove("d-none");
});
});
</script>
3 changes: 2 additions & 1 deletion src/goats_tom/views/antares.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
__all__ = ["RefreshAntaresPhotometryView"]
import logging

from django.contrib import messages
from django.shortcuts import get_object_or_404, redirect
from django.utils.decorators import method_decorator
from django.views import View
Expand Down Expand Up @@ -65,5 +66,5 @@ def post(self, request, target_id: int):
logger.exception(
"ANTARES refresh: failed target_id=%s locusid=%s", target_id, locusid
)

messages.success(request, "Photometry updated successfully.")
return redirect(request.META.get("HTTP_REFERER", "/"))
4 changes: 2 additions & 2 deletions tests/goats_tom/templatetags/test_tom_overrides.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def target(db):
Create a reusable SIDEREAL target for tests.
"""
return Target.objects.create(
name="TEST_TARGET",
name="ANTTEST_TARGET",
type="SIDEREAL",
ra=10.0,
dec=-10.0,
Expand Down Expand Up @@ -334,4 +334,4 @@ def test_goats_recent_photometry_renders_template(target):
html = template.render(Context({"target": target}))

assert "Recent Photometry" in html
assert "Refresh" in html
assert "Update" in html