Fixed s3 complete

This commit is contained in:
Tris 2020-09-10 14:17:05 +10:00
parent bcb8613e55
commit ef988708d8

View File

@ -69,18 +69,21 @@ class S3UploadMixin(ProjectMixin):
class S3CompleteMixin(View):
always_set = False
def complete(self, key):
self.object.key = key
self.object.save()
def get(self, request, *args, **kwargs):
self.object = self.get_object()
if self.always_set or not self.object.key:
if 'location' in request.GET:
uri = urlparse(request.GET['location'])
self.object.key = uri.path[1:]
self.complete(uri.path[1:])
elif 'key' in request.GET:
self.object.key = request.GET['key']
self.complete(request.GET['key'])
else:
raise KeyError("No key or location found")
self.object.save()
return super().get(request, *args, **kwargs)
@ -159,7 +162,11 @@ class SubmissionCreateView(ProjectMixin, CreateView):
class SubmissionDetailView(ProjectMixin, S3CompleteMixin, DetailView):
model = models.Submission
def complete(self, key):
self.object.complete = True
super().complete(key)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
if self.request.user.is_authenticated:
@ -167,7 +174,7 @@ class SubmissionDetailView(ProjectMixin, S3CompleteMixin, DetailView):
return context
class SubmissionUploadView(S3UploadMixin, DetailView):
template_name = 'interface/submission_upload.html'
template_name = 'interface/s3_upload.html'
model = models.Submission
def get_success_url(self):