diff --git a/interface/migrations/0009_auto_20200907_0103.py b/interface/migrations/0009_auto_20200907_0103.py new file mode 100644 index 0000000..027531f --- /dev/null +++ b/interface/migrations/0009_auto_20200907_0103.py @@ -0,0 +1,27 @@ +# Generated by Django 3.1.1 on 2020-09-07 01:03 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('interface', '0008_auto_20200906_1122'), + ] + + operations = [ + migrations.RemoveField( + model_name='submission', + name='key', + ), + migrations.AddField( + model_name='submission', + name='location', + field=models.CharField(blank=True, max_length=512), + ), + migrations.AlterField( + model_name='ensemble', + name='bucket', + field=models.CharField(max_length=255), + ), + ] diff --git a/interface/migrations/0010_auto_20200907_0148.py b/interface/migrations/0010_auto_20200907_0148.py new file mode 100644 index 0000000..fb00411 --- /dev/null +++ b/interface/migrations/0010_auto_20200907_0148.py @@ -0,0 +1,18 @@ +# Generated by Django 3.1.1 on 2020-09-07 01:48 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('interface', '0009_auto_20200907_0103'), + ] + + operations = [ + migrations.RenameField( + model_name='submission', + old_name='location', + new_name='key', + ), + ] diff --git a/interface/migrations/0011_auto_20200907_0234.py b/interface/migrations/0011_auto_20200907_0234.py new file mode 100644 index 0000000..1738cc9 --- /dev/null +++ b/interface/migrations/0011_auto_20200907_0234.py @@ -0,0 +1,18 @@ +# Generated by Django 3.1.1 on 2020-09-07 02:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('interface', '0010_auto_20200907_0148'), + ] + + operations = [ + migrations.AlterField( + model_name='submission', + name='date', + field=models.DateTimeField(auto_now_add=True), + ), + ] diff --git a/interface/models.py b/interface/models.py index 1662da3..92832ef 100644 --- a/interface/models.py +++ b/interface/models.py @@ -1,5 +1,6 @@ from django.db import models from django.utils.text import slugify +from django.utils import timezone import random @@ -18,7 +19,7 @@ class Ensemble(models.Model): name = models.CharField(max_length=100) code = models.CharField(max_length=9, default=generate_code) passphrase = models.CharField(max_length=100) - bucket = models.CharField(max_length=100) + bucket = models.CharField(max_length=255) def active_projects(self): return self.projects.filter(active=True) @@ -37,7 +38,7 @@ class Project(models.Model): deadline =models.DateField(null=True, blank=True) def submissions(self): - return self.all_submissions.filter(complete=True) + return self.all_submissions.filter(complete=True).order_by('-pk') def presigned_post(self, object_name, fields=None, conditions=None, expires=3600): key = os.path.join(slugify(self.name), object_name) @@ -61,16 +62,20 @@ class WikiPage(models.Model): class Submission(models.Model): project = models.ForeignKey(Project, related_name='all_submissions', on_delete=models.CASCADE) - date = models.DateField(auto_now_add=True) + date = models.DateTimeField(auto_now_add=True, ) name = models.CharField(max_length=255) instrument = models.CharField(max_length=100) notes = models.TextField(blank=True) complete = models.BooleanField(default=False) - key = models.CharField(max_length=255, blank=True) + key = models.CharField(max_length=512, blank=True) - def generate_key(self): + def presigned_url(self): + params = {'Bucket': self.project.ensemble.bucket, 'Key': self.key} + return s3client.generate_presigned_url('get_object', Params=params, ExpiresIn=3600) + + def key_template(self): return "{}_{}_{}_${{filename}}".format( - datetime.now().isoformat(timespec='seconds').replace(':', ''), + timezone.localtime(self.date).isoformat(timespec='seconds').replace(':', ''), slugify(self.name), slugify(self.instrument) ) diff --git a/interface/static/interface/css/polyphonic.css b/interface/static/interface/css/polyphonic.css index 948942d..3c7fc93 100644 --- a/interface/static/interface/css/polyphonic.css +++ b/interface/static/interface/css/polyphonic.css @@ -37,6 +37,7 @@ BODY { .content { margin: 20px; + flex-direction: column; } .narrow { @@ -178,7 +179,7 @@ TEXTAREA { } .progress-bar { - width: 5%; + width: 0%; height: 1.5em; background-color: var(--light-blue); border-radius: 5px; @@ -197,4 +198,17 @@ A:hover { H1 { text-align: center; +} + +TABLE { + width: 100%; +} + +TABLE.horizontal TH { + text-align: right; +} + +TABLE.horizontal TD, +TABLE.horizontal TH { + padding: 5px; } \ No newline at end of file diff --git a/interface/templates/base.html b/interface/templates/base.html index de005ee..62d5f13 100644 --- a/interface/templates/base.html +++ b/interface/templates/base.html @@ -25,13 +25,18 @@ Projects
There have been {{ project.submissions.count }} submissions so far...
+