Coverage for dashboard\models.py: 100%
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from django.db import models
2from users.models import CustomUser
3from django.db.models import constraints
6class Dataset(models.Model):
7 name = models.CharField(max_length=50, null=False, blank=False, unique=True)
8 created = models.DateTimeField(auto_now_add=True)
9 last_queried = models.DateTimeField(auto_now=True)
10 last_edited = models.DateTimeField(auto_now_add=True)
11 users = models.ManyToManyField(
12 to=CustomUser,
13 through="SetToUser",
14 related_name='dataToUsers'
15 )
19class SetToUser(models.Model):
20 dataset = models.ForeignKey(Dataset, related_name="setToDataset", on_delete=models.CASCADE)
21 user = models.ForeignKey(CustomUser, related_name="setToUser", on_delete=models.CASCADE)
22 can_write = models.BooleanField(default=False, null=False, blank=False)
23 can_read = models.BooleanField(default=True, null=False, blank=False)
24 can_admin = models.BooleanField(default=False, null=False, blank=False)
26 class Meta:
27 constraints = [
28 models.UniqueConstraint(fields=['dataset', 'user'], name="unique_dataset_for_user")
29 ]
32class DataPair(models.Model):
33 key = models.CharField(max_length=100, null=False, blank=False)
34 value = models.CharField(max_length=100, null=False, blank=False)
35 dataset = models.ForeignKey(Dataset, related_name="pairToDataset", on_delete=models.CASCADE)
37 class Meta:
38 constraints = [
39 models.UniqueConstraint(fields=['key', 'dataset'], name="unique_dataset_key")
40 ]