From e4a26855e9ef1a0dedc0f316210815089bb54de8 Mon Sep 17 00:00:00 2001 From: Egor Matveev Date: Tue, 15 Mar 2022 23:34:27 +0300 Subject: [PATCH] deploy --- Main/models/dump.py | 2 +- Main/views/DownloadFileView.py | 20 ++++++++++++++++++++ Main/views/__init__.py | 1 + templates/task_settings.html | 2 +- 4 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 Main/views/DownloadFileView.py diff --git a/Main/models/dump.py b/Main/models/dump.py index 6a0a5e2..87f05dd 100644 --- a/Main/models/dump.py +++ b/Main/models/dump.py @@ -22,4 +22,4 @@ class Dump(FileStorageMixin, models.Model): @property def filename(self): if self.task is not None: - return f"dump-task-{self.task.id}-{self.str_date}" + return f"dump-task-{self.task.id}-{self.str_date}.zip" diff --git a/Main/views/DownloadFileView.py b/Main/views/DownloadFileView.py new file mode 100644 index 0000000..2f1ef85 --- /dev/null +++ b/Main/views/DownloadFileView.py @@ -0,0 +1,20 @@ +from django.http import HttpResponse + +from SprintLib.BaseView import BaseView, AccessError +from SprintLib.utils import get_bytes + + +class DownloadFileView(BaseView): + endpoint = "download_file" + required_login = True + + def get(self): + dump = self.entities.dump + if dump.task: + if self.request.user == dump.task.creator or self.request.user.username in dump.task.editors: + response = HttpResponse( + get_bytes(dump.fs_id), content_type='application/force-download' + ) + response['Content-Disposition'] = f'inline; filename={dump.filename}' + return response + raise AccessError() diff --git a/Main/views/__init__.py b/Main/views/__init__.py index 8f40c4e..85503dc 100644 --- a/Main/views/__init__.py +++ b/Main/views/__init__.py @@ -18,3 +18,4 @@ from Main.views.SetView import SetView from Main.views.GroupView import GroupView from Main.views.CheckersView import CheckersView from Main.views.ChatsView import ChatsView +from Main.views.DownloadFileView import DownloadFileView diff --git a/templates/task_settings.html b/templates/task_settings.html index 00e5db7..439dcc5 100644 --- a/templates/task_settings.html +++ b/templates/task_settings.html @@ -326,7 +326,7 @@ {{ dump.id }} {{ dump.timestamp }} {{ dump.executor.username }} - {% if dump.ready %}Скачать{% else %} В процессе{% endif %} + {% if dump.ready %}Скачать{% else %} В процессе{% endif %} {% endfor %}