Skip to content

Commit ed3ea81

Browse files
committed
feat(osf): ENG-11734 add DownloadEvent model and migration with dashboard access group
1 parent ef80d92 commit ed3ea81

2 files changed

Lines changed: 11 additions & 6 deletions

File tree

osf/migrations/0045_downloadevent.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,11 @@ class Migration(migrations.Migration):
4848
('created', models.DateTimeField(auto_now_add=True, db_index=True)),
4949
('resource_guid', models.CharField(blank=True, db_index=True, default='', max_length=255)),
5050
('path', models.TextField(blank=True, default='')),
51-
('download_type', models.CharField(choices=[('file', 'Single file'), ('folder_zip', 'Folder zip'), ('project', 'Whole-project zip')], db_index=True, max_length=16)),
51+
('download_type', models.CharField(choices=[('file', 'Single file'), ('folder_zip', 'Folder zip'), ('project', 'Whole-project zip')], max_length=16)),
5252
('zip_completed', models.BooleanField(blank=True, null=True)),
5353
('size_bytes', models.BigIntegerField(blank=True, null=True)),
54-
('storage_region', models.CharField(blank=True, db_index=True, default='', max_length=64)),
55-
('user_region', models.CharField(blank=True, db_index=True, default='', max_length=64)),
54+
('storage_region', models.CharField(blank=True, default='', max_length=64)),
55+
('user_region', models.CharField(blank=True, default='', max_length=64)),
5656
('ip', models.GenericIPAddressField(blank=True, null=True)),
5757
('source_area', models.CharField(blank=True, default='', max_length=128)),
5858
('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='download_events', to='osf.osfuser')),
@@ -66,5 +66,9 @@ class Migration(migrations.Migration):
6666
model_name='downloadevent',
6767
index=models.Index(fields=['created', 'storage_region'], name='download_event_crt_regn'),
6868
),
69+
migrations.AddIndex(
70+
model_name='downloadevent',
71+
index=models.Index(fields=['created', 'user_region'], name='download_event_crt_user'),
72+
),
6973
migrations.RunPython(create_dashboard_group, remove_dashboard_group),
7074
]

osf/models/download_event.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ class DownloadEvent(models.Model):
2424
# what was downloaded
2525
resource_guid = models.CharField(max_length=255, blank=True, default='', db_index=True)
2626
path = models.TextField(blank=True, default='')
27-
download_type = models.CharField(max_length=16, choices=DOWNLOAD_TYPES, db_index=True)
27+
download_type = models.CharField(max_length=16, choices=DOWNLOAD_TYPES)
2828
# null for single files (only zips stream through WB, which reports completion)
2929
zip_completed = models.BooleanField(null=True, blank=True)
3030
size_bytes = models.BigIntegerField(null=True, blank=True)
3131

3232
# storage_region = where the bytes were served from (capacity);
3333
# user_region = roughly where the user is. Kept separate on purpose.
34-
storage_region = models.CharField(max_length=64, blank=True, default='', db_index=True)
35-
user_region = models.CharField(max_length=64, blank=True, default='', db_index=True)
34+
storage_region = models.CharField(max_length=64, blank=True, default='')
35+
user_region = models.CharField(max_length=64, blank=True, default='')
3636
ip = models.GenericIPAddressField(null=True, blank=True)
3737
source_area = models.CharField(max_length=128, blank=True, default='')
3838

@@ -51,6 +51,7 @@ class Meta:
5151
indexes = [
5252
models.Index(fields=['created', 'download_type'], name='download_event_crt_type'),
5353
models.Index(fields=['created', 'storage_region'], name='download_event_crt_regn'),
54+
models.Index(fields=['created', 'user_region'], name='download_event_crt_user'),
5455
]
5556

5657
def __repr__(self):

0 commit comments

Comments
 (0)