Simplify logic for rendering user exports

This commit is contained in:
Bart Schuurmans 2024-03-25 18:13:09 +01:00
parent a51402241b
commit f721289b1d
2 changed files with 11 additions and 21 deletions

View file

@ -123,7 +123,9 @@
</span> </span>
</td> </td>
<td> <td>
{% if export.size %}
<span>{{ export.size|get_file_size }}</span> <span>{{ export.size|get_file_size }}</span>
{% endif %}
</td> </td>
<td> <td>
{% if export.url %} {% if export.url %}
@ -133,7 +135,7 @@
{% trans "Download your export" %} {% trans "Download your export" %}
</span> </span>
</a> </a>
{% elif export.job.complete and not export.job.status == "stopped" and not export.job.status == "failed" %} {% elif export.unavailable %}
{% trans "Archive is no longer available" %} {% trans "Archive is no longer available" %}
{% endif %} {% endif %}
</td> </td>

View file

@ -165,28 +165,16 @@ class ExportUser(View):
for job in jobs: for job in jobs:
export = {"job": job} export = {"job": job}
if settings.USE_S3: if job.export_data:
storage = S3Boto3Storage(querystring_auth=True, custom_domain=None)
# for s3 we create a new tar file in s3,
# so we need to check the size of _that_ file
try: try:
export["size"] = S3Boto3Storage.size( export["size"] = job.export_data.size
storage, f"exports/{job.task_id}.tar.gz" export["url"] = reverse("prefs-export-file", args=[job.task_id])
)
except Exception: # pylint: disable=broad-except
export["size"] = 0
else:
# for local storage export_data is the tar file
try:
export["size"] = job.export_data.size if job.export_data else 0
except FileNotFoundError: except FileNotFoundError:
# file no longer exists # file no longer exists locally
export["size"] = 0 export["unavailable"] = True
except Exception: # pylint: disable=broad-except
if export["size"] > 0: # file no longer exists on storage backend
export["url"] = reverse("prefs-export-file", args=[job.task_id]) export["unavailable"] = True
exports.append(export) exports.append(export)