Coverage for website/events/models/feed_token.py: 62.50%

16 statements  

« prev     ^ index     » next       coverage.py v7.6.7, created at 2025-08-14 10:31 +0000

1from django.db import models 

2from django.utils.crypto import get_random_string 

3 

4 

5class FeedToken(models.Model): 

6 """Used to personalize the ical Feed.""" 

7 

8 member = models.OneToOneField("members.Member", models.CASCADE) 

9 token = models.CharField(max_length=32, editable=False) 

10 

11 def save(self, **kwargs): 

12 self.token = get_random_string(32) 

13 super().save(**kwargs) 

14 

15 @staticmethod 

16 def get_member(token): 

17 try: 

18 return FeedToken.objects.get(token=token).member 

19 except FeedToken.DoesNotExist: 

20 return None 

21 

22 def __str__(self): 

23 return f"{self.member.get_full_name()} ({self.token})"