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
« 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
5class FeedToken(models.Model):
6 """Used to personalize the ical Feed."""
8 member = models.OneToOneField("members.Member", models.CASCADE)
9 token = models.CharField(max_length=32, editable=False)
11 def save(self, **kwargs):
12 self.token = get_random_string(32)
13 super().save(**kwargs)
15 @staticmethod
16 def get_member(token):
17 try:
18 return FeedToken.objects.get(token=token).member
19 except FeedToken.DoesNotExist:
20 return None
22 def __str__(self):
23 return f"{self.member.get_full_name()} ({self.token})"