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

23 statements  

1from django.db import models 

2from users.models import CustomUser 

3from django.db.models import constraints 

4 

5 

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 ) 

16 

17 

18 

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) 

25 

26 class Meta: 

27 constraints = [ 

28 models.UniqueConstraint(fields=['dataset', 'user'], name="unique_dataset_for_user") 

29 ] 

30 

31 

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) 

36 

37 class Meta: 

38 constraints = [ 

39 models.UniqueConstraint(fields=['key', 'dataset'], name="unique_dataset_key") 

40 ]