This commit is contained in:
Egor Matveev
2022-03-15 23:34:27 +03:00
parent b367df2a32
commit e4a26855e9
4 changed files with 23 additions and 2 deletions

View File

@@ -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"

View File

@@ -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()

View File

@@ -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