diff --git a/interface/models.py b/interface/models.py index d948497..1662da3 100644 --- a/interface/models.py +++ b/interface/models.py @@ -39,9 +39,9 @@ class Project(models.Model): def submissions(self): return self.all_submissions.filter(complete=True) - def presigned_post(self, object_name, fields={}, conditions=[], expires=3600): + def presigned_post(self, object_name, fields=None, conditions=None, expires=3600): key = os.path.join(slugify(self.name), object_name) - return s3client.generate_presigned_post(self.ensemble.bucket, key, Fields=fields, Conditions=conditions, ExpiresIn=expires) + return s3client.generate_presigned_post(self.ensemble.bucket, key, Fields=fields or {}, Conditions=conditions or [], ExpiresIn=expires) def __str__(self): return self.name diff --git a/interface/static/interface/css/polyphonic.css b/interface/static/interface/css/polyphonic.css index 38e6c5c..948942d 100644 --- a/interface/static/interface/css/polyphonic.css +++ b/interface/static/interface/css/polyphonic.css @@ -168,6 +168,23 @@ TEXTAREA { text-decoration: none; } +/* PROGRESS BAR */ + +.progress { + display: relative; + border: 1px solid var(--border-color); + border-radius: 5px; + margin: 20px 10px; +} + +.progress-bar { + width: 5%; + height: 1.5em; + background-color: var(--light-blue); + border-radius: 5px; +} + + A, A:visited { text-decoration: none; color: var(--gray-blue); diff --git a/interface/templates/base.html b/interface/templates/base.html index 9f9bc0a..de005ee 100644 --- a/interface/templates/base.html +++ b/interface/templates/base.html @@ -44,7 +44,9 @@ + - + {% block scripts %} + {% endblock %} \ No newline at end of file diff --git a/interface/templates/interface/upload.html b/interface/templates/interface/upload.html index b485256..f69d56c 100644 --- a/interface/templates/interface/upload.html +++ b/interface/templates/interface/upload.html @@ -13,15 +13,83 @@ +
+
+
+
Cancel   - +
+
Select a file to upload
+{% endblock %} + +{% block scripts %} + + + {% endblock %} \ No newline at end of file diff --git a/interface/views.py b/interface/views.py index ade8e97..5eedc95 100644 --- a/interface/views.py +++ b/interface/views.py @@ -6,6 +6,8 @@ from datetime import datetime from . import models, forms from .decorators import check_allowed +from base64 import b64decode + import logging logger = logging.getLogger(__name__) @@ -76,10 +78,14 @@ def submission(request, project_id): redirect = request.build_absolute_uri(resolve_url('complete_submission', project_id=project.pk, submission_id=s.pk)) - upload = project.presigned_post(s.generate_key(), + key = s.generate_key() + #print("KEY:", key) + upload = project.presigned_post(key, fields={'success_action_redirect': redirect}, conditions=[["starts-with", "$success_action_redirect", ""]]) - context = {'upload': upload, 'project': project, 'submission': s} + ajax_post = project.presigned_post(key) + #print(b64decode(ajax_post['fields']['policy'])) + context = {'upload': upload, 'ajax_post': ajax_post, 'project': project, 'submission': s} return render(request, 'interface/upload.html', context) else: